CRegKey
-Klasse
Diese Klasse stellt Methoden zum Bearbeiten von Einträgen in der Systemregistrierung bereit.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
class CRegKey
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CRegKey::CRegKey |
Der Konstruktor. |
CRegKey::~CRegKey |
Der Destruktor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CRegKey::Attach |
Rufen Sie diese Methode auf, um einen HKEY an das CRegKey Objekt anzufügen, indem Sie das m_hKey Memberhandle auf hKey festlegen. |
CRegKey::Close |
Rufen Sie diese Methode auf, um das m_hKey Memberhandle freizugeben und auf .NULL |
CRegKey::Create |
Rufen Sie diese Methode auf, um den angegebenen Schlüssel zu erstellen, wenn er nicht als Unterschlüssel von hKeyParent vorhanden ist. |
CRegKey::DeleteSubKey |
Rufen Sie diese Methode auf, um den angegebenen Schlüssel aus der Registrierung zu entfernen. |
CRegKey::DeleteValue |
Rufen Sie diese Methode auf, um ein Wertfeld aus m_hKey . |
CRegKey::Detach |
Rufen Sie diese Methode auf, um das m_hKey Elementhandle vom CRegKey Objekt zu trennen und auf .m_hKey NULL |
CRegKey::EnumKey |
Rufen Sie diese Methode auf, um die Unterschlüssel des geöffneten Registrierungsschlüssels aufzählen zu können. |
CRegKey::Flush |
Rufen Sie diese Methode auf, um alle Attribute des geöffneten Registrierungsschlüssels in die Registrierung zu schreiben. |
CRegKey::GetKeySecurity |
Rufen Sie diese Methode auf, um eine Kopie des Sicherheitsdeskriptors abzurufen, der den geöffneten Registrierungsschlüssel schützt. |
CRegKey::NotifyChangeKeyValue |
Diese Methode benachrichtigt den Aufrufer über Änderungen an den Attributen oder Inhalten des geöffneten Registrierungsschlüssels. |
CRegKey::Open |
Rufen Sie diese Methode auf, um den angegebenen Schlüssel zu öffnen und auf das Handle dieses Schlüssels festzulegen m_hKey . |
CRegKey::QueryBinaryValue |
Rufen Sie diese Methode auf, um die Binärdaten für einen angegebenen Wertnamen abzurufen. |
CRegKey::QueryDWORDValue |
Rufen Sie diese Methode auf, um die DWORD Daten für einen angegebenen Wertnamen abzurufen. |
CRegKey::QueryGUIDValue |
Rufen Sie diese Methode auf, um die GUID-Daten für einen angegebenen Wertnamen abzurufen. |
CRegKey::QueryMultiStringValue |
Rufen Sie diese Methode auf, um die Daten mit mehreren Zeichenfolgen für einen angegebenen Wertnamen abzurufen. |
CRegKey::QueryQWORDValue |
Rufen Sie diese Methode auf, um die QWORD Daten für einen angegebenen Wertnamen abzurufen. |
CRegKey::QueryStringValue |
Rufen Sie diese Methode auf, um die Zeichenfolgendaten für einen angegebenen Wertnamen abzurufen. |
CRegKey::QueryValue |
Rufen Sie diese Methode auf, um die Daten für das angegebene Wertfeld von m_hKey abzurufen. Frühere Versionen dieser Methode werden nicht mehr unterstützt und als ATL_DEPRECATED gekennzeichnet. |
CRegKey::RecurseDeleteKey |
Rufen Sie diese Methode auf, um den angegebenen Schlüssel aus der Registrierung zu entfernen und explizit alle Unterschlüssel zu entfernen. |
CRegKey::SetBinaryValue |
Rufen Sie diese Methode auf, um den binären Wert des Registrierungsschlüssels festzulegen. |
CRegKey::SetDWORDValue |
Rufen Sie diese Methode auf, um den DWORD Wert des Registrierungsschlüssels festzulegen. |
CRegKey::SetGUIDValue |
Rufen Sie diese Methode auf, um den GUID-Wert des Registrierungsschlüssels festzulegen. |
CRegKey::SetKeySecurity |
Rufen Sie diese Methode auf, um die Sicherheit des Registrierungsschlüssels festzulegen. |
CRegKey::SetKeyValue |
Rufen Sie diese Methode auf, um Daten in einem angegebenen Wertfeld eines angegebenen Schlüssels zu speichern. |
CRegKey::SetMultiStringValue |
Rufen Sie diese Methode auf, um den Multistring-Wert des Registrierungsschlüssels festzulegen. |
CRegKey::SetQWORDValue |
Rufen Sie diese Methode auf, um den QWORD Wert des Registrierungsschlüssels festzulegen. |
CRegKey::SetStringValue |
Rufen Sie diese Methode auf, um den Zeichenfolgenwert des Registrierungsschlüssels festzulegen. |
CRegKey::SetValue |
Rufen Sie diese Methode auf, um Daten im angegebenen Wertfeld von m_hKey . Frühere Versionen dieser Methode werden nicht mehr unterstützt und als ATL_DEPRECATED gekennzeichnet. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
CRegKey::operator HKEY |
Konvertiert ein CRegKey Objekt in ein HKEY . |
CRegKey::operator = |
Zuweisungsoperator. |
Öffentliche Datenmember
Name | Beschreibung |
---|---|
CRegKey::m_hKey |
Enthält ein Handle des Registrierungsschlüssels, der dem CRegKey Objekt zugeordnet ist. |
CRegKey::m_pTM |
Zeiger auf CAtlTransactionManager Objekt |
Hinweise
CRegKey
stellt Methoden zum Erstellen und Löschen von Schlüsseln und Werten in der Systemregistrierung bereit. Die Registrierung enthält einen installationsspezifischen Satz von Definitionen für Systemkomponenten, z. B. Softwareversionsnummern, logische zu physische Zuordnungen installierter Hardware und COM-Objekte.
CRegKey
stellt eine Programmierschnittstelle für die Systemregistrierung für einen bestimmten Computer bereit. Rufen Sie CRegKey::Open
beispielsweise auf, um einen bestimmten Registrierungsschlüssel zu öffnen. Zum Abrufen oder Ändern eines Datenwerts rufen Sie bzw. einen Datenwert CRegKey::QueryValue
CRegKey::SetValue
auf. Rufen Sie auf, um CRegKey::Close
eine Taste zu schließen.
Wenn Sie einen Schlüssel schließen, werden die Registrierungsdaten (geleert) auf die Festplatte geschrieben. Dieser Vorgang kann mehrere Sekunden dauern. Wenn Ihre Anwendung Registrierungsdaten explizit auf die Festplatte schreiben muss, können Sie die RegFlushKey
Win32-Funktion aufrufen. Verwendet jedoch viele Systemressourcen und sollte nur aufgerufen werden, RegFlushKey
wenn dies unbedingt erforderlich ist.
Wichtig
Methoden, mit denen der Aufrufer einen Registrierungsspeicherort angeben kann, haben das Potenzial, Daten zu lesen, die nicht als vertrauenswürdig eingestuft werden können. Methoden, die RegQueryValueEx
verwendet werden, sollten berücksichtigen, dass diese Funktion keine expliziten Zeichenfolgen behandelt, die null-beendet sind. Beide Bedingungen sollten durch den aufrufenden Code überprüft werden.
Anforderungen
Header: atlbase.h
CRegKey::Attach
Rufen Sie diese Methode auf, um ein HKEY
Objekt anzufügen CRegKey
, indem Sie das m_hKey
Elementhandle auf hKey
festlegen.
void Attach(HKEY hKey) throw();
Parameter
hKey
Das Handle eines Registrierungsschlüssels.
Hinweise
Attach
wird bestätigen, ob m_hKey
es sich nicht um einen Nicht-VorgangNULL
handelt.
CRegKey::Close
Rufen Sie diese Methode auf, um das m_hKey
Memberhandle freizugeben und auf .NULL
LONG Close() throw();
Rückgabewert
Wenn dies erfolgreich ist, wird ein Fehlerwert zurückgegeben ERROR_SUCCESS
; andernfalls wird ein Fehlerwert zurückgegeben.
CRegKey::Create
Rufen Sie diese Methode auf, um den angegebenen Schlüssel zu erstellen, wenn er nicht als Unterschlüssel von hKeyParent
vorhanden ist.
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();
Parameter
hKeyParent
Das Handle einer geöffneten Taste.
lpszKeyName
Gibt den Namen eines zu erstellenden oder geöffneten Schlüssels an. Dieser Name muss ein Unterschlüssel von hKeyParent
.
lpszClass
Gibt die Klasse des zu erstellenden oder geöffneten Schlüssels an. Der Standardwert ist REG_NONE.
dwOptions
Optionen für den Schlüssel. Der Standardwert ist REG_OPTION_NON_VOLATILE
. Eine Liste der möglichen Werte und Beschreibungen finden Sie RegCreateKeyEx
im Windows SDK.
samDesired
Der Sicherheitszugriff für den Schlüssel. Der Standardwert ist KEY_READ | KEY_WRITE
. Eine Liste der möglichen Werte und Beschreibungen finden Sie unter RegCreateKeyEx
.
lpSecAttr
Ein Zeiger auf eine SECURITY_ATTRIBUTES
Struktur, der angibt, ob das Handle des Schlüssels von einem untergeordneten Prozess geerbt werden kann. Dieser Parameter ist NULL
standardmäßig (d. h. der Handle kann nicht geerbt werden).
lpdwDisposition
[out] Wenn nicht,NULL
wird entweder REG_CREATED_NEW_KEY
(wenn der Schlüssel nicht vorhanden und erstellt wurde) oder REG_OPENED_EXISTING_KEY
(wenn der Schlüssel vorhanden und geöffnet wurde) abgerufen.
Rückgabewert
Wenn dies erfolgreich ist, wird der Schlüssel zurückgegeben ERROR_SUCCESS
und geöffnet. Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Create
legt das m_hKey
Element auf das Handle dieses Schlüssels fest.
CRegKey::CRegKey
Der Konstruktor.
CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();
Parameter
key
Ein Verweis auf ein CRegKey
-Objekt.
hKey
Ein Handle zu einem Registrierungsschlüssel.
pTM
Zeiger auf CAtlTransactionManager
Objekt
Hinweise
Erstellt ein neues CRegKey
-Objekt. Das Objekt kann aus einem vorhandenen CRegKey
Objekt oder aus einem Handle zu einem Registrierungsschlüssel erstellt werden.
CRegKey::~CRegKey
Der Destruktor.
~CRegKey() throw();
Hinweise
Der Destruktor veröffentlicht m_hKey
.
CRegKey::DeleteSubKey
Rufen Sie diese Methode auf, um den angegebenen Schlüssel aus der Registrierung zu entfernen.
LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();
Parameter
lpszSubKey
Gibt den Namen des zu löschenden Schlüssels an. Dieser Name muss ein Unterschlüssel von m_hKey
.
Rückgabewert
Gibt bei Erfolg ERROR_SUCCESS
zurück. Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
DeleteSubKey
kann nur einen Schlüssel löschen, der keine Unterschlüssel enthält. Wenn der Schlüssel Unterschlüssel enthält, rufen Sie stattdessen auf RecurseDeleteKey
.
CRegKey::DeleteValue
Rufen Sie diese Methode auf, um ein Wertfeld aus m_hKey
.
LONG DeleteValue(LPCTSTR lpszValue) throw();
Parameter
lpszValue
Gibt das zu entfernende Wertfeld an.
Rückgabewert
Gibt bei Erfolg ERROR_SUCCESS
zurück. Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
CRegKey::Detach
Rufen Sie diese Methode auf, um das m_hKey
Elementhandle vom CRegKey
Objekt zu trennen und auf .m_hKey
NULL
HKEY Detach() throw();
Rückgabewert
Der dem Objekt zugeordnete CRegKey
HKEY.
CRegKey::EnumKey
Rufen Sie diese Methode auf, um die Unterschlüssel des geöffneten Registrierungsschlüssels aufzählen zu können.
LONG EnumKey(
DWORD iIndex,
LPTSTR pszName,
LPDWORD pnNameLength,
FILETIME* pftLastWriteTime = NULL) throw();
Parameter
iIndex
Der Unterschlüsselindex. Dieser Parameter sollte für den ersten Aufruf null und dann für nachfolgende Aufrufe erhöht werden.
pszName
Zeigen Sie auf einen Puffer, der den Namen des Unterschlüssels empfängt, einschließlich des endenden NULL-Zeichens. Nur der Name des Unterschlüssels wird in den Puffer kopiert, nicht die vollständige Schlüsselhierarchie.
pnNameLength
Zeigen Sie auf eine Variable, die die Größe des durch den pszName
Parameter angegebenen Puffers ingibtTCHARs
. Diese Größe sollte das endende Nullzeichen enthalten. Wenn die Methode zurückgegeben wird, enthält die Variable, auf pnNameLength
die verwiesen wird, die Anzahl der im Puffer gespeicherten Zeichen. Die zurückgegebene Anzahl enthält nicht das endende Nullzeichen.
pftLastWriteTime
Zeiger auf eine Variable, die den Zeitpunkt empfängt, an dem der aufgezählte Unterschlüssel zuletzt geschrieben wurde.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Rufen Sie zum CRegKey::EnumKey
Aufzählen der Unterschlüssel einen Index von Null auf. Erhöhen Sie den Indexwert, und wiederholen Sie den Vorgang, bis die Methode zurückgegeben wird ERROR_NO_MORE_ITEMS
. Weitere Informationen finden Sie im RegEnumKeyEx
Windows SDK.
CRegKey::Flush
Rufen Sie diese Methode auf, um alle Attribute des geöffneten Registrierungsschlüssels in die Registrierung zu schreiben.
LONG Flush() throw();
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Weitere Informationen finden Sie im RegEnumFlush
Windows SDK.
CRegKey::GetKeySecurity
Rufen Sie diese Methode auf, um eine Kopie des Sicherheitsdeskriptors abzurufen, der den geöffneten Registrierungsschlüssel schützt.
LONG GetKeySecurity(
SECURITY_INFORMATION si,
PSECURITY_DESCRIPTOR psd,
LPDWORD pnBytes) throw();
Parameter
si
Der SECURITY_INFORMATION
Wert, der die angeforderten Sicherheitsinformationen angibt.
psd
Ein Zeiger auf einen Puffer, der eine Kopie des angeforderten Sicherheitsdeskriptors empfängt.
pnBytes
Die Größe des Puffers in Byte, auf den psd
verwiesen wird.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein Nichtzero-Fehlercode in WINERROR.H
.
Hinweise
Weitere Informationen finden Sie unter RegGetKeySecurity
.
CRegKey::m_hKey
Enthält ein Handle des Registrierungsschlüssels, der dem CRegKey
Objekt zugeordnet ist.
HKEY m_hKey;
CRegKey::m_pTM
Zeiger auf ein CAtlTransactionManager
Objekt.
CAtlTransactionManager* m_pTM;
Hinweise
CRegKey::NotifyChangeKeyValue
Diese Methode benachrichtigt den Aufrufer über Änderungen an den Attributen oder Inhalten des geöffneten Registrierungsschlüssels.
LONG NotifyChangeKeyValue(
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
HANDLE hEvent,
BOOL bAsync = TRUE) throw();
Parameter
bWatchSubtree
Gibt ein Kennzeichen an, das angibt, ob Änderungen am angegebenen Schlüssel und alle unterschlüssel oder nur im angegebenen Schlüssel angegeben werden sollen. Wenn dieser Parameter lautet TRUE
, meldet die Methode Änderungen am Schlüssel und seinen Unterschlüsseln. Wenn der Parameter lautet FALSE
, ändert sich die Methode nur im Schlüssel.
dwNotifyFilter
Gibt eine Reihe von Flags an, die steuern, welche Änderungen gemeldet werden sollen. Dieser Parameter kann eine Kombination aus den folgenden Werte sein:
Wert | Bedeutung |
---|---|
REG_NOTIFY_CHANGE_NAME |
Benachrichtigen Sie den Aufrufer, wenn ein Unterschlüssel hinzugefügt oder gelöscht wird. |
REG_NOTIFY_CHANGE_ATTRIBUTES |
Benachrichtigen Sie den Aufrufer über Änderungen an den Attributen des Schlüssels, z. B. die Sicherheitsbeschreibungsinformationen. |
REG_NOTIFY_CHANGE_LAST_SET |
Benachrichtigen Sie den Aufrufer über Änderungen an einem Wert des Schlüssels. Dies kann das Hinzufügen oder Löschen eines Werts oder das Ändern eines vorhandenen Werts umfassen. |
REG_NOTIFY_CHANGE_SECURITY |
Benachrichtigen Sie den Aufrufer über Änderungen an der Sicherheitsbeschreibung des Schlüssels. |
hEvent
Handle für ein Ereignis. Wenn der bAsync
Parameter lautet TRUE
, gibt die Methode sofort zurück und Änderungen werden durch Signalisieren dieses Ereignisses gemeldet. Ist bAsync
dies FALSE
der Fehler , hEvent
wird ignoriert.
bAsync
Gibt ein Flag an, das angibt, wie sich die Methode ändert. Wenn dieser Parameter lautet TRUE
, gibt die Methode sofort zurück und meldet Änderungen durch Signalisieren des angegebenen Ereignisses. Wenn dieser Parameter lautet FALSE
, wird die Methode erst zurückgegeben, wenn eine Änderung erfolgt ist. Wenn hEvent
kein gültiges Ereignis angegeben wird, kann der bAsync
Parameter nicht sein TRUE
.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Hinweis
Diese Methode benachrichtigt den Aufrufer nicht, wenn der angegebene Schlüssel gelöscht wird.
Weitere Details und ein Beispielprogramm finden Sie unter RegNotifyChangeKeyValue
.
CRegKey::Open
Rufen Sie diese Methode auf, um den angegebenen Schlüssel zu öffnen und auf das Handle dieses Schlüssels festzulegen m_hKey
.
LONG Open(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
REGSAM samDesired = KEY_READ | KEY_WRITE) throw();
Parameter
hKeyParent
Das Handle einer geöffneten Taste.
lpszKeyName
Gibt den Namen eines zu erstellenden oder geöffneten Schlüssels an. Dieser Name muss ein Unterschlüssel von hKeyParent
.
samDesired
Der Sicherheitszugriff für den Schlüssel. Der Standardwert ist KEY_ALL_ACCESS
. Eine Liste der möglichen Werte und Beschreibungen finden Sie RegCreateKeyEx
im Windows SDK.
Rückgabewert
Wenn dies erfolgreich ist, wird zurückgegeben ERROR_SUCCESS
; andernfalls wird ein fehlerwert ungleich Null angegeben, der in WINERROR.H
.
Hinweise
Wenn der lpszKeyName
Parameter NULL
auf eine leere Zeichenfolge Open
verweist, wird ein neues Handle des durch hKeyParent
den Schlüssel identifizierten Schlüssels geöffnet, aber kein zuvor geöffnetes Handle geschlossen.
Im Gegensatz dazu CRegKey::Create
Open
wird der angegebene Schlüssel nicht erstellt, wenn er nicht vorhanden ist.
CRegKey::operator HKEY
Konvertiert ein CRegKey
Objekt in ein HKEY
.
operator HKEY() const throw();
CRegKey::operator =
Zuweisungsoperator.
CRegKey& operator= (CRegKey& key) throw();
Parameter
key
Der zu kopierende Schlüssel.
Rückgabewert
Gibt einen Verweis auf den neuen Schlüssel zurück.
Hinweise
Dieser Operator wird vom aktuellen Objekt getrennt key
und stattdessen dem CRegKey
Objekt zugewiesen.
CRegKey::QueryBinaryValue
Rufen Sie diese Methode auf, um die Binärdaten für einen angegebenen Wertnamen abzurufen.
LONG QueryBinaryValue(
LPCTSTR pszValueName,
void* pValue,
ULONG* pnBytes) throw();
Parameter
pszValueName
Zeigen Sie auf eine NULL
beendete Zeichenfolge, die den Namen des abzufragenden Werts enthält.
pValue
Zeigen Sie auf einen Puffer, der die Daten des Werts empfängt.
pnBytes
Zeigen Sie auf eine Variable, die die Größe des Puffers in Byte angibt, auf den der pValue
Parameter verweist. Wenn die Methode zurückgegeben wird, enthält diese Variable die Größe der in den Puffer kopierten Daten.
Rückgabewert
Wenn die Methode erfolgreich ist, ERROR_SUCCESS
wird sie zurückgegeben. Wenn die Methode einen Wert nicht lesen kann, wird ein nichtzero-Fehlercode zurückgegeben, der in WINERROR.H
. Wenn die daten, auf die verwiesen wird, nicht vom Typ REG_BINARY
ist, ERROR_INVALID_DATA
wird zurückgegeben.
Hinweise
Diese Methode verwendet RegQueryValueEx
und bestätigt, dass der richtige Datentyp zurückgegeben wird. Weitere Informationen finden Sie unter RegQueryValueEx
.
Wichtig
Mit dieser Methode kann der Aufrufer einen beliebigen Registrierungsspeicherort angeben, der möglicherweise Daten liest, die nicht als vertrauenswürdig eingestuft werden können. Außerdem behandelt die RegQueryValueEx
von dieser Methode verwendete Funktion nicht explizit Zeichenfolgen, die null-beendet sind. Beide Bedingungen sollten durch den aufrufenden Code überprüft werden.
CRegKey::QueryDWORDValue
Rufen Sie diese Methode auf, um die DWORD
Daten für einen angegebenen Wertnamen abzurufen.
LONG QueryDWORDValue(
LPCTSTR pszValueName,
DWORD& dwValue) throw();
Parameter
pszValueName
Zeigen Sie auf eine NULL
beendete Zeichenfolge, die den Namen des abzufragenden Werts enthält.
dwValue
Zeiger auf einen Puffer, der die DWORD
.
Rückgabewert
Wenn die Methode erfolgreich ist, ERROR_SUCCESS
wird sie zurückgegeben. Wenn die Methode einen Wert nicht lesen kann, wird ein nichtzero-Fehlercode zurückgegeben, der in WINERROR.H
. Wenn die daten, auf die verwiesen wird, nicht vom Typ REG_DWORD
ist, ERROR_INVALID_DATA
wird zurückgegeben.
Hinweise
Diese Methode verwendet RegQueryValueEx
und bestätigt, dass der richtige Datentyp zurückgegeben wird. Weitere Informationen finden Sie unter RegQueryValueEx
.
Wichtig
Mit dieser Methode kann der Aufrufer einen beliebigen Registrierungsspeicherort angeben, der möglicherweise Daten liest, die nicht als vertrauenswürdig eingestuft werden können. Außerdem behandelt die RegQueryValueEx
von dieser Methode verwendete Funktion nicht explizit Zeichenfolgen, die null-beendet sind. Beide Bedingungen sollten durch den aufrufenden Code überprüft werden.
CRegKey::QueryGUIDValue
Rufen Sie diese Methode auf, um die GUID-Daten für einen angegebenen Wertnamen abzurufen.
LONG QueryGUIDValue(
LPCTSTR pszValueName,
GUID& guidValue) throw();
Parameter
pszValueName
Zeigen Sie auf eine NULL
beendete Zeichenfolge, die den Namen des abzufragenden Werts enthält.
guidValue
Zeiger auf eine Variable, die die GUID empfängt.
Rückgabewert
Wenn die Methode erfolgreich ist, ERROR_SUCCESS
wird sie zurückgegeben. Wenn die Methode einen Wert nicht lesen kann, wird ein nichtzero-Fehlercode zurückgegeben, der in WINERROR.H
. Wenn die daten, auf die verwiesen wird, keine gültige GUID ist, ERROR_INVALID_DATA
wird zurückgegeben.
Hinweise
Diese Methode verwendet CRegKey::QueryStringValue
und konvertiert die Zeichenfolge mithilfe CLSIDFromString
einer GUID in eine GUID.
Wichtig
Mit dieser Methode kann der Aufrufer einen beliebigen Registrierungsspeicherort angeben, der möglicherweise Daten liest, die nicht als vertrauenswürdig eingestuft werden können.
CRegKey::QueryMultiStringValue
Rufen Sie diese Methode auf, um die Daten mit mehreren Zeichenfolgen für einen angegebenen Wertnamen abzurufen.
LONG QueryMultiStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
Parameter
pszValueName
Zeigen Sie auf eine NULL
beendete Zeichenfolge, die den Namen des abzufragenden Werts enthält.
pszValue
Zeigen Sie auf einen Puffer, der die Daten mit mehreren Zeichenfolgen empfängt. Eine multistring ist ein Array von NULL
-terminated strings, terminated by two null characters.
pnChars
Die Größe des Puffers in TCHARs
, auf den verwiesen wird.pszValue
Wenn die Methode zurückgegeben wird, pnChars
enthält sie die Größe TCHARs
des abgerufenen Multistrings, einschließlich eines endenden Nullzeichens.
Rückgabewert
Wenn die Methode erfolgreich ist, ERROR_SUCCESS
wird sie zurückgegeben. Wenn die Methode einen Wert nicht lesen kann, wird ein nichtzero-Fehlercode zurückgegeben, der in WINERROR.H
. Wenn die daten, auf die verwiesen wird, nicht vom Typ REG_MULTI_SZ
ist, ERROR_INVALID_DATA
wird zurückgegeben.
Hinweise
Diese Methode verwendet RegQueryValueEx
und bestätigt, dass der richtige Datentyp zurückgegeben wird. Weitere Informationen finden Sie unter RegQueryValueEx
.
Wichtig
Mit dieser Methode kann der Aufrufer einen beliebigen Registrierungsspeicherort angeben, der möglicherweise Daten liest, die nicht als vertrauenswürdig eingestuft werden können. Außerdem behandelt die RegQueryValueEx
von dieser Methode verwendete Funktion nicht explizit Zeichenfolgen, die null-beendet sind. Beide Bedingungen sollten durch den aufrufenden Code überprüft werden.
CRegKey::QueryQWORDValue
Rufen Sie diese Methode auf, um die QWORD
Daten für einen angegebenen Wertnamen abzurufen.
LONG QueryQWORDValue(
LPCTSTR pszValueName,
ULONGLONG& qwValue) throw();
Parameter
pszValueName
Zeigen Sie auf eine NULL
beendete Zeichenfolge, die den Namen des abzufragenden Werts enthält.
qwValue
Zeiger auf einen Puffer, der die QWORD
.
Rückgabewert
Wenn die Methode erfolgreich ist, ERROR_SUCCESS
wird sie zurückgegeben. Wenn die Methode einen Wert nicht lesen kann, wird ein nichtzero-Fehlercode zurückgegeben, der in WINERROR.H
. Wenn die daten, auf die verwiesen wird, nicht vom Typ REG_QWORD
ist, ERROR_INVALID_DATA
wird zurückgegeben.
Hinweise
Diese Methode verwendet RegQueryValueEx
und bestätigt, dass der richtige Datentyp zurückgegeben wird. Weitere Informationen finden Sie unter RegQueryValueEx
.
Wichtig
Mit dieser Methode kann der Aufrufer einen beliebigen Registrierungsspeicherort angeben, der möglicherweise Daten liest, die nicht als vertrauenswürdig eingestuft werden können. Außerdem behandelt die RegQueryValueEx
von dieser Methode verwendete Funktion nicht explizit Zeichenfolgen, die null-beendet sind. Beide Bedingungen sollten durch den aufrufenden Code überprüft werden.
CRegKey::QueryStringValue
Rufen Sie diese Methode auf, um die Zeichenfolgendaten für einen angegebenen Wertnamen abzurufen.
LONG QueryStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
Parameter
pszValueName
Zeigen Sie auf eine NULL
beendete Zeichenfolge, die den Namen des abzufragenden Werts enthält.
pszValue
Zeigen Sie auf einen Puffer, der die Zeichenfolgendaten empfängt.
pnChars
Die Größe des Puffers in TCHARs, auf den pszValue
verwiesen wird. Wenn die Methode zurückgegeben wird, pnChars
enthält sie die Größe TCHARs
der abgerufenen Zeichenfolge, einschließlich eines endenden Nullzeichens.
Rückgabewert
Wenn die Methode erfolgreich ist, ERROR_SUCCESS
wird sie zurückgegeben. Wenn die Methode einen Wert nicht lesen kann, wird ein nichtzero-Fehlercode zurückgegeben, der in WINERROR.H
. Wenn die daten, auf die verwiesen wird, nicht vom Typ REG_SZ
ist, ERROR_INVALID_DATA
wird zurückgegeben. Wenn die Methode " pnChars
Null" zurückgibtERROR_MORE_DATA
, nicht die erforderliche Puffergröße in Byte.
Hinweise
Diese Methode verwendet RegQueryValueEx
und bestätigt, dass der richtige Datentyp zurückgegeben wird. Weitere Informationen finden Sie unter RegQueryValueEx
.
Wichtig
Mit dieser Methode kann der Aufrufer einen beliebigen Registrierungsspeicherort angeben, der möglicherweise Daten liest, die nicht als vertrauenswürdig eingestuft werden können. Außerdem behandelt die RegQueryValueEx
von dieser Methode verwendete Funktion nicht explizit Zeichenfolgen, die null-beendet sind. Beide Bedingungen sollten durch den aufrufenden Code überprüft werden.
CRegKey::QueryValue
Rufen Sie diese Methode auf, um die Daten für das angegebene Wertfeld von m_hKey
abzurufen. Frühere Versionen dieser Methode werden nicht mehr unterstützt und als ATL_DEPRECATED
gekennzeichnet.
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);
Parameter
pszValueName
Zeigen Sie auf eine NULL
beendete Zeichenfolge, die den Namen des abzufragenden Werts enthält. Wenn pszValueName
es NULL
sich um eine leere Zeichenfolge handelt, ""
ruft die Methode ggf. den Typ und die Daten für den unbenannten oder Standardwert des Schlüssels ab.
pdwType
Zeiger auf eine Variable, die einen Code empfängt, der den Datentyp angibt, der im angegebenen Wert gespeichert ist. Der pdwType
Parameter kann sein NULL
, wenn der Typcode nicht erforderlich ist.
pData
Zeigen Sie auf einen Puffer, der die Daten des Werts empfängt. Dieser Parameter kann sein NULL
, wenn die Daten nicht erforderlich sind.
pnBytes
Zeigen Sie auf eine Variable, die die Größe des Puffers in Byte angibt, auf den der pData
Parameter verweist. Wenn die Methode zurückgegeben wird, enthält diese Variable die Größe der in pData
.
dwValue
Die numerischen Daten des Wertfelds.
lpszValueName
Gibt das wertfeld an, das abgefragt werden soll.
szValue
Die Zeichenfolgendaten des Wertfelds.
pdwCount
Die Größe der Zeichenfolgendaten. Der Wert wird zunächst auf die Größe des szValue
Puffers festgelegt.
Rückgabewert
Wenn dies erfolgreich ist, wird zurückgegeben ERROR_SUCCESS
; andernfalls wird ein fehlercode ungleich Null zurückgegeben, der in WINERROR.H
.
Hinweise
Die beiden originalen Versionen von QueryValue
werden nicht mehr unterstützt und als gekennzeichnet.ATL_DEPRECATED
Der Compiler gibt eine Warnung aus, wenn diese Formulare verwendet werden.
Die verbleibende Methode ruft auf RegQueryValueEx
.
Wichtig
Mit dieser Methode kann der Aufrufer einen beliebigen Registrierungsspeicherort angeben, der möglicherweise Daten liest, die nicht als vertrauenswürdig eingestuft werden können. Außerdem behandelt die RegQueryValueEx
von dieser Methode verwendete Funktion nicht explizit Zeichenfolgen, die null-beendet sind. Beide Bedingungen sollten durch den aufrufenden Code überprüft werden.
CRegKey::RecurseDeleteKey
Rufen Sie diese Methode auf, um den angegebenen Schlüssel aus der Registrierung zu entfernen und explizit alle Unterschlüssel zu entfernen.
LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();
Parameter
lpszKey
Gibt den Namen des zu löschenden Schlüssels an. Dieser Name muss ein Unterschlüssel von m_hKey
.
Rückgabewert
Wenn dies erfolgreich ist, wird zurückgegeben ERROR_SUCCESS
; andernfalls wird ein fehlerwert ungleich Null angegeben, der in WINERROR.H
.
Hinweise
Wenn der Schlüssel Unterschlüssel enthält, müssen Sie diese Methode aufrufen, um den Schlüssel zu löschen.
CRegKey::SetBinaryValue
Rufen Sie diese Methode auf, um den binären Wert des Registrierungsschlüssels festzulegen.
LONG SetBinaryValue(
LPCTSTR pszValueName,
const void* pValue,
ULONG nBytes) throw();
Parameter
pszValueName
Zeiger zu einer Zeichenfolge, die den Namen des festzulegenden Wert enthält. Wenn ein Wert mit diesem Namen noch nicht vorhanden ist, fügt die Methode ihn dem Schlüssel hinzu.
pValue
Zeigen Sie auf einen Puffer, der die zu speichernden Daten mit dem angegebenen Wertnamen enthält.
nBytes
Gibt die Größe der informationen in Byte an, auf die der pValue
Parameter verweist.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Diese Methode verwendet RegSetValueEx
, um den Wert in die Registrierung zu schreiben.
CRegKey::SetDWORDValue
Rufen Sie diese Methode auf, um den DWORD
Wert des Registrierungsschlüssels festzulegen.
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();
Parameter
pszValueName
Zeiger zu einer Zeichenfolge, die den Namen des festzulegenden Wert enthält. Wenn ein Wert mit diesem Namen noch nicht vorhanden ist, fügt die Methode ihn dem Schlüssel hinzu.
dwValue
Die DWORD
Daten, die mit dem angegebenen Wertnamen gespeichert werden sollen.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Diese Methode verwendet RegSetValueEx
, um den Wert in die Registrierung zu schreiben.
CRegKey::SetGUIDValue
Rufen Sie diese Methode auf, um den GUID-Wert des Registrierungsschlüssels festzulegen.
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();
Parameter
pszValueName
Zeiger zu einer Zeichenfolge, die den Namen des festzulegenden Wert enthält. Wenn ein Wert mit diesem Namen noch nicht vorhanden ist, fügt die Methode ihn dem Schlüssel hinzu.
guidValue
Verweisen auf die GUID, die mit dem angegebenen Wertnamen gespeichert werden soll.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Diese Methode verwendet CRegKey::SetStringValue
und konvertiert die GUID in eine Zeichenfolge mit StringFromGUID2
.
CRegKey::SetKeyValue
Rufen Sie diese Methode auf, um Daten in einem angegebenen Wertfeld eines angegebenen Schlüssels zu speichern.
LONG SetKeyValue(
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL) throw();
Parameter
lpszKeyName
Gibt den Namen des zu erstellenden oder geöffneten Schlüssels an. Dieser Name muss ein Unterschlüssel von m_hKey
.
lpszValue
Gibt die zu speichernden Daten an. Dieser Parameter muss nicht seinNULL
.
lpszValueName
Gibt das festzulegende Wertfeld an. Wenn im Schlüssel noch kein Wertfeld mit diesem Namen vorhanden ist, wird es hinzugefügt.
Rückgabewert
Wenn dies erfolgreich ist, wird zurückgegeben ERROR_SUCCESS
; andernfalls wird ein fehlercode ungleich Null zurückgegeben, der in WINERROR.H
.
Hinweise
Rufen Sie diese Methode auf, um den lpszKeyName
Schlüssel zu erstellen oder zu öffnen und die lpszValue
Daten im lpszValueName
Wertfeld zu speichern.
CRegKey::SetKeySecurity
Rufen Sie diese Methode auf, um die Sicherheit des Registrierungsschlüssels festzulegen.
LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();
Parameter
si
Gibt die Komponenten des festzulegenden Sicherheitsdeskriptors an. Der Wert kann eine Kombination der folgenden Werte sein:
Wert | Bedeutung |
---|---|
DACL_SECURITY_INFORMATION |
Legt die diskrete Zugriffssteuerungsliste (Access Control List, DACL) des Schlüssels fest. Der Schlüssel muss Zugriff haben WRITE_DAC , oder der aufrufende Prozess muss der Besitzer des Objekts sein. |
GROUP_SECURITY_INFORMATION |
Legt die primäre Gruppensicherheits-ID (SID) des Schlüssels fest. Der Schlüssel muss Zugriff haben WRITE_OWNER , oder der aufrufende Prozess muss der Besitzer des Objekts sein. |
OWNER_SECURITY_INFORMATION |
Legt die SID des Schlüsselbesitzers fest. Der Schlüssel muss Zugriff haben WRITE_OWNER , oder der aufrufende Prozess muss der Besitzer des Objekts sein oder die SE_TAKE_OWNERSHIP_NAME Berechtigung aktiviert haben. |
SACL_SECURITY_INFORMATION |
Legt die Systemzugriffssteuerungsliste (SACL) des Schlüssels fest. Der Schlüssel muss Zugriff haben ACCESS_SYSTEM_SECURITY . Die richtige Möglichkeit, diesen Zugriff zu erhalten, besteht darin, die SE_SECURITY_NAME Berechtigungen im aktuellen Zugriffstoken des Aufrufers zu aktivieren, das Handle für ACCESS_SYSTEM_SECURITY den Zugriff zu öffnen und dann die Berechtigung zu deaktivieren. |
psd
Zeigen Sie auf eine SECURITY_DESCRIPTOR
Struktur, die die für den angegebenen Schlüssel festzulegenden Sicherheitsattribute angibt.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Legt die Sicherheitsattribute des Schlüssels fest. Weitere Informationen finden Sie unter RegSetKeySecurity
.
CRegKey::SetMultiStringValue
Rufen Sie diese Methode auf, um den Multistring-Wert des Registrierungsschlüssels festzulegen.
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();
Parameter
pszValueName
Zeiger zu einer Zeichenfolge, die den Namen des festzulegenden Wert enthält. Wenn ein Wert mit diesem Namen noch nicht vorhanden ist, fügt die Methode ihn dem Schlüssel hinzu.
pszValue
Zeigen Sie auf die Daten mit mehreren Zeichenfolgen, die mit dem angegebenen Wertnamen gespeichert werden sollen. Eine multistring ist ein Array von NULL
-terminated strings, terminated by two null characters.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Diese Methode verwendet RegSetValueEx
, um den Wert in die Registrierung zu schreiben.
CRegKey::SetQWORDValue
Rufen Sie diese Methode auf, um den QWORD
Wert des Registrierungsschlüssels festzulegen.
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();
Parameter
pszValueName
Zeiger zu einer Zeichenfolge, die den Namen des festzulegenden Wert enthält. Wenn ein Wert mit diesem Namen noch nicht vorhanden ist, fügt die Methode ihn dem Schlüssel hinzu.
qwValue
Die QWORD
Daten, die mit dem angegebenen Wertnamen gespeichert werden sollen.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Diese Methode verwendet RegSetValueEx
, um den Wert in die Registrierung zu schreiben.
CRegKey::SetStringValue
Rufen Sie diese Methode auf, um den Zeichenfolgenwert des Registrierungsschlüssels festzulegen.
LONG SetStringValue(
LPCTSTR pszValueName,
LPCTSTR pszValue,
DWORD dwType = REG_SZ) throw();
Parameter
pszValueName
Zeiger zu einer Zeichenfolge, die den Namen des festzulegenden Wert enthält. Wenn ein Wert mit diesem Namen noch nicht vorhanden ist, fügt die Methode ihn dem Schlüssel hinzu.
pszValue
Zeiger zu den mit dem angegebenen Wertnamen zu speichernden Zeichenfolgendaten.
dwType
Der Typ der Zeichenfolge, die in die Registrierung geschrieben werden soll: entweder REG_SZ
(standard) oder REG_EXPAND_SZ
(für Mehrere Zeichenfolgen).
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESS
der Rückgabewert . Wenn die Methode fehlschlägt, ist der Rückgabewert ein fehlercode ungleich Null, der in WINERROR.H
.
Hinweise
Diese Methode verwendet RegSetValueEx
, um den Wert in die Registrierung zu schreiben.
CRegKey::SetValue
Rufen Sie diese Methode auf, um Daten im angegebenen Wertfeld von m_hKey
. Frühere Versionen dieser Methode werden nicht mehr unterstützt und als ATL_DEPRECATED
gekennzeichnet.
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);
Parameter
pszValueName
Zeiger zu einer Zeichenfolge, die den Namen des festzulegenden Wert enthält. Wenn ein Wert mit diesem Namen noch nicht im Schlüssel vorhanden ist, fügt die Methode ihn dem Schlüssel hinzu. Wenn pszValueName
es NULL
sich um eine leere Zeichenfolge handelt, ""
legt die Methode den Typ und die Daten für den unbenannten oder Standardwert des Schlüssels fest.
dwType
Gibt einen Code an, der den Datentyp angibt, auf den der pValue
Parameter verweist.
pValue
Zeigen Sie auf einen Puffer, der die zu speichernden Daten mit dem angegebenen Wertnamen enthält.
nBytes
Gibt die Größe der informationen in Byte an, auf die der pValue
Parameter verweist. Wenn die Daten vom Typ REG_SZ
, REG_EXPAND_SZ
oder REG_MULTI_SZ
, nBytes
müssen die Größe des endenden NULL-Zeichens enthalten.
hKeyParent
Das Handle einer geöffneten Taste.
lpszKeyName
Gibt den Namen eines zu erstellenden oder geöffneten Schlüssels an. Dieser Name muss ein Unterschlüssel von hKeyParent
.
lpszValue
Gibt die zu speichernden Daten an. Dieser Parameter muss nicht seinNULL
.
lpszValueName
Gibt das festzulegende Wertfeld an. Wenn im Schlüssel noch kein Wertfeld mit diesem Namen vorhanden ist, wird es hinzugefügt.
dwValue
Gibt die zu speichernden Daten an.
bMulti
Wenn false, gibt die Zeichenfolge vom Typ REG_SZ
an. Wenn true, gibt an, dass die Zeichenfolge eine Multizeichenfolge vom Typ REG_MULTI_SZ
ist.
nValueLen
Wenn bMulti
wahr, nValueLen
ist die Länge der lpszValue
Zeichenfolge in Zeichen. Ist bMulti
"false" angegeben, gibt der Wert "-1" an, dass die Methode die Länge automatisch berechnet.
Rückgabewert
Wenn dies erfolgreich ist, wird zurückgegeben ERROR_SUCCESS
; andernfalls wird ein fehlercode ungleich Null zurückgegeben, der in WINERROR.H
.
Hinweise
Die beiden originalen Versionen von SetValue
sind als ATL_DEPRECATED
und sollten nicht mehr verwendet werden. Der Compiler gibt eine Warnung aus, wenn diese Formulare verwendet werden.
Die dritte Methode ruft auf RegSetValueEx
.