Partager via


La classe CRegKey

Cette classe fournit des méthodes pour manipuler des entrées dans le registre système.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

class CRegKey

Membres

Constructeurs publics

Nom Description
CRegKey::CRegKey Constructeur .
CRegKey::~CRegKey Destructeur.

Méthodes publiques

Nom Description
CRegKey::Attach Appelez cette méthode pour attacher une clé HKEY à l’objet CRegKey en définissant le handle de membre sur m_hKey hKey.
CRegKey::Close Appelez cette méthode pour libérer le m_hKey handle de membre et le définir sur NULL.
CRegKey::Create Appelez cette méthode pour créer la clé spécifiée, si elle n’existe pas en tant que sous-clé de hKeyParent.
CRegKey::DeleteSubKey Appelez cette méthode pour supprimer la clé spécifiée du Registre.
CRegKey::DeleteValue Appelez cette méthode pour supprimer un champ valeur de m_hKey.
CRegKey::Detach Appelez cette méthode pour détacher le m_hKey handle membre de l’objet CRegKey et définir m_hKey sur NULL.
CRegKey::EnumKey Appelez cette méthode pour énumérer les sous-clés de la clé de Registre ouverte.
CRegKey::Flush Appelez cette méthode pour écrire tous les attributs de la clé de Registre ouverte dans le Registre.
CRegKey::GetKeySecurity Appelez cette méthode pour récupérer une copie du descripteur de sécurité protégeant la clé de Registre ouverte.
CRegKey::NotifyChangeKeyValue Cette méthode informe l’appelant des modifications apportées aux attributs ou au contenu de la clé de Registre ouverte.
CRegKey::Open Appelez cette méthode pour ouvrir la clé spécifiée et définir m_hKey sur le handle de cette clé.
CRegKey::QueryBinaryValue Appelez cette méthode pour récupérer les données binaires d’un nom de valeur spécifié.
CRegKey::QueryDWORDValue Appelez cette méthode pour récupérer les DWORD données d’un nom de valeur spécifié.
CRegKey::QueryGUIDValue Appelez cette méthode pour récupérer les données GUID d’un nom de valeur spécifié.
CRegKey::QueryMultiStringValue Appelez cette méthode pour récupérer les données multistring pour un nom de valeur spécifié.
CRegKey::QueryQWORDValue Appelez cette méthode pour récupérer les QWORD données d’un nom de valeur spécifié.
CRegKey::QueryStringValue Appelez cette méthode pour récupérer les données de chaîne d’un nom de valeur spécifié.
CRegKey::QueryValue Appelez cette méthode pour récupérer les données du champ de valeur spécifié de m_hKey. Les versions antérieures de cette méthode ne sont plus prises en charge et sont marquées comme ATL_DEPRECATED.
CRegKey::RecurseDeleteKey Appelez cette méthode pour supprimer la clé spécifiée du Registre et supprimer explicitement toutes les sous-clés.
CRegKey::SetBinaryValue Appelez cette méthode pour définir la valeur binaire de la clé de Registre.
CRegKey::SetDWORDValue Appelez cette méthode pour définir la DWORD valeur de la clé de Registre.
CRegKey::SetGUIDValue Appelez cette méthode pour définir la valeur GUID de la clé de Registre.
CRegKey::SetKeySecurity Appelez cette méthode pour définir la sécurité de la clé de Registre.
CRegKey::SetKeyValue Appelez cette méthode pour stocker des données dans un champ de valeur spécifié d’une clé spécifiée.
CRegKey::SetMultiStringValue Appelez cette méthode pour définir la valeur multistring de la clé de Registre.
CRegKey::SetQWORDValue Appelez cette méthode pour définir la QWORD valeur de la clé de Registre.
CRegKey::SetStringValue Appelez cette méthode pour définir la valeur de chaîne de la clé de Registre.
CRegKey::SetValue Appelez cette méthode pour stocker des données dans le champ de valeur spécifié de m_hKey. Les versions antérieures de cette méthode ne sont plus prises en charge et sont marquées comme ATL_DEPRECATED.

Opérateurs publics

Nom Description
CRegKey::operator HKEY Convertit un CRegKey objet en HKEYun .
CRegKey::operator = Opérateur d'assignation.

Membres de données publics

Nom Description
CRegKey::m_hKey Contient un handle de la clé de Registre associée à l’objet CRegKey .
CRegKey::m_pTM Pointeur vers l’objet CAtlTransactionManager

Notes

CRegKey fournit des méthodes pour créer et supprimer des clés et des valeurs dans le Registre système. Le Registre contient un ensemble spécifique à l’installation de définitions pour les composants système, tels que les numéros de version logicielle, les mappages logiques à physiques du matériel installé et les objets COM.

