Condividi tramite


Classe CRegKey

Questa classe fornisce metodi per la modifica delle voci nel Registro di sistema.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

class CRegKey

Membri

Costruttori pubblici

Nome Descrizione
CRegKey::CRegKey Costruttore.
CRegKey::~CRegKey Distruttore.

Metodi pubblici

Nome Descrizione
CRegKey::Attach Chiamare questo metodo per collegare un oggetto HKEY all'oggetto CRegKey impostando l'handle m_hKey del membro su hKey.
CRegKey::Close Chiamare questo metodo per rilasciare l'handle m_hKey del membro e impostarlo su NULL.
CRegKey::Create Chiamare questo metodo per creare la chiave specificata, se non esiste come sottochiave di hKeyParent.
CRegKey::DeleteSubKey Chiamare questo metodo per rimuovere la chiave specificata dal Registro di sistema.
CRegKey::DeleteValue Chiamare questo metodo per rimuovere un campo valore da m_hKey.
CRegKey::Detach Chiamare questo metodo per scollegare l'handle m_hKey membro dall'oggetto CRegKey e impostare su m_hKey NULL.
CRegKey::EnumKey Chiamare questo metodo per enumerare le sottochiavi della chiave del Registro di sistema aperta.
CRegKey::Flush Chiamare questo metodo per scrivere tutti gli attributi della chiave del Registro di sistema aperta nel Registro di sistema.
CRegKey::GetKeySecurity Chiamare questo metodo per recuperare una copia del descrittore di sicurezza che protegge la chiave del Registro di sistema aperta.
CRegKey::NotifyChangeKeyValue Questo metodo notifica al chiamante le modifiche apportate agli attributi o al contenuto della chiave del Registro di sistema aperta.
CRegKey::Open Chiamare questo metodo per aprire la chiave specificata e impostare m_hKey sull'handle di questa chiave.
CRegKey::QueryBinaryValue Chiamare questo metodo per recuperare i dati binari per un nome di valore specificato.
CRegKey::QueryDWORDValue Chiamare questo metodo per recuperare i DWORD dati per un nome di valore specificato.
CRegKey::QueryGUIDValue Chiamare questo metodo per recuperare i dati GUID per un nome di valore specificato.
CRegKey::QueryMultiStringValue Chiamare questo metodo per recuperare i dati multistringa per un nome di valore specificato.
CRegKey::QueryQWORDValue Chiamare questo metodo per recuperare i QWORD dati per un nome di valore specificato.
CRegKey::QueryStringValue Chiamare questo metodo per recuperare i dati stringa per un nome di valore specificato.
CRegKey::QueryValue Chiamare questo metodo per recuperare i dati per il campo valore specificato di m_hKey. Le versioni precedenti di questo metodo non sono più supportate e sono contrassegnate come ATL_DEPRECATED.
CRegKey::RecurseDeleteKey Chiamare questo metodo per rimuovere la chiave specificata dal Registro di sistema e rimuovere in modo esplicito eventuali sottochiavi.
CRegKey::SetBinaryValue Chiamare questo metodo per impostare il valore binario della chiave del Registro di sistema.
CRegKey::SetDWORDValue Chiamare questo metodo per impostare il DWORD valore della chiave del Registro di sistema.
CRegKey::SetGUIDValue Chiamare questo metodo per impostare il valore GUID della chiave del Registro di sistema.
CRegKey::SetKeySecurity Chiamare questo metodo per impostare la sicurezza della chiave del Registro di sistema.
CRegKey::SetKeyValue Chiamare questo metodo per archiviare i dati in un campo valore specificato di una chiave specificata.
CRegKey::SetMultiStringValue Chiamare questo metodo per impostare il valore multistringa della chiave del Registro di sistema.
CRegKey::SetQWORDValue Chiamare questo metodo per impostare il QWORD valore della chiave del Registro di sistema.
CRegKey::SetStringValue Chiamare questo metodo per impostare il valore stringa della chiave del Registro di sistema.
CRegKey::SetValue Chiamare questo metodo per archiviare i dati nel campo valore specificato di m_hKey. Le versioni precedenti di questo metodo non sono più supportate e sono contrassegnate come ATL_DEPRECATED.

Operatori pubblici

Nome Descrizione
CRegKey::operator HKEY Converte un CRegKey oggetto in un oggetto HKEY.
CRegKey::operator = Operatore di assegnazione.

Membri dati pubblici

Nome Descrizione
CRegKey::m_hKey Contiene un handle della chiave del Registro di sistema associata all'oggetto CRegKey .
CRegKey::m_pTM Puntatore all'oggetto CAtlTransactionManager

Osservazioni:

CRegKey fornisce metodi per la creazione e l'eliminazione di chiavi e valori nel Registro di sistema. Il Registro di sistema contiene un set di definizioni specifico dell'installazione per i componenti di sistema, ad esempio numeri di versione software, mapping logici a fisici dell'hardware installato e oggetti COM.

CRegKey fornisce un'interfaccia di programmazione al Registro di sistema per un determinato computer. Ad esempio, per aprire una determinata chiave del Registro di sistema, chiamare CRegKey::Open. Per recuperare o modificare rispettivamente un valore di dati, chiamare CRegKey::QueryValue o CRegKey::SetValue. Per chiudere una chiave, chiamare CRegKey::Close.

Quando si chiude una chiave, i relativi dati del Registro di sistema vengono scritti (scaricati) sul disco rigido. Questo processo potrebbe richiedere alcuni secondi. Se l'applicazione deve scrivere in modo esplicito i dati del Registro di sistema nel disco rigido, è possibile chiamare la RegFlushKey funzione Win32. Tuttavia, RegFlushKey usa molte risorse di sistema e deve essere chiamato solo quando è assolutamente necessario.

Importante

Tutti i metodi che consentono al chiamante di specificare un percorso del Registro di sistema possono leggere i dati che non possono essere considerati attendibili. I metodi che usano devono RegQueryValueEx prendere in considerazione che questa funzione non gestisce in modo esplicito le stringhe con terminazione Null. Entrambe le condizioni devono essere controllate dal codice chiamante.

Requisiti

Intestazione: atlbase.h

CRegKey::Attach

Chiamare questo metodo per associare un HKEY oggetto all'oggetto CRegKey impostando l'handle m_hKey del membro su hKey.

void Attach(HKEY hKey) throw();

Parametri

hKey
Handle di una chiave del Registro di sistema.

Osservazioni:

Attachasserisce se m_hKey non è.NULL

CRegKey::Close

Chiamare questo metodo per rilasciare l'handle m_hKey del membro e impostarlo su NULL.

LONG Close() throw();

Valore restituito

Se ha esito positivo, restituisce ERROR_SUCCESS; in caso contrario, restituisce un valore di errore.

CRegKey::Create

Chiamare questo metodo per creare la chiave specificata, se non esiste come sottochiave di 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();

Parametri

hKeyParent
Handle di una chiave aperta.

lpszKeyName
Specifica il nome di una chiave da creare o aprire. Questo nome deve essere una sottochiave di hKeyParent.

lpszClass
Specifica la classe della chiave da creare o aprire. Il valore predefinito è REG_NONE.

dwOptions
Opzioni per la chiave. Il valore predefinito è REG_OPTION_NON_VOLATILE. Per un elenco di valori e descrizioni possibili, vedere RegCreateKeyEx in Windows SDK.

samDesired
Accesso alla sicurezza per la chiave. Il valore predefinito è KEY_READ | KEY_WRITE. Per un elenco di valori e descrizioni possibili, vedere RegCreateKeyEx.

lpSecAttr
Puntatore a una SECURITY_ATTRIBUTES struttura che indica se l'handle della chiave può essere ereditato da un processo figlio. Per impostazione predefinita, questo parametro è NULL (ovvero l'handle non può essere ereditato).

lpdwDisposition
[out] Se nonNULL esiste, recupera REG_CREATED_NEW_KEY (se la chiave non esiste ed è stata creata) o REG_OPENED_EXISTING_KEY (se la chiave esiste ed è stata aperta).

Valore restituito

In caso di esito positivo, restituisce ERROR_SUCCESS e apre la chiave. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Create imposta il m_hKey membro sull'handle di questa chiave.

CRegKey::CRegKey

Costruttore.

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

Parametri

key
Riferimento a un oggetto CRegKey.

hKey
Handle di una chiave del Registro di sistema.

pTM
Puntatore all'oggetto CAtlTransactionManager

Osservazioni:

