Freigeben über


Objektzuordnungs-Makros

Diese Makros definieren Objektzuordnungen und Einträge.

Name Beschreibung
DECLARE_OBJECT_DESCRIPTION Ermöglicht es Ihnen, die Textbeschreibung eines Klassenobjekts anzugeben, die in die Objektzuordnung eingegeben wird.
OBJECT_ENTRY_AUTO Gibt ein ATL-Objekt in die Objektzuordnung ein, aktualisiert die Registrierung und erstellt eine Instanz des Objekts.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Ermöglicht es Ihnen, anzugeben, dass das Objekt registriert und initialisiert werden sollte, jedoch nicht extern über CoCreateInstance erstellbar sein sollte.

Anforderungen

Kopfzeile: atlcom.h

DECLARE_OBJECT_DESCRIPTION

Ermöglicht es Ihnen, eine Textbeschreibung für Ihr Klassenobjekt anzugeben.

DECLARE_OBJECT_DESCRIPTION( x )

Parameter

x
[in] Beschreibung des Klassenobjekts.

Hinweise

ATL gibt diese Beschreibung über das OBJECT_ENTRY_AUTO Makro in die Objektzuordnung ein.

DECLARE_OBJECT_DESCRIPTION implementiert eine GetObjectDescription Funktion, mit der Sie die CComCoClass::GetObjectDescription-Methode überschreiben können.

Die GetObjectDescription Funktion wird von IComponentRegistrar::GetComponents. IComponentRegistrar ist eine Automatisierungsschnittstelle, mit der Sie einzelne Komponenten in einer DLL registrieren und aufheben können. Wenn Sie ein Komponentenregistrierungsstellenobjekt mit dem ATL-Projekt-Assistenten erstellen, implementiert der Assistent automatisch die IComponentRegistrar Schnittstelle. IComponentRegistrar wird in der Regel von Microsoft Transaction Server verwendet.

Weitere Informationen zum ATL-Projekt-Assistenten finden Sie im Artikel Erstellen eines ATL-Projekts.

Beispiel

class ATL_NO_VTABLE CMyDescribedClass :
   public CComObjectRoot,
   public CComCoClass<CMyDescribedClass, &CLSID_MyDescribedClass>
{
public:
   CMyDescribedClass()
   {
   }

   // Override CComCoClass::GetObjectDescription
   DECLARE_OBJECT_DESCRIPTION("My Described Object 1.0")
};

OBJECT_ENTRY_AUTO

Gibt ein ATL-Objekt in die Objektzuordnung ein, aktualisiert die Registrierung und erstellt eine Instanz des Objekts.

OBJECT_ENTRY_AUTO( clsid, class )

Parameter

clsid
[in] Die CLSID einer COM-Klasse, die von der C++-Klasse namens klasse implementiert wird.

class
[in] Der Name der C++-Klasse, die die durch clsid dargestellte COM-Klasse implementiert.

Hinweise

Objekt-Eintragsmakros befinden sich im globalen Gültigkeitsbereich des Projekts, um Unterstützung für die Registrierung, Initialisierung und Erstellung einer neuen Klasse bereitzustellen.

OBJECT_ENTRY_AUTO die Funktionszeiger der Erstellerklasse und der Klassenfactory-Erstellerklassenfunktionen CreateInstance für dieses Objekt in die automatisch generierte ATL-Objektzuordnung eingeben. Wenn CAtlComModule::RegisterServer aufgerufen wird, wird die Systemregistrierung für jedes Objekt in der Objektzuordnung aktualisiert.

In der folgenden Tabelle wird beschrieben, wie die Informationen, die der Objektzuordnung hinzugefügt werden, aus der Klasse abgerufen werden, die als zweiter Parameter zu diesem Makro angegeben wird.

Informationen für Erhalten von
COM-Registrierung Registrierungsmakros
Erstellen von Klassenfabriken Klassenfactorymakros
Erstellen einer Instanz Aggregationsmakros
Komponentenkategorieregistrierung Kategorie-Makros
Initialisierung und Bereinigung auf Klassenebene ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

Ermöglicht es Ihnen, anzugeben, dass das Objekt registriert und initialisiert werden sollte, jedoch nicht extern über CoCreateInstance erstellbar sein sollte.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

Parameter

clsid
[in] Die CLSID einer COM-Klasse, die von der C++-Klasse namens klasse implementiert wird.

class
[in] Der Name der C++-Klasse, die die durch clsid dargestellte COM-Klasse implementiert.

Hinweise

Objekt-Eintragsmakros befinden sich im globalen Gültigkeitsbereich des Projekts, um Unterstützung für die Registrierung, Initialisierung und Erstellung einer neuen Klasse bereitzustellen.

mit OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO können Sie angeben, dass ein Objekt registriert und initialisiert werden soll (weitere Informationen finden Sie unter OBJECT_ENTRY_AUTO ), aber es sollte nicht über CoCreateInstancedas Objekt erstellt werden können.

Siehe auch

Makros