Macros de Registro
Estas macros definen instalaciones de registro y biblioteca de tipos útiles.
Nombre | Descripción |
---|---|
_ATL_STATIC_REGISTRY | Indica que desea que el código de registro del objeto esté en el objeto para evitar una dependencia de ATL.DLL. |
DECLARE_LIBID | Proporciona una manera de que ATL obtenga el libid de la biblioteca de tipos. |
DECLARE_NO_REGISTRY | Evita el registro ATL predeterminado. |
DECLARE_REGISTRY | Escribe o quita la entrada del objeto principal en el registro del sistema. |
DECLARE_REGISTRY_APPID_RESOURCEID | Especifica la información necesaria para registrar automáticamente el appid. |
DECLARE_REGISTRY_RESOURCE | Busca el recurso con nombre y ejecuta el script del Registro dentro de él. |
DECLARE_REGISTRY_RESOURCEID | Busca el recurso identificado por un número de identificador y ejecuta el script del Registro dentro de él. |
Requisitos
Encabezado: atlcom.h
_ATL_STATIC_REGISTRY
Símbolo que indica que desea que el código de registro del objeto esté en el objeto para evitar una dependencia de ATL.DLL.
#define _ATL_STATIC_REGISTRY
Comentarios
Al definir ATL_STATIC_REGISTRY, debe usar el código siguiente:
#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#endif
DECLARE_LIBID
Proporciona una manera de que ATL obtenga el libid de la biblioteca de tipos.
DECLARE_LIBID( libid )
Parámetros
libid
GUID de la biblioteca de tipos.
Comentarios
Use DECLARE_LIBID en una clase derivada de CAtlModuleT
.
Ejemplo
Los proyectos ATL generados por el asistente sin atributos tendrán un ejemplo de uso de esta macro.
DECLARE_NO_REGISTRY
Use DECLARE_NO_REGISTRY si desea evitar cualquier registro ATL predeterminado para la clase en la que aparece esta macro.
DECLARE_NO_REGISTRY()
DECLARE_REGISTRY
Escribe el registro de clase estándar en el registro del sistema o lo quita del registro del sistema.
DECLARE_REGISTRY(
class,
pid,
vpid,
nid,
flags )
Parámetros
clase
[in] Se incluye para la compatibilidad con versiones anteriores.
pid
[in] LpCTSTR que es un identificador de programa específico de la versión.
vpid
[in] LpCTSTR que es un identificador de programa independiente de la versión.
nid
[in] Un UINT que es un índice de la cadena de recursos del Registro que se va a usar como descripción del programa.
flags
[in] DWORD que contiene el modelo de subprocesos del programa en el Registro. Debe ser uno de los siguientes valores: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH o AUTPRXFLAG.
Comentarios
El registro estándar consta del CLSID, el identificador de programa, el identificador de programa independiente de la versión, la cadena de descripción y el modelo de subprocesos.
Al crear un objeto o control mediante el Asistente para agregar clases ATL, el asistente implementa automáticamente la compatibilidad con el registro basado en scripts y agrega la macro DECLARE_REGISTRY_RESOURCEID a los archivos. Si no desea compatibilidad con el registro basado en scripts, debe reemplazar esta macro por DECLARE_REGISTRY. DECLARE_REGISTRY solo inserta las cinco claves básicas descritas anteriormente en el Registro. Debe escribir manualmente código para insertar otras claves en el Registro.
DECLARE_REGISTRY_APPID_RESOURCEID
Especifica la información necesaria para registrar automáticamente el appid.
DECLARE_REGISTRY_APPID_RESOURCEID(
resid,
appid )
Parámetros
resid
Identificador de recurso del archivo .rgs que contiene información sobre el appid.
appid
Un GUID.
Comentarios
Use DECLARE_REGISTRY_APPID_RESOURCEID en una clase derivada de CAtlModuleT
.
Ejemplo
Las clases agregadas a proyectos ATL con el Asistente para agregar código de clase tendrán un ejemplo de uso de esta macro.
DECLARE_REGISTRY_RESOURCE
Obtiene el recurso con nombre que contiene el archivo del Registro y ejecuta el script para escribir objetos en el registro del sistema o quitarlos del registro del sistema.
DECLARE_REGISTRY_RESOURCE( x )
Parámetros
x
[in] Identificador de cadena del recurso.
Comentarios
Al crear un objeto o control mediante el Asistente para proyectos ATL, el asistente implementará automáticamente la compatibilidad con el Registro basado en scripts y agregará la macro DECLARE_REGISTRY_RESOURCEID, que es similar a DECLARE_REGISTRY_RESOURCE, a los archivos.
Puede vincular estáticamente con el componente del Registro ATL (registrador) para el acceso optimizado al registro. Para vincular estáticamente al código del registrador, agregue la siguiente línea al archivo pch.h (stdafx.h en Visual Studio 2017 y versiones anteriores):
#define _ATL_STATIC_REGISTRY
Si desea que ATL sustituya los valores de reemplazo en tiempo de ejecución, no especifique la macro DECLARE_REGISTRY_RESOURCE o DECLARE_REGISTRY_RESOURCEID. En su lugar, cree una matriz de estructuras _ATL_REGMAP_ENTRIES
, donde cada entrada contiene un marcador de posición variable emparejado con un valor para reemplazar el marcador de posición en tiempo de ejecución. A continuación, llame a CAtlModule::UpdateRegistryFromResourceD o CAtlModule::UpdateRegistryFromResourceS y pase la matriz. Esto agrega todos los valores de reemplazo de las estructuras _ATL_REGMAP_ENTRIES
al mapa de reemplazo del registrador.
Para obtener más información sobre los parámetros reemplazables y el scripting, consulte el artículo Componente del Registro ATL (Registrador).
DECLARE_REGISTRY_RESOURCEID
Igual que DECLARE_REGISTRY_RESOURCE excepto que usa un UINT generado por el asistente para identificar el recurso, en lugar de un nombre de cadena.
DECLARE_REGISTRY_RESOURCEID( x )
Parámetros
x
[in] Identificador generado por el asistente del recurso.
Comentarios
Al crear un objeto o control mediante el Asistente para proyectos ATL, el asistente implementará automáticamente la compatibilidad con el Registro basado en scripts y agregará la macro DECLARE_REGISTRY_RESOURCEID a los archivos.
Puede vincular estáticamente con el componente del Registro ATL (registrador) para el acceso optimizado al registro. Para vincular estáticamente al código del registrador, agregue la siguiente línea al archivo stdafx.h (pch.h en Visual Studio 2019 y versiones posteriores):
#define _ATL_STATIC_REGISTRY
Si desea que ATL sustituya los valores de reemplazo en tiempo de ejecución, no especifique la macro DECLARE_REGISTRY_RESOURCE o DECLARE_REGISTRY_RESOURCEID. En su lugar, cree una matriz de estructuras _ATL_REGMAP_ENTRIES
, donde cada entrada contiene un marcador de posición variable emparejado con un valor para reemplazar el marcador de posición en tiempo de ejecución. A continuación, llame a CAtlModule::UpdateRegistryFromResourceD o CAtlModule::UpdateRegistryFromResourceS y pase la matriz. Esto agrega todos los valores de reemplazo de las estructuras _ATL_REGMAP_ENTRIES
al mapa de reemplazo del registrador.
Para obtener más información sobre los parámetros reemplazables y el scripting, consulte el artículo Componente del Registro ATL (Registrador).