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。

意味
MUI_LANGUAGE_ID
言語識別子形式で 言語 文字列を取得します。
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

入力言語リストの属性を示すフラグへのポインター。 関数は常に、リストされている最後の言語を特徴付けするフラグを取得します。

意味
MUI_FULL_LANGUAGE
言語は完全にローカライズされています。
MUI_PARTIAL_LANGUAGE
言語は部分的にローカライズされています。
MUI_LIP_LANGUAGE
言語は LIP 言語です。
 

さらに、 pdwAttributes には、必要に応じて、次のフラグの一方または両方が含まれます。

意味
MUI_LANGUAGE_INSTALLED
このコンピューターには言語がインストールされています。
MUI_LANGUAGE_LICENSED
言語は、現在のユーザーに対して適切にライセンスされます。

戻り値

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

  • ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分な大きさではなかったか、 正しく NULL に設定されていません。
  • ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。 詳細については、「解説」を参照してください。
  • ERROR_OBJECT_NAME_NOT_FOUND。 指定したオブジェクト名が見つからなかったか、無効であるか、入力リストの最初の言語がインストールされている言語ではありません。 詳細については、「解説」を参照してください。
GetLastError が他のエラー コードを返す場合、パラメーター pcchFallbackLanguagespdwAttributes は未定義です。

注釈

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 のフォールバック言語を取得するために、アプリケーションは pwmszLanguage を "Lang1\0\0" として渡します。 関数から戻った場合、 pwszFallbackLanguages は "Lang2\0Lang3\0Lang4\0\0" に設定されます。 このリストの順序は、Lang2 が既定のフォールバック言語であることを示しています。

Lang1 に関連して Lang3 のフォールバック言語を取得するために、アプリケーションは pwmszLanguage を "lang1\0\lang3\0\0" として渡します。 関数から戻った場合、 pwszFallbackLanguages は "Lang5\0Lang6\0\0" に設定されます。

この関数は、次のいずれかのERROR_INVALID_PARAMETERを返します。

  • pwmszLanguageNULL または空です。
  • MUI_LANGUAGE_IDとMUI_LANGUAGE_NAMEの両方が設定されます。
  • MUI_LANGUAGE_IDまたはMUI_LANGUAGE_NAME以外のフラグが設定されます。
  • pcchFallbackLanguages は 0 より大きいが、 pwszFallbackLanguagesNULL です
  • pwmszLanguage は、フラグの設定によっては、言語識別子または言語名の複数文字列バッファーとして解析できません。
ERROR_OBJECT_NAME_NOT_FOUND エラー コードは 、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

関連項目

EnumUILanguages

GetFileMUIInfo

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

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