GetPrivateProfileStructW-Funktion (winbase.h)
Ruft die daten ab, die einem Schlüssel im angegebenen Abschnitt einer Initialisierungsdatei zugeordnet sind. Beim Abrufen der Daten berechnet die Funktion eine Prüfsumme und vergleicht sie mit der Prüfsumme, die durch die WritePrivateProfileStruct Funktion berechnet wird, wenn die Daten der Datei hinzugefügt wurden.
Syntax
BOOL GetPrivateProfileStructW(
[in] LPCWSTR lpszSection,
[in] LPCWSTR lpszKey,
[out] LPVOID lpStruct,
[in] UINT uSizeStruct,
[in] LPCWSTR szFile
);
Parameter
[in] lpszSection
Der Name des Abschnitts in der Initialisierungsdatei.
[in] lpszKey
Der Name des Schlüssels, dessen Daten abgerufen werden sollen.
[out] lpStruct
Ein Zeiger auf den Puffer, der die mit der Datei, dem Abschnitt und den Schlüsselnamen verknüpften Daten empfängt.
[in] uSizeStruct
Die Größe des Puffers, auf den der lpStruct-Parameter in Byte verweist.
[in] szFile
Der Name der Initialisierungsdatei. Wenn dieser Parameter keinen vollständigen Pfad zur Datei enthält, sucht das System im Windows-Verzeichnis nach der Datei.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null.
Bemerkungen
Ein Abschnitt in der Initialisierungsdatei muss das folgende Formular aufweisen:
[section]
key=data
.
.
.
Das System ordnet die meisten .ini Dateiverweise der Registrierung zu, wobei die unter dem folgenden Registrierungsschlüssel definierte Zuordnung verwendet wird:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping
Diese Zuordnung ist wahrscheinlich, wenn eine Anwendung Systemkomponenteninitialisierungsdateien wie Control.ini, System.iniund Winfile.iniändert. In diesen Fällen ruft die Funktion Informationen aus der Registrierung ab, nicht aus der Initialisierungsdatei; die Änderung am Speicherort hat keine Auswirkungen auf das Verhalten der Funktion.
Die Profilfunktionen verwenden die folgenden Schritte, um Initialisierungsinformationen zu finden:
- Suchen Sie in der Registrierung nach dem Namen der Initialisierungsdatei, z. B. MyFile.ini, unter IniFileMapping.
- Suchen Sie nach dem durch lpAppNameangegebenen Abschnittsnamen. Dies ist ein benannter Wert unter myfile.inioder ein Unterschlüssel von myfile.inioder ist nicht vorhanden.
- Wenn der durch lpAppName angegebene Abschnittsname ein benannter Wert unter myfile.iniist, gibt dieser Wert an, wo in der Registrierung die Schlüssel für den Abschnitt gefunden werden.
- Wenn der durch lpAppName angegebene Abschnittsname ein Unterschlüssel von myfile.iniist, geben benannte Werte unter diesem Unterschlüssel an, wo in der Registrierung die Schlüssel für den Abschnitt gefunden werden. Wenn der gesuchte Schlüssel nicht als benannter Wert vorhanden ist, gibt es einen unbenannten Wert (wie <No Name>), der den Standardspeicherort in der Registrierung angibt, an dem Sie den Schlüssel finden.
- Wenn der durch lpAppName angegebene Abschnittsname nicht als benannter Wert oder als Unterschlüssel unter myfile.inivorhanden ist, gibt es unter myfile.ini einen unbenannten Wert (wie <No Name>), der den Standardspeicherort in der Registrierung angibt, in dem Sie die Schlüssel für den Abschnitt finden.
- Wenn kein myfile.ini Unterschlüssel vorhanden ist oder wenn er keinen Eintrag für den Abschnittsnamen enthält, suchen Sie nach dem tatsächlichen MyFile.ini auf dem Datenträger, und lesen Sie dessen Inhalt.
- ! - Dieses Zeichen zwingt alle Schreibvorgänge, sowohl zur Registrierung als auch zur .ini Datei auf dem Datenträger zu wechseln.
- # - Dieses Zeichen bewirkt, dass der Registrierungswert auf den Wert in der Windows 3.1-.ini-Datei festgelegt wird, wenn sich ein neuer Benutzer nach dem Setup zum ersten Mal anmeldet.
- @ - Dieses Zeichen verhindert, dass lesevorgänge zur .ini Datei auf dem Datenträger wechseln, wenn die angeforderten Daten in der Registrierung nicht gefunden werden.
- USR: - Dieses Präfix steht für HKEY_CURRENT_USER, und der Text nach dem Präfix ist relativ zu diesem Schlüssel.
- SYS: - Dieses Präfix steht für HKEY_LOCAL_MACHINE\SOFTWAREund der Text nach dem Präfix relativ zu diesem Schlüssel.
Anmerkung
Der winbase.h-Header definiert GetPrivateProfileStruct als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winbase.h (enthalten Windows.h) |
Library | Kernel32.lib |
DLL- | Kernel32.dll |