Share via


GetUILanguageInfo-Funktion (winnls.h)

Ruft eine Vielzahl von Informationen zu einer installierten Benutzeroberflächensprache ab:

  • Ist die Sprache installiert?
  • Ist der aktuelle Benutzer für die Verwendung der Sprache lizenziert?
  • Ist die Sprache vollständig lokalisiert? Teilweise lokalisiert? Teil eines Language Installation Pack (LIP)?
  • Wenn es teilweise lokalisiert oder Teil einer LIP ist:
    • Was ist die Fallbacksprache?
    • Wenn es sich bei dieser Fallbacksprache um eine teilweise lokalisierte Sprache handelt, was ist ihre Basis?
    • Was ist die Standard-Fallbacksprache?

Syntax

BOOL GetUILanguageInfo(
  [in]                DWORD    dwFlags,
  [in]                PCZZWSTR pwmszLanguage,
  [out, optional]     PZZWSTR  pwszFallbackLanguages,
  [in, out, optional] PDWORD   pcchFallbackLanguages,
  [out]               PDWORD   pAttributes
);

Parameter

[in] dwFlags

Flags, die das Format der angegebenen Sprache definieren. 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 Sprachnamenformat ab.

[in] pwmszLanguage

Zeiger auf Sprachen, für die die Funktion Informationen abrufen soll. Dieser Parameter gibt eine geordnete Liste von Sprachbezeichnern oder Sprachnamen an, abhängig von der Flageinstellung. Informationen zur Verwendung dieses Parameters finden Sie im Abschnitt Hinweise.

[out, optional] pwszFallbackLanguages

Zeiger auf einen Puffer, in dem diese Funktion eine geordnete, durch NULL getrennte Liste von Fallbacksprachen abruft, die gemäß der Definition der Einstellung für dwFlags formatiert sind. 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, optional] pcchFallbackLanguages

Zeiger auf die Größe in Zeichen für den Sprachpuffer, der von pwszFallbackLanguages 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.

[out] pAttributes

Zeiger auf Flags, die Attribute der Eingabesprachenliste angeben. Die Funktion ruft immer das Flag ab, das die zuletzt aufgeführte Sprache kennzeichnet.

Wert Bedeutung
MUI_FULL_LANGUAGE
Die Sprache ist vollständig lokalisiert.
MUI_PARTIAL_LANGUAGE
Die Sprache ist teilweise lokalisiert.
MUI_LIP_LANGUAGE
Die Sprache ist eine LIP-Sprache.
 

Darüber hinaus enthält pdwAttributes je nach Bedarf eines oder beide der folgenden Flags.

Wert Bedeutung
MUI_LANGUAGE_INSTALLED
Die Sprache ist auf diesem Computer installiert.
MUI_LANGUAGE_LICENSED
Die Sprache ist für den aktuellen Benutzer entsprechend lizenziert.

Rückgabewert

Gibt TRUE zurück, wenn der Vorgang erfolgreich war, oder andernfalls FALSE . Um erweiterte Fehlerinformationen abzurufen, kann die Anwendung GetLastError aufrufen, wodurch die folgenden Fehlercodes zurückgegeben werden können:

  • ERROR_INSUFFICIENT_BUFFER. Eine angegebene Puffergröße war nicht groß genug, oder sie wurde fälschlicherweise auf NULL festgelegt.
  • ERROR_INVALID_PARAMETER. Jeder der Parameterwerte war ungültig. Weitere Informationen finden Sie in den Hinweisen.
  • ERROR_OBJECT_NAME_NOT_FOUND. Der angegebene Objektname wurde nicht gefunden, oder er war ungültig, oder die erste Sprache in der Eingabeliste ist keine installierte Sprache. Weitere Informationen finden Sie in den Hinweisen.
Wenn GetLastError einen anderen Fehlercode zurückgibt, sind die Parameter pcchFallbackLanguages und pdwAttributes nicht definiert.

Hinweise

MUI_LANGUAGE_NAME wird über MUI_LANGUAGE_ID empfohlen, da die Funktion eine bessere Verarbeitung von LIP-Sprachen ermöglicht, die nicht vordefinierten Gebietsschemas entsprechen, sondern einem zusätzlichen Gebietsschema entsprechen. LIP-Sprachen, die vordefinierten Gebietsschemas entsprechen, werden genauso wie Nicht-LIP-Sprachen behandelt.

