Partilhar via


Macros do Registo

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.

Estas macros definem funcionalidades úteis de biblioteca de tipos e registos.

Nome Description
_ATL_STATIC_REGISTRY Indica que queres que o código de registo do teu objeto esteja no objeto para evitar dependência do ATL.DLL.
DECLARE_LIBID Fornece uma forma para o ATL obter o libid da biblioteca de tipos.
DECLARE_NO_REGISTRY Evita o registo ATL por defeito.
DECLARE_REGISTRY Insere ou remove a entrada do objeto principal no registo do sistema.
DECLARE_REGISTRY_APPID_RESOURCEID Especifica a informação necessária para registar automaticamente o appid.
DECLARE_REGISTRY_RESOURCE Encontra o recurso nomeado e executa o script do registo dentro dele.
DECLARE_REGISTRY_RESOURCEID Encontra o recurso identificado por um número de ID e executa o script do registo dentro dele.

Requerimentos

Cabeçalho: atlcom.h

_ATL_STATIC_REGISTRY

Um símbolo que indica que queres que o código de registo do teu objeto esteja no objeto para evitar dependência da ATL.DLL.

#define _ATL_STATIC_REGISTRY

Observações

Ao definir ATL_STATIC_REGISTRY, deve usar o seguinte código:

#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#endif

DECLARE_LIBID

Fornece uma forma para o ATL obter o libid da biblioteca de tipos.

DECLARE_LIBID( libid )

Parâmetros

libid
O GUID da biblioteca de tipos.

Observações

Usa DECLARE_LIBID numa CAtlModuleTclasse derivada de -.

Example

Projetos ATL gerados por assistentes não atribuídos terão uma amostra de utilização deste macro.

DECLARE_NO_REGISTRY

Usa DECLARE_NO_REGISTRY se quiseres evitar qualquer registo ATL por defeito para a classe onde esta macro aparece.

DECLARE_NO_REGISTRY()

DECLARE_REGISTRY

Insere o registo padrão da classe no registo do sistema ou remove-o do registo do sistema.

DECLARE_REGISTRY(
    class,
    pid,
    vpid,
    nid,
    flags )

Parâmetros

classe
[dentro] Incluído para compatibilidade retroativa.

PID
[dentro] Um LPCTSTR que é um identificador de programa específico de uma versão.

vpid
[dentro] Um LPCTSTR que é um identificador de programa independente de versão.

nid
[dentro] Um UINT que é um índice da cadeia de recursos no registo para usar como descrição do programa.

flags
[dentro] Um DWORD contendo o modelo de threading do programa no registo. Deve ser um dos seguintes valores: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.

Observações

O registo padrão consiste no CLSID, ID do programa, ID independente da versão, string de descrição e modelo de thread.

Quando crias um objeto ou controlo usando o Assistente de Adicionar Classe ATL, o assistente implementa automaticamente suporte de registo baseado em scripts e adiciona a macro DECLARE_REGISTRY_RESOURCEID aos teus ficheiros. Se não quiser suporte de registo baseado em scripts, precisa de substituir esta macro por DECLARE_REGISTRY. DECLARE_REGISTRY apenas insere as cinco chaves básicas descritas acima no registo. Tens de escrever manualmente código para inserir outras chaves no registo.

DECLARE_REGISTRY_APPID_RESOURCEID

Especifica a informação necessária para registar automaticamente o appid.

DECLARE_REGISTRY_APPID_RESOURCEID(
    resid,
    appid )

Parâmetros

Resid
O id de recurso do ficheiro .rgs que contém informação sobre o appid.

appid
Um GUID.

Observações

Use DECLARE_REGISTRY_APPID_RESOURCEID numa CAtlModuleTclasse derivada de -.

Example

As classes adicionadas a projetos ATL com o assistente de código de Adicionar Classe terão um exemplo de utilização desta macro.

DECLARE_REGISTRY_RESOURCE

Obtém o recurso nomeado que contém o ficheiro do registo e executa o script para inserir objetos no registo do sistema ou removê-los do registo do sistema.

DECLARE_REGISTRY_RESOURCE( x )

Parâmetros

x
[dentro] Identificador de string do teu recurso.

Observações

Quando crias um objeto ou controlo usando o Assistente de Projeto ATL, o assistente implementa automaticamente suporte ao registo baseado em scripts e adiciona a macro DECLARE_REGISTRY_RESOURCEID , que é semelhante à DECLARE_REGISTRY_RESOURCE, aos teus ficheiros.

Pode ligar estaticamente ao Componente do Registo ATL (Registrar) para um acesso otimizado ao registo. Para ligar estaticamente ao código do Registrar, adicione a seguinte linha ao seu ficheiro pch.h (stdafx.h no Visual Studio 2017 e anteriores):

#define _ATL_STATIC_REGISTRY

Se quiser que o ATL substitua valores de substituição em tempo de execução, não especifique a macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID. Em vez disso, crie-se um array de _ATL_REGMAP_ENTRIES estruturas, onde cada entrada contém um marcador de posição variável emparelhado com um valor para substituir o marcador em tempo de execução. Depois chama CAtlModule::UpdateRegistryFromResourceD ou CAtlModule::UpdateRegistryFromResourceS, passando o array. Isto adiciona todos os valores de substituição nas _ATL_REGMAP_ENTRIES estruturas ao mapa de substituição do Registrador.

Para mais informações sobre parâmetros substituíveis e scripting, consulte o artigo The ATL Registry Component (Registrar).

DECLARE_REGISTRY_RESOURCEID

O mesmo que DECLARE_REGISTRY_RESOURCE , exceto que usa um UINT gerado por um assistente para identificar o recurso, em vez de um nome de cadeia.

DECLARE_REGISTRY_RESOURCEID( x )

Parâmetros

x
[dentro] Identificador gerado por um assistente do seu recurso.

Observações

Quando crias um objeto ou controlo usando o Assistente de Projetos ATL, o assistente implementa automaticamente suporte ao registo baseado em scripts e adiciona a macro DECLARE_REGISTRY_RESOURCEID aos teus ficheiros.

Pode ligar estaticamente ao Componente do Registo ATL (Registrar) para um acesso otimizado ao registo. Para ligar estaticamente ao código do Registrar, adicione a seguinte linha ao seu ficheiro stdafx.h (pch.h no Visual Studio 2019 e posteriores):

#define _ATL_STATIC_REGISTRY

Se quiser que o ATL substitua valores de substituição em tempo de execução, não especifique a macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID. Em vez disso, crie-se um array de _ATL_REGMAP_ENTRIES estruturas, onde cada entrada contém um marcador de posição variável emparelhado com um valor para substituir o marcador em tempo de execução. Depois chama CAtlModule::UpdateRegistryFromResourceD ou CAtlModule::UpdateRegistryFromResourceS, passando o array. Isto adiciona todos os valores de substituição nas _ATL_REGMAP_ENTRIES estruturas ao mapa de substituição do Registrador.

Para mais informações sobre parâmetros substituíveis e scripting, consulte o artigo The ATL Registry Component (Registrar).

Consulte também

Macros