次の方法で共有


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

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

[in] cchData

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

[out, optional] lpValue

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

戻り値

成功した場合、lpCalData バッファーで取得 cchData 0 以外の値に設定された文字数を返します。 関数が成功 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 を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

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

関連項目

予定表の種類情報 を する

GetCalendarInfoEx の

各国語サポート

各国語サポート関数

SetCalendarInfo の