GetLocaleInfoEx 関数 (winnls.h)
名前で指定されたロケールに関する情報を取得します。
構文
int GetLocaleInfoEx(
[in, optional] LPCWSTR lpLocaleName,
[in] LCTYPE LCType,
[out, optional] LPWSTR lpLCData,
[in] int cchData
);
パラメーター
[in, optional] lpLocaleName
ロケール名へのポインター、または次の定義済みの値のいずれか。
[in] LCType
取得するロケール情報。 使用可能な値については、「 ロケール情報定数」の「GetLocaleInfo、GetLocaleInfoEx、および SetLocaleInfo の LCType パラメーターで使用される定数」セクションを参照してください。 呼び出しごとに指定できるロケール情報は 1 つだけであることに注意してください。
アプリケーションでは、バイナリ OR 演算子を使用して 、LOCALE_RETURN_NUMBER を他の許可された定数と組み合わせることができます。 この場合、関数は値を文字列ではなく数値として取得します。 値を受け取るバッファーは、少なくとも DWORD 値の長さ (2) である必要があります。
[out, optional] lpLCData
この関数が要求されたロケール情報を取得するバッファーへのポインター。 cchData が 0 に設定されている場合、このポインターは使用されません。
[in] cchData
lpLCData で示されるデータ バッファーのサイズ (文字単位)。 または、アプリケーションでこのパラメーターを 0 に設定することもできます。 この場合、関数は lpLCData パラメーターを使用せず、終端の null 文字を含め、必要なバッファー サイズを返します。
戻り値
成功した場合にロケール データ バッファーで取得された文字数を返し、 cchData が 0 以外の値です。 関数が成功し、 cchData が 0 以外で、 LOCALE_RETURN_NUMBER が指定されている場合、戻り値はデータ バッファーで取得された整数のサイズ (つまり 2) です。 関数が成功し、 cchData の値が 0 の場合、戻り値はロケール データ バッファーに必要なサイズ (null 文字を含む文字) になります。
成功しなかった場合、関数は 0 を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。これにより、次のいずれかのエラー コードが返されます。
- ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分に大きくなかったか、 正しく NULL に設定されていませんでした。
- ERROR_INVALID_FLAGS。 フラグに指定された値が無効でした。
- ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。
注釈
この関数は通常、テキスト形式で情報を取得します。 情報が数値で、 LCType の値が LOCALE_ILANGUAGE または LOCALE_IDEFAULTLANGUAGEの場合、この関数は 16 進数を含む文字列を取得します。 それ以外の場合、数値情報の取得されたテキストは 10 進数です。
このルールには例外が 2 つあります。 最初に、アプリケーションは LCType パラメーターに LOCALE_RETURN_NUMBERを指定することで、数値を整数として取得できます。 2 つ目の例外は、 LOCALE_FONTSIGNATURE が他のすべてのロケール情報定数とは異なる動作をする点です。 アプリケーションは、sizeof(LOCALESIGNATURE) バイト以上のデータ バッファーを提供する必要があります。 関数から正常に戻った場合、バッファーは LOCALESIGNATURE 構造体として入力されます。
int ret;
CALID calid;
DWORD value;
ret = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT,
LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
(LPWSTR)&value,
sizeof(value) / sizeof(WCHAR) );
calid = value;
LOCALESIGNATURE LocSig;
ret = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT,
LOCALE_FONTSIGNATURE,
(LPWSTR)&LocSig,
sizeof(LocSig) / sizeof(WCHAR) );
この関数は、 カスタム ロケールからデータを取得できます。 データは、コンピューター間、またはアプリケーションの実行間で同じになることは保証されません。 アプリケーションでデータを永続化または送信する必要がある場合は、「 永続的なロケール データの使用」を参照してください。
Windows 8以降: アプリが Windows.Globalization 名前空間からこの関数に言語タグを渡す場合は、最初に ResolveLocaleName を呼び出してタグを変換する必要があります。
例
この関数の使用例については、「 NLS: 名前ベースの API サンプル 」と「 NLS: 国際化ドメイン名 (IDN) 軽減サンプル」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |