Ефекти посилань на створені файли

MYSNAPIN.H і MYSNAPIN.РГС є тільки файли, які постраждали від параметрів на другій сторінці.

MYSNAPIN.H

Кожен інтерфейс, з 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 ), і були оголошені стандартні методи.

MYSNAPIN.РГС

Якщо оснастку є розширенням оснащення на.РГС файлу, створеному майстром буде трохи відрізнятися за замовчуванням. Зокрема, дві частини у на 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'
                    }
                }
            }

        }
    }

Index