GetSystemPreferredUILanguages 関数 (winnls.h)
システム優先 UI 言語を取得します。 詳細については、「 ユーザー インターフェイス言語管理」を参照してください。
構文
BOOL GetSystemPreferredUILanguages(
[in] DWORD dwFlags,
[out] PULONG pulNumLanguages,
[out, optional] PZZWSTR pwszLanguagesBuffer,
[in, out] PULONG pcchLanguagesBuffer
);
パラメーター
[in] dwFlags
言語形式とフィルター処理を識別するフラグ。 次のフラグは、システム優先 UI 言語に使用する形式を指定します。 フラグは相互に排他的であり、既定値はMUI_LANGUAGE_NAME。
値 | 説明 |
---|---|
|
言語識別子形式で 言語 文字列を取得します。 |
|
言語名の形式で 言語 文字列を取得します。 |
次のフラグは、関数が言語の一覧を検証するか (既定値)、システム優先 UI 言語リストをレジストリに格納されているのとまったく同じように取得するかを指定します。
[out] pulNumLanguages
pwszLanguagesBuffer で取得された言語の数へのポインター。
[out, optional] pwszLanguagesBuffer
省略可能。 この関数が 、dwFlags で指定された形式で、順序付けされた null 区切りのシステム優先 UI 言語リストを取得するバッファーへのポインター。 このリストは、2 つの null 文字で終わります。
または、このパラメーターが NULL に設定され、 pcchLanguagesBuffer が 0 に設定されている場合、この関数は pcchLanguagesBuffer 内の言語バッファーの必要なサイズを取得します。 必要なサイズには、2 つの null 文字が含まれます
[in, out] pcchLanguagesBuffer
pwszLanguagesBuffer によって示される言語バッファーのサイズ (文字単位) へのポインター。 関数から正常に戻った場合、 パラメーターには取得した言語バッファーのサイズが含まれます。
または、このパラメーターが 0 に設定され、 pwszLanguagesBuffer が NULL に設定されている場合、関数は pcchLanguagesBuffer 内の言語バッファーの必要なサイズを取得します。
戻り値
成功した場合は TRUE、 それ以外の場合 は FALSE を 返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。これにより、次のいずれかのエラー コードが返されます。
- ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分に大きくなかったか、 正しく NULL に設定されていませんでした。
その他の理由で関数が失敗した場合、パラメーター pulNumLanguages と pcchLanguagesBuffer は未定義です。
解説
MUI_LANGUAGE_IDを指定すると、取得される言語文字列は 16 進数の言語識別子になります
先頭に 0x が含まれていない場合、長さは 4 文字になります。 たとえば、en-US が返されます
"0409" として、en を "0009" として使用します。
システム優先 UI 言語には、 補足ロケールに対応する複数の言語インターフェイス パック (LIP) 言語を含めることはできません。 リストにこれらの言語が複数含まれており、アプリケーションが関数の呼び出しでMUI_LANGUAGE_IDを指定している場合、言語バッファーにはその言語の "1400" が含まれます。 この文字列は、 LOCALE_CUSTOM_UI_DEFAULTの 16 進数の値に対応します。
MUI_MACHINE_LANGUAGE_SETTINGS フラグが設定されている場合、この関数は、有効な NLS ロケールを表すリスト内の各言語をチェックします。 取得したリストには、次の項目を含めることができます。
- システムにインストールされていない言語
- 言語エントリの重複
- 空の文字列
MUI_MACHINE_LANGUAGE_SETTINGS フラグが設定されていない場合、取得された言語リストには次の特性があります。
- 各言語は有効な NLS ロケールを表します。
- 各言語はオペレーティング システムにインストールされます。
- リストには、言語ごとに 1 つのエントリが含まれていますが、重複するエントリはありません。
C# シグネチャ
[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
);
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |