MYSNAPIN.H и MYSNAPIN.RGS являются только файлы, пострадавших от опции на второй странице.
Каждый интерфейс от IExtend * группы переключателей, которая проверяется добавляет объявление этого конкретного интерфейса для CMySnapInComponent класса. К примеру выбор IExtendControlbar интерфейс добавляет следующую строку к member-wise инициализации класса:
государственные IExtendControlbarImpllt;CMySnapInComponent & gt
и следующую строку, чтобы CMySnapInComponent в COM карта:
COM_INTERFACE_ENTRY(IExtendControlbar)
Внести аналогичные изменения CMySnapInComponent для типа сохранения выбранной.
В дополнение к выше изменениями все методы сохранения интерфейса выбран объявляются в MYSNAPIN.Х. К примеру, следующий код добавляется при выборе IPersistStorage в качестве типа стойкости:
STDMETHOD(GetClassID)(CLSID *pClassID)
{
nbsp; ATLTRACE&NOTIMPL(_t("CMySnapInComponent::GetClassID"));
}
методы IPersistStorage //Additional
...
Виртуальная HRESULT STDMETHODCALLTYPE HandsOffStorage()
{
ATLTRACENOTIMPL(_t("CMySnapInComponent::HandsOffStorage"));
}
Изменения, аналогичные для CMySnapIn класс.
Если будет выбран интерфейс ISnapInAbout , отдельный класс объявляется ( CMySnapInAbout ), и стандартные методы объявляются.
Если оснастка это расширение оснастки,.RGS-файл, создаваемый мастером будет несколько отличаться от значения по умолчанию. В частности, двух порций в NoRemove MMC Секция будет изменяться связать объект расширение оснастки с расширенного объекта snap-in.
Например следующий пример секции — от по умолчанию оснастки объекта.RGS-файл:
&NoRemove MMC
nbsp; {
NoRemove Snapins
{
ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436} =
s «MySnapIn» {}
Вал NameString = s «MySnapIn»
Вал около = s «{ACC4CCCE-8C61-11D1-B017-00C04FB99436}»
Типы узлов
{
{ACC4CCCF-8C61-11D1-B017-00C04FB99436}
}
Автономные
}
}
NoRemove типы узлов
{
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'
}
}
}
}
}