SetLocaleInfoW 関数 (winnls.h)

現在のロケールのユーザーオーバーライド部分の情報項目を設定します。 この関数では、システムの既定値は設定されません。

注意この関数は、すべてのアプリケーションの値を変更するため、コントロール パネルの地域と言語のオプション機能、または同様のユーティリティによってのみ呼び出す必要があります。 システム・パラメーターを国際的に変更する場合、呼び出し元アプリケーションは、他のアプリケーションで不安定を引き起こさないように WM_SETTINGCHANGE メッセージをブロードキャストする必要があります。
 

構文

BOOL SetLocaleInfoW(
  [in] LCID    Locale,
  [in] LCTYPE  LCType,
  [in] LPCWSTR lpLCData
);

パラメーター

[in] Locale

ANSI バージョンの関数の場合、lpLCData 情報を解釈するときに使用されるコード ページを含むロケールのロケール識別子。 Unicode バージョンの場合、このパラメーターは無視されます。

MAKELCID マクロを使用してロケール識別子を作成するか、次のいずれかの定義済み値を使用できます。

次のカスタム ロケール識別子もサポートされています。

[in] LCType

設定するロケール情報の種類。 有効な定数については、「 ロケール情報定数」の「GetLocaleInfo、GetLocaleInfoEx、および SetLocaleInfo の LCType パラメーターで使用される定数」セクションを参照してください。 アプリケーションでは、呼び出しごとに 1 つの値のみを指定できますが、バイナリ OR 演算子を使用して 、LOCALE_USE_CP_ACP を他の定数と組み合わせることができます。

[in] lpLCData

設定するロケール情報を含む null で終わる文字列へのポインター。 情報は、指定された定数に固有の形式である必要があります。 アプリケーションでは、Unicode バージョンの関数に Unicode 文字列を使用し、ANSI バージョンには ANSI 文字列を使用します。

戻り値

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

  • ERROR_ACCESS_DISABLED_BY_POLICY。 コンピューターまたはユーザーのグループ ポリシーで、この操作が禁止されています。
  • ERROR_INVALID_ACCESS。 アクセス コードが無効です。
  • ERROR_INVALID_FLAGS。 フラグに指定された値が無効でした。
  • ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。

解説

この関数はレジストリに書き込み、特定のアプリケーションではなく特定のユーザーに関連付けられている値を設定します。 これらのレジストリ値は、ユーザーが実行する他のアプリケーションの動作に影響します。 原則として、アプリケーションは、ユーザーが変更を明示的に要求した場合にのみ、この関数を呼び出す必要があります。 1 つのアプリケーションの利便性のためにレジストリ設定を変更しないでください。

LCType パラメーターの場合、アプリケーションは、文字列変換用のロケール コード ページではなく、オペレーティング システムの ANSI コード ページを使用するようにLOCALE_USE_CP_ACPを設定する必要があります。

この関数の ANSI バージョンを Unicode のみのロケール識別子と共に使用すると、オペレーティング システムでシステム コード ページが使用されるため、関数は成功する可能性があります。 ただし、システム コード ページで未定義の文字は、文字列に疑問符 (?) として表示されます。

Windows Vista の時点では、 LOCALE_SDATE 定数と LOCALE_STIME 定数は廃止されています。 これらの定数は使用しないでください。 代わりに 、LOCALE_SSHORTDATELOCALE_STIMEFORMAT を使用してください。 カスタム ロケールには、日付または時刻形式内に単一の統一区切り文字がない場合があります。たとえば、"12/31, 2006" や "03:56'23" などの形式が有効な場合があります。

Note

winnls.h ヘッダーは、SetLocaleInfo をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winnls.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

GetLocaleInfo

各国語サポート

各国語サポート関数