Compartir a través de


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

Consulte también

Macros