Compartilhar via


Macros de categoria

Essas macros definem mapas de categoria.

Macro Descrição
BEGIN_CATEGORY_MAP Marca o início do mapa de categorias.
END_CATEGORY_MAP Marca o fim do mapa de categorias.
IMPLEMENTED_CATEGORY Indica categorias implementadas pelo objeto COM.
REQUIRED_CATEGORY Indica categorias que são exigidas do contêiner pelo objeto COM.

Requisitos

Cabeçalho: atlcom.h

BEGIN_CATEGORY_MAP

Marca o início do mapa de categorias.

BEGIN_CATEGORY_MAP(theClass)

Parâmetros

theClass
[in] O nome da classe que contém o mapa de categorias.

Comentários

O mapa de categorias é usado para especificar quais categorias de componente a classe COM implementará e quais ela exigirá do contêiner.

Adicione uma entrada IMPLEMENTED_CATEGORY ao mapa para cada categoria implementada pela classe COM. Adicione uma entrada REQUIRED_CATEGORY ao mapa para cada categoria que a classe exige que seus clientes implementem. Marque o final do mapa com a macro END_CATEGORY_MAP.

As categorias de componente listadas no mapa serão registradas automaticamente quando o módulo for registrado, se a classe tiver um OBJECT_ENTRY_AUTO ou OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO associado.

Observação

A ATL usa o gerenciador de categorias de componentes padrão para registrar categorias de componente. Se o gerente não estiver no sistema quando o módulo for registrado, o registro ocorrerá, mas as categorias de componente não serão registradas para essa classe.

Para obter mais informações sobre categorias de componentes, confira O que são categorias de componente e como elas funcionam no SDK do Windows.

Exemplo

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

END_CATEGORY_MAP

Marca o fim do mapa de categorias.

END_CATEGORY_MAP()

Exemplo

Confira o exemplo de BEGIN_CATEGORY_MAP.

IMPLEMENTED_CATEGORY

Adicione uma macro IMPLEMENTED_CATEGORY ao mapa de categorias do componente para especificar que ele deve ser registrado como implementação da categoria identificada pelo parâmetro catID.

IMPLEMENTED_CATEGORY(catID)

Parâmetros

catID
[in] Uma constante ou variável CATID que contém o GUID (identificador global exclusivo) da categoria implementada. O endereço de catID será levado e adicionado ao mapa. Confira a tabela abaixo para obter uma seleção de categorias de estoque.

Comentários

As categorias de componente listadas no mapa serão registradas automaticamente quando o módulo for registrado, se a classe tiver uma macro OBJECT_ENTRY_AUTO ou OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO associada.

Os clientes podem usar as informações de categoria registradas para a classe para determinar seus recursos e requisitos sem precisar criar uma instância dela.

Para obter mais informações sobre categorias de componentes, confira O que são categorias de componente e como elas funcionam no SDK do Windows.

Uma seleção de categorias de estoque

Descrição Símbolo GUID do registro
Seguro para scripts CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Seguro para inicialização CATID_SafeForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Contenção de site de quadro simples CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
Associação de dados simples CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Associação de dados avançada CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Controles sem janelas CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Objetos com reconhecimento de internet Confira Objetos com reconhecimento de internet no SDK do Windows para obter uma lista de exemplo.

Exemplo

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

REQUIRED_CATEGORY

Adicione uma macro REQUIRED_CATEGORY ao mapa de categorias do componente para especificar que ele deve ser registrado como solicitação da categoria identificada pelo parâmetro catID.

REQUIRED_CATEGORY( catID )

Parâmetros

catID
[in] Uma constante ou variável CATID que contém o GUID (identificador global exclusivo) da categoria solicitada. O endereço de catID será levado e adicionado ao mapa. Confira a tabela abaixo para obter uma seleção de categorias de estoque.

Comentários

As categorias de componente listadas no mapa serão registradas automaticamente quando o módulo for registrado, se a classe tiver uma macro OBJECT_ENTRY_AUTO ou OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO associada.

Os clientes podem usar as informações de categoria registradas para a classe para determinar seus recursos e requisitos sem precisar criar uma instância dela. Por exemplo, um controle pode solicitar que um contêiner dê suporte à associação de dados. O contêiner pode descobrir se ele tem os recursos necessários para hospedar o controle consultando, no gerenciador de categorias, as categorias solicitadas por esse controle. Se o contêiner não der suporte a um recurso necessário, ele poderá se recusar a hospedar o objeto COM.

Para obter mais informações sobre categorias de componentes, incluindo uma lista de exemplos, confira O que são categorias de componente e como elas funcionam no SDK do Windows.

Uma seleção de categorias de estoque

Descrição Símbolo GUID do registro
Seguro para scripts CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Seguro para inicialização CATID_SafeForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Contenção de site de quadro simples CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
Associação de dados simples CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Associação de dados avançada CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Controles sem janelas CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Objetos com reconhecimento de internet Confira Objetos com reconhecimento de internet no SDK do Windows para obter uma lista de exemplo.

Exemplo

BEGIN_CATEGORY_MAP(CMyWindow)
   REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()

Confira também

Macros