VSPackages mit der Visual Studio-Bibliothek implementieren
Die IVsPackageImpl-Klasse in der Visual Studio-Bibliothek stellt eine minimale Implementierung der IVsPackage-Schnittstelle. IVsPackageImpl selbst werden die meisten Methoden zum Verwalten von IVsPackage. Andere Möglichkeiten, die Sie benötigen, um zu überschreiben, um ein sinnvolles folgende Implementierung bereitzustellen:
-
Hinweis
Die Visual Studio den gesamten Code generiert Paket-Vorlage hier erläutert wird.Sie können auch Zeit sparen, indem Sie die Vorlage verwenden, um ein VSPackage für Sie generiert.
Pakete, die implementiert werden, indem Sie in der Regel die Visual Studio-Bibliothek verwendet, erben eine VSPackage-Klasse von CComObjectRootEx-Klasse ATL und CComCoClass-Klasse IVsPackageImpl und der Visual Studio-Bibliothek. Beispielsweise ist das Reference.Package-Beispiel vom VSPackage-Klassendeklaration die Folgenden:
class ATL_NO_VTABLE BasicPackage :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<BasicPackage, &CLSID_BasicPackage>,
public IVsPackageImpl<BasicPackage, &CLSID_BasicPackage>,
...
Die IVsPackageImpl Vorlagenparameter, die angezeigt werden, sind die VSPackage-Klasse selbst und ein Zeiger auf eine GUID, die ein VSPackage identifiziert.
Unterstützung COM-Zuordnungen mit QueryInterface
Um Unterstützung für ATL QueryInterfaceabzurufen, muss die COM-Zuordnung die Schnittstellen auf die von der Klasse implementiert wird. Beispielsweise ist das Folgen die COM-Zuordnung für die VSPackage-Klasse im Reference.Package-Beispiel:
BEGIN_COM_MAP(BasicPackage)
COM_INTERFACE_ENTRY(IVsPackage)
...
END_COM_MAP()
Weitere Informationen über COM-Zuordnungen, finden Sie unter Implementieren von CComObjectRootEx und COM_INTERFACE_ENTRY-Makros.
Registrierung mit Registrierungs-Karten unterstützen
Visual Studio-Bibliothek ATL-Format verwendet, um Dateien .RGS Registrierung von COM-Objekten zu unterstützen. Um die Token in der .RGS-Datei zu unterstützen, verwendet Visual Studio-Bibliothek Registrierungsdaten ist. Registrierung ist führen die zu ersetzende auf Symbole, und unterstützen die Verwendung von IDs für Zeichenfolgentabellen Ressourcen frei.
Beispielsweise ist das Folgen die Registrierung für die VSPackage-Klasse im Reference.Package-Beispiel zugeordnet:
VSL_BEGIN_REGISTRY_MAP(IDR_BASICPACKAGE_RGS)
VSL_REGISTRY_MAP_GUID_ENTRY(CLSID_BasicPackage)
VSL_REGISTRY_RESOURCE_STRING_ENTRY(IDS_BASICPACKAGE_REGISTRY_NAME)
...
VSL_END_REGISTRY_MAP()