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 CoCreateInstance
das Objekt erstellt werden können.