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