Partager via


Macros de mappage d’objets

Ces macros définissent des mappages d’objets et des entrées.

Nom Description
DECLARE_OBJECT_DESCRIPTION Vous permet de spécifier la description de texte d’un objet de classe, qui sera entrée dans le mappage d’objets.
OBJECT_ENTRY_AUTO Entre un objet ATL dans le mappage d’objets, met à jour le Registre et crée une instance de l’objet.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Vous pouvez spécifier que l'objet doit être enregistré et initialisé, mais il ne doit pas pouvoir être créé en externe via CoCreateInstance.

Spécifications

En-tête : atlcom.h

DECLARE_OBJECT_DESCRIPTION

Vous permet de spécifier une description de texte pour votre objet de classe.

DECLARE_OBJECT_DESCRIPTION( x )

Paramètres

x
[in] Description de l’objet de classe.

Notes

ATL entre cette description dans le mappage d’objets via la macro OBJECT_ENTRY_AUTO .

DECLARE_OBJECT_DESCRIPTION implémente une GetObjectDescription fonction, que vous pouvez utiliser pour remplacer la méthode CComCoClass ::GetObjectDescription .

La GetObjectDescription fonction est appelée par IComponentRegistrar::GetComponents. IComponentRegistrar est une interface Automation qui vous permet d’inscrire et de désinscrire des composants individuels dans une DLL. Lorsque vous créez un objet De bureau d’enregistrement de composants avec l’Assistant Projet ATL, l’Assistant implémente automatiquement l’interface IComponentRegistrar . IComponentRegistrar est généralement utilisé par Microsoft Transaction Server.

Pour plus d’informations sur l’Assistant Projet ATL, consultez l’article Création d’un projet ATL.

Exemple

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

Entre un objet ATL dans le mappage d’objets, met à jour le Registre et crée une instance de l’objet.

OBJECT_ENTRY_AUTO( clsid, class )

Paramètres

clsid
[in] CLSID d’une classe COM implémentée par la classe C++ nommée.

class
[in] Nom de la classe C++ implémentant la classe COM représentée par clsid.

Notes

Les macros d'entrées d'objet sont placées au niveau de la portée globale dans le projet pour assurer la prise en charge de l'inscription, de l'initialisation et de la création d'une classe.

OBJECT_ENTRY_AUTO entre les pointeurs de fonction de la classe créateur et les fonctions de classe de créateur de fabrique de classes CreateInstance pour cet objet dans la carte d’objets ATL générée automatiquement. Quand CAtlComModule ::RegisterServer est appelé, il met à jour le registre système pour chaque objet dans le mappage d’objets.

Le tableau ci-dessous décrit comment les informations ajoutées au mappage d’objets sont obtenues à partir de la classe donnée en tant que deuxième paramètre à cette macro.

Informations pour Obtenu à partir de
Inscription de COM Macros de Registre
Création d’une fabrique de classes Macros de fabrique de classes
Création d’instance Macros d’agrégation
Inscription de catégorie de composant Macros de catégorie
Initialisation et nettoyage au niveau de la classe ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

Vous pouvez spécifier que l'objet doit être enregistré et initialisé, mais il ne doit pas pouvoir être créé en externe via CoCreateInstance.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

Paramètres

clsid
[in] CLSID d’une classe COM implémentée par la classe C++ nommée.

class
[in] Nom de la classe C++ implémentant la classe COM représentée par clsid.

Notes

Les macros d'entrées d'objet sont placées au niveau de la portée globale dans le projet pour assurer la prise en charge de l'inscription, de l'initialisation et de la création d'une classe.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO vous permet de spécifier qu’un objet doit être inscrit et initialisé (voir OBJECT_ENTRY_AUTO pour plus d’informations), mais il ne doit pas être créatable via CoCreateInstance.

Voir aussi

Macros