GetUILanguageInfo 関数 (winnls.h)
インストールされている UI 言語に関するさまざまな情報を取得します。
- 言語はインストールされていますか?
- 現在のユーザーは言語を使用するライセンスを持っていますか?
- 言語は完全にローカライズされていますか? 部分的にローカライズされていますか? 言語インストール パック (LIP) の一部ですか?
- 部分的にローカライズされた場合、または LIP の一部である場合:
- フォールバック言語とは
- そのフォールバック言語が部分的にローカライズされた言語である場合、その基本は何ですか?
- 既定のフォールバック言語とは
構文
BOOL GetUILanguageInfo(
[in] DWORD dwFlags,
[in] PCZZWSTR pwmszLanguage,
[out, optional] PZZWSTR pwszFallbackLanguages,
[in, out, optional] PDWORD pcchFallbackLanguages,
[out] PDWORD pAttributes
);
パラメーター
[in] dwFlags
指定した言語の形式を定義するフラグ。 フラグは相互に排他的であり、既定値はMUI_LANGUAGE_NAME。
値 | 意味 |
---|---|
|
言語識別子形式で 言語 文字列を取得します。 |
|
言語名の形式で 言語 文字列を取得します。 |
[in] pwmszLanguage
関数が情報を取得する言語へのポインター。 このパラメーターは、フラグの設定に応じて、言語識別子または言語名の順序付けされた null で区切られたリストを示します。 このパラメーターの使用方法については、「解説」セクションを参照してください。
[out, optional] pwszFallbackLanguages
この関数が 、dwFlags の設定で定義されているように書式設定された、null で区切られた順序付きのフォールバック言語のリストを取得するバッファーへのポインター。 このリストは 2 つの null 文字で終わります。
または、このパラメーターが NULL に設定され、 pcchLanguagesBuffer が 0 に設定されている場合、関数は pcchLanguagesBuffer 内の言語バッファーの必要なサイズを取得します。 必要なサイズには、2 つの null 文字が含まれます。
[in, out, optional] pcchFallbackLanguages
pwszFallbackLanguages によって示される言語バッファーのサイズ (文字数) へのポインター。 関数から正常に戻った場合、 パラメーターには、取得した言語バッファーのサイズが含まれます。
または、このパラメーターが 0 に設定され、 pwszLanguagesBuffer が NULL に設定されている場合、関数は pcchLanguagesBuffer 内の言語バッファーの必要なサイズを取得します。
[out] pAttributes
入力言語リストの属性を示すフラグへのポインター。 関数は常に、リストされている最後の言語を特徴付けするフラグを取得します。
値 | 意味 |
---|---|
|
言語は完全にローカライズされています。 |
|
言語は部分的にローカライズされています。 |
|
言語は LIP 言語です。 |
さらに、 pdwAttributes には、必要に応じて、次のフラグの一方または両方が含まれます。
値 | 意味 |
---|---|
|
このコンピューターには言語がインストールされています。 |
|
言語は、現在のユーザーに対して適切にライセンスされます。 |
戻り値
成功した場合は TRUE 、それ以外の場合 は FALSE を 返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。これにより、次のエラー コードが返される可能性があります。
- ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分な大きさではなかったか、 正しく NULL に設定されていません。
- ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。 詳細については、「解説」を参照してください。
- ERROR_OBJECT_NAME_NOT_FOUND。 指定したオブジェクト名が見つからなかったか、無効であるか、入力リストの最初の言語がインストールされている言語ではありません。 詳細については、「解説」を参照してください。
注釈
MUI_LANGUAGE_NAMEは、関数が定義済みのロケールに対応せず 、代わりに補足ロケールに対応する LIP 言語をより適切に処理できるため、MUI_LANGUAGE_IDよりも推奨されます。 定義済みのロケールに対応する LIP 言語は、LIP 以外の言語と同様に処理されます。
MUI_LANGUAGE_ID フラグを指定する場合は、指定された言語文字列を指定する必要があります。
先頭の 0x を含まず、長さが 4 文字の 16 進数言語識別子を使用します。
たとえば、en-US は "0409" として、en は "0009" として渡す必要があります。 返される言語文字列は、
同じ形式。
MUI_LANGUAGE_IDを指定し、ユーザー優先 UI 言語の一覧にそのような言語がある場合は、一覧にそのような言語を 1 つだけ含めることができます。 その言語は pwmszLanguage で "1400" として指定できます。これは 、LOCALE_CUSTOM_UI_DEFAULTの 16 進数の値に対応します。 MUI_LANGUAGE_IDを使用して他の言語を指定することはできません。 pwmszLanguage で示される文字列で、LOCALE_CUSTOM_UNSPECIFIEDの 16 進数の値に対応する "1000" を使用すると、ERROR_INVALID_PARAMETER コードが生成されます。
部分的にローカライズされた言語には、部分的にローカライズされたフォールバック言語を使用できます。完全な情報を取得するには 、GetUILanguageInfo を繰り返し呼び出す必要があります。 3 つのフォールバック言語の選択肢を提供する部分的にローカライズされた言語 Lang1 の場合を考えてみましょう。 Lang3 フォールバック言語は部分的にローカライズされており、2 つのフォールバック言語から選択できます。 依存関係は次のとおりです。既定のフォールバックが最初に一覧表示されます。
- Lang1
- Lang2
- Lang3
- Lang5
- Lang6
- Lang4
Lang1 に関連して Lang3 のフォールバック言語を取得するために、アプリケーションは pwmszLanguage を "lang1\0\lang3\0\0" として渡します。 関数から戻った場合、 pwszFallbackLanguages は "Lang5\0Lang6\0\0" に設定されます。
この関数は、次のいずれかのERROR_INVALID_PARAMETERを返します。
- pwmszLanguage が NULL または空です。
- MUI_LANGUAGE_IDとMUI_LANGUAGE_NAMEの両方が設定されます。
- MUI_LANGUAGE_IDまたはMUI_LANGUAGE_NAME以外のフラグが設定されます。
- pcchFallbackLanguages は 0 より大きいが、 pwszFallbackLanguages は NULL です。
- pwmszLanguage は、フラグの設定によっては、言語識別子または言語名の複数文字列バッファーとして解析できません。
C# シグネチャ
[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
);
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |