SetLocaleInfoW

現在のロケールのユーザーオーバーライド部分の情報項目を設定する。この関数はシステム既定を設定しない。(Unicode)

SetLocaleInfoW Locale, LCType, lpLCData

Locale : [int] ANSI 版では lpLCData 情報を解釈する際に用いるコードページを持つロケールのロケール識別子。Unicode 版では無視される。MAKELCID マクロでロケール識別子を作成するか、以下の定義済み値を使用できる。
LCType : [int] 設定するロケール情報の種類。有効な定数は「ロケール情報定数」の「GetLocaleInfo、GetLocaleInfoEx、SetLocaleInfo の LCType パラメータで使用される定数」セクションを参照。アプリケーションは呼び出しごとに 1 つの値のみ指定できるが、LOCALE_USE_CP_ACP を他の定数と OR 演算で組み合わせることはできる。
lpLCData : [wstr] 設定するロケール情報を含む null 終端文字列へのポインタ。情報は指定した定数固有の形式でなければならない。アプリケーションは Unicode 版では Unicode 文字列を、ANSI 版では ANSI 文字列を使用する。

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

解説

現在のロケールのユーザーオーバーライド部分の情報項目を設定する。この関数はシステム既定を設定しない。(Unicode)

[戻り値]
成功した場合は非ゼロ、そうでない場合は 0 を返す。拡張エラー情報を取得するには GetLastError
を呼び出す。次のいずれかのエラーコードが返される可能性がある:
(以下省略)

[備考]

この関数はレジストリに書き込みを行い、特定のアプリケーションではなく特定のユーザーに関連付けられる値を設定する。これらのレジストリ値はそのユーザーが実行する他のアプリケーションの動作にも影響する。原則として、アプリケーションはユーザーが明示的に変更を要求した場合にのみこの関数を呼び出すべきであり、単一アプリケーションの利便性のためにレジストリ設定を変更してはならない。LCType
パラメータでは、ロケールコードページの代わりに OS の ANSI コードページを文字列変換に使うように
LOCALE_USE_CP_ACP を設定できる。ANSI 版を Unicode 専用ロケール識別子で呼び出した場合、OS
がシステムコードページを使うため関数は成功することがあるが、システムコードページで未定義の文字は文字列中でクエスチョンマーク (?)
として現れる。Windows Vista 以降、LOCALE_SDATE と LOCALE_STIME
定数は廃止されている。これらは使用せず、代わりに LOCALE_SSHORTDATE と LOCALE_STIMEFORMAT
を使用する。カスタムロケールでは日付や時刻の書式内で単一の一様なセパレータ文字を持たない場合がある。例えば "12/31, 2006" や
"03:56'23" のような書式も有効となりうる。
> [!NOTE] > winnls.h ヘッダは SetLocaleInfo を、UNICODE プリプロセッサ定数の定義に応じて
ANSI 版または Unicode
版を自動選択するエイリアスとして定義する。エンコーディング中立なエイリアスと中立でないコードを混在させると、コンパイルエラーや実行時エラーを引き起こすことがある。詳細は
[関数プロトタイプの規約](/windows/win32/intl/conventions-for-function-prototypes)
を参照。

情報

プラグイン / モジュール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