CRegKey fournit une interface de programmation au registre système d’un ordinateur donné. Par exemple, pour ouvrir une clé de Registre particulière, appelez CRegKey::Open. Pour récupérer ou modifier une valeur de données, appelez CRegKey::QueryValue ou CRegKey::SetValue, respectivement. Pour fermer une clé, appelez CRegKey::Close.

Lorsque vous fermez une clé, ses données de Registre sont écrites (vidées) sur le disque dur. Ce processus peut prendre plusieurs secondes. Si votre application doit écrire explicitement des données de Registre sur le disque dur, vous pouvez appeler la RegFlushKey fonction Win32. Toutefois, RegFlushKey utilise de nombreuses ressources système et doit être appelée uniquement si nécessaire.

Important

Toutes les méthodes qui permettent à l’appelant de spécifier un emplacement de Registre peuvent lire les données qui ne peuvent pas être approuvées. Les méthodes qui utilisent RegQueryValueEx doivent tenir compte du fait que cette fonction ne gère pas explicitement les chaînes qui sont terminées par null. Les deux conditions doivent être vérifiées par le code appelant.

Spécifications

En-tête: atlbase.h

CRegKey::Attach

Appelez cette méthode pour attacher un objet en CRegKey définissant le m_hKey handle de membre sur hKey.HKEY

void Attach(HKEY hKey) throw();

Paramètres

hKey
Handle d’une clé de Registre.

Notes

Attach affirme si m_hKey ce n’est pas leNULL cas.

CRegKey::Close

Appelez cette méthode pour libérer le m_hKey handle de membre et le définir sur NULL.

LONG Close() throw();

Valeur de retour

En cas de réussite, retourne ERROR_SUCCESS; sinon, retourne une valeur d’erreur.

CRegKey::Create

Appelez cette méthode pour créer la clé spécifiée, si elle n’existe pas en tant que sous-clé de hKeyParent.

LONG Create(
    HKEY hKeyParent,
    LPCTSTR lpszKeyName,
    LPTSTR lpszClass = REG_NONE,
    DWORD dwOptions = REG_OPTION_NON_VOLATILE,
    REGSAM samDesired = KEY_READ | KEY_WRITE,
    LPSECURITY_ATTRIBUTES lpSecAttr = NULL,
    LPDWORD lpdwDisposition = NULL) throw();

Paramètres

hKeyParent
Handle d’une clé ouverte.

lpszKeyName
Spécifie le nom d’une clé à créer ou ouvrir. Ce nom doit être une sous-clé de hKeyParent.

lpszClass
Spécifie la classe de la clé à créer ou ouvrir. La valeur par défaut est REG_NONE.

dwOptions
Options de la clé. La valeur par défaut est REG_OPTION_NON_VOLATILE. Pour obtenir la liste des valeurs et descriptions possibles, consultez RegCreateKeyEx le Kit de développement logiciel (SDK) Windows.

samDesired
Accès de sécurité pour la clé. La valeur par défaut est KEY_READ | KEY_WRITE. Pour obtenir la liste des valeurs et descriptions possibles, consultez RegCreateKeyEx.

lpSecAttr
Pointeur vers une SECURITY_ATTRIBUTES structure qui indique si le handle de la clé peut être hérité par un processus enfant. Par défaut, ce paramètre est NULL (ce qui signifie que le handle ne peut pas être hérité).

lpdwDisposition
[out] Si ce n’estNULL pas le cas, récupère REG_CREATED_NEW_KEY (si la clé n’existe pas et a été créée) ou REG_OPENED_EXISTING_KEY (si la clé existait et était ouverte).

Valeur de retour

Si elle réussit, retourne ERROR_SUCCESS et ouvre la clé. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Create définit le m_hKey membre sur le handle de cette clé.

CRegKey::CRegKey

Constructeur .

CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();

Paramètres

key
Référence à un objet CRegKey.

hKey
Handle vers une clé de Registre.

pTM
Pointeur vers l’objet CAtlTransactionManager

Notes

Crée un objet CRegKey. L’objet peut être créé à partir d’un objet existant CRegKey ou d’un handle vers une clé de Registre.

CRegKey::~CRegKey

Destructeur.

~CRegKey() throw();

Notes

Le destructeur libère m_hKey.

CRegKey::DeleteSubKey

Appelez cette méthode pour supprimer la clé spécifiée du Registre.

LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();

Paramètres

lpszSubKey
Spécifie le nom de la clé à supprimer. Ce nom doit être une sous-clé de m_hKey.

Valeur de retour

En cas de réussite, retourne ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

