Auswirkungen der Optionen auf die generierten Dateien

MYSNAPIN.H und MYSNAPIN.RGS sind die einzigen Dateien, die die Optionen auf der zweiten Seite betroffen.

MYSNAPIN.H

Jede Schnittstelle, von der IExtend * Radio Button-Group, die aktiviert ist fügt eine Erklärung dieser spezifische Schnittstelle, die CMySnapInComponent Klasse. Beispielsweise wird die IExtendControlbar -Schnittstelle auswählen die folgende Zeile zur Initialisierung der Klasse member-wise:

öffentlichen IExtendControlbarImpllt;CMySnapInComponent & gt

und die folgende Zeile zur CMySnapInComponent des COM-Zuordnung:

COM_INTERFACE_ENTRY(IExtendControlbar)

Ähnliche Änderungen werden gebildet, um CMySnapInComponent für die Art der gewählten Persistenz.

Zusätzlich zu den oben genannten Änderungen werden alle Methoden der gewählten Persistenz-Schnittstelle in MYSNAPIN deklariert.H. Z. B. der folgende Code wird hinzugefügt, wenn Sie IPersistStorage als die Art der Persistenz auswählen:

STDMETHOD(GetClassID)(CLSID *pClassId)
{
 &Nbsp;  ATLTRACENOTIMPL(_T("CMySnapInComponent::GetClassID"));
}

//zusätzliche IPersistStorage Methoden
...

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

Die Änderungen sind für die CMySnapIn Klasse.

Wenn die ISnapInAbout -Schnittstelle ausgewählt ist, wird eine separate Klasse deklariert ( CMySnapInAbout ), und die standard-Methoden deklariert werden.

MYSNAPIN.RGS

Wenn das Snap-in eine Snap-in-Erweiterung ist, die.RGS-Datei, die vom Assistenten generierte wird von der Standardeinstellung abweichen. Insbesondere zwei Portionen der NoRemove MMC Abschnitt wird geändert werden, um das erweiterte Objekt-Snap-in das Snap-in-Erweiterung-Objekt zuordnen.

Beispielsweise ist im folgenden Abschnitt Beispiel aus einem Standard-Snap-ins Objekt.RGS-Datei:

&NoRemove MMC
 Nbsp;  {
        NoRemove Snapins
        {
            ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436} =
            s 'MySnapIn' {}
                Val NameString = s 'MySnapIn'
                Val About = s '{ACC4CCCE-8C61-11D1-B017-00C04FB99436}'
                NodeTypes
                {
                    {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
                }
                Eigenständige
            }
        }
        NoRemove NodeTypes
        {
            ForceRemove {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
            {
            }

}
    }

Jedoch für die Snap-in-Erweiterung die NoRemove MMC Abschnitt unterscheidet sich:

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