Skutki opcje wygenerowane pliki

MYSNAPIN.H i MYSNAPIN.RGS są tylko pliki, których dotyczy opcje na drugiej stronie.

MYSNAPIN.H

Każdy interfejs z IExtend * radiowych przycisk grupy, która jest sprawdzana dodaje deklarację określonego interfejsu do CMySnapInComponent klasy. Na przykład wybranie interfejsu IExtendControlbar dodaje następujący wiersz do member-wise inicjowania klasy:

iExtendControlbarImpllt publiczne;CMySnapInComponent & gt

i następujący wiersz, aby CMySnapInComponent jego COM mapę:

COM_INTERFACE_ENTRY(IExtendControlbar)

Podobne zmiany są do CMySnapInComponent dla typu trwałość wybranych.

Oprócz wyżej wymienionych zmian wszystkie metody interfejsu trwałość wybranych są zgłaszane w MYSNAPIN.H. na przykład, poniższy kod jest dodawany po wybraniu IPersistStorage jako typ trwałości:

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

metody IPersistStorage //additional
...

wirtualny HRESULT STDMETHODCALLTYPE HandsOffStorage()
{
    ATLTRACENOTIMPL(_T("CMySnapInComponent::HandsOffStorage"));
}

Zmiany są podobne do CMySnapIn klasy.

Jeśli wybrany interfejs ISnapInAbout jest zgłaszana w osobnej klasy ( CMySnapInAbout ), i standardowe metody są deklarowane.

MYSNAPIN.RGS

Jeśli przystawka jest rozszerzeniem przystawki.RGS plik wygenerowany przez kreatora będzie różnią się nieco od domyślnego. W szczególności, dwie porcje w NoRemove MMC sekcji zostanie zmodyfikowane, aby skojarzyć obiektu przystawki rozszerzeń z rozszerzonego obiektu przystawki.

Na przykład poniższy przykład sekcji jest domyślnie przystawka obiektu na.Plik RGS:

&NoRemove MMC
 nbsp;  {
        Przystawki usługi NoRemove
        {
            ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436} =
            s 'MySnapIn' {}
                Val NameString = s 'MySnapIn'
                Val około = s "{ACC4CCCE-8C61-11D1-B017-00C04FB99436}"
                NodeTypes
                {
                    {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
                }
                Autonomiczny
            }
        }
        NoRemove NodeTypes
        {
            ForceRemove {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
            {
            }

}
    }

Jednakże w przypadku rozszerzenia przystawki NoRemove MMC sekcji różni się:

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