DeleteSubKey ne peut supprimer qu’une clé sans sous-clé. Si la clé a des sous-clés, appelez RecurseDeleteKey à la place.

CRegKey::DeleteValue

Appelez cette méthode pour supprimer un champ valeur de m_hKey.

LONG DeleteValue(LPCTSTR lpszValue) throw();

Paramètres

lpszValue
Spécifie le champ valeur à supprimer.

Valeur de retour

En cas de réussite, retourne ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

CRegKey::Detach

Appelez cette méthode pour détacher le m_hKey handle membre de l’objet CRegKey et définir m_hKey sur NULL.

HKEY Detach() throw();

Valeur de retour

HKEY associé à l’objet CRegKey .

CRegKey::EnumKey

Appelez cette méthode pour énumérer les sous-clés de la clé de Registre ouverte.

LONG EnumKey(
    DWORD iIndex,
    LPTSTR pszName,
    LPDWORD pnNameLength,
    FILETIME* pftLastWriteTime = NULL) throw();

Paramètres

iIndex
Index de sous-clé. Ce paramètre doit être égal à zéro pour le premier appel, puis incrémenté pour les appels suivants

pszName
Pointeur vers une mémoire tampon qui reçoit le nom de la sous-clé, y compris le caractère null de fin. Seul le nom de la sous-clé est copié dans la mémoire tampon, et non dans la hiérarchie de clés complète.

pnNameLength
Pointeur vers une variable qui spécifie la taille, en TCHARs, de la mémoire tampon spécifiée par le pszName paramètre. Cette taille doit inclure le caractère null de fin. Lorsque la méthode est retournée, la variable pointée par pnNameLength contient le nombre de caractères stockés dans la mémoire tampon. Le nombre retourné n’inclut pas le caractère null de fin.

pftLastWriteTime
Pointeur vers une variable qui reçoit l’heure à laquelle la sous-clé énumérée a été écrite pour la dernière fois.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Pour énumérer les sous-clés, appelez CRegKey::EnumKey avec un index de zéro. Incrémentez la valeur d’index et répétez jusqu’à ce que la méthode retourne ERROR_NO_MORE_ITEMS. Pour plus d’informations, consultez RegEnumKeyEx le Kit de développement logiciel (SDK) Windows.

CRegKey::Flush

Appelez cette méthode pour écrire tous les attributs de la clé de Registre ouverte dans le Registre.

LONG Flush() throw();

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Pour plus d’informations, consultez RegEnumFlush le Kit de développement logiciel (SDK) Windows.

CRegKey::GetKeySecurity

Appelez cette méthode pour récupérer une copie du descripteur de sécurité protégeant la clé de Registre ouverte.

LONG GetKeySecurity(
    SECURITY_INFORMATION si,
    PSECURITY_DESCRIPTOR psd,
    LPDWORD pnBytes) throw();

Paramètres

si
Valeur SECURITY_INFORMATION qui indique les informations de sécurité demandées.

psd
Pointeur vers une mémoire tampon qui reçoit une copie du descripteur de sécurité demandé.

pnBytes
Taille, en octets, de la mémoire tampon pointée par psd.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Pour plus d’informations, consultez RegGetKeySecurity.

CRegKey::m_hKey

Contient un handle de la clé de Registre associée à l’objet CRegKey .

HKEY m_hKey;

CRegKey::m_pTM

Pointeur vers un CAtlTransactionManager objet.

CAtlTransactionManager* m_pTM;

Notes

CRegKey::NotifyChangeKeyValue

Cette méthode informe l’appelant des modifications apportées aux attributs ou au contenu de la clé de Registre ouverte.

LONG NotifyChangeKeyValue(
    BOOL bWatchSubtree,
    DWORD dwNotifyFilter,
    HANDLE hEvent,
    BOOL bAsync = TRUE) throw();

Paramètres

bWatchSubtree
Spécifie un indicateur qui indique s’il faut signaler les modifications dans la clé spécifiée et toutes ses sous-clés ou uniquement dans la clé spécifiée. Si ce paramètre est TRUEle cas, la méthode signale les modifications apportées à la clé et à ses sous-clés. Si le paramètre est FALSE, la méthode signale les modifications uniquement dans la clé.

dwNotifyFilter
Spécifie un ensemble d’indicateurs qui contrôlent les modifications à signaler. Ce paramètre peut être une combinaison des valeurs suivantes :

Valeur Signification
REG_NOTIFY_CHANGE_NAME Informez l’appelant si une sous-clé est ajoutée ou supprimée.
REG_NOTIFY_CHANGE_ATTRIBUTES Informez l’appelant des modifications apportées aux attributs de la clé, tels que les informations du descripteur de sécurité.
REG_NOTIFY_CHANGE_LAST_SET Informez l’appelant des modifications apportées à une valeur de la clé. Cela peut inclure l’ajout ou la suppression d’une valeur ou la modification d’une valeur existante.
REG_NOTIFY_CHANGE_SECURITY Informez l’appelant des modifications apportées au descripteur de sécurité de la clé.

hEvent
Handle vers un événement. Si le bAsync paramètre est TRUE, la méthode retourne immédiatement et les modifications sont signalées en signalant cet événement. Si bAsync c’est FALSEle cas, hEvent est ignoré.

bAsync
Spécifie un indicateur qui indique comment la méthode signale les modifications. Si ce paramètre est TRUEle cas, la méthode retourne immédiatement et signale les modifications en signalant l’événement spécifié. Lorsque ce paramètre est FALSE, la méthode ne retourne pas tant qu’une modification n’a pas eu lieu. Si hEvent aucun événement n’est spécifié, le bAsync paramètre ne peut pas être TRUE.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Remarque

Cette méthode n’avertit pas l’appelant si la clé spécifiée est supprimée.

Pour plus d’informations et un exemple de programme, consultez RegNotifyChangeKeyValue.

CRegKey::Open

Appelez cette méthode pour ouvrir la clé spécifiée et définir m_hKey sur le handle de cette clé.

LONG Open(
    HKEY hKeyParent,
    LPCTSTR lpszKeyName,
    REGSAM samDesired = KEY_READ | KEY_WRITE) throw();

Paramètres

hKeyParent
Handle d’une clé ouverte.

lpszKeyName
Spécifie le nom d’une clé à créer ou ouvrir. Ce nom doit être une sous-clé de hKeyParent.

samDesired
Accès de sécurité pour la clé. La valeur par défaut est KEY_ALL_ACCESS. Pour obtenir la liste des valeurs et descriptions possibles, consultez RegCreateKeyEx le Kit de développement logiciel (SDK) Windows.

Valeur de retour

Si elle réussit, retourne ERROR_SUCCESS; sinon, une valeur d’erreur non nulle définie dans WINERROR.H.

Notes

Si le lpszKeyName paramètre est NULL ou pointe vers une chaîne vide, Open ouvre un nouveau handle de la clé identifiée par hKeyParent, mais ne ferme aucun handle précédemment ouvert.

Contrairement CRegKey::Createà , Open ne crée pas la clé spécifiée s’il n’existe pas.

CRegKey::operator HKEY

Convertit un CRegKey objet en HKEYun .

operator HKEY() const throw();

CRegKey::operator =

Opérateur d'assignation.

CRegKey& operator= (CRegKey& key) throw();

Paramètres

key
Clé à copier.

Valeur de retour

Retourne une référence à la nouvelle clé.

Notes

Cet opérateur se détache key de son objet actuel et l’affecte à l’objet à la CRegKey place.

CRegKey::QueryBinaryValue

Appelez cette méthode pour récupérer les données binaires d’un nom de valeur spécifié.

LONG QueryBinaryValue(
    LPCTSTR pszValueName,
    void* pValue,
    ULONG* pnBytes) throw();

Paramètres

pszValueName
Pointeur vers une NULLchaîne -terminated contenant le nom de la valeur à interroger.

pValue
Pointeur vers une mémoire tampon qui reçoit les données de la valeur.

pnBytes
Pointeur vers une variable qui spécifie la taille, en octets, de la mémoire tampon pointée par le pValue paramètre. Lorsque la méthode est retournée, cette variable contient la taille des données copiées dans la mémoire tampon.

Valeur de retour

Si la méthode réussit, ERROR_SUCCESS elle est retournée. Si la méthode ne parvient pas à lire une valeur, elle retourne un code d’erreur différent de zéro défini dans WINERROR.H. Si les données référencées ne sont pas de type REG_BINARY, ERROR_INVALID_DATA elles sont retournées.

Notes

Cette méthode utilise RegQueryValueEx et confirme que le type de données correct est retourné. Consultez RegQueryValueEx pour plus d’informations.

Important

Cette méthode permet à l’appelant de spécifier n’importe quel emplacement de Registre, potentiellement la lecture des données qui ne peuvent pas être approuvées. En outre, la RegQueryValueEx fonction utilisée par cette méthode ne gère pas explicitement les chaînes qui sont terminées par null. Les deux conditions doivent être vérifiées par le code appelant.

CRegKey::QueryDWORDValue

Appelez cette méthode pour récupérer les DWORD données d’un nom de valeur spécifié.

LONG QueryDWORDValue(
    LPCTSTR pszValueName,
    DWORD& dwValue) throw();

Paramètres

