GetSystemPreferredUILanguages-Funktion (winnls.h)

Ruft die vom System bevorzugten Benutzeroberflächensprachen ab. Weitere Informationen finden Sie unter Benutzeroberflächensprachverwaltung.

Syntax

BOOL GetSystemPreferredUILanguages(
  [in]            DWORD   dwFlags,
  [out]           PULONG  pulNumLanguages,
  [out, optional] PZZWSTR pwszLanguagesBuffer,
  [in, out]       PULONG  pcchLanguagesBuffer
);

Parameter

[in] dwFlags

Flags zur Identifizierung des Sprachformats und der Filterung. Die folgenden Flags geben das Format an, das für die vom System bevorzugten Benutzeroberflächensprachen verwendet werden soll. Die Flags schließen sich gegenseitig aus, und der Standardwert ist MUI_LANGUAGE_NAME.

Wert Bedeutung
MUI_LANGUAGE_ID
Rufen Sie die Sprachzeichenfolgen im Sprachbezeichnerformat ab .
MUI_LANGUAGE_NAME
Rufen Sie die Sprachzeichenfolgen im Format des Sprachnamens ab.
 

Das folgende Flag gibt an, ob die Funktion die Liste der Sprachen überprüft (Standard) oder die Liste der bevorzugten Benutzeroberflächensprachen des Systems genau so abruft, wie sie in der Registrierung gespeichert ist.

Wert Bedeutung
MUI_MACHINE_LANGUAGE_SETTINGS
Rufen Sie die Liste der bevorzugten Benutzeroberflächensprachen des gespeicherten Systems ab, und überprüfen Sie dabei nur, ob jeder Sprachname einem gültigen NLS-Gebietsschema entspricht. Wenn dieses Flag nicht festgelegt ist, ruft die Funktion die vom System bevorzugten Benutzeroberflächensprachen in pwszLanguagesBuffer ab, solange die Liste nicht leer ist und die Validierungskriterien erfüllt. Andernfalls ruft die Funktion die Standardsprache der Benutzeroberfläche des Systems im Sprachpuffer ab.

[out] pulNumLanguages

Zeiger auf die Anzahl der in pwszLanguagesBuffer abgerufenen Sprachen.

[out, optional] pwszLanguagesBuffer

Optional. Zeiger auf einen Puffer, in dem diese Funktion eine sortierte Liste der bevorzugten Benutzeroberflächensprachen des Systems mit NULL-Trennzeichen im von dwFlags angegebenen Format abruft. Diese Liste endet mit zwei NULL-Zeichen.

Wenn dieser Parameter auf NULL und pcchLanguagesBuffer auf 0 festgelegt ist, ruft die Funktion die erforderliche Größe des Sprachpuffers in pcchLanguagesBuffer ab. Die erforderliche Größe enthält die beiden NULL-Zeichen.

[in, out] pcchLanguagesBuffer

Zeiger auf die Größe in Zeichen für den Sprachpuffer, der durch pwszLanguagesBuffer angegeben wird. Bei erfolgreicher Rückgabe von der Funktion enthält der Parameter die Größe des abgerufenen Sprachpuffers.

Wenn dieser Parameter auf 0 und pwszLanguagesBuffer auf NULL festgelegt ist, ruft die Funktion die erforderliche Größe des Sprachpuffers in pcchLanguagesBuffer ab.

Rückgabewert

Gibt TRUE zurück, wenn dies erfolgreich war, oder andernfalls FALSE . Um erweiterte Fehlerinformationen zu erhalten, kann die Anwendung GetLastError aufrufen, wodurch einer der folgenden Fehlercodes zurückgegeben werden kann:

  • ERROR_INSUFFICIENT_BUFFER. Eine angegebene Puffergröße war nicht groß genug, oder sie wurde fälschlicherweise auf NULL festgelegt.

Wenn die Funktion aus einem anderen Grund fehlschlägt, sind die Parameter pulNumLanguages und pcchLanguagesBuffer nicht definiert.

Hinweise

Wenn MUI_LANGUAGE_ID angegeben wird, sind die abgerufenen Sprachzeichenfolgen hexadezimale Sprachbezeichner.

die das führende 0x nicht enthalten und 4 Zeichen lang sind. Beispielsweise wird "en-US" zurückgegeben.

als "0409" und en als "0009".

Die vom System bevorzugten Benutzeroberflächensprachen dürfen nicht mehr als eine LIP-Sprache (Language Interface Pack) enthalten, die einem zusätzlichen Gebietsschema entspricht. Wenn die Liste mehrere dieser Sprachen enthält und die Anwendung im Aufruf der Funktion MUI_LANGUAGE_ID angibt, enthält der Sprachpuffer "1400" für diese Sprache. Diese Zeichenfolge entspricht dem Hexadezimalwert von LOCALE_CUSTOM_UI_DEFAULT.

Wenn das flag MUI_MACHINE_LANGUAGE_SETTINGS festgelegt ist, überprüft diese Funktion jede Sprache in der Liste, die ein gültiges NLS-Gebietsschema darstellt. Die abgerufene Liste kann die folgenden Elemente enthalten:

  • Sprachen, die nicht auf dem System installiert sind
  • Doppelte Spracheinträge
  • Eine leere Zeichenfolge
Wenn das flag MUI_MACHINE_LANGUAGE_SETTINGS festgelegt ist und die Liste der bevorzugten Benutzeroberflächensprachen des Systems leer ist, ruft die Funktion eine leere Zeichenfolge im Sprachpuffer ab (zwei NULL-Zeichen, da es sich um einen Puffer mit mehreren Zeichenfolgen handelt), 0 für die Anzahl der Sprachen und 2 für die Puffergröße.

Wenn das flag MUI_MACHINE_LANGUAGE_SETTINGS nicht festgelegt ist, weist die abgerufene Sprachliste die folgenden Merkmale auf:

  • Jede Sprache stellt ein gültiges NLS-Gebietsschema dar.
  • Jede Sprache ist auf dem Betriebssystem installiert.
  • Die Liste enthält einen Eintrag für jede Sprache ohne doppelte Einträge.

C#-Signatur

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean GetSystemPreferredUILanguages(
            System.UInt32 dwFlags,
            ref System.UInt32 pulNumLanguages,
            System.IntPtr pwszLanguagesBuffer,
            ref System.UInt32 pcchLanguagesBuffer
            );

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winnls.h (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetSystemDefaultUILanguage

GetThreadPreferredUILanguages

GetThreadUILanguage

GetUserPreferredUILanguages

Multilingual User Interface

Mehrsprachige Benutzeroberflächenfunktionen

SetThreadPreferredUILanguages