次の方法で共有


SetLocaleInfoA 関数 (winnls.h)

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

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

構文

BOOL SetLocaleInfoA(
  [in] LCID   Locale,
  [in] LCTYPE LCType,
  [in] LPCSTR 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" などの形式が有効な場合があります。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winnls.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

GetLocaleInfo の

各国語サポート

各国語サポート関数