Share via


GetThreadPreferredUILanguages-Funktion (winnls.h)

Ruft die bevorzugten Benutzeroberflächensprachen des Threads für den aktuellen Thread ab. Weitere Informationen finden Sie unter Benutzeroberflächensprachverwaltung.

Syntax

BOOL GetThreadPreferredUILanguages(
  [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 Sprachformat an, das für die bevorzugten Benutzeroberflächensprachen des Threads 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.
 

Die folgenden Flags geben die Filterung für die Funktion an, die beim Abrufen der bevorzugten Benutzeroberflächensprachen des Threads verwendet werden soll. Das Standardflag ist MUI_MERGE_USER_FALLBACK.

Wert Bedeutung
MUI_MERGE_SYSTEM_FALLBACK
Verwenden Sie das Systemfallback, um eine Liste abzurufen, die genau der Sprachliste entspricht, die vom Ressourcenladeprogramm verwendet wird. Dieses Flag kann nur in Kombination mit MUI_MERGE_USER_FALLBACK verwendet werden. Die Verwendung der Flags in Kombination ändert den üblichen Effekt von MUI_MERGE_USER_FALLBACK, indem Fallback und neutrale Sprachen in die Liste eingeschlossen werden.
MUI_MERGE_USER_FALLBACK
Rufen Sie eine zusammengesetzte Liste ab, die aus den bevorzugten Benutzeroberflächensprachen des Threads besteht, gefolgt von den bevorzugten Benutzeroberflächensprachen, gefolgt von allen bevorzugten Benutzeroberflächensprachen, die sich von diesen unterscheiden, gefolgt von der Standardsprache der Benutzeroberfläche des Systems, sofern sie noch nicht in der Liste enthalten ist. Wenn die Liste der bevorzugten Benutzeroberflächensprachen leer ist, ruft die Funktion die vom System bevorzugten Benutzeroberflächensprachen ab. Dieses Flag kann nicht mit MUI_THREAD_LANGUAGES kombiniert werden.
MUI_THREAD_LANGUAGES
Rufen Sie nur die bevorzugten Benutzeroberflächensprachen des Threads für den aktuellen Thread oder eine leere Liste ab, wenn keine bevorzugten Sprachen für den aktuellen Thread festgelegt sind. Dieses Flag kann nicht mit MUI_MERGE_USER_FALLBACK oder MUI_MERGE_SYSTEM_FALLBACK kombiniert werden.
MUI_UI_FALLBACK
Rufen Sie eine vollständige Liste der bevorzugten Benutzeroberflächensprachen des Threads zusammen mit den zugehörigen Fallbacks und neutralen Sprachen ab. Die Verwendung dieses Flags entspricht der Kombination von MUI_MERGE_SYSTEM_FALLBACK und MUI_MERGE_USER_FALLBACK. (Gilt nur für Windows 7 und höher).

[out] pulNumLanguages

Zeiger auf die Anzahl der in pwszLanguagesBuffer abgerufenen Sprachen.

[out, optional] pwszLanguagesBuffer

Optional. Zeiger auf einen Puffer, in dem diese Funktion eine geordnete Liste der bevorzugten UI-Sprachen des Threads 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 wird:

  • 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

Abhängig von den flags, die von der Anwendung angegeben werden, kann diese Funktion eine zusammengesetzte Liste abrufen, die aus den bevorzugten Benutzeroberflächensprachen des Threads, den bevorzugten Benutzeroberflächensprachen, den bevorzugten Benutzeroberflächensprachen oder den bevorzugten Benutzeroberflächensprachen des Systems und der Standardsprache der Benutzeroberfläche des Systems besteht. Wenn eine doppelte Sprache auftritt, ruft die Funktion nur die erste Sprache ab.

Wenn die Anwendung SetThreadPreferredUILanguages mit dem MUI_CONSOLE_FILTER- oder MUI_COMPLEX_SCRIPT_FILTER-Flag aufgerufen hat, filtert GetThreadPreferredUILanguages die Sprachen in der Ergebnisliste. Die Funktion ersetzt die Sprachen, die die Konsole nicht durch eine Ersatzsprache anzeigen kann. Die Ersetzung für eine Sprache wird anhand des Werts von LOCALE_SCONSOLEFALLBACKNAME für die Sprache bestimmt. Weitere Konsoleninformationen finden Sie in der Beschreibung von SetThreadUILanguage.

Die Verwendung von MUI_LANGUAGE_NAME wird über MUI_LANGUAGE_ID empfohlen, da das MUI_LANGUAGE_NAME-Flag die Verarbeitung von LIP-Sprachen (Language Interface Pack) verbessern kann, die zusätzlichen Gebietsschemas entsprechen.

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

Wenn die Anwendung das flag MUI_LANGUAGE_ID festlegt, können die bevorzugten Benutzeroberflächensprachen des Threads eine oder mehrere Sprachen enthalten, die zusätzlichen Gebietsschemas entsprechen. Bei erfolgreicher Rückgabe der Funktion enthält der Sprachpuffer "1400" für jede Sprache, die einem zusätzlichen Gebietsschema entspricht. In dieser Liste kann nur eine solche Sprache enthalten sein. Die Zeichenfolge "1400" entspricht dem Hexadezimalwert von LOCALE_CUSTOM_UI_DEFAULT. Bei erfolgreicher Rückgabe der Funktion enthält pwszLanguagesBuffer "1000" für jede andere Sprache, die einem ergänzenden Gebietsschema entspricht. Die Zeichenfolge "1000" entspricht dem Hexadezimalwert von LOCALE_CUSTOM_UNSPECIFIED, der als Eingabe für jede Funktion nicht nützlich ist, da sie nicht zwischen zusätzlichen Gebietsschemas unterscheiden kann.

C#-Signatur

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean GetThreadPreferredUILanguages(
            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

GetThreadUILanguage

Multilingual User Interface

Mehrsprachige Benutzeroberflächenfunktionen

SetThreadPreferredUILanguages

SetThreadUILanguage