Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 hKeyfestlegen. |
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 hKeyParentvorhanden 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_hKeyabzurufen. Frühere Versionen dieser Methode werden nicht mehr unterstützt und als ATL_DEPRECATEDgekennzeichnet. |
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_DEPRECATEDgekennzeichnet. |
Ö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::Openbeispielsweise auf, um einen bestimmten Registrierungsschlüssel zu öffnen. Zum Abrufen oder Ändern eines Datenwerts rufen Sie bzw. einen Datenwert CRegKey::QueryValue CRegKey::SetValueauf. Rufen Sie auf, um CRegKey::Closeeine 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 hKeyfestlegen.
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 hKeyParentvorhanden 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_SUCCESSder 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_SUCCESSder 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 psdverwiesen wird.
Rückgabewert
Wenn die Methode erfolgreich ist, lautet ERROR_SUCCESSder 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 FALSEder 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_SUCCESSder 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 hKeyParentden Schlüssel identifizierten Schlüssels geöffnet, aber kein zuvor geöffnetes Handle geschlossen.
Im Gegensatz dazu CRegKey::CreateOpen 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 NULLbeendete 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_BINARYist, 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 NULLbeendete 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_DWORDist, 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 NULLbeendete 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 CLSIDFromStringeiner 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 NULLbeendete 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 TCHARsdes 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_SZist, 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 NULLbeendete 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_QWORDist, 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 NULLbeendete 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 pszValueverwiesen wird. Wenn die Methode zurückgegeben wird, pnChars enthält sie die Größe TCHARsder 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_SZist, 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_hKeyabzurufen. Frühere Versionen dieser Methode werden nicht mehr unterstützt und als ATL_DEPRECATEDgekennzeichnet.
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 NULLbeendete 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_SUCCESSder 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_SUCCESSder 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_SUCCESSder 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_SUCCESSder 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_SUCCESSder 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_SUCCESSder 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_SUCCESSder 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_DEPRECATEDgekennzeichnet.
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_SZoder 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_SZan. Wenn true, gibt an, dass die Zeichenfolge eine Multizeichenfolge vom Typ REG_MULTI_SZist.
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.