Share via


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 Standard Objekts 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 CAtlModuleTabgeleiteten 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 CAtlModuleTabgeleiteten 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)".

Siehe auch

Makros