MYSNAPIN.H і MYSNAPIN.РГС є тільки файли, які постраждали від параметрів на другій сторінці.
Кожен інтерфейс, з IExtend * радіо кнопку групи, що перевірені додає заяву про що конкретні інтерфейс до CMySnapInComponent
класу. Наприклад, вибір інтерфейс IExtendControlbar додає такий рядок до member-wise ініціалізації класу:
громадська IExtendControlbarImpllt;CMySnapInComponent & gt
та ще такий рядок CMySnapInComponent
в
COM карта:
COM_INTERFACE_ENTRY(IExtendControlbar)
Аналогічні зміни внесені до CMySnapInComponent
типу збереження обраного.
На додаток до вище зміни всі методи інтерфейс наполегливість, обраний були оголошені в MYSNAPIN.H. наприклад, такий код додав Якщо вибрано IPersistStorage тип збереження:
STDMETHOD(GetClassID)(CLSID *pClassID)
{
nbsp; ATLTRACE&NOTIMPL(_T("CMySnapInComponent::GetClassID"));
}
//additional IPersistStorage методи
...
Віртуальний HRESULT STDMETHODCALLTYPE HandsOffStorage()
{
ATLTRACENOTIMPL(_T("CMySnapInComponent::HandsOffStorage"));
}
Зміни, схожі для з CMySnapIn
клас.
Якщо вибрано ISnapInAbout інтерфейс, оголошений окремий клас ( CMySnapInAbout
), і були оголошені стандартні методи.
Якщо оснастку є розширенням оснащення на.РГС файлу, створеному майстром буде трохи відрізнятися за замовчуванням. Зокрема, дві частини у на NoRemove MMC
розділ буде змінено асоціювати об'єкта розширення оснастки з об'єктом розширені оснастки.
Наприклад, наступні розділі зразок, від за промовчанням оснасток об'єкта.РГС файлу:
&NoRemove MMC
nbsp; {
NoRemove Snapins
{
ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436} =
'MySnapIn' s {
Валь NameString = 'MySnapIn' s
Валь близько = '{ACC4CCCE-8C61-11D1-B017-00C04FB99436}' s
NodeTypes
{
{ACC4CCCF-8C61-11D1-B017-00C04FB99436}
}
Автономний
}
}
NoRemove NodeTypes
{
ForceRemove {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
{
}
}
}
Однак, для оснащення розширення в NoRemove MMC
розділі відрізняється:
NoRemove MMC
{
NoRemove Snapins
{
ForceRemove {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
{
val NameString = s 'MySnapInDataExt1'
val About = s '{ACC4CCD6-8C61-11D1-B017-00C04FB99436}'
}
}
NoRemove NodeTypes
{
NoRemove {}
{
NoRemove Extensions
{
NoRemove PropertySheet
{
val {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
}
NoRemove ToolBar
{
val {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
}
}
}
}
}