pszValueName
Pointeur vers une NULLchaîne -terminated contenant le nom de la valeur à interroger.

dwValue
Pointeur vers une mémoire tampon qui reçoit le DWORD.

Valeur de retour

Si la méthode réussit, ERROR_SUCCESS elle est retournée. Si la méthode ne parvient pas à lire une valeur, elle retourne un code d’erreur différent de zéro défini dans WINERROR.H. Si les données référencées ne sont pas de type REG_DWORD, ERROR_INVALID_DATA elles sont retournées.

Notes

Cette méthode utilise RegQueryValueEx et confirme que le type de données correct est retourné. Consultez RegQueryValueEx pour plus d’informations.

Important

Cette méthode permet à l’appelant de spécifier n’importe quel emplacement de Registre, potentiellement la lecture des données qui ne peuvent pas être approuvées. En outre, la RegQueryValueEx fonction utilisée par cette méthode ne gère pas explicitement les chaînes qui sont terminées par null. Les deux conditions doivent être vérifiées par le code appelant.

CRegKey::QueryGUIDValue

Appelez cette méthode pour récupérer les données GUID d’un nom de valeur spécifié.

LONG QueryGUIDValue(
    LPCTSTR pszValueName,
    GUID& guidValue) throw();

Paramètres

pszValueName
Pointeur vers une NULLchaîne -terminated contenant le nom de la valeur à interroger.

guidValue
Pointeur vers une variable qui reçoit le GUID.

Valeur de retour

Si la méthode réussit, ERROR_SUCCESS elle est retournée. Si la méthode ne parvient pas à lire une valeur, elle retourne un code d’erreur différent de zéro défini dans WINERROR.H. Si les données référencées ne sont pas un GUID valide, ERROR_INVALID_DATA elle est retournée.

Notes

Cette méthode utilise CRegKey::QueryStringValue et convertit la chaîne en GUID à l’aide CLSIDFromStringde .

Important

Cette méthode permet à l’appelant de spécifier n’importe quel emplacement de Registre, potentiellement la lecture des données qui ne peuvent pas être approuvées.

CRegKey::QueryMultiStringValue

Appelez cette méthode pour récupérer les données multistring pour un nom de valeur spécifié.

LONG QueryMultiStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

Paramètres

pszValueName
Pointeur vers une NULLchaîne -terminated contenant le nom de la valeur à interroger.

pszValue
Pointeur vers une mémoire tampon qui reçoit les données multistring. Une chaîne multiple est un tableau de NULLchaînes -terminated, arrêtées par deux caractères Null.

pnChars
Taille, en TCHARs, de la mémoire tampon pointée par pszValue. Lorsque la méthode retourne, pnChars contient la taille, en TCHARs, du multistring récupéré, y compris un caractère null de fin.

Valeur de retour

Si la méthode réussit, ERROR_SUCCESS elle est retournée. Si la méthode ne parvient pas à lire une valeur, elle retourne un code d’erreur différent de zéro défini dans WINERROR.H. Si les données référencées ne sont pas de type REG_MULTI_SZ, ERROR_INVALID_DATA elles sont retournées.

Notes

Cette méthode utilise RegQueryValueEx et confirme que le type de données correct est retourné. Consultez RegQueryValueEx pour plus d’informations.

Important

Cette méthode permet à l’appelant de spécifier n’importe quel emplacement de Registre, potentiellement la lecture des données qui ne peuvent pas être approuvées. En outre, la RegQueryValueEx fonction utilisée par cette méthode ne gère pas explicitement les chaînes qui sont terminées par null. Les deux conditions doivent être vérifiées par le code appelant.

CRegKey::QueryQWORDValue

Appelez cette méthode pour récupérer les QWORD données d’un nom de valeur spécifié.

LONG QueryQWORDValue(
    LPCTSTR pszValueName,
    ULONGLONG& qwValue) throw();

Paramètres

pszValueName
Pointeur vers une NULLchaîne -terminated contenant le nom de la valeur à interroger.

qwValue
Pointeur vers une mémoire tampon qui reçoit le QWORD.

Valeur de retour

Si la méthode réussit, ERROR_SUCCESS elle est retournée. Si la méthode ne parvient pas à lire une valeur, elle retourne un code d’erreur différent de zéro défini dans WINERROR.H. Si les données référencées ne sont pas de type REG_QWORD, ERROR_INVALID_DATA elles sont retournées.

Notes

Cette méthode utilise RegQueryValueEx et confirme que le type de données correct est retourné. Consultez RegQueryValueEx pour plus d’informations.

Important

