getCalendarInfoA 函数 (winnls.h)
检索由标识符指定的区域设置的日历的相关信息。
语法
int GetCalendarInfoA(
[in] LCID Locale,
[in] CALID Calendar,
[in] CALTYPE CalType,
[out, optional] LPSTR lpCalData,
[in] int cchData,
[out, optional] LPDWORD lpValue
);
参数
[in] Locale
指定要 为其检索日历信息的区域设置的区域设置标识符。 可以使用 MAKELCID 宏创建区域设置标识符或使用以下预定义值之一。
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
- LOCALE_INVARIANT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
[in] Calendar
[in] CalType
要检索的信息的类型。 有关详细信息,请参阅 日历类型信息。
对于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 设置为非零值。 如果函数成功, cchData 设置为 0,并且未指定CAL_RETURN_NUMBER,则返回值是保存日历信息所需的缓冲区大小。 如果函数成功,则 cchData 设置为 0,并且指定CAL_RETURN_NUMBER,则返回值是在 lpValue 中检索的值的大小,即 2 表示函数的 Unicode 版本,对于 ANSI 版本为 4。
如果未成功,则此函数返回 0。 若要获取扩展的错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码之一:
- ERROR_INSUFFICIENT_BUFFER。 提供的缓冲区大小不够大,或者错误地设置为 NULL。
- ERROR_INVALID_FLAGS。 为标志提供的值无效。
- ERROR_INVALID_PARAMETER。 任何参数值都无效。
注解
注意
winnls.h 标头将 GetCalendarInfo 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |