Partager via


Macros de Registre

Ces macros définissent des fonctionnalités utiles de bibliothèque de types et de Registre.

Nom Description
_ATL_STATIC_REGISTRY Indique que vous souhaitez que le code d’inscription de votre objet soit dans l’objet afin d’éviter une dépendance sur ATL.DLL.
DECLARE_LIBID Permet à ATL d’obtenir le libid de la bibliothèque de types.
DECLARE_NO_REGISTRY Évite l’inscription ATL par défaut.
DECLARE_REGISTRY Entre ou supprime l’entrée de l’objet principal dans le Registre système.
DECLARE_REGISTRY_APPID_RESOURCEID Spécifie les informations requises pour inscrire automatiquement l’appid.
DECLARE_REGISTRY_RESOURCE Recherche la ressource nommée et exécute le script de Registre dans celui-ci.
DECLARE_REGISTRY_RESOURCEID Recherche la ressource identifiée par un numéro d’ID et exécute le script de Registre dans celui-ci.

Spécifications

En-tête : atlcom.h

_ATL_STATIC_REGISTRY

Symbole qui indique que vous souhaitez que le code d’inscription de votre objet se trouve dans l’objet afin d’éviter une dépendance sur ATL.DLL.

#define _ATL_STATIC_REGISTRY

Notes

Lorsque vous définissez ATL_STATIC_REGISTRY, vous devez utiliser le code suivant :

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

DECLARE_LIBID

Permet à ATL d’obtenir le libid de la bibliothèque de types.

DECLARE_LIBID( libid )

Paramètres

libid
GUID de la bibliothèque de types.

Notes

Utilisez DECLARE_LIBID dans une CAtlModuleTclasse dérivée.

Exemple

Les projets ATL générés par l’Assistant non attribut ont un exemple d’utilisation de cette macro.

DECLARE_NO_REGISTRY

Utilisez DECLARE_NO_REGISTRY si vous souhaitez éviter toute inscription ATL par défaut pour la classe dans laquelle cette macro apparaît.

DECLARE_NO_REGISTRY()

DECLARE_REGISTRY

Entre l’inscription de classe standard dans le registre système ou la supprime du registre système.

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

Paramètres

class
[in] Inclus pour la compatibilité descendante.

pid
[in] LPCTSTR qui est un identificateur de programme spécifique à la version.

vpid
[in] LPCTSTR qui est un identificateur de programme indépendant de la version.

nid
[in] UINT qui est un index de la chaîne de ressource dans le Registre à utiliser comme description du programme.

flags
[in] DWORD contenant le modèle de thread du programme dans le Registre. Doit être l’une des valeurs suivantes : THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.

Notes

L’inscription standard se compose du CLSID, de l’ID de programme, de l’ID de programme indépendant de la version, de la chaîne de description et du modèle de thread.

Lorsque vous créez un objet ou un contrôle à l’aide de l’Assistant Ajouter une classe ATL, l’Assistant implémente automatiquement la prise en charge du Registre basé sur des scripts et ajoute la macro DECLARE_REGISTRY_RESOURCEID à vos fichiers. Si vous ne souhaitez pas prendre en charge le Registre basé sur des scripts, vous devez remplacer cette macro par DECLARE_REGISTRY. DECLARE_REGISTRY insère uniquement les cinq clés de base décrites ci-dessus dans le Registre. Vous devez écrire manuellement du code pour insérer d’autres clés dans le Registre.

DECLARE_REGISTRY_APPID_RESOURCEID

Spécifie les informations requises pour inscrire automatiquement l’appid.

DECLARE_REGISTRY_APPID_RESOURCEID(
    resid,
    appid )

Paramètres

résident
ID de ressource du fichier .rgs qui contient des informations sur l’appid.

appid
GUID.

Notes

Utilisez DECLARE_REGISTRY_APPID_RESOURCEID dans une CAtlModuleTclasse dérivée.

Exemple

Les classes ajoutées aux projets ATL avec l’Assistant Ajout de code de classe auront un exemple d’utilisation de cette macro.

DECLARE_REGISTRY_RESOURCE

Obtient la ressource nommée contenant le fichier de Registre et exécute le script pour entrer des objets dans le registre système ou les supprimer du registre système.

DECLARE_REGISTRY_RESOURCE( x )

Paramètres

x
[in] Identificateur de chaîne de votre ressource.

Notes

Lorsque vous créez un objet ou un contrôle à l’aide de l’Assistant Projet ATL, l’Assistant implémente automatiquement la prise en charge du Registre basé sur des scripts et ajoute la macro DECLARE_REGISTRY_RESOURCEID , similaire à DECLARE_REGISTRY_RESOURCE, à vos fichiers.

Vous pouvez établir un lien statique avec le composant de Registre ATL (Bureau d’enregistrement) pour optimiser l’accès au Registre. Pour lier statiquement le code du bureau d’enregistrement, ajoutez la ligne suivante à votre fichier pch.h (stdafx.h dans Visual Studio 2017 et versions antérieures) :

#define _ATL_STATIC_REGISTRY

Si vous souhaitez qu’ATL remplace les valeurs de remplacement au moment de l’exécution, ne spécifiez pas la macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID. Au lieu de cela, créez un tableau de _ATL_REGMAP_ENTRIES structures, où chaque entrée contient un espace réservé variable associé à une valeur pour remplacer l’espace réservé au moment de l’exécution. Appelez ensuite CAtlModule ::UpdateRegistryFromResourceD ou CAtlModule ::UpdateRegistryFromResourceS, en passant le tableau. Cela ajoute toutes les valeurs de remplacement dans les _ATL_REGMAP_ENTRIES structures à la carte de remplacement du bureau d’enregistrement.

Pour plus d’informations sur les paramètres et les scripts remplaçables, consultez l’article The ATL Registry Component (Registrar).

DECLARE_REGISTRY_RESOURCEID

Identique à DECLARE_REGISTRY_RESOURCE sauf qu’il utilise un UINT généré par l’Assistant pour identifier la ressource, plutôt qu’un nom de chaîne.

DECLARE_REGISTRY_RESOURCEID( x )

Paramètres

x
[in] Identificateur généré par l’Assistant de votre ressource.

Notes

Lorsque vous créez un objet ou un contrôle à l’aide de l’Assistant Projet ATL, l’Assistant implémente automatiquement la prise en charge du Registre basé sur des scripts et ajoute la macro DECLARE_REGISTRY_RESOURCEID à vos fichiers.

Vous pouvez établir un lien statique avec le composant de Registre ATL (Bureau d’enregistrement) pour optimiser l’accès au Registre. Pour lier statiquement le code du bureau d’enregistrement, ajoutez la ligne suivante à votre fichier stdafx.h (pch.h dans Visual Studio 2019 et versions ultérieures) :

#define _ATL_STATIC_REGISTRY

Si vous souhaitez qu’ATL remplace les valeurs de remplacement au moment de l’exécution, ne spécifiez pas la macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID. Au lieu de cela, créez un tableau de _ATL_REGMAP_ENTRIES structures, où chaque entrée contient un espace réservé variable associé à une valeur pour remplacer l’espace réservé au moment de l’exécution. Appelez ensuite CAtlModule ::UpdateRegistryFromResourceD ou CAtlModule ::UpdateRegistryFromResourceS, en passant le tableau. Cela ajoute toutes les valeurs de remplacement dans les _ATL_REGMAP_ENTRIES structures à la carte de remplacement du bureau d’enregistrement.

Pour plus d’informations sur les paramètres et les scripts remplaçables, consultez l’article The ATL Registry Component (Registrar).

Voir aussi

Macros