Cette méthode permet à l’appelant de spécifier n’importe quel emplacement de Registre, potentiellement la lecture des données qui ne peuvent pas être approuvées. En outre, la RegQueryValueEx fonction utilisée par cette méthode ne gère pas explicitement les chaînes qui sont terminées par null. Les deux conditions doivent être vérifiées par le code appelant.

CRegKey::QueryStringValue

Appelez cette méthode pour récupérer les données de chaîne d’un nom de valeur spécifié.

LONG QueryStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

Paramètres

pszValueName
Pointeur vers une NULLchaîne -terminated contenant le nom de la valeur à interroger.

pszValue
Pointeur vers une mémoire tampon qui reçoit les données de chaîne.

pnChars
Taille, en TCHAR, de la mémoire tampon pointée par pszValue. Lorsque la méthode retourne, pnChars contient la taille, en TCHARs, de la chaîne récupérée, y compris un caractère null de fin.

Valeur de retour

Si la méthode réussit, ERROR_SUCCESS elle est retournée. Si la méthode ne parvient pas à lire une valeur, elle retourne un code d’erreur différent de zéro défini dans WINERROR.H. Si les données référencées ne sont pas de type REG_SZ, ERROR_INVALID_DATA elles sont retournées. Si la méthode retourne ERROR_MORE_DATA, pnChars est égale à zéro, et non la taille de mémoire tampon requise en octets.

Notes

Cette méthode utilise RegQueryValueEx et confirme que le type de données correct est retourné. Consultez RegQueryValueEx pour plus d’informations.

Important

Cette méthode permet à l’appelant de spécifier n’importe quel emplacement de Registre, potentiellement la lecture des données qui ne peuvent pas être approuvées. En outre, la RegQueryValueEx fonction utilisée par cette méthode ne gère pas explicitement les chaînes qui sont terminées par null. Les deux conditions doivent être vérifiées par le code appelant.

CRegKey::QueryValue

Appelez cette méthode pour récupérer les données du champ de valeur spécifié de m_hKey. Les versions antérieures de cette méthode ne sont plus prises en charge et sont marquées comme ATL_DEPRECATED.

LONG QueryValue(
    LPCTSTR pszValueName,
    DWORD* pdwType,
    void* pData,
    ULONG* pnBytes) throw();

ATL_DEPRECATED LONG QueryValue(
    DWORD& dwValue,
    LPCTSTR lpszValueName);

ATL_DEPRECATED LONG QueryValue(
    LPTSTR szValue,
    LPCTSTR lpszValueName,
    DWORD* pdwCount);

Paramètres

pszValueName
Pointeur vers une NULLchaîne -terminated contenant le nom de la valeur à interroger. Si pszValueName elle est NULL ou une chaîne vide, ""la méthode récupère le type et les données de la valeur sans nom ou par défaut de la clé, le cas échéant.

pdwType
Pointeur vers une variable qui reçoit un code indiquant le type de données stockées dans la valeur spécifiée. Le pdwType paramètre peut être NULL si le code de type n’est pas obligatoire.

pData
Pointeur vers une mémoire tampon qui reçoit les données de la valeur. Ce paramètre peut être NULL si les données ne sont pas requises.

pnBytes
Pointeur vers une variable qui spécifie la taille, en octets, de la mémoire tampon pointée par le pData paramètre. Lorsque la méthode est retournée, cette variable contient la taille des données copiées dans pData.

dwValue
Données numériques du champ valeur.

lpszValueName
Spécifie le champ de valeur à interroger.

szValue
Données de chaîne du champ valeur.

pdwCount
Taille des données de chaîne. Sa valeur est initialement définie sur la taille de la szValue mémoire tampon.

Valeur de retour

Si elle réussit, retourne ERROR_SUCCESS; sinon, un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Les deux versions d’origine de QueryValue ne sont plus prises en charge et sont marquées comme ATL_DEPRECATED. Le compilateur émet un avertissement si ces formulaires sont utilisés.

La méthode restante appelle RegQueryValueEx.

Important

Cette méthode permet à l’appelant de spécifier n’importe quel emplacement de Registre, potentiellement la lecture des données qui ne peuvent pas être approuvées. En outre, la RegQueryValueEx fonction utilisée par cette méthode ne gère pas explicitement les chaînes qui sont terminées par null. Les deux conditions doivent être vérifiées par le code appelant.

CRegKey::RecurseDeleteKey

Appelez cette méthode pour supprimer la clé spécifiée du Registre et supprimer explicitement toutes les sous-clés.

LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();

Paramètres

lpszKey
Spécifie le nom de la clé à supprimer. Ce nom doit être une sous-clé de m_hKey.

Valeur de retour

Si elle réussit, retourne ERROR_SUCCESS; sinon, une valeur d’erreur non nulle définie dans WINERROR.H.

