Share via


Categoriemacro's

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze macro's definiëren categorietoewijzingen.

Macroniveau Description
BEGIN_CATEGORY_MAP Hiermee wordt het begin van de categoriekaart gemarkeerd.
END_CATEGORY_MAP Hiermee wordt het einde van de categoriekaart gemarkeerd.
IMPLEMENTED_CATEGORY Geeft categorieën aan die zijn geïmplementeerd door het COM-object.
REQUIRED_CATEGORY Geeft categorieën aan die vereist zijn voor de container door het COM-object.

Requirements

Koptekst: atlcom.h

BEGIN_CATEGORY_MAP

Hiermee wordt het begin van de categoriekaart gemarkeerd.

BEGIN_CATEGORY_MAP(theClass)

Parameterwaarden

theClass
[in] De naam van de klasse die de categoriekaart bevat.

Opmerkingen

De categorietoewijzing wordt gebruikt om op te geven welke onderdeelcategorieën de COM-klasse implementeert en welke categorieën deze van de container nodig heeft.

Voeg een IMPLEMENTED_CATEGORY vermelding toe aan de kaart voor elke categorie die door de COM-klasse is geïmplementeerd. Voeg een REQUIRED_CATEGORY vermelding toe aan de kaart voor elke categorie waarvoor de klasse clients moeten implementeren. Het einde van de kaart markeren met de END_CATEGORY_MAP macro.

De onderdeelcategorieën die in de kaart worden vermeld, worden automatisch geregistreerd wanneer de module wordt geregistreerd als de klasse een gekoppelde OBJECT_ENTRY_AUTO of OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO heeft.

Opmerking

ATL gebruikt de standaard manager voor onderdeelcategorieën om onderdeelcategorieën te registreren. Als de manager niet aanwezig is op het systeem wanneer de module is geregistreerd, slaagt de registratie, maar worden de onderdeelcategorieën niet geregistreerd voor die klasse.

Zie Wat zijn onderdeelcategorieën en hoe werken ze in de Windows SDK voor meer informatie over onderdeelcategorieën.

Example

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

END_CATEGORY_MAP

Hiermee wordt het einde van de categoriekaart gemarkeerd.

END_CATEGORY_MAP()

Example

Zie het voorbeeld voor BEGIN_CATEGORY_MAP.

IMPLEMENTED_CATEGORY

Voeg een IMPLEMENTED_CATEGORY macro toe aan de categoriekaart van uw onderdeel om op te geven dat deze moet worden geregistreerd als implementatie van de categorie die is geïdentificeerd door de parameter catID .

IMPLEMENTED_CATEGORY(catID)

Parameterwaarden

catID
[in] Een CATID-constante of variabele met de GUID (Globally Unique Identifier) voor de geïmplementeerde categorie. Het adres van catID wordt genomen en toegevoegd aan de kaart. Zie de onderstaande tabel voor een selectie aandelencategorieën.

Opmerkingen

De onderdeelcategorieën die in de kaart worden vermeld, worden automatisch geregistreerd wanneer de module wordt geregistreerd als de klasse een gekoppelde OBJECT_ENTRY_AUTO of OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO macro heeft.

Clients kunnen de categoriegegevens die voor de klasse zijn geregistreerd, gebruiken om de mogelijkheden en vereisten te bepalen zonder dat er een exemplaar van hoeft te worden gemaakt.

Zie Wat zijn onderdeelcategorieën en hoe werken ze in de Windows SDK voor meer informatie over onderdeelcategorieën.

Een selectie van aandelencategorieën

Description Symbol Register-GUID
Veilig voor scripting CATID_SafeForScripting {7DDD95801-9882-11CF-9FA9-00AA006C42C4}
Veilig voor initialisatie CATID_SafeForInitializing {7DDD95802-9882-11CF-9FA9-00AA006C42C4}
Eenvoudige framesite-insluiting CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
Eenvoudige gegevensbinding CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Geavanceerde gegevensbinding CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Besturingselementen zonder venster CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Internet-Aware-objecten Zie Internet Aware Objects in de Windows SDK voor een voorbeeldlijst.

Example

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

REQUIRED_CATEGORY

Voeg een REQUIRED_CATEGORY macro toe aan de categorietoewijzing van uw onderdeel om op te geven dat deze moet worden geregistreerd als vereist dat de categorie is geïdentificeerd door de parameter catID .

REQUIRED_CATEGORY( catID )

Parameterwaarden

catID
[in] Een CATID-constante of variabele met de GUID (Globally Unique Identifier) voor de vereiste categorie. Het adres van catID wordt genomen en toegevoegd aan de kaart. Zie de onderstaande tabel voor een selectie aandelencategorieën.

Opmerkingen

De onderdeelcategorieën die in de kaart worden vermeld, worden automatisch geregistreerd wanneer de module wordt geregistreerd als de klasse een gekoppelde OBJECT_ENTRY_AUTO of OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO macro heeft.

Clients kunnen de categoriegegevens die voor de klasse zijn geregistreerd, gebruiken om de mogelijkheden en vereisten te bepalen zonder dat er een exemplaar van hoeft te worden gemaakt. Een besturingselement kan bijvoorbeeld vereisen dat een container gegevensbinding ondersteunt. De container kan erachter komen of deze over de mogelijkheden beschikt die nodig zijn om het besturingselement te hosten door een query uit te voeren op categoriebeheer voor de categorieën die voor dat besturingselement zijn vereist. Als de container geen vereiste functie ondersteunt, kan deze weigeren het COM-object te hosten.

Zie Wat zijn onderdeelcategorieën en hoe werken ze in de Windows SDK voor meer informatie over onderdeelcategorieën, waaronder een voorbeeldlijst.

Een selectie van aandelencategorieën

Description Symbol Register-GUID
Veilig voor scripting CATID_SafeForScripting {7DDD95801-9882-11CF-9FA9-00AA006C42C4}
Veilig voor initialisatie CATID_SafeForInitializing {7DDD95802-9882-11CF-9FA9-00AA006C42C4}
Eenvoudige framesite-insluiting CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
Eenvoudige gegevensbinding CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Geavanceerde gegevensbinding CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Besturingselementen zonder venster CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Internet-Aware-objecten Zie Internet Aware Objects in de Windows SDK voor een voorbeeldlijst.

Example

BEGIN_CATEGORY_MAP(CMyWindow)
   REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()

Zie ook

Macro's