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()