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 |
---|---|---|
Sicher für Skripting | CATID_SafeForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
Sicher für die Initialisierung | CATID_SafeForInitializing | {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 |
---|---|---|
Sicher für Skripting | CATID_SafeForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
Sicher für die Initialisierung | CATID_SafeForInitializing | {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()