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

要检索的信息的类型。 有关详细信息,请参阅 日历类型信息

注意 如果此参数指定CAL_IYEAROFFSETRANGE或CAL_SERASTRING,则 GetCalendarInfoEx 仅返回一个字符串。 在这两种情况下,都返回当前纪元。
 
对于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,并且未指定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