Notes

Si la clé a des sous-clés, vous devez appeler cette méthode pour supprimer la clé.

CRegKey::SetBinaryValue

Appelez cette méthode pour définir la valeur binaire de la clé de Registre.

LONG SetBinaryValue(
    LPCTSTR pszValueName,
    const void* pValue,
    ULONG nBytes) throw();

Paramètres

pszValueName
Pointeur vers une chaîne contenant le nom de la valeur à définir. Si une valeur portant ce nom n’est pas déjà présente, la méthode l’ajoute à la clé.

pValue
Pointeur vers une mémoire tampon contenant les données à stocker avec le nom de valeur spécifié.

nBytes
Spécifie la taille, en octets, des informations pointées par le pValue paramètre.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Cette méthode utilise RegSetValueEx pour écrire la valeur dans le Registre.

CRegKey::SetDWORDValue

Appelez cette méthode pour définir la DWORD valeur de la clé de Registre.

LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();

Paramètres

pszValueName
Pointeur vers une chaîne contenant le nom de la valeur à définir. Si une valeur portant ce nom n’est pas déjà présente, la méthode l’ajoute à la clé.

dwValue
Données DWORD à stocker avec le nom de valeur spécifié.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Cette méthode utilise RegSetValueEx pour écrire la valeur dans le Registre.

CRegKey::SetGUIDValue

Appelez cette méthode pour définir la valeur GUID de la clé de Registre.

LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();

Paramètres

pszValueName
Pointeur vers une chaîne contenant le nom de la valeur à définir. Si une valeur portant ce nom n’est pas déjà présente, la méthode l’ajoute à la clé.

guidValue
Référence au GUID à stocker avec le nom de valeur spécifié.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Cette méthode utilise CRegKey::SetStringValue et convertit le GUID en chaîne à l’aide StringFromGUID2de .

CRegKey::SetKeyValue

Appelez cette méthode pour stocker des données dans un champ de valeur spécifié d’une clé spécifiée.

LONG SetKeyValue(
    LPCTSTR lpszKeyName,
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL) throw();

Paramètres

lpszKeyName
Spécifie le nom de la clé à créer ou ouvrir. Ce nom doit être une sous-clé de m_hKey.

lpszValue
Spécifie les données à stocker. Ce paramètre doit être différent.NULL

lpszValueName
Spécifie le champ de valeur à définir. Si un champ valeur portant ce nom n’existe pas déjà dans la clé, il est ajouté.

Valeur de retour

Si elle réussit, retourne ERROR_SUCCESS; sinon, un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Appelez cette méthode pour créer ou ouvrir la lpszKeyName clé et stocker les lpszValue données dans le lpszValueName champ valeur.

CRegKey::SetKeySecurity

Appelez cette méthode pour définir la sécurité de la clé de Registre.

LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();

Paramètres

si
Spécifie les composants du descripteur de sécurité à définir. La valeur peut être une combinaison des valeurs suivantes :

Valeur Signification
DACL_SECURITY_INFORMATION Définit la liste de contrôle d’accès discrétionnaire (DACL) de la clé. La clé doit avoir WRITE_DAC accès, ou le processus appelant doit être le propriétaire de l’objet.
GROUP_SECURITY_INFORMATION Définit l’identificateur de sécurité de groupe principal (SID) de la clé. La clé doit avoir WRITE_OWNER accès, ou le processus appelant doit être le propriétaire de l’objet.
OWNER_SECURITY_INFORMATION Définit le SID propriétaire de la clé. La clé doit avoir WRITE_OWNER accès, ou le processus appelant doit être le propriétaire de l’objet ou activer le SE_TAKE_OWNERSHIP_NAME privilège.
SACL_SECURITY_INFORMATION Définit la liste de contrôle d’accès système (SACL) de la clé. La clé doit avoir ACCESS_SYSTEM_SECURITY accès. La bonne façon d’obtenir cet accès consiste à activer le privilège dans le SE_SECURITY_NAME jeton d’accès actuel de l’appelant, à ouvrir le handle pour ACCESS_SYSTEM_SECURITY l’accès, puis à désactiver le privilège.

psd
Pointeur vers une SECURITY_DESCRIPTOR structure qui spécifie les attributs de sécurité à définir pour la clé spécifiée.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Définit les attributs de sécurité de la clé. Consultez RegSetKeySecurity pour plus d’informations.

CRegKey::SetMultiStringValue

Appelez cette méthode pour définir la valeur multistring de la clé de Registre.

LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();

Paramètres

pszValueName
Pointeur vers une chaîne contenant le nom de la valeur à définir. Si une valeur portant ce nom n’est pas déjà présente, la méthode l’ajoute à la clé.

