GetLocaleInfoEx

名前で指定したロケールに関する情報を取得する。注: アプリケーションが Windows Vista 以降のみで動作するように設計されている場合、GetLocaleInfo よりも本関数を優先して呼ぶべきである。注: 本関数は、カスタムロケールなどによりリリース間で変わり得るデータを取得することがある。アプリケーションがデータを永続化または送信する必要がある場合は、Using Persistent Locale Data を参照。

GetLocaleInfoEx lpLocaleName, LCType, lpLCData, cchData

lpLocaleName : [wstr] ロケール名へのポインタ、または以下の定義済み値のいずれか。
LCType : [int] 取得するロケール情報。指定可能な値は Locale Information Constants の "Constants Used in the LCType Parameter of GetLocaleInfo, GetLocaleInfoEx, and SetLocaleInfo" 節を参照。1 回の呼び出しで指定できるロケール情報は 1 つのみであることに注意。アプリケーションはバイナリ OR 演算子を使って LOCALE_RETURN_NUMBER を他の許可された定数と組み合わせ可能である。この場合、関数は値を文字列ではなく数値として取得する。値を受け取るバッファは少なくとも DWORD 値の長さ (2) でなければならない。注意: LOCALE_NOUSEROVERRIDE を他の任意の定数と組み合わせることも可能だが、この定数の使用は強く非推奨である(現在のユーザー上書きを使用しなくても、データはコンピュータ間で異なり得るし、カスタムロケールでデータが変わることがある。例えば月名や曜日名でも綴り改革の影響を受け得る)。LCType を LOCALE_IOPTIONALCALENDAR に設定した場合、関数は最初の代替カレンダーのみを取得する。注: すべての代替カレンダーを取得するには、アプリケーションは EnumCalendarInfoEx を使用するべきである。Windows Vista 以降では、失敗や予期しないデータの取得を避けるため、LCType パラメータに LOCALE_ILANGUAGE を使用するべきではない。代わりに GetLocaleInfoEx を呼ぶことを推奨する。
lpLCData : [wstr] 本関数が要求されたロケール情報を取得するバッファへのポインタ。cchData が 0 の場合、このポインタは使用されない。
cchData : [int] lpLCData が示すデータバッファのサイズ(文字単位)。あるいは、アプリケーションは本パラメータを 0 に設定できる。この場合、関数は lpLCData パラメータを使用せず、終端 null 文字を含む必要なバッファサイズを返す。

(プラグイン / モジュール : kernel32.dll)

解説

名前で指定したロケールに関する情報を取得する。注: アプリケーションが Windows Vista
以降のみで動作するように設計されている場合、GetLocaleInfo よりも本関数を優先して呼ぶべきである。注:
本関数は、カスタムロケールなどによりリリース間で変わり得るデータを取得することがある。アプリケーションがデータを永続化または送信する必要がある場合は、Using
Persistent Locale Data を参照。

[戻り値]
成功し cchData が 0 以外の値の場合、ロケールデータバッファに取得された文字数を返す。関数が成功し、cchData が 0
以外で LOCALE_RETURN_NUMBER が指定されている場合、戻り値はデータバッファに取得された整数のサイズ、すなわち 2
となる。関数が成功し cchData の値が 0 の場合、戻り値はロケールデータバッファに必要なサイズで、null
文字を含めた文字数である。関数が成功しなかった場合は 0 を返す。拡張エラー情報を取得するには GetLastError
を呼ぶ。次のエラーコードのいずれかが返ることがある。
(以下省略)

[備考]
本関数は通常、情報をテキスト形式で取得する。情報が数値で、LCType の値が LOCALE_ILANGUAGE または
LOCALE_IDEFAULTLANGUAGE の場合、本関数は 16
進数を含む文字列を取得する。それ以外の場合、数値情報として取得されるテキストは 10 進数である。この規則には 2 つの例外がある。第 1
に、アプリケーションは LCType に LOCALE_RETURN_NUMBER を指定することで数値を整数として取得できる。第 2
に、LOCALE_FONTSIGNATURE は他のすべてのロケール情報定数と挙動が異なる。アプリケーションは少なくとも
sizeof(LOCALESIGNATURE) バイトのデータバッファを用意しなければならない。関数からの正常復帰時、バッファは
LOCALESIGNATURE 構造体として埋められる。注: LCType を LOCALE_FONTSIGNATURE
と指定した場合でも、cchData と関数の戻り値は依然として文字数である。アプリケーションが LCType に
LOCALE_FONTSIGNATURE を指定して GetLocaleInfoEx を呼ぶ場合、cchData は安全に
sizeof(LOCALESIGNATURE) / sizeof(WCHAR)
と指定できる。次の例は、テキスト以外の値に対するバッファサイズを正しく扱う例である。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs