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:
Attach
asserisce 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 psd
cui 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 NULL
stringa 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 NULL
stringa 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 NULL
stringa 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 NULL
stringa 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 NULL
stringhe con terminazione terminata da due caratteri Null.
pnChars
Dimensione, in TCHARs
, del buffer a pszValue
cui 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 NULL
stringa 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 NULL
stringa 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 pszValue
cui 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 NULL
stringa 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 NULL
stringhe 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_SZ
o 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
.