GetCalendarInfoEx 関数 (winnls.h)

名前で指定されたロケールの予定表に関する情報を取得します。

メモ アプリケーションは、Windows Vista 以降でのみ実行するように設計されている場合は 、GetCalendarInfo を優先してこの関数を呼び出す必要があります。

 
メモ この関数は、たとえばカスタム ロケールのためにリリース間で変更されるデータを取得できます。 アプリケーションでデータを永続化または送信する必要がある場合は、「 永続的なロケール データの使用」を参照してください。
 

構文

int GetCalendarInfoEx(
  [in, optional]  LPCWSTR lpLocaleName,
  [in]            CALID   Calendar,
  [in, optional]  LPCWSTR lpReserved,
  [in]            CALTYPE CalType,
  [out, optional] LPWSTR  lpCalData,
  [in]            int     cchData,
  [out, optional] LPDWORD lpValue
);

パラメーター

[in, optional] lpLocaleName

ロケール名へのポインター、または次の定義済みの値のいずれか。

[in] Calendar

予定表識別子

[in, optional] lpReserved

予約; は NULL である必要があります。

[in] CalType

取得する情報の種類。 詳細については、「予定表の 種類の情報」を参照してください。

メモGetCalendarInfoEx は、このパラメーターでCAL_IYEAROFFSETRANGEまたはCAL_SERASTRINGを指定した場合、1 つの文字列のみを返します。 どちらの場合も、現在の時代 (年号) が返されます。
 
CAL_NOUSEROVERRIDEの場合、関数は SetCalendarInfo によって設定された値を無視し、現在のシステムの既定のロケールのデータベース設定を使用します。 この型は、CAL_NOUSEROVERRIDEの組み合わせにのみ関連します。 |CAL_ITWODIGITYEARMAX。 CAL_ITWODIGITYEARMAXは、 SetCalendarInfo で設定できる唯一の値です。

[out, optional] lpCalData

この関数が要求されたデータを文字列として取得するバッファーへのポインター。 CAL_RETURN_NUMBERが CalType で指定されている場合、このパラメーターは NULL を取得する必要があります。

[in] cchData

lpCalData バッファーのサイズ (文字単位)。 アプリケーションでは、このパラメーターを 0 に設定して、カレンダー データ バッファーに必要なサイズを返すことができます。 この場合、 lpCalData パラメーターは使用されません。 CalType にCAL_RETURN_NUMBERを指定した場合、cchData の値は 0 である必要があります。

[out, optional] lpValue

要求されたデータを数値として受け取る変数へのポインター。 CAL_RETURN_NUMBERが CalType で指定されている場合、lpValueNULL にすることはできません。 CAL_RETURN_NUMBERが CalType で指定されていない場合、lpValueNULL である必要があります。

戻り値

成功した場合に lpCalData バッファーで取得された文字数を返します。 関数が成功し、 cchData が 0 に設定され、CAL_RETURN_NUMBERが指定されていない場合、戻り値はロケール情報を保持するために必要なバッファーのサイズです。 関数が成功し、 cchData が 0 に設定され、CAL_RETURN_NUMBERが指定されている場合、戻り値は lpValue パラメーターに書き込まれた値のサイズになります。 このサイズは常に 2 です。

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

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

解説

メモ この API は、2019 年 5 月の日本の時代変更をサポートするように更新されています。 アプリケーションで日本語カレンダーがサポートされている場合は、新しい時代 (年号) が適切に処理されていることを検証する必要があります。 詳細については、「 日本の時代 (年号) の変更に合わせてアプリケーションを準備 する」を参照してください。
 
Windows 8 以降: アプリが Windows.Globalization 名前空間からこの関数に言語タグを渡す場合は、最初に ResolveLocaleName を呼び出してタグを変換する必要があります。

要件

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

関連項目

予定表の種類の情報

GetCalendarInfo

各国語サポート

各国語サポート関数

SetCalendarInfo