Seçenekler oluşturulan dosyaları üzerinde etkileri

MYSNAPIN.H ve MYSNAPIN.rgs, ikinci sayfasındaki seçenekleri etkilenen sadece dosyalar.

MYSNAPIN.H

Her arabirime teslim IExtend * radyo düğmesi grubu, bu belirli arabirim bildirimi ekler CMySnapInComponent sınıfı. Örneğin, seçimi IExtendControlbar arabiriminin aşağıdaki satırı sınıf member-wise başlatılması için ekler:

genel IExtendControlbarImpllt;CMySnapInComponent & gt

ve aşağıdaki satırı CMySnapInComponent 'ın com göster:

COM_INTERFACE_ENTRY(IExtendControlbar)

Benzer değişiklikler için yapılan CMySnapInComponent türüne göre seçilen kalıcılık.

Değişiklikler Yukarıdaki ek olarak, seçilen kalıcılık arabirimin tüm yöntemleri MYSNAPIN içinde bildirilir.h. Örneğin, aşağıdaki kod ekledi kalıcılık türü olarak IPersistStorage seçerseniz,:

STDMETHOD(GetClassID)(CLSID *pClassID)
{
 nbsp;  ATLTRACE&NOTIMPL(_T("CMySnapInComponent::GetClassID"));
}

//Additional IPersistStorage yöntemleri
...

Sanal hresult stdmethodcalltype HandsOffStorage()
{
    ATLTRACENOTIMPL(_T("CMySnapInComponent::HandsOffStorage"));
}

Değişiklikler, benzer CMySnapIn sınıfı.

ISnapInAbout arabirimi seçilirse, ayrı bir sınıf ilan edilir ( CMySnapInAbout ), ve standart yöntemleri.

MYSNAPIN.RGS

Ek bir ek bileşeni uzantısı, eğer.rgs dosya sihirbaz tarafından oluşturulan, varsayılan olarak biraz değişir. Özellikle iki bölümler de NoRemove MMC bölümü güncellenmiştir ek bileşeni uzantısı nesne genişletilmiş ek nesne ile ilişkilendirmek için.

Örneğin, aşağıdaki bölümde örnek bir varsayılan ek 's nesnesidir.rgs dosya:

&NoRemove mmc
 nbsp;  {
        NoRemove Snapins
        {
            ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436} =
            s 'MySnapIn' {}
                Val NameString s 'MySnapIn' =
                Val yaklaşık = s '{ACC4CCCE-8C61-11D1-B017-00C04FB99436}'
                NodeTypes
                {
                    {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
                }
                Tek başına
            }
        }
        NoRemove NodeTypes
        {
            ForceRemove {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
            {
            }

}
    }

Ancak, ek uzantısı için NoRemove MMC bölümüne farklıdır:

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