Compartir a través de


Macros de categoría

Estas macros definen asignaciones de categorías.

Macro Descripción
BEGIN_CATEGORY_MAP Marca el principio de la asignación de categoría.
END_CATEGORY_MAP Marca el final de la asignación de categoría.
IMPLEMENTED_CATEGORY Indica las categorías que implementa el objeto COM.
REQUIRED_CATEGORY Indica las categorías que son necesarias para el contenedor por el objeto COM.

Requisitos

Encabezado: atlcom.h

BEGIN_CATEGORY_MAP

Marca el principio de la asignación de categoría.

BEGIN_CATEGORY_MAP(theClass)

Parámetros

theClass
[in] Nombre de la clase que contiene la asignación de categorías.

Comentarios

La asignación de categorías se usa para especificar qué categorías de componentes va a implementar la clase COM y qué categorías requiere de su contenedor.

Agregue una entrada IMPLEMENTED_CATEGORY a la asignación de cada una de las categorías que implemente la clase COM. Agregue una entrada REQUIRED_CATEGORY a la asignación de cada una de las categorías que la clase requiere que sus clientes implementen. Marque el final de la asignación con la macro END_CATEGORY_MAP.

Las categorías de componentes que se enumeran en la asignación se registrarán automáticamente cuando se registre el módulo si la clase tiene entradas OBJECT_ENTRY_AUTO o OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO asociadas.

Nota:

ATL usa el administrador de categorías de componentes estándar para registrar categorías de componentes. Si el administrador no está presente en el sistema cuando se registra el módulo, el registro se realiza correctamente, pero las categorías de componentes no se registrarán para esa clase.

Para más información sobre las categorías de componentes, consulte ¿Qué son las categorías de componentes y cómo funcionan en Windows SDK.

Ejemplo

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

END_CATEGORY_MAP

Marca el final de la asignación de categoría.

END_CATEGORY_MAP()

Ejemplo

Consulte el ejemplo de BEGIN_CATEGORY_MAP.

IMPLEMENTED_CATEGORY

Agregue una macro de IMPLEMENTED_CATEGORY a la asignación de categorías del componente para especificar que se debe registrar como la implementación de la categoría identificada por el parámetro catID.

IMPLEMENTED_CATEGORY(catID)

Parámetros

catID
[in] Constante o variable de CATID que contiene el identificador único global (GUID) de la categoría implementada. Se tomará la dirección de catID y se agregará al mapa. En la siguiente tabla puede ver una selección de categorías de acciones.

Comentarios

Las categorías de componentes que se enumeran en la asignación se registrarán automáticamente cuando se registre el módulo, siempre que la clase tenga entradas OBJECT_ENTRY_AUTO o OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO asociadas.

Los clientes pueden usar la información de categoría registrada para la clase para determinar sus funcionalidades y requisitos sin tener que crear una instancia de ella.

Para más información sobre las categorías de componentes, consulte ¿Qué son las categorías de componentes y cómo funcionan en Windows SDK.

Una selección de categorías de acciones

Descripción Símbolo GUID del Registro
Seguro para scripting CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Seguro para la inicialización CATID_SafeForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Independencia de sitios de marco simple CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
enlace de datos simple CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Enlace de datos avanzado CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Controles sin ventana CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Objetos listos para Internet Consulte el artículo sobre objetos listos para Internet en Windows SDK para ver una lista de ejemplo.

Ejemplo

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

REQUIRED_CATEGORY

Agregue una macro de REQUIRED_CATEGORY a la asignación de categorías del componente para especificar que se debe registrar como que requiere la categoría identificada por el parámetro catID.

REQUIRED_CATEGORY( catID )

Parámetros

catID
[in] Constante o variable de CATID que contiene el identificador único global (GUID) de la categoría requerida. Se tomará la dirección de catID y se agregará al mapa. En la siguiente tabla puede ver una selección de categorías de acciones.

Comentarios

Las categorías de componentes que se enumeran en la asignación se registrarán automáticamente cuando se registre el módulo, siempre que la clase tenga entradas OBJECT_ENTRY_AUTO o OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO asociadas.

Los clientes pueden usar la información de categoría registrada para la clase para determinar sus funcionalidades y requisitos sin tener que crear una instancia de ella. Por ejemplo, un control puede requerir que un contenedor admita el enlace de datos. Para averiguar si tiene las funcionalidades necesarias para hospedar el control, el contenedor debe consultar si en el administrador de categorías están las categorías que requiere ese control. Si el contenedor no admite una característica necesaria, puede rechazar hospedar el objeto COM.

Para más información sobre las categorías de componentes, lo que incluye una lista de ejemplo, consulte ¿Qué son las categorías de componentes y cómo funcionan en Windows SDK.

Una selección de categorías de acciones

Descripción Símbolo GUID del Registro
Seguro para scripting CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Seguro para la inicialización CATID_SafeForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Independencia de sitios de marco simple CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
enlace de datos simple CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Enlace de datos avanzado CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Controles sin ventana CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Objetos listos para Internet Consulte el artículo sobre objetos listos para Internet en Windows SDK para ver una lista de ejemplo.

Ejemplo

BEGIN_CATEGORY_MAP(CMyWindow)
   REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()

Vea también

Macros