Macros de catégorie
Ces macros définissent des mappages de catégorie.
Macro | Description |
---|---|
BEGIN_CATEGORY_MAP | Marque le début du mappage de catégories. |
END_CATEGORY_MAP | Marque la fin du mappage de catégories. |
IMPLEMENTED_CATEGORY | Indique les catégories implémentées par l’objet COM. |
REQUIRED_CATEGORY | Indique les catégories requises du conteneur par l’objet COM. |
Spécifications
En-tête : atlcom.h
BEGIN_CATEGORY_MAP
Marque le début du mappage de catégories.
BEGIN_CATEGORY_MAP(theClass)
Paramètres
theClass
[in] Nom de la classe contenant le mappage de catégorie.
Notes
Le mappage de catégories est utilisé pour spécifier les catégories de composants que la classe COM implémente et les catégories dont elle a besoin à partir de son conteneur.
Ajoutez une entrée IMPLEMENTED_CATEGORY au mappage pour chaque catégorie implémentée par la classe COM. Ajoutez une entrée REQUIRED_CATEGORY au mappage pour chaque catégorie que la classe exige que ses clients implémentent. Marquez la fin de la carte avec la macro END_CATEGORY_MAP .
Les catégories de composants répertoriées dans la carte sont enregistrées automatiquement lorsque le module est inscrit si la classe a un OBJECT_ENTRY_AUTO associé ou OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO.
Remarque
ATL utilise le gestionnaire de catégories de composants standard pour inscrire des catégories de composants. Si le gestionnaire n’est pas présent sur le système lorsque le module est inscrit, l’inscription réussit, mais les catégories de composants ne seront pas inscrites pour cette classe.
Pour plus d’informations sur les catégories de composants, consultez Les catégories de composants et comment fonctionnent-elles dans le Kit de développement logiciel (SDK) Windows.
Exemple
BEGIN_CATEGORY_MAP(CMyCtrl)
IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()
END_CATEGORY_MAP
Marque la fin du mappage de catégories.
END_CATEGORY_MAP()
Exemple
Consultez l’exemple de BEGIN_CATEGORY_MAP.
IMPLEMENTED_CATEGORY
Ajoutez une macro IMPLEMENTED_CATEGORY à la carte de catégorie de votre composant pour spécifier qu’elle doit être inscrite comme implémentant la catégorie identifiée par le paramètre catID.
IMPLEMENTED_CATEGORY(catID)
Paramètres
catID
[in] Constante CATID ou variable contenant l’identificateur global unique (GUID) pour la catégorie implémentée. L’adresse de catID est prise et ajoutée à la carte. Consultez le tableau ci-dessous pour obtenir une sélection de catégories d’actions.
Notes
Les catégories de composants répertoriées dans la carte sont enregistrées automatiquement lorsque le module est inscrit si la classe a une macro OBJECT_ENTRY_AUTO ou OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO associée.
Les clients peuvent utiliser les informations de catégorie inscrites pour la classe pour déterminer ses fonctionnalités et ses exigences sans avoir à créer une instance de celle-ci.
Pour plus d’informations sur les catégories de composants, consultez Les catégories de composants et comment fonctionnent-elles dans le Kit de développement logiciel (SDK) Windows.
Sélection de catégories de stock
Description | Symbole | GUID du Registre |
---|---|---|
Sécurisé pour l’écriture de scripts | CATID_SafeForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
Sécurisé pour l’initialisation | CATID_SafeForInitializing | {7DD95802-9882-11CF-9FA9-00AA006C42C4} |
Contenu du site de trame simple | CATID_SimpleFrameControl | {157083E0-2368-11cf-87B9-00AA006C8166} |
liaison de données simple | CATID_PropertyNotifyControl | {157083E1-2368-11cf-87B9-00AA006C8166} |
Liaison de données avancée | CATID_VBDataBound | {157083E2-2368-11cf-87B9-00AA006C8166} |
Contrôles sans fenêtre | CATID_WindowlessObject | {1D06B600-3AE3-11cf-87B9-00AA006C8166} |
Objets prenant en compte Internet | Consultez les objets Prenant en charge Internet dans le Kit de développement logiciel (SDK) Windows pour obtenir un exemple de liste. |
Exemple
BEGIN_CATEGORY_MAP(CMyCtrl)
IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()
REQUIRED_CATEGORY
Ajoutez une macro REQUIRED_CATEGORY à la carte de catégorie de votre composant pour spécifier qu’elle doit être inscrite comme nécessitant la catégorie identifiée par le paramètre catID.
REQUIRED_CATEGORY( catID )
Paramètres
catID
[in] Constante CATID ou variable contenant l’identificateur global unique (GUID) pour la catégorie requise. L’adresse de catID est prise et ajoutée à la carte. Consultez le tableau ci-dessous pour obtenir une sélection de catégories d’actions.
Notes
Les catégories de composants répertoriées dans la carte sont enregistrées automatiquement lorsque le module est inscrit si la classe a une macro OBJECT_ENTRY_AUTO ou OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO associée.
Les clients peuvent utiliser les informations de catégorie inscrites pour la classe pour déterminer ses fonctionnalités et ses exigences sans avoir à créer une instance de celle-ci. Par exemple, un contrôle peut exiger qu’un conteneur prend en charge la liaison de données. Le conteneur peut déterminer s’il dispose des fonctionnalités nécessaires pour héberger le contrôle en interrogeant le gestionnaire de catégories pour les catégories requises par ce contrôle. Si le conteneur ne prend pas en charge une fonctionnalité requise, il peut refuser d’héberger l’objet COM.
Pour plus d’informations sur les catégories de composants, notamment une liste d’exemples, consultez Les catégories de composants et comment fonctionnent-elles dans le Kit de développement logiciel (SDK) Windows.
Sélection de catégories de stock
Description | Symbole | GUID du Registre |
---|---|---|
Sécurisé pour l’écriture de scripts | CATID_SafeForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
Sécurisé pour l’initialisation | CATID_SafeForInitializing | {7DD95802-9882-11CF-9FA9-00AA006C42C4} |
Contenu du site de trame simple | CATID_SimpleFrameControl | {157083E0-2368-11cf-87B9-00AA006C8166} |
liaison de données simple | CATID_PropertyNotifyControl | {157083E1-2368-11cf-87B9-00AA006C8166} |
Liaison de données avancée | CATID_VBDataBound | {157083E2-2368-11cf-87B9-00AA006C8166} |
Contrôles sans fenêtre | CATID_WindowlessObject | {1D06B600-3AE3-11cf-87B9-00AA006C8166} |
Objets prenant en compte Internet | Consultez les objets Prenant en charge Internet dans le Kit de développement logiciel (SDK) Windows pour obtenir un exemple de liste. |
Exemple
BEGIN_CATEGORY_MAP(CMyWindow)
REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()