Wenn das flag MUI_LANGUAGE_ID angegeben wird, müssen die angegebenen Sprachzeichenfolgen

Verwenden Sie hexadezimale Sprachbezeichner, die nicht das führende 0x enthalten und 4 Zeichen lang sind.

Beispielsweise sollte en-US als "0409" und en als "0009" übergeben werden. Die zurückgegebenen Sprachzeichenfolgen werden im

Gleiches Format.

Wenn MUI_LANGUAGE_ID angegeben ist und eine solche Sprache in der Liste der bevorzugten Benutzeroberflächensprachen enthalten ist, kann es nur eine solche Sprache in der Liste geben. Diese Sprache kann in pwmszLanguage als "1400" angegeben werden, was dem Hexadezimalwert von LOCALE_CUSTOM_UI_DEFAULT entspricht. Mit MUI_LANGUAGE_ID kann keine andere Sprache angegeben werden. Die Verwendung von "1000", die dem Hexadezimalwert von LOCALE_CUSTOM_UNSPECIFIED entspricht, führt in der durch pwmszLanguage angegebenen Zeichenfolge zu einem ERROR_INVALID_PARAMETER Code.

Eine teilweise lokalisierte Sprache kann eine Fallbacksprache aufweisen, die teilweise lokalisiert ist und wiederholte Aufrufe von GetUILanguageInfo erfordert, um vollständige Informationen zu erhalten. Betrachten Sie den Fall einer teilweise lokalisierten Sprache Lang1, die eine Auswahl von drei Fallbacksprachen bietet. Die Fallbacksprache Lang3 ist teilweise lokalisiert und bietet die Wahl zwischen zwei Fallbacksprachen. Die Abhängigkeiten sind wie folgt, wobei der Standardfallback zuerst aufgeführt ist:

  • Lang1
    • Lang2
    • Lang3
      • Lang5
      • Lang6
    • Lang4
Um die Fallbacksprache(en) von Lang1 abzurufen, übergibt die Anwendung in pwmszLanguage "Lang1\0\0". Bei der Rückgabe von der Funktion wird pwszFallbackLanguages auf "Lang2\0Lang3\0Lang4\0\0" festgelegt. Beachten Sie, dass die Reihenfolge dieser Liste angibt, dass Lang2 die Standard-Fallbacksprache ist.

Um die Fallbacksprache(en) von Lang3 in Bezug auf Lang1 abzurufen, übergibt die Anwendung in pwmszLanguage "lang1\0\lang3\0\0". Bei der Rückgabe von der Funktion wird pwszFallbackLanguages auf "Lang5\0Lang6\0\0" festgelegt.

Diese Funktion gibt ERROR_INVALID_PARAMETER für folgendes zurück:

  • pwmszLanguage ist NULL oder leer.
  • Sowohl MUI_LANGUAGE_ID als auch MUI_LANGUAGE_NAME sind festgelegt.
  • Alle anderen Flags als MUI_LANGUAGE_ID oder MUI_LANGUAGE_NAME werden festgelegt.
  • pcchFallbackLanguages ist größer als 0, aber pwszFallbackLanguages ist NULL.
  • pwmszLanguage kann je nach Flageinstellung nicht als Puffer mit mehreren Zeichenfolgen von Sprachbezeichnern oder Sprachnamen analysiert werden.
Der ERROR_OBJECT_NAME_NOT_FOUND Fehlercode tritt auf, wenn pwmszLanguage analysiert werden kann, aber ungültig ist. Der Code kann auch für einen ungültigen Gebietsschemabezeichner zurückgegeben werden, oder wenn die erste Sprache in der Eingabeliste keine installierte Sprache ist oder wenn eine vollständig lokalisierte Sprache eine Fallbacksprache definiert hat.

C#-Signatur

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean GetUILanguageInfo(
            System.UInt32 dwFlags,
            System.String pwmszLanguage,
            System.IntPtr pwszFallbackLanguages,
            ref System.UInt32 pcchFallbackLanguages,
            ref System.UInt32 pdwAttributes
            );

Anforderungen

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

Siehe auch

EnumUILanguages

GetFileMUIInfo

Multilingual User Interface

Mehrsprachige Benutzeroberflächenfunktionen