次の方法で共有


GetLocaleInfoA 関数 (winnls.h)

識別子で指定されたロケールに関する情報を取得します。

メモ 相互運用性の理由から、Microsoft は新しいロケールのロケール識別子ではなくロケール名の使用に移行するため、GetLocaleInfoEx 関数 を GetLocaleInfo する必要があります。 Windows Vista 以降でのみ実行されるアプリケーションは、GetLocaleInfoEx使用する必要があります。
注意 グローバル互換性のために、アプリケーションは Unicode "W" API フォームを "A" フォームよりも優先する必要があります。 GetLocaleInfoA は文字データを制限するため、特にグローバルに有効なアプリケーションでは、ユーザーが破損しているように見える可能性があります。 この API では、GetLocaleInfoEx は Unicode であり、最新のロケール名標準もサポートしているため、推奨されます。
 

構文

int GetLocaleInfoA(
  [in]            LCID   Locale,
  [in]            LCTYPE LCType,
  [out, optional] LPSTR  lpLCData,
  [in]            int    cchData
);

パラメーター

[in] Locale

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

[in] LCType

取得するロケール情報。 詳細な定義については、GetLocaleInfoExの LCType パラメーター 参照してください。

メモGetLocaleInfoの場合、値LOCALE_USE_CP_ACPは ANSI バージョンにのみ関連します。
 

[out, optional] lpLCData

この関数が要求されたロケール情報を取得するバッファーへのポインター。 cchData 0 に設定されている場合、このポインターは使用されません。 詳細については、「解説」セクションを参照してください。

[in] cchData

lpLCDataで示されるデータ バッファーのサイズ (TCHAR 値)。 または、アプリケーションでこのパラメーターを 0 に設定することもできます。 この場合、この関数は lpLCData パラメーターを使用せず、終端の null 文字を含む必要なバッファー サイズを返します。

戻り値

成功した場合にロケール データ バッファーで取得された文字数を返し、cchData 0 以外の値です。 関数が成功 、cchData が 0 以外で、LOCALE_RETURN_NUMBER が指定されている場合、戻り値はデータ バッファーで取得された整数のサイズです。つまり、関数の Unicode バージョンの場合は 2、ANSI バージョンの場合は 4 です。 関数が成功し、cchData の値が 0 の場合、戻り値はロケール データ バッファーに必要なサイズ (null 文字を含む文字単位) になります。

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

  • ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分な大きさではなかったか、NULL正しく設定されていません。
  • ERROR_INVALID_FLAGS。 フラグに指定された値が無効でした。
  • ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効でした。

備考

この関数の操作については、「GetLocaleInfoEx備考」を参照してください。

LCType パラメーターが LOCALE_FONTSIGNATURE として指定されている場合でも、cchData し、関数の戻り値は TCHAR カウントのままです。 関数の ANSI バージョンと Unicode バージョンでは、カウントが異なります。 アプリケーションが LOCALE_FONTSIGNATURE を使用して GetLocaleInfo の汎用バージョンを呼び出す場合、cchData を sizeof(LOCALESIGNATURE) / sizeof(TCHAR) として安全に指定できます。
 
次の例では、テキスト以外の値のバッファー サイズが正しく処理されます。
int   ret;
CALID calid;
DWORD value;

ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
                    LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
                    (LPTSTR)&value,
                    sizeof(value) / sizeof(TCHAR) );
calid = value;

LOCALESIGNATURE LocSig;

ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
                    LOCALE_FONTSIGNATURE,
                    (LPWSTR)&LocSig,
                    sizeof(LocSig) / sizeof(TCHAR) );

この関数の ANSI バージョンによって取得された ANSI 文字列は、ロケール識別子の既定の ANSI コード ページに基づいて Unicode から ANSI に変換されます。 ただし、LOCALE_USE_CP_ACP が指定されている場合、変換はシステムの既定の ANSI コード ページに基づいています。

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

手記

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

必要条件

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

関連項目

GetLocaleInfoEx を する

GetSystemDefaultLCID の

GetUserDefaultLCID の

各国語サポート

各国語サポート関数

ロケール情報の取得と設定

SetLocaleInfo の