Compartir vía


Macros de mapas de objetos

Estas macros definen los mapas de objetos y las entradas.

Nombre Descripción
DECLARE_OBJECT_DESCRIPTION Permite especificar la descripción del texto de un objeto de clase, que se escribirá en el mapa de objetos.
OBJECT_ENTRY_AUTO Escribe un objeto ATL en el mapa de objetos, actualiza el registro y crea una instancia del objeto.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Le permite especificar que el objeto debe estar registrado e inicializado, pero no se debe poder crear externamente que se pueden crear con CoCreateInstance.

Requisitos

Encabezado: atlcom.h

DECLARE_OBJECT_DESCRIPTION

Permite especificar una descripción en texto para el objeto de clase.

DECLARE_OBJECT_DESCRIPTION( x )

Parámetros

x
[in] Descripción del objeto de clase.

Comentarios

ATL escribe esta descripción en el mapa de objetos mediante la macro OBJECT_ENTRY_AUTO.

DECLARE_OBJECT_DESCRIPTION implementa una función GetObjectDescription, que se puede usar para invalidar el método CComCoClass::GetObjectDescription.

IComponentRegistrar::GetComponents llama a la función GetObjectDescription. IComponentRegistrar es una interfaz de Automation que permite registrar y anular el registro de los componentes individuales de una DLL. Al crear un objeto Registrador de componentes con el Asistente para proyectos ATL, este implementará automáticamente la interfaz IComponentRegistrar. Microsoft Transaction Server suele utilizar IComponentRegistrar.

Para obtener más información sobre el Asistente para proyectos ATL, consulte el artículo Crear un proyecto ATL.

Ejemplo

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

Escribe un objeto ATL en el mapa de objetos, actualiza el registro y crea una instancia del objeto.

OBJECT_ENTRY_AUTO( clsid, class )

Parámetros

clsid
[in] El CLSID de una clase COM implementada por la clase de C++ denominada class (clase).

clase
[in] El nombre de la clase de C++ que implementa la clase COM representada por clsid.

Comentarios

Las macros de entrada de objeto se colocan en el ámbito global del proyecto para proporcionar compatibilidad con el registro, la inicialización y la creación de una clase.

OBJECT_ENTRY_AUTO escribe los punteros de función de la clase creadora y las funciones CreateInstance de la clase creadora del generador de clases para este objeto en el mapa de objetos ATL que se genera automáticamente. Cuando se llama a CAtlComModule::RegisterServer, actualiza el registro del sistema para cada objeto del mapa de objetos.

En la tabla siguiente se describe cómo se obtiene la información agregada al mapa de objetos desde la clase proporcionada como el segundo parámetro de esta macro.

Información para Se obtiene de
Registro COM Macros de Registro
Creación de generadores de clases Macros de generadores de clases
Creación de instancias Macros de agregación
Registro de categorías de componentes Macros de categoría
Inicialización y limpieza de nivel de clase ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

Le permite especificar que el objeto debe estar registrado e inicializado, pero no se debe poder crear externamente que se pueden crear con CoCreateInstance.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

Parámetros

clsid
[in] El CLSID de una clase COM implementada por la clase de C++ denominada class (clase).

clase
[in] El nombre de la clase de C++ que implementa la clase COM representada por clsid.

Comentarios

Las macros de entrada de objeto se colocan en el ámbito global del proyecto para proporcionar compatibilidad con el registro, la inicialización y la creación de una clase.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO le permite especificar que un objeto se debe registrar e inicializar (consulte OBJECT_ENTRY_AUTO para más información), pero que no debería poder crearse con CoCreateInstance.

Consulte también

Macros