Freigeben über


GetPrivateProfileSection-Funktion (winbase.h)

Ruft alle Schlüssel und Werte für den angegebenen Abschnitt einer Initialisierungsdatei ab.

Hinweis Diese Funktion wird nur zur Kompatibilität mit 16-Bit-Anwendungen bereitgestellt, die für Windows geschrieben wurden. Anwendungen sollten Initialisierungsinformationen in der Registrierung speichern.
 

Syntax

DWORD GetPrivateProfileSection(
  [in]  LPCTSTR lpAppName,
  [out] LPTSTR  lpReturnedString,
  [in]  DWORD   nSize,
  [in]  LPCTSTR lpFileName
);

Parameter

[in] lpAppName

Der Name des Abschnitts in der Initialisierungsdatei.

[out] lpReturnedString

Ein Zeiger auf einen Puffer, der die Schlüsselnamen- und Wertpaare empfängt, die dem benannten Abschnitt zugeordnet sind. Der Puffer wird mit einer oder mehreren NULL-Zeichenfolgen gefüllt. auf die letzte Zeichenfolge folgt ein zweites NULL-Zeichen.

[in] nSize

Die Größe des Puffers, auf den der parameter lpReturnedString in Zeichen verweist.

Die maximale Profilabschnittsgröße beträgt 32.767 Zeichen.

[in] lpFileName

Der Name der Initialisierungsdatei. Wenn dieser Parameter keinen vollständigen Pfad zur Datei enthält, sucht das System nach der Datei im Windows-Verzeichnis.

Rückgabewert

Der Rückgabewert gibt die Anzahl der Zeichen an, die in den Puffer kopiert wurden, ohne das beendende NULL-Zeichen. Wenn der Puffer nicht groß genug ist, um alle Schlüsselnamen- und Wertpaare zu enthalten, die dem benannten Abschnitt zugeordnet sind, ist der Rückgabewert gleich nSize minus 2.

Hinweise

Die Daten im Puffer, auf den der lpReturnedString-Parameter verweist, bestehen aus mindestens einer NULL-Zeichenfolge, gefolgt von einem abschließenden NULL-Zeichen. Jede Zeichenfolge hat das folgende Format:

Schlüssel=Schnur

Bei der GetPrivateProfileSection-Funktion wird die Groß-/Kleinschreibung nicht beachtet. Die Zeichenfolge, auf die der parameter lpAppName verweist, kann eine Kombination aus Groß- und Kleinbuchstaben sein.

Dieser Vorgang ist atomar; Es sind keine Aktualisierungen der angegebenen Initialisierungsdatei zulässig, während die Schlüsselnamen- und Wertpaare für den Abschnitt in den Puffer kopiert werden, auf den der lpReturnedString-Parameter verweist.

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.ini und Winfile.ini ändert. In diesen Fällen ruft die Funktion Informationen aus der Registrierung ab, nicht aus der Initialisierungsdatei. die Änderung des Speicherorts hat keine Auswirkungen auf das Verhalten der Funktion.

Die Profilfunktionen verwenden die folgenden Schritte, um Initialisierungsinformationen zu suchen:

  1. Suchen Sie in der Registrierung nach dem Namen der Initialisierungsdatei unter dem Schlüssel IniFileMapping .
  2. Suchen Sie nach dem von lpAppName angegebenen Abschnittsnamen. Dies ist ein benannter Wert unter dem Schlüssel, der den Namen der Initialisierungsdatei enthält, oder ein Unterschlüssel mit diesem Namen, oder der Name ist weder als Wert noch als Unterschlüssel vorhanden.
  3. Wenn der von lpAppName angegebene Abschnittsname ein benannter Wert ist, gibt dieser Wert an, wo sie in der Registrierung die Schlüssel für den Abschnitt finden.
  4. Wenn der von lpAppName angegebene Abschnittsname ein Unterschlüssel ist, geben benannte Werte unter diesem Unterschlüssel an, wo sie in der Registrierung die Schlüssel für den Abschnitt finden. Wenn der gesuchte Schlüssel nicht als benannter Wert vorhanden ist, gibt es einen unbenannten Wert (als <Kein Name>), der den Standardspeicherort in der Registrierung angibt, in der Sie den Schlüssel finden.
  5. Wenn der von lpAppName angegebene Abschnittsname nicht als benannter Wert oder als Unterschlüssel vorhanden ist, gibt es einen unbenannten Wert (als No Name>)< an, der den Standardspeicherort in der Registrierung angibt, an dem Sie die Schlüssel für den Abschnitt finden.
  6. Wenn kein Unterschlüssel oder Eintrag für den Abschnittsnamen vorhanden ist, suchen Sie nach der tatsächlichen Initialisierungsdatei auf dem Datenträger, und lesen Sie den Inhalt.
Beim Betrachten von Werten in der Registrierung, die andere Registrierungsspeicherorte angeben, gibt es mehrere Präfixe, die das Verhalten der .ini Dateizuordnung ändern:
  • ! – Dieses Zeichen erzwingt, dass alle Schreibvorgänge sowohl zur Registrierung als auch zur .ini Datei auf dem Datenträger gelangen.
  • # : 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 nicht in der Registrierung 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\SOFTWARE, und der Text nach dem Präfix ist relativ zu diesem Schlüssel.
Kommentare (jede Zeile, die mit einem Semikolon beginnt) werden entfernt und nicht im puffer lpReturnedString zurückgegeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetPrivateProfileSectionNames

GetProfileSection

WritePrivateProfileSection