Macros de Registro

Essas macros definem instalações do registro e biblioteca de tipos úteis.

Nome Descrição
_ATL_STATIC_REGISTRY Indica que você deseja que o código de registro do objeto esteja no objeto para evitar uma dependência de ATL.DLL.
DECLARE_LIBID Fornece uma maneira de a ATL obter a libid da biblioteca de tipos.
DECLARE_NO_REGISTRY Evita o registro padrão da ATL.
DECLARE_REGISTRY Insere ou remove a entrada do objeto principal no registro do sistema.
DECLARE_REGISTRY_APPID_RESOURCEID Especifica as informações necessárias para registrar automaticamente o appid.
DECLARE_REGISTRY_RESOURCE Localiza o recurso nomeado e executa o script do registro dentro dele.
DECLARE_REGISTRY_RESOURCEID Localiza o recurso identificado por um número de ID e executa o script do registro dentro dele.

Requisitos

Cabeçalho: atlcom.h

_ATL_STATIC_REGISTRY

Um símbolo que indica que você deseja que o código de registro do objeto esteja no objeto para evitar uma dependência de ATL.DLL.

#define _ATL_STATIC_REGISTRY

Comentários

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

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

DECLARE_LIBID

Fornece uma maneira de a ATL obter a libid da biblioteca de tipos.

DECLARE_LIBID( libid )

Parâmetros

libid
O GUID da biblioteca de tipos.

Comentários

Use DECLARE_LIBID em uma classe derivada de CAtlModuleT.

Exemplo

Projetos ATL gerados por assistente não atribuídos terão uma amostra do uso dessa macro.

DECLARE_NO_REGISTRY

Use DECLARE_NO_REGISTRY se quiser evitar qualquer registro de ATL padrão para a classe na qual essa macro é exibida.

DECLARE_NO_REGISTRY()

DECLARE_REGISTRY

Insere o registro de classe padrão no registro do sistema ou o remove do registro do sistema.

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

Parâmetros

class
[in] Incluído para compatibilidade com versões anteriores.

pid
[in] Um LPCTSTR que é um identificador de programa específico à versão.

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

nid
[in] Um UINT que é um índice da cadeia de caracteres de recurso no registro a ser usado como a descrição do programa.

sinalizadores
[in] Um DWORD que contém o modelo de threading do programa no registro. Deve ser um dos seguintes valores: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.

Comentários

O registro padrão consiste em CLSID, ID do programa, ID do programa independente de versão, cadeia de caracteres de descrição e modelo de thread.

Quando você cria um objeto ou controle usando o Assistente de adição de classe da ATL, o assistente implementa automaticamente o suporte de registro baseado em script e adiciona a macro DECLARE_REGISTRY_RESOURCEID aos seus arquivos. Se você não quiser suporte ao registro baseado em script, precisará substituir essa macro por DECLARE_REGISTRY. DECLARE_REGISTRY insere apenas as cinco chaves básicas descritas acima no registro. Você deve escrever manualmente o código para inserir outras chaves no registro.

DECLARE_REGISTRY_APPID_RESOURCEID

Especifica as informações necessárias para registrar automaticamente o appid.

DECLARE_REGISTRY_APPID_RESOURCEID(
    resid,
    appid )

Parâmetros

resid
A ID do recurso do arquivo .rgs que contém informações sobre o appid.

appid
Uma GUID.

Comentários

Use DECLARE_REGISTRY_APPID_RESOURCEID em uma classe derivada de CAtlModuleT.

Exemplo

As classes adicionadas a projetos da ATL com o assistente de código Adicionar classe terão uma amostra do uso dessa macro.

DECLARE_REGISTRY_RESOURCE

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

DECLARE_REGISTRY_RESOURCE( x )

Parâmetros

x
[in] Identificador de cadeia de caracteres do recurso.

Comentários

Quando você cria um objeto ou controle usando o Assistente de Projeto da ATL, o assistente implementará automaticamente o suporte ao registro baseado em script e adicionará a macro DECLARE_REGISTRY_RESOURCEID, que é semelhante a DECLARE_REGISTRY_RESOURCE, aos seus arquivos.

Você pode vincular estaticamente com o Componente do Registro da ATL (Registrador) para o acesso otimizado ao registro. Para vincular estaticamente ao código registrador, adicione a seguinte linha ao arquivo pch.h (stdafx.h no Visual Studio 2017 e versões anteriores):

#define _ATL_STATIC_REGISTRY

Se você quiser que a ATL substitua os valores de substituição em tempo de execução, não especifique a macro DECLARE_REGISTRY_RESOURCE nem a DECLARE_REGISTRY_RESOURCEID. Em vez disso, crie uma matriz de estruturas _ATL_REGMAP_ENTRIES, em que cada entrada contém um espaço reservado de variável emparelhado com um valor para substituir o espaço reservado no tempo de execução. Em seguida, chame CAtlModule::UpdateRegistryFromResourceD ou CAtlModule::UpdateRegistryFromResourceS, passando a matriz. Isso adiciona todos os valores de substituição nas estruturas _ATL_REGMAP_ENTRIES ao mapa de substituição do Registrador.

Para obter mais informações sobre scripts e parâmetros substituíveis, consulte o artigo Componente do Registro da ATL (Registrador).

DECLARE_REGISTRY_RESOURCEID

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

DECLARE_REGISTRY_RESOURCEID( x )

Parâmetros

x
[in] Identificador gerado pelo assistente do recurso.

Comentários

Quando você cria um objeto ou controle usando o Assistente de Projeto da ATL, o assistente implementará automaticamente o suporte ao registro baseado em script e adicionará a macro DECLARE_REGISTRY_RESOURCEID aos seus arquivos.

Você pode vincular estaticamente com o Componente do Registro da ATL (Registrador) para o acesso otimizado ao registro. Para vincular estaticamente ao código do registrador, adicione a seguinte linha ao arquivo stdafx.h (pch.h no Visual Studio 2019 e versões posteriores):

#define _ATL_STATIC_REGISTRY

Se você quiser que a ATL substitua os valores de substituição em tempo de execução, não especifique a macro DECLARE_REGISTRY_RESOURCE nem a DECLARE_REGISTRY_RESOURCEID. Em vez disso, crie uma matriz de estruturas _ATL_REGMAP_ENTRIES, em que cada entrada contém um espaço reservado de variável emparelhado com um valor para substituir o espaço reservado no tempo de execução. Em seguida, chame CAtlModule::UpdateRegistryFromResourceD ou CAtlModule::UpdateRegistryFromResourceS, passando a matriz. Isso adiciona todos os valores de substituição nas estruturas _ATL_REGMAP_ENTRIES ao mapa de substituição do Registrador.

Para obter mais informações sobre scripts e parâmetros substituíveis, consulte o artigo Componente do Registro da ATL (Registrador).

Confira também

Macros