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