pszValue
Pointeur vers les données multistring à stocker avec le nom de valeur spécifié. Une chaîne multiple est un tableau de NULLchaînes -terminated, arrêtées par deux caractères Null.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Cette méthode utilise RegSetValueEx pour écrire la valeur dans le Registre.

CRegKey::SetQWORDValue

Appelez cette méthode pour définir la QWORD valeur de la clé de Registre.

LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();

Paramètres

pszValueName
Pointeur vers une chaîne contenant le nom de la valeur à définir. Si une valeur portant ce nom n’est pas déjà présente, la méthode l’ajoute à la clé.

qwValue
Données QWORD à stocker avec le nom de valeur spécifié.

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Cette méthode utilise RegSetValueEx pour écrire la valeur dans le Registre.

CRegKey::SetStringValue

Appelez cette méthode pour définir la valeur de chaîne de la clé de Registre.

LONG SetStringValue(
    LPCTSTR pszValueName,
    LPCTSTR pszValue,
    DWORD dwType = REG_SZ) throw();

Paramètres

pszValueName
Pointeur vers une chaîne contenant le nom de la valeur à définir. Si une valeur portant ce nom n’est pas déjà présente, la méthode l’ajoute à la clé.

pszValue
Pointeur vers les données de chaîne à stocker avec le nom de valeur spécifié.

dwType
Type de la chaîne à écrire dans le Registre : REG_SZ soit (la valeur par défaut) soit REG_EXPAND_SZ (pour les chaînes multiples).

Valeur de retour

Si la méthode réussit, la valeur de retour est ERROR_SUCCESS. Si la méthode échoue, la valeur de retour est un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Cette méthode utilise RegSetValueEx pour écrire la valeur dans le Registre.

CRegKey::SetValue

Appelez cette méthode pour stocker des données dans le champ de valeur spécifié de m_hKey. Les versions antérieures de cette méthode ne sont plus prises en charge et sont marquées comme ATL_DEPRECATED.

LONG SetValue(
    LPCTSTR pszValueName,
    DWORD dwType,
    const void* pValue,
    ULONG nBytes) throw();

static LONG WINAPI SetValue(
    HKEY hKeyParent,
    LPCTSTR lpszKeyName,
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL);

ATL_DEPRECATED LONG SetValue(
    DWORD dwValue,
    LPCTSTR lpszValueName);

ATL_DEPRECATED LONG SetValue(
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL,
    bool bMulti = false,
    int nValueLen = -1);

Paramètres

pszValueName
Pointeur vers une chaîne contenant le nom de la valeur à définir. Si une valeur portant ce nom n’est pas déjà présente dans la clé, la méthode l’ajoute à la clé. Si pszValueName elle est NULL ou une chaîne vide, ""la méthode définit le type et les données de la valeur non nommée ou par défaut de la clé.

dwType
Spécifie un code indiquant le type de données pointées par le pValue paramètre.

pValue
Pointeur vers une mémoire tampon contenant les données à stocker avec le nom de valeur spécifié.

nBytes
Spécifie la taille, en octets, des informations pointées par le pValue paramètre. Si les données sont de type REG_SZ, REG_EXPAND_SZou REG_MULTI_SZ, nBytes doivent inclure la taille du caractère null de fin.

hKeyParent
Handle d’une clé ouverte.

lpszKeyName
Spécifie le nom d’une clé à créer ou ouvrir. Ce nom doit être une sous-clé de hKeyParent.

lpszValue
Spécifie les données à stocker. Ce paramètre doit être différent.NULL

lpszValueName
Spécifie le champ de valeur à définir. Si un champ valeur portant ce nom n’existe pas déjà dans la clé, il est ajouté.

dwValue
Spécifie les données à stocker.

bMulti
Si la valeur est false, indique que la chaîne est de type REG_SZ. Si la valeur est true, indique que la chaîne est un multistring de type REG_MULTI_SZ.

nValueLen
Si bMulti la valeur est true, nValueLen correspond à la longueur de la lpszValue chaîne en caractères. Si bMulti la valeur est false, la valeur -1 indique que la méthode calcule automatiquement la longueur.

Valeur de retour

Si elle réussit, retourne ERROR_SUCCESS; sinon, un code d’erreur différent de zéro défini dans WINERROR.H.

Notes

Les deux versions d’origine SetValue sont marquées comme ATL_DEPRECATED étant et ne doivent plus être utilisées. Le compilateur émet un avertissement si ces formulaires sont utilisés.

La troisième méthode appelle RegSetValueEx.

Voir aussi

Exemple DCOM
Vue d’ensemble de la classe