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
.