SHRegGetValueA-Funktion (shlwapi.h)
[SHRegGetValue kann in nachfolgenden Versionen des Betriebssystems oder Produkts geändert oder nicht verfügbar sein. Verwenden Sie RegGetValue- an seiner Stelle.]
Ruft einen Registrierungswert ab.
Syntax
LSTATUS SHRegGetValueA(
[in] HKEY hkey,
[in] LPCSTR pszSubKey,
[in] LPCSTR pszValue,
[in] SRRF srrfFlags,
[in, out] DWORD *pdwType,
[out] void *pvData,
[in, out] DWORD *pcbData
);
Parameter
[in] hkey
Typ: HKEY-
Ein Handle für den aktuell geöffneten Schlüssel oder einen der folgenden vordefinierten Werte.
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS
[in] pszSubKey
Typ: LPCTSTR-
Ein Zeiger auf eine NULL--terminated-Zeichenfolge, die den relativen Pfad von hkey- zum Unterschlüssel angibt, aus dem der Wert abgerufen werden soll. Dieser Parameter kann NULL- oder eine leere Zeichenfolge sein. In diesem Fall werden die Daten aus dem hkey Speicherort abgerufen.
[in] pszValue
Typ: LPCTSTR-
Ein Zeiger auf eine NULL--terminated-Zeichenfolge, die den Namen des Werts enthält. Dieser Parameter kann NULL- oder eine leere Zeichenfolge sein, in diesem Fall werden die Daten aus dem Standardwert abgerufen.
[in] srrfFlags
Typ: SRRF-
Mindestens ein SRRF- Flags, mit denen die abzurufenden Daten eingeschränkt werden. Es muss mindestens ein Typeinschränkungswert (SRRF_RT) angegeben werden.
[in, out] pdwType
Typ: LPDWORD-
Ein Zeiger auf eine DWORD-, die den Datentyp empfängt, der im abgerufenen Wert gespeichert ist. Bei Verwendung von Standardwerten ist die Eingabe pdwType- der Typ des Standardwerts. Mögliche Werte finden Sie unter Registrierungsdatentypen. Wenn das SRRF_NOEXPAND Flag nicht festgelegt ist, werden REG_EXPAND_SZ Typen automatisch erweitert und als REG_SZ zurückgegeben. Wenn Typinformationen nicht erforderlich sind, kann dieser Parameter NULL-werden.
[out] pvData
Typ: LPVOID-
Ein Zeiger auf einen Puffer, der die Daten des Werts empfängt. Dieser Parameter kann NULL- werden, wenn die Daten nicht benötigt werden. Wenn Sie beispielsweise nur auf das Vorhandensein eines Werts testen würden, wären die spezifischen Wertdaten überflüssig.
[in, out] pcbData
Typ: LPDWORD-
Ein Zeiger auf eine DWORD-, die beim Eintrag die Größe des Zieldatenpuffers pvData-in Byte enthält. Dieser Wert kann nur NULL- werden, wenn pvData-NULL-ist. Beim Verlassen zeigt pcbData auf einen dieser Werte.
pvData | Rückgabewert | pcbData |
---|---|---|
NULL- | ERROR_SUCCESS | Größe in Bytes, die ausreichen, um die Registrierungsdaten zu enthalten. Beachten Sie, dass dies nicht garantiert die genaue Größe, sondern nur eine ausreichende Größe ist. |
NichtNULL- | ERROR_SUCCESS | Genaue Anzahl von Bytes, die in pvData-geschrieben wurden. |
NichtNULL- | ERROR_MORE_DATA | Größe in Bytes, die zum Halten der gesamten Daten erforderlich sind. Beachten Sie, dass dies nicht garantiert die genaue Größe, sondern nur eine ausreichende Größe ist. |
Rückgabewert
Typ: LSTATUS-
Gibt ERROR_SUCCESS zurück, wenn dies erfolgreich ist, oder wenn der Fehlercode nicht in Winerror.h definiert ist. Sie können die FormatMessage--Funktion mit dem FORMAT_MESSAGE_FROM_SYSTEM Flag verwenden, um eine allgemeine Beschreibung des Fehlers abzurufen.
Bemerkungen
SHRegGetValue bietet die Datentypüberprüfung, Startmodusüberprüfung, automatische Erweiterung REG_EXPAND_SZ Daten und garantierte NULL--Beendigung von REG_SZ, REG_EXPAND_SZ und REG_MULTI_SZ Daten.
Der von hkey- identifizierte Schlüssel muss mit KEY_QUERY_VALUE Sicherheitszugriff geöffnet worden sein. Wenn pszSubKey- nicht NULL- oder eine leere Zeichenfolge ist, muss dieser Schlüssel auch mit KEY_QUERY_VALUE Sicherheitszugriff im aktuellen aufrufenden Kontext geöffnet werden können.
Wenn der Datentyp REG_SZ, REG_EXPAND_SZ oder REG_MULTI_SZ ist, enthält oder berücksichtigt jede zurückgegebene Daten die null-termination der Zeichenfolge. Wenn beispielsweise pvData- nicht NULL-ist, werden die in diesem Puffer zurückgegebenen Daten NULL--terminated. Wenn pcbData- nicht NULL-ist, enthält die Puffergröße, die darauf verweist, die Bytes, die zum Speichern des Endzeichens Null zeichen erforderlich sind.
Sofern das SRRF_NOEXPAND Flag nicht festgelegt ist, werden Zeichenfolgendaten vom Typ REG_EXPAND_SZ automatisch erweitert, bevor sie zurückgegeben werden. Der Typ der erweiterten Zeichenfolge wird in pdwType als REG_SZ gemeldet, der pcbData Parameter verweist auf die Anzahl der Bytes, die für die erweiterte Zeichenfolge geschrieben wurden, und der Puffer, auf den pvData- verweist, enthält die erweiterte Version der Zeichenfolge.
Leistungshinweise
Wenn pszSubKey nicht NULL- oder eine leere Zeichenfolge ist, wird dieser Schlüssel bei jedem Zugriff durch diese Funktion geöffnet und geschlossen. Wenn Ihre Anwendung eine Reihe von Werten aus demselben Unterschlüssel abrufen muss, sehen Sie eine bessere Leistung, indem Sie den Schlüssel mithilfe RegOpenKeyEx- öffnen, bevor Sie SHRegGetValueaufrufen. Verwenden Sie den schlüssel, der im phkResult Parameter von RegOpenKeyEx als hkey Parameter in dieser Funktion zurückgegeben wird, wobei pszSubKey auf NULL-festgelegt ist.Das Potenzial für einen zusätzlichen Aufruf der Registrierung zum Lesen oder erneuten Lesen der Daten ist vorhanden, wenn der Datentyp REG_EXPAND_SZ ist und das SRRF_NOEXPAND Flag nicht festgelegt wurde. Die folgenden Bedingungen führen zu diesem zusätzlichen Aufruf.
- pvData- ist NULL, pcbData- ist nicht NULL-. Obwohl die Daten nicht abgerufen werden, muss die Registrierung gelesen werden, um die Zeichenfolge abzurufen und diese Zeichenfolge erweitert, um die erforderliche Größe des Datenpuffers zu ermitteln.
- pvData- ist nicht NULL-, sondern zu klein, um die Daten zu speichern. Die Daten werden erneut gelesen, um die vollständige Zeichenfolge abzurufen, die Zeichenfolge wird erweitert, und die gesamt erforderliche Größe wird bestimmt.
Anmerkung
Der Header "shlwapi.h" definiert SHRegGetValue als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP mit SP2 [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | shlwapi.h |
Library | Shlwapi.lib |
DLL- | Shlwapi.dll (Version 6.0 oder höher) |