Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.