Crea un nuovo oggetto CRegKey. L'oggetto può essere creato da un oggetto esistente CRegKey o da un handle a una chiave del Registro di sistema.

CRegKey::~CRegKey

Distruttore.

~CRegKey() throw();

Osservazioni:

Il distruttore rilascia m_hKey.

CRegKey::DeleteSubKey

Chiamare questo metodo per rimuovere la chiave specificata dal Registro di sistema.

LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();

Parametri

lpszSubKey
Specifica il nome della chiave da eliminare. Questo nome deve essere una sottochiave di m_hKey.

Valore restituito

Se l'esito è positivo, restituisce ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

DeleteSubKey può eliminare solo una chiave senza sottochiavi. Se la chiave contiene sottochiavi, chiamare RecurseDeleteKey invece.

CRegKey::DeleteValue

Chiamare questo metodo per rimuovere un campo valore da m_hKey.

LONG DeleteValue(LPCTSTR lpszValue) throw();

Parametri

lpszValue
Specifica il campo valore da rimuovere.

Valore restituito

Se l'esito è positivo, restituisce ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

CRegKey::Detach

Chiamare questo metodo per scollegare l'handle m_hKey membro dall'oggetto CRegKey e impostare su m_hKey NULL.

HKEY Detach() throw();

Valore restituito

HKEY associato all'oggetto CRegKey .

CRegKey::EnumKey

Chiamare questo metodo per enumerare le sottochiavi della chiave del Registro di sistema aperta.

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

Parametri

iIndex
Indice della sottochiave. Questo parametro deve essere zero per la prima chiamata e quindi incrementato per le chiamate successive

pszName
Puntatore a un buffer che riceve il nome della sottochiave, incluso il carattere Null di terminazione. Solo il nome della sottochiave viene copiato nel buffer, non nella gerarchia di chiavi completa.

pnNameLength
Puntatore a una variabile che specifica le dimensioni, in TCHARs, del buffer specificato dal pszName parametro . Questa dimensione deve includere il carattere Null di terminazione. Quando il metodo termina, la variabile a cui pnNameLength punta contiene il numero di caratteri archiviati nel buffer. Il conteggio restituito non include il carattere Null di terminazione.

pftLastWriteTime
Puntatore a una variabile che riceve l'ora dell'ultima scrittura della sottochiave enumerata.

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Per enumerare le sottochiavi, chiamare CRegKey::EnumKey con un indice pari a zero. Incrementare il valore dell'indice e ripetere fino a quando il metodo non restituisce ERROR_NO_MORE_ITEMS. Per altre informazioni, vedere RegEnumKeyEx in Windows SDK.

CRegKey::Flush

Chiamare questo metodo per scrivere tutti gli attributi della chiave del Registro di sistema aperta nel Registro di sistema.

LONG Flush() throw();

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Per altre informazioni, vedere RegEnumFlush in Windows SDK.

CRegKey::GetKeySecurity

Chiamare questo metodo per recuperare una copia del descrittore di sicurezza che protegge la chiave del Registro di sistema aperta.

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

Parametri

si
Valore SECURITY_INFORMATION che indica le informazioni di sicurezza richieste.

psd
Puntatore a un buffer che riceve una copia del descrittore di sicurezza richiesto.

pnBytes
Dimensione, in byte, del buffer a psdcui punta .

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero è definito in WINERROR.H.

Osservazioni:

Per ulteriori informazioni, vedere RegGetKeySecurity.

CRegKey::m_hKey

Contiene un handle della chiave del Registro di sistema associata all'oggetto CRegKey .

HKEY m_hKey;

CRegKey::m_pTM

Puntatore a un oggetto CAtlTransactionManager.

CAtlTransactionManager* m_pTM;

Osservazioni:

CRegKey::NotifyChangeKeyValue

Questo metodo notifica al chiamante le modifiche apportate agli attributi o al contenuto della chiave del Registro di sistema aperta.

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

Parametri

bWatchSubtree
Specifica un flag che indica se segnalare le modifiche nella chiave specificata e tutte le relative sottochiavi o solo nella chiave specificata. Se questo parametro è TRUE, il metodo segnala le modifiche nella chiave e nelle relative sottochiavi. Se il parametro è FALSE, il metodo segnala modifiche solo nella chiave.

dwNotifyFilter
Specifica un set di flag che controllano quali modifiche devono essere segnalate. Questo parametro può essere una combinazione dei valori seguenti:

Valore Significato
REG_NOTIFY_CHANGE_NAME Notificare al chiamante se viene aggiunta o eliminata una sottochiave.
REG_NOTIFY_CHANGE_ATTRIBUTES Notificare al chiamante le modifiche apportate agli attributi della chiave, ad esempio le informazioni sul descrittore di sicurezza.
REG_NOTIFY_CHANGE_LAST_SET Notificare al chiamante le modifiche apportate a un valore della chiave. Ciò può includere l'aggiunta o l'eliminazione di un valore o la modifica di un valore esistente.
REG_NOTIFY_CHANGE_SECURITY Notificare al chiamante le modifiche apportate al descrittore di sicurezza della chiave.

hEvent
Handle per un evento. Se il bAsync parametro è TRUE, il metodo restituisce immediatamente e le modifiche vengono segnalate segnalando questo evento. Se bAsync è FALSE, hEvent viene ignorato.

bAsync
Specifica un flag che indica il modo in cui il metodo segnala le modifiche. Se questo parametro è TRUE, il metodo restituisce immediatamente e segnala le modifiche segnalando l'evento specificato. Quando questo parametro è FALSE, il metodo non restituisce finché non si è verificata una modifica. Se hEvent non specifica un evento valido, il bAsync parametro non può essere TRUE.

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Nota

Questo metodo non invia una notifica al chiamante se la chiave specificata viene eliminata.

Per altri dettagli e un programma di esempio, vedere RegNotifyChangeKeyValue.

CRegKey::Open

Chiamare questo metodo per aprire la chiave specificata e impostare m_hKey sull'handle di questa chiave.

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

Parametri

hKeyParent
Handle di una chiave aperta.

lpszKeyName
Specifica il nome di una chiave da creare o aprire. Questo nome deve essere una sottochiave di hKeyParent.

samDesired
Accesso alla sicurezza per la chiave. Il valore predefinito è KEY_ALL_ACCESS. Per un elenco di valori e descrizioni possibili, vedere RegCreateKeyEx in Windows SDK.

Valore restituito

Se ha esito positivo, restituisce ERROR_SUCCESS; in caso contrario, un valore di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Se il lpszKeyName parametro è NULL o punta a una stringa vuota, Open apre un nuovo handle della chiave identificata da hKeyParent, ma non chiude alcun handle aperto in precedenza.

A differenza di CRegKey::Create, Open non creerà la chiave specificata se non esiste.

CRegKey::operator HKEY

Converte un CRegKey oggetto in un oggetto HKEY.

operator HKEY() const throw();

CRegKey::operator =

Operatore di assegnazione.

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

Parametri

key
Chiave da copiare.

Valore restituito

Restituisce un riferimento alla nuova chiave.

Osservazioni:

Questo operatore scollega key dall'oggetto corrente e lo assegna all'oggetto CRegKey .

CRegKey::QueryBinaryValue

Chiamare questo metodo per recuperare i dati binari per un nome di valore specificato.

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

Parametri

pszValueName
Puntatore a una NULLstringa con terminazione contenente il nome del valore su cui eseguire la query.

pValue
Puntatore a un buffer che riceve i dati del valore.

pnBytes
Puntatore a una variabile che specifica le dimensioni, in byte, del buffer a cui punta il pValue parametro . Quando il metodo termina, questa variabile contiene le dimensioni dei dati copiati nel buffer.

Valore restituito

Se il metodo ha esito positivo, ERROR_SUCCESS viene restituito . Se il metodo non legge un valore, restituisce un codice di errore diverso da zero definito in WINERROR.H. Se i dati a cui si fa riferimento non sono di tipo REG_BINARY, ERROR_INVALID_DATA viene restituito .

Osservazioni:

Questo metodo usa RegQueryValueEx e conferma che viene restituito il tipo di dati corretto. Per informazioni dettagliate, vedere RegQueryValueEx.

Importante

Questo metodo consente al chiamante di specificare qualsiasi posizione del Registro di sistema, potenzialmente leggendo i dati che non possono essere considerati attendibili. Inoltre, la RegQueryValueEx funzione usata da questo metodo non gestisce in modo esplicito le stringhe con terminazione Null. Entrambe le condizioni devono essere controllate dal codice chiamante.

CRegKey::QueryDWORDValue

Chiamare questo metodo per recuperare i DWORD dati per un nome di valore specificato.

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

Parametri

pszValueName
Puntatore a una NULLstringa con terminazione contenente il nome del valore su cui eseguire la query.

dwValue
Puntatore a un buffer che riceve l'oggetto DWORD.

Valore restituito

Se il metodo ha esito positivo, ERROR_SUCCESS viene restituito . Se il metodo non legge un valore, restituisce un codice di errore diverso da zero definito in WINERROR.H. Se i dati a cui si fa riferimento non sono di tipo REG_DWORD, ERROR_INVALID_DATA viene restituito .

Osservazioni:

Questo metodo usa RegQueryValueEx e conferma che viene restituito il tipo di dati corretto. Per informazioni dettagliate, vedere RegQueryValueEx.

Importante

Questo metodo consente al chiamante di specificare qualsiasi posizione del Registro di sistema, potenzialmente leggendo i dati che non possono essere considerati attendibili. Inoltre, la RegQueryValueEx funzione usata da questo metodo non gestisce in modo esplicito le stringhe con terminazione Null. Entrambe le condizioni devono essere controllate dal codice chiamante.

CRegKey::QueryGUIDValue

Chiamare questo metodo per recuperare i dati GUID per un nome di valore specificato.

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

Parametri

pszValueName
Puntatore a una NULLstringa con terminazione contenente il nome del valore su cui eseguire la query.

guidValue
Puntatore a una variabile che riceve il GUID.

Valore restituito

Se il metodo ha esito positivo, ERROR_SUCCESS viene restituito . Se il metodo non legge un valore, restituisce un codice di errore diverso da zero definito in WINERROR.H. Se i dati a cui si fa riferimento non sono un GUID valido, ERROR_INVALID_DATA viene restituito .

Osservazioni:

Questo metodo usa CRegKey::QueryStringValue e converte la stringa in un GUID usando CLSIDFromString.

Importante

Questo metodo consente al chiamante di specificare qualsiasi posizione del Registro di sistema, potenzialmente leggendo i dati che non possono essere considerati attendibili.

CRegKey::QueryMultiStringValue

Chiamare questo metodo per recuperare i dati multistringa per un nome di valore specificato.

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

Parametri

pszValueName
Puntatore a una NULLstringa con terminazione contenente il nome del valore su cui eseguire la query.

pszValue
Puntatore a un buffer che riceve i dati multistringa. Una multistringa è una matrice di NULLstringhe con terminazione terminata da due caratteri Null.

pnChars
Dimensione, in TCHARs, del buffer a pszValuecui punta . Quando termina, pnChars il metodo contiene le dimensioni, in TCHARs, della multistringa recuperata, incluso un carattere Null di terminazione.

Valore restituito

Se il metodo ha esito positivo, ERROR_SUCCESS viene restituito . Se il metodo non legge un valore, restituisce un codice di errore diverso da zero definito in WINERROR.H. Se i dati a cui si fa riferimento non sono di tipo REG_MULTI_SZ, ERROR_INVALID_DATA viene restituito .

Osservazioni:

Questo metodo usa RegQueryValueEx e conferma che viene restituito il tipo di dati corretto. Per informazioni dettagliate, vedere RegQueryValueEx.

Importante

Questo metodo consente al chiamante di specificare qualsiasi posizione del Registro di sistema, potenzialmente leggendo i dati che non possono essere considerati attendibili. Inoltre, la RegQueryValueEx funzione usata da questo metodo non gestisce in modo esplicito le stringhe con terminazione Null. Entrambe le condizioni devono essere controllate dal codice chiamante.

CRegKey::QueryQWORDValue

Chiamare questo metodo per recuperare i QWORD dati per un nome di valore specificato.

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

Parametri

pszValueName
Puntatore a una NULLstringa con terminazione contenente il nome del valore su cui eseguire la query.

qwValue
Puntatore a un buffer che riceve l'oggetto QWORD.

Valore restituito

Se il metodo ha esito positivo, ERROR_SUCCESS viene restituito . Se il metodo non legge un valore, restituisce un codice di errore diverso da zero definito in WINERROR.H. Se i dati a cui si fa riferimento non sono di tipo REG_QWORD, ERROR_INVALID_DATA viene restituito .

