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。

説明
MUI_LANGUAGE_ID
言語識別子形式で 言語 文字列を取得します。
MUI_LANGUAGE_NAME
言語名の形式で 言語 文字列を取得します。
 

次のフラグは、関数が言語の一覧を検証するか (既定値)、システム優先 UI 言語リストをレジストリに格納されているのとまったく同じように取得するかを指定します。

説明
MUI_MACHINE_LANGUAGE_SETTINGS
格納されているシステム優先 UI 言語の一覧を取得し、各言語名が有効な NLS ロケールに対応していることを確認します。 このフラグが設定されていない場合、この関数は、リストが空ではなく、検証基準を満たしている限り、 pwszLanguagesBuffer でシステム優先 UI 言語を取得します。 それ以外の場合、関数は言語バッファー内のシステムの既定のユーザー インターフェイス言語を取得します。

[out] pulNumLanguages

pwszLanguagesBuffer で取得された言語の数へのポインター。

[out, optional] pwszLanguagesBuffer

省略可能。 この関数が 、dwFlags で指定された形式で、順序付けされた null 区切りのシステム優先 UI 言語リストを取得するバッファーへのポインター。 このリストは、2 つの null 文字で終わります。

または、このパラメーターが NULL に設定され、 pcchLanguagesBuffer が 0 に設定されている場合、この関数は pcchLanguagesBuffer 内の言語バッファーの必要なサイズを取得します。 必要なサイズには、2 つの null 文字が含まれます

[in, out] pcchLanguagesBuffer

pwszLanguagesBuffer によって示される言語バッファーのサイズ (文字単位) へのポインター。 関数から正常に戻った場合、 パラメーターには取得した言語バッファーのサイズが含まれます。

または、このパラメーターが 0 に設定され、 pwszLanguagesBufferNULL に設定されている場合、関数は pcchLanguagesBuffer 内の言語バッファーの必要なサイズを取得します。

戻り値

成功した場合は TRUE、 それ以外の場合 は FALSE を 返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。これにより、次のいずれかのエラー コードが返されます。

  • ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分に大きくなかったか、 正しく NULL に設定されていませんでした。

その他の理由で関数が失敗した場合、パラメーター pulNumLanguagespcchLanguagesBuffer は未定義です。

解説

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 フラグが設定されていて、システム優先 UI 言語リストが空の場合、関数は言語バッファー内の空の文字列 (複数文字列バッファーであるため、2 つの null 文字)、言語の数に 0、バッファー サイズに 2 を取得します。

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

関連項目

GetSystemDefaultUILanguage

GetThreadPreferredUILanguages

GetThreadUILanguage

GetUserPreferredUILanguages

多言語ユーザー インターフェイス

多言語ユーザー インターフェイス関数

SetThreadPreferredUILanguages