GetCalendarInfoW 関数 (winnls.h)

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

メモ 相互運用性の理由から、Microsoft は新しいロケールのロケール識別子ではなくロケール名の使用に移行するため、アプリケーションは GetCalendarInfoEx 関数を GetCalendarInfo に優先する必要があります。 Windows Vista 以降でのみ実行されるアプリケーションでは 、GetCalendarInfoEx を使用する必要があります。
 

構文

int GetCalendarInfoW(
  [in]            LCID    Locale,
  [in]            CALID   Calendar,
  [in]            CALTYPE CalType,
  [out, optional] LPWSTR  lpCalData,
  [in]            int     cchData,
  [out, optional] LPDWORD lpValue
);

パラメーター

[in] Locale

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

[in] Calendar

予定表識別子

[in] CalType

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

メモGetCalendarInfo は、このパラメーターでCAL_IYEAROFFSETRANGEまたはCAL_SERASTRINGを指定した場合、1 つの文字列のみを返します。 どちらの場合も、現在の時代 (年号) が返されます。
 
CAL_USE_CP_ACPは、この関数の ANSI バージョンにのみ関連します。

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 である必要があります。

戻り値

成功した場合、cchData が 0 以外の値に設定された lpCalData バッファーで取得された文字数を返します。 関数が成功し、 cchData が 0 に設定され、CAL_RETURN_NUMBERが指定されていない場合、戻り値はカレンダー情報を保持するために必要なバッファーのサイズです。 関数が成功し、 cchData が 0 に設定され、CAL_RETURN_NUMBERが指定されている場合、戻り値は lpValue で取得された値のサイズです。つまり、関数の Unicode バージョンの場合は 2、ANSI バージョンの場合は 4 です。

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

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

解説

メモ この API は、2019 年 5 月の日本の時代変更をサポートするように更新されています。 アプリケーションで日本語カレンダーがサポートされている場合は、新しい時代 (年号) が適切に処理されていることを検証する必要があります。 詳細については、「 日本の時代 (年号) の変更に合わせてアプリケーションを準備 する」を参照してください。
 
この関数の ANSI バージョンを Unicode のみのロケール識別子と共に使用すると、オペレーティング システムでシステム コード ページが使用されるため、関数は成功する可能性があります。 ただし、システム コード ページで未定義の文字は、文字列に疑問符 (?) として表示されます。

注意

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

要件

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

関連項目

予定表の種類の情報

GetCalendarInfoEx

各国語サポート

各国語サポート関数

SetCalendarInfo