Osservazioni:

Questo metodo usa RegQueryValueEx e conferma che viene restituito il tipo di dati corretto. Per informazioni dettagliate, vedere RegQueryValueEx.

Importante

Questo metodo consente al chiamante di specificare qualsiasi posizione del Registro di sistema, potenzialmente leggendo i dati che non possono essere considerati attendibili. Inoltre, la RegQueryValueEx funzione usata da questo metodo non gestisce in modo esplicito le stringhe con terminazione Null. Entrambe le condizioni devono essere controllate dal codice chiamante.

CRegKey::QueryStringValue

Chiamare questo metodo per recuperare i dati stringa per un nome di valore specificato.

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

Parametri

pszValueName
Puntatore a una NULLstringa con terminazione contenente il nome del valore su cui eseguire la query.

pszValue
Puntatore a un buffer che riceve i dati stringa.

pnChars
Dimensioni, in TCHAR, del buffer a pszValuecui punta . Quando termina, pnChars il metodo contiene le dimensioni, in TCHARs, della stringa recuperata, incluso un carattere Null di terminazione.

Valore restituito

Se il metodo ha esito positivo, ERROR_SUCCESS viene restituito . Se il metodo non legge un valore, restituisce un codice di errore diverso da zero definito in WINERROR.H. Se i dati a cui si fa riferimento non sono di tipo REG_SZ, ERROR_INVALID_DATA viene restituito . Se il metodo restituisce ERROR_MORE_DATA, pnChars è uguale a zero, non la dimensione del buffer richiesta in byte.

Osservazioni:

Questo metodo usa RegQueryValueEx e conferma che viene restituito il tipo di dati corretto. Per informazioni dettagliate, vedere RegQueryValueEx.

Importante

Questo metodo consente al chiamante di specificare qualsiasi posizione del Registro di sistema, potenzialmente leggendo i dati che non possono essere considerati attendibili. Inoltre, la RegQueryValueEx funzione usata da questo metodo non gestisce in modo esplicito le stringhe con terminazione Null. Entrambe le condizioni devono essere controllate dal codice chiamante.

CRegKey::QueryValue

Chiamare questo metodo per recuperare i dati per il campo valore specificato di m_hKey. Le versioni precedenti di questo metodo non sono più supportate e sono contrassegnate come 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);

Parametri

pszValueName
Puntatore a una NULLstringa con terminazione contenente il nome del valore su cui eseguire la query. Se pszValueName è NULL o una stringa vuota, "", il metodo recupera il tipo e i dati per il valore predefinito o senza nome della chiave, se presente.

pdwType
Puntatore a una variabile che riceve un codice che indica il tipo di dati archiviati nel valore specificato. Il pdwType parametro può essere NULL se il codice di tipo non è obbligatorio.

pData
Puntatore a un buffer che riceve i dati del valore. Questo parametro può essere NULL se i dati non sono necessari.

pnBytes
Puntatore a una variabile che specifica le dimensioni, in byte, del buffer a cui punta il pData parametro . Quando il metodo termina, questa variabile contiene le dimensioni dei dati copiati in pData.

dwValue
Dati numerici del campo valore.

lpszValueName
Specifica il campo del valore su cui eseguire una query.

szValue
Dati stringa del campo valore.

pdwCount
Dimensioni dei dati stringa. Il valore è inizialmente impostato sulle dimensioni del szValue buffer.

Valore restituito

Se ha esito positivo, restituisce ERROR_SUCCESS; in caso contrario, un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Le due versioni originali di QueryValue non sono più supportate e sono contrassegnate come ATL_DEPRECATED. Il compilatore genererà un avviso se vengono usati questi moduli.

Il metodo rimanente chiama RegQueryValueEx.

Importante

Questo metodo consente al chiamante di specificare qualsiasi posizione del Registro di sistema, potenzialmente leggendo i dati che non possono essere considerati attendibili. Inoltre, la RegQueryValueEx funzione usata da questo metodo non gestisce in modo esplicito le stringhe con terminazione Null. Entrambe le condizioni devono essere controllate dal codice chiamante.

CRegKey::RecurseDeleteKey

Chiamare questo metodo per rimuovere la chiave specificata dal Registro di sistema e rimuovere in modo esplicito eventuali sottochiavi.

LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();

Parametri

lpszKey
Specifica il nome della chiave da eliminare. Questo nome deve essere una sottochiave di m_hKey.

Valore restituito

Se ha esito positivo, restituisce ERROR_SUCCESS; in caso contrario, un valore di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Se la chiave contiene sottochiavi, è necessario chiamare questo metodo per eliminare la chiave.

CRegKey::SetBinaryValue

Chiamare questo metodo per impostare il valore binario della chiave del Registro di sistema.

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

Parametri

pszValueName
Puntatore a una stringa contenente il nome del valore da impostare. Se un valore con questo nome non è già presente, il metodo lo aggiunge alla chiave.

pValue
Puntatore a un buffer contenente i dati da archiviare con il nome del valore specificato.

nBytes
Specifica le dimensioni, in byte, delle informazioni a cui punta il pValue parametro .

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Questo metodo usa RegSetValueEx per scrivere il valore nel Registro di sistema.

CRegKey::SetDWORDValue

Chiamare questo metodo per impostare il DWORD valore della chiave del Registro di sistema.

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

Parametri

pszValueName
Puntatore a una stringa contenente il nome del valore da impostare. Se un valore con questo nome non è già presente, il metodo lo aggiunge alla chiave.

dwValue
Dati DWORD da archiviare con il nome di valore specificato.

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Questo metodo usa RegSetValueEx per scrivere il valore nel Registro di sistema.

CRegKey::SetGUIDValue

Chiamare questo metodo per impostare il valore GUID della chiave del Registro di sistema.

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

Parametri

pszValueName
Puntatore a una stringa contenente il nome del valore da impostare. Se un valore con questo nome non è già presente, il metodo lo aggiunge alla chiave.

guidValue
Riferimento al GUID da archiviare con il nome del valore specificato.

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Questo metodo usa CRegKey::SetStringValue e converte il GUID in una stringa usando StringFromGUID2.

CRegKey::SetKeyValue

Chiamare questo metodo per archiviare i dati in un campo valore specificato di una chiave specificata.

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

Parametri

lpszKeyName
Specifica il nome della chiave da creare o aprire. Questo nome deve essere una sottochiave di m_hKey.

lpszValue
Specifica i dati da archiviare. Questo parametro deve essere diversoNULL da .

lpszValueName
Specifica il campo valore da impostare. Se nella chiave non esiste già un campo valore con questo nome, viene aggiunto.

Valore restituito

Se ha esito positivo, restituisce ERROR_SUCCESS; in caso contrario, un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Chiamare questo metodo per creare o aprire la lpszKeyName chiave e archiviare i lpszValue dati nel lpszValueName campo valore.

CRegKey::SetKeySecurity

Chiamare questo metodo per impostare la sicurezza della chiave del Registro di sistema.

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

Parametri

si
Specifica i componenti del descrittore di sicurezza da impostare. Il valore può essere una combinazione dei valori seguenti:

Valore Significato
DACL_SECURITY_INFORMATION Imposta l'elenco di controllo di accesso discrezionale (DACL) della chiave. La chiave deve avere WRITE_DAC accesso oppure il processo chiamante deve essere il proprietario dell'oggetto.
GROUP_SECURITY_INFORMATION Imposta il SID (Primary Group Security Identifier) della chiave. La chiave deve avere WRITE_OWNER accesso oppure il processo chiamante deve essere il proprietario dell'oggetto.
OWNER_SECURITY_INFORMATION Imposta il SID proprietario della chiave. La chiave deve avere WRITE_OWNER accesso oppure il processo chiamante deve essere il proprietario dell'oggetto o avere il SE_TAKE_OWNERSHIP_NAME privilegio abilitato.
SACL_SECURITY_INFORMATION Imposta l'elenco di controllo di accesso di sistema (SACL) della chiave. La chiave deve avere ACCESS_SYSTEM_SECURITY accesso. Il modo corretto per ottenere questo accesso consiste nell'abilitare il SE_SECURITY_NAME privilegio nel token di accesso corrente del chiamante, aprire l'handle per ACCESS_SYSTEM_SECURITY l'accesso e quindi disabilitare il privilegio.

