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 |
---|---|
|
Rufen Sie die Sprachzeichenfolgen im Sprachbezeichnerformat ab. |
|
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 |
---|---|
|
Die Sprache ist vollständig lokalisiert. |
|
Die Sprache ist teilweise lokalisiert. |
|
Die Sprache ist eine LIP-Sprache. |
Darüber hinaus enthält pdwAttributes je nach Bedarf eines oder beide der folgenden Flags.
Wert | Bedeutung |
---|---|
|
Die Sprache ist auf diesem Computer installiert. |
|
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.
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 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.
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 |