Partilhar via


Macros do Mapa de Objetos

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Estes macros definem mapas de objetos e entradas.

Nome Description
DECLARE_OBJECT_DESCRIPTION Permite especificar a descrição do texto de um objeto de classe, que será inserida no mapa do objeto.
OBJECT_ENTRY_AUTO Insere um objeto ATL no mapa do objeto, atualiza o registo e cria uma instância do objeto.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO Permite especificar que o objeto deve ser registado e inicializado, mas não deve ser criável externamente via CoCreateInstance.

Requerimentos

Cabeçalho: atlcom.h

DECLARE_OBJECT_DESCRIPTION

Permite-te especificar uma descrição de texto para o teu objeto de classe.

DECLARE_OBJECT_DESCRIPTION( x )

Parâmetros

x
[dentro] A descrição do objeto da classe.

Observações

O ATL insere esta descrição no mapa de objetos através do macro OBJECT_ENTRY_AUTO .

DECLARE_OBJECT_DESCRIPTION implementa uma GetObjectDescription função que podes usar para sobrescrever o método CComCoClass::GetObjectDescription .

A GetObjectDescription função é chamada por IComponentRegistrar::GetComponents. IComponentRegistrar é uma interface de Automação que permite registar e desregistar componentes individuais numa DLL. Quando crias um objeto Component Registrar com o ATL Project Wizard, o assistente implementa automaticamente a IComponentRegistrar interface. IComponentRegistrar é normalmente utilizado pelo Microsoft Transaction Server.

Para mais informações sobre o Assistente do Projeto ATL, consulte o artigo Criar um Projeto ATL.

Example

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

Insere um objeto ATL no mapa do objeto, atualiza o registo e cria uma instância do objeto.

OBJECT_ENTRY_AUTO( clsid, class )

Parâmetros

CLSID
[dentro] O CLSID de uma classe COM implementada pela classe C++ chamada classe.

classe
[dentro] O nome da classe C++ que implementa a classe COM, representada por clsid.

Observações

As macros de entrada de objetos são colocadas em âmbito global no projeto para fornecer suporte ao registo, inicialização e criação de uma classe.

OBJECT_ENTRY_AUTO insere os ponteiros de função das funções de classe criador e classe de classe criador CreateInstance para este objeto no mapa ATL auto-gerado. Quando CAtlComModule::RegisterServer é chamado, atualiza o registo do sistema para cada objeto no mapa de objetos.

A tabela abaixo descreve como a informação adicionada ao mapa de objetos é obtida a partir da classe dada como segundo parâmetro deste macro.

Informação para Obtido a partir de
Registo COM Macros do Registo
Criação de fábricas de classes Macros da Fábrica de Classes
Criação de instâncias Macros de Agregação
Registo por categoria de componentes Macros de Categoria
Inicialização e limpeza ao nível da classe ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

Permite especificar que o objeto deve ser registado e inicializado, mas não deve ser criável externamente via CoCreateInstance.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

Parâmetros

CLSID
[dentro] O CLSID de uma classe COM implementada pela classe C++ chamada classe.

classe
[dentro] O nome da classe C++ que implementa a classe COM, representada por clsid.

Observações

As macros de entrada de objetos são colocadas em âmbito global no projeto para fornecer suporte ao registo, inicialização e criação de uma classe.

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO permite especificar que um objeto deve ser registado e inicializado (ver OBJECT_ENTRY_AUTO para mais informações), mas não deve ser criável via CoCreateInstance.

Consulte também

Macros