psd
Puntatore a una SECURITY_DESCRIPTOR struttura che specifica gli attributi di sicurezza da impostare per la chiave specificata.

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Imposta gli attributi di sicurezza della chiave. Per informazioni dettagliate, vedere RegSetKeySecurity.

CRegKey::SetMultiStringValue

Chiamare questo metodo per impostare il valore multistringa della chiave del Registro di sistema.

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

Parametri

pszValueName
Puntatore a una stringa contenente il nome del valore da impostare. Se un valore con questo nome non è già presente, il metodo lo aggiunge alla chiave.

pszValue
Puntatore ai dati multistringa da archiviare con il nome del valore specificato. Una multistringa è una matrice di NULLstringhe con terminazione terminata da due caratteri Null.

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Questo metodo usa RegSetValueEx per scrivere il valore nel Registro di sistema.

CRegKey::SetQWORDValue

Chiamare questo metodo per impostare il QWORD valore della chiave del Registro di sistema.

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

Parametri

pszValueName
Puntatore a una stringa contenente il nome del valore da impostare. Se un valore con questo nome non è già presente, il metodo lo aggiunge alla chiave.

qwValue
Dati QWORD da archiviare con il nome di valore specificato.

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Questo metodo usa RegSetValueEx per scrivere il valore nel Registro di sistema.

CRegKey::SetStringValue

Chiamare questo metodo per impostare il valore stringa della chiave del Registro di sistema.

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

Parametri

pszValueName
Puntatore a una stringa contenente il nome del valore da impostare. Se un valore con questo nome non è già presente, il metodo lo aggiunge alla chiave.

pszValue
Puntatore ai dati stringa da archiviare con il nome del valore specificato.

dwType
Tipo della stringa da scrivere nel Registro di sistema: REG_SZ (impostazione predefinita) o REG_EXPAND_SZ (per più stringhe).

Valore restituito

Se il metodo ha esito positivo, il valore restituito è ERROR_SUCCESS. Se il metodo ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Questo metodo usa RegSetValueEx per scrivere il valore nel Registro di sistema.

CRegKey::SetValue

Chiamare questo metodo per archiviare i dati nel campo valore specificato di m_hKey. Le versioni precedenti di questo metodo non sono più supportate e sono contrassegnate come 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);

Parametri

pszValueName
Puntatore a una stringa contenente il nome del valore da impostare. Se un valore con questo nome non è già presente nella chiave, il metodo lo aggiunge alla chiave. Se pszValueName è NULL o una stringa vuota, ""il metodo imposta il tipo e i dati per il valore predefinito o senza nome della chiave.

dwType
Specifica un codice che indica il tipo di dati a cui punta il pValue parametro .

pValue
Puntatore a un buffer contenente i dati da archiviare con il nome del valore specificato.

nBytes
Specifica le dimensioni, in byte, delle informazioni a cui punta il pValue parametro . Se i dati sono di tipo REG_SZ, REG_EXPAND_SZo REG_MULTI_SZ, nBytes devono includere le dimensioni del carattere Null di terminazione.

hKeyParent
Handle di una chiave aperta.

lpszKeyName
Specifica il nome di una chiave da creare o aprire. Questo nome deve essere una sottochiave di hKeyParent.

lpszValue
Specifica i dati da archiviare. Questo parametro deve essere diversoNULL da .

lpszValueName
Specifica il campo valore da impostare. Se nella chiave non esiste già un campo valore con questo nome, viene aggiunto.

dwValue
Specifica i dati da archiviare.

bMulti
Se false, indica che la stringa è di tipo REG_SZ. Se true, indica che la stringa è una stringa di tipo REG_MULTI_SZ.

nValueLen
Se bMulti è true, nValueLen è la lunghezza della lpszValue stringa in caratteri. Se bMulti è false, il valore -1 indica che il metodo calcolerà automaticamente la lunghezza.

Valore restituito

Se ha esito positivo, restituisce ERROR_SUCCESS; in caso contrario, un codice di errore diverso da zero definito in WINERROR.H.

Osservazioni:

Le due versioni originali di SetValue sono contrassegnate come ATL_DEPRECATED e non devono più essere usate. Il compilatore genererà un avviso se vengono usati questi moduli.

Il terzo metodo chiama RegSetValueEx.

Vedi anche

Esempio DCOM
Cenni preliminari sulla classe