Registrierungsmakros
Diese Makros definieren nützliche Typbibliotheken und Registrierungseinrichtungen.
Name | Beschreibung |
---|---|
_ATL_STATIC_REGISTRY | Gibt an, dass der Registrierungscode für Ihr Objekt im Objekt enthalten sein soll, um eine Abhängigkeit von ATL.DLL zu vermeiden. |
DECLARE_LIBID | Bietet eine Möglichkeit für ATL, die Libid der Typbibliothek abzurufen. |
DECLARE_NO_REGISTRY | Verhindert die standardmäßige ATL-Registrierung. |
DECLARE_REGISTRY | Gibt den Eintrag des Hauptobjekts in der Systemregistrierung ein oder entfernt ihn. |
DECLARE_REGISTRY_APPID_RESOURCEID | Gibt die informationen an, die zum automatischen Registrieren der appid erforderlich sind. |
DECLARE_REGISTRY_RESOURCE | Sucht die benannte Ressource und führt das Registrierungsskript darin aus. |
DECLARE_REGISTRY_RESOURCEID | Sucht die durch eine ID-Nummer identifizierte Ressource und führt das Registrierungsskript darin aus. |
Anforderungen
Kopfzeile: atlcom.h
_ATL_STATIC_REGISTRY
Ein Symbol, das angibt, dass sich der Registrierungscode für Ihr Objekt im Objekt befindet, um eine Abhängigkeit von ATL.DLL zu vermeiden.
#define _ATL_STATIC_REGISTRY
Hinweise
Wenn Sie ATL_STATIC_REGISTRY definieren, sollten Sie den folgenden Code verwenden:
#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#endif
DECLARE_LIBID
Bietet eine Möglichkeit für ATL, die Libid der Typbibliothek abzurufen.
DECLARE_LIBID( libid )
Parameter
libid
Die GUID der Typbibliothek.
Hinweise
Verwenden Sie DECLARE_LIBID in einer CAtlModuleT
abgeleiteten Klasse.
Beispiel
Nicht zugeordnete, vom Assistenten generierte ATL-Projekte weisen ein Beispiel für die Verwendung dieses Makros auf.
DECLARE_NO_REGISTRY
Verwenden Sie DECLARE_NO_REGISTRY, wenn Sie eine standardmäßige ATL-Registrierung für die Klasse vermeiden möchten, in der dieses Makro angezeigt wird.
DECLARE_NO_REGISTRY()
DECLARE_REGISTRY
Gibt die Standardklassenregistrierung in die Systemregistrierung ein oder entfernt sie aus der Systemregistrierung.
DECLARE_REGISTRY(
class,
pid,
vpid,
nid,
flags )
Parameter
class
[in] Aus Gründen der Abwärtskompatibilität enthalten.
pid
[in] Ein LPCTSTR, der eine versionsspezifische Programm-ID ist.
vpid
[in] Ein LPCTSTR, das eine versionsunabhängige Programm-ID ist.
Nid
[in] Ein UINT, der ein Index der Ressourcenzeichenfolge in der Registrierung ist, die als Beschreibung des Programms verwendet werden soll.
flags
[in] Ein DWORD mit dem Threadingmodell des Programms in der Registrierung. Muss einer der folgenden Werte sein: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH oder AUTPRXFLAG.
Hinweise
Die Standardregistrierung besteht aus clSID, Programm-ID, versionsunabhängiger Programm-ID, Beschreibungszeichenfolge und Threadmodell.
Wenn Sie ein Objekt oder Steuerelement mithilfe des ATL-Assistenten zum Hinzufügen von Klassen erstellen, implementiert der Assistent automatisch skriptbasierte Registrierungsunterstützung und fügt die DECLARE_REGISTRY_RESOURCEID Makro zu Ihren Dateien hinzu. Wenn Sie keine skriptbasierte Registrierungsunterstützung benötigen, müssen Sie dieses Makro durch DECLARE_REGISTRY ersetzen. DECLARE_REGISTRY fügt nur die oben beschriebenen fünf grundlegenden Schlüssel in die Registrierung ein. Sie müssen Manuell Code schreiben, um andere Schlüssel in die Registrierung einzufügen.
DECLARE_REGISTRY_APPID_RESOURCEID
Gibt die informationen an, die zum automatischen Registrieren der appid erforderlich sind.
DECLARE_REGISTRY_APPID_RESOURCEID(
resid,
appid )
Parameter
Resid
Die Ressourcen-ID der rgs-Datei, die Informationen zur appid enthält.
appid
Ein GUID.
Hinweise
Verwenden Sie DECLARE_REGISTRY_APPID_RESOURCEID in einer CAtlModuleT
abgeleiteten Klasse.
Beispiel
Klassen, die ATL-Projekten mit dem Assistenten zum Hinzufügen von Klassencode hinzugefügt wurden, enthalten ein Beispiel für die Verwendung dieses Makros.
DECLARE_REGISTRY_RESOURCE
Ruft die benannte Ressource ab, die die Registrierungsdatei enthält, und führt das Skript aus, um Objekte in die Systemregistrierung einzugeben oder aus der Systemregistrierung zu entfernen.
DECLARE_REGISTRY_RESOURCE( x )
Parameter
x
[in] Zeichenfolgenbezeichner Ihrer Ressource.
Hinweise
Wenn Sie ein Objekt oder Steuerelement mithilfe des ATL-Projekt-Assistenten erstellen, implementiert der Assistent automatisch die skriptbasierte Registrierungsunterstützung und fügt das DECLARE_REGISTRY_RESOURCEID Makro hinzu, das DECLARE_REGISTRY_RESOURCE ähnelt, zu Ihren Dateien.
Sie können die Verknüpfung mit der ATL-Registrierungskomponente (Registrierungsstelle) für einen optimierten Registrierungszugriff statisch verknüpfen. Um einen statisch mit dem Registrierungsstellencode zu verknüpfen, fügen Sie der Datei "pch.h" (stdafx.h in Visual Studio 2017 und früher) die folgende Zeile hinzu:
#define _ATL_STATIC_REGISTRY
Wenn ATL zur Laufzeit Ersatzwerte ersetzen soll, geben Sie nicht das DECLARE_REGISTRY_RESOURCE oder DECLARE_REGISTRY_RESOURCEID Makro an. Erstellen Sie stattdessen ein Array von _ATL_REGMAP_ENTRIES
Strukturen, in dem jeder Eintrag einen Variablenplatzhalter enthält, der mit einem Wert gekoppelt ist, um den Platzhalter zur Laufzeit zu ersetzen. Rufen Sie dann CAtlModule::UpdateRegistryFromResourceD oder CAtlModule::UpdateRegistryFromResourceS auf, und übergeben Sie das Array. Dadurch werden alle Ersetzungswerte in den _ATL_REGMAP_ENTRIES
Strukturen zur Ersatzzuordnung der Registrierungsstelle hinzugefügt.
Weitere Informationen zu austauschbaren Parametern und Skripts finden Sie im Artikel "AtL Registry Component (Registrar)".
DECLARE_REGISTRY_RESOURCEID
Identisch mit DECLARE_REGISTRY_RESOURCE mit der Ausnahme, dass ein vom Assistenten generierter UINT verwendet wird, um die Ressource zu identifizieren, anstatt einen Zeichenfolgennamen.
DECLARE_REGISTRY_RESOURCEID( x )
Parameter
x
[in] Vom Assistenten generierter Bezeichner Ihrer Ressource.
Hinweise
Wenn Sie ein Objekt oder Steuerelement mithilfe des ATL-Projekt-Assistenten erstellen, implementiert der Assistent automatisch skriptbasierte Registrierungsunterstützung und fügt das DECLARE_REGISTRY_RESOURCEID Makro zu Ihren Dateien hinzu.
Sie können die Verknüpfung mit der ATL-Registrierungskomponente (Registrierungsstelle) für einen optimierten Registrierungszugriff statisch verknüpfen. Wenn Sie einen statisch mit dem Registrierungsstellencode verknüpfen möchten, fügen Sie der Datei "stdafx.h" (pch.h in Visual Studio 2019 und höher) die folgende Zeile hinzu:
#define _ATL_STATIC_REGISTRY
Wenn ATL zur Laufzeit Ersatzwerte ersetzen soll, geben Sie nicht das DECLARE_REGISTRY_RESOURCE oder DECLARE_REGISTRY_RESOURCEID Makro an. Erstellen Sie stattdessen ein Array von _ATL_REGMAP_ENTRIES
Strukturen, in dem jeder Eintrag einen Variablenplatzhalter enthält, der mit einem Wert gekoppelt ist, um den Platzhalter zur Laufzeit zu ersetzen. Rufen Sie dann CAtlModule::UpdateRegistryFromResourceD oder CAtlModule::UpdateRegistryFromResourceS auf, und übergeben Sie das Array. Dadurch werden alle Ersetzungswerte in den _ATL_REGMAP_ENTRIES
Strukturen zur Ersatzzuordnung der Registrierungsstelle hinzugefügt.
Weitere Informationen zu austauschbaren Parametern und Skripts finden Sie im Artikel "AtL Registry Component (Registrar)".