Freigeben über


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 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.

Siehe auch

DCOM-Beispiel
Klassenübersicht