Действие параметров на созданных файлов

MYSNAPIN.H и MYSNAPIN.RGS являются только файлы, пострадавших от опции на второй странице.

MYSNAPIN.H

Каждый интерфейс от 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 ), и стандартные методы объявляются.

MYSNAPIN.RGS

Если оснастка это расширение оснастки,.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'
                    }
                }
            }

        }
    }

Index