Kategorie-Makros

Diese Makros definieren Kategoriezuordnungen.

Makro Beschreibung
BEGIN_CATEGORY_MAP Markiert den Anfang der Kategoriezuordnung.
END_CATEGORY_MAP Markiert das Ende der Kategoriezuordnung.
IMPLEMENTED_CATEGORY Gibt Kategorien an, die vom COM-Objekt implementiert werden.
REQUIRED_CATEGORY Gibt Kategorien an, die für den Container vom COM-Objekt erforderlich sind.

Anforderungen

Kopfzeile: atlcom.h

BEGIN_CATEGORY_MAP

Markiert den Anfang der Kategoriezuordnung.

BEGIN_CATEGORY_MAP(theClass)

Parameter

theClass
[in] Der Name der Klasse, die die Kategoriezuordnung enthält.

Hinweise

Die Kategoriezuordnung wird verwendet, um anzugeben, welche Komponentenkategorien die COM-Klasse implementiert und welche Kategorien sie aus dem Container benötigt.

Fügen Sie der Karte für jede von der COM-Klasse implementierte Kategorie einen IMPLEMENTED_CATEGORY Eintrag hinzu. Fügen Sie der Karte für jede Kategorie, die von der Klasse implementiert werden muss, einen REQUIRED_CATEGORY Eintrag hinzu. Markieren Sie das Ende der Karte mit dem END_CATEGORY_MAP-Makro .

Die in der Karte aufgeführten Komponentenkategorien werden automatisch registriert, wenn das Modul registriert wird, wenn die Klasse über eine zugeordnete OBJECT_ENTRY_AUTO oder OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO verfügt.

Hinweis

ATL verwendet den Manager für Standardkomponentenkategorien, um Komponentenkategorien zu registrieren. Wenn der Manager nicht auf dem System vorhanden ist, wenn das Modul registriert ist, ist die Registrierung erfolgreich, die Komponentenkategorien werden jedoch nicht für diese Klasse registriert.

Weitere Informationen zu Komponentenkategorien finden Sie unter "Was sind Komponentenkategorien", und wie funktionieren sie im Windows SDK.

Beispiel

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

END_CATEGORY_MAP

Markiert das Ende der Kategoriezuordnung.

END_CATEGORY_MAP()

Beispiel

Sehen Sie sich das Beispiel für BEGIN_CATEGORY_MAP an.

IMPLEMENTED_CATEGORY

Fügen Sie der Kategoriezuordnung Ihrer Komponente ein IMPLEMENTED_CATEGORY Makro hinzu, um anzugeben, dass es als Implementierung der durch den catID-Parameter identifizierten Kategorie registriert werden soll.

IMPLEMENTED_CATEGORY(catID)

Parameter

Catid
[in] Eine CATID-Konstante oder Variable, die die GUID (Globally Unique Identifier) für die implementierte Kategorie enthält. Die Adresse der catID wird genommen und der Karte hinzugefügt. Eine Auswahl der Aktienkategorien finden Sie in der folgenden Tabelle.

Hinweise

Die in der Zuordnung aufgeführten Komponentenkategorien werden automatisch registriert, wenn das Modul registriert wird, wenn die Klasse über ein zugeordnetes OBJECT_ENTRY_AUTO oder OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Makro verfügt.

Clients können die kategorieinformationen verwenden, die für die Klasse registriert sind, um ihre Funktionen und Anforderungen zu ermitteln, ohne eine Instanz davon erstellen zu müssen.

Weitere Informationen zu Komponentenkategorien finden Sie unter "Was sind Komponentenkategorien", und wie funktionieren sie im Windows SDK.

Eine Auswahl von Aktienkategorien

Beschreibung Symbol Registrierungs-GUID
Tresor für Skripting CATID_Tresor ForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Tresor für die Initialisierung CATID_Tresor ForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Einfache Frame-Websiteeindämmung CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
einfache Datenbindung CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Erweiterte Datenbindung CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Fensterlose Steuerelemente CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Internetfähige Objekte Eine Beispielliste finden Sie unter Internet Aware Objects im Windows SDK.

Beispiel

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

REQUIRED_CATEGORY

Fügen Sie der Kategoriezuordnung Ihrer Komponente ein REQUIRED_CATEGORY Makro hinzu, um anzugeben, dass es registriert werden soll, da die durch den catID-Parameter identifizierte Kategorie erforderlich ist.

REQUIRED_CATEGORY( catID )

Parameter

Catid
[in] Eine CATID-Konstante oder Variable, die die GUID (Globally Unique Identifier) für die erforderliche Kategorie enthält. Die Adresse der catID wird genommen und der Karte hinzugefügt. Eine Auswahl der Aktienkategorien finden Sie in der folgenden Tabelle.

Hinweise

Die in der Zuordnung aufgeführten Komponentenkategorien werden automatisch registriert, wenn das Modul registriert wird, wenn die Klasse über ein zugeordnetes OBJECT_ENTRY_AUTO oder OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Makro verfügt.

Clients können die kategorieinformationen verwenden, die für die Klasse registriert sind, um ihre Funktionen und Anforderungen zu ermitteln, ohne eine Instanz davon erstellen zu müssen. Ein Steuerelement kann z. B. erfordern, dass ein Container die Datenbindung unterstützt. Der Container kann herausfinden, ob er über die zum Hosten des Steuerelements erforderlichen Funktionen verfügt, indem er den Kategorie-Manager nach den kategorien abfragt, die für dieses Steuerelement erforderlich sind. Wenn der Container kein erforderliches Feature unterstützt, kann es sich weigern, das COM-Objekt zu hosten.

Weitere Informationen zu Komponentenkategorien, einschließlich einer Beispielliste, finden Sie unter "Was sind Komponentenkategorien", und wie funktionieren sie im Windows SDK.

Eine Auswahl von Aktienkategorien

Beschreibung Symbol Registrierungs-GUID
Tresor für Skripting CATID_Tresor ForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Tresor für die Initialisierung CATID_Tresor ForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Einfache Frame-Websiteeindämmung CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
einfache Datenbindung CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Erweiterte Datenbindung CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Fensterlose Steuerelemente CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Internetfähige Objekte Eine Beispielliste finden Sie unter Internet Aware Objects im Windows SDK.

Beispiel

BEGIN_CATEGORY_MAP(CMyWindow)
   REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()

Siehe auch

Makros