setCalendarInfoW 函数 (winnls.h)

设置日历的区域设置信息项。 有关详细信息,请参阅 日期和日历

语法

BOOL SetCalendarInfoW(
  [in] LCID    Locale,
  [in] CALID   Calendar,
  [in] CALTYPE CalType,
  [in] LPCWSTR lpCalData
);

参数

[in] Locale

指定区域设置的区域设置标识符。 可以使用 MAKELCID 宏创建区域设置标识符或使用以下预定义值之一。

还支持以下自定义区域设置标识符。

[in] Calendar

要为其设置信息的日历的日历标识符

[in] CalType

要设置的日历信息的类型。 只有以下 CALTYPE 值对此函数有效。 CAL_USE_CP_ACP常量仅对函数的 ANSI 版本有意义。

  • CAL_USE_CP_ACP
  • CAL_ITWODIGITYEARMAX
每次调用此函数时,应用程序只能指定一个日历标识符。 如果应用程序使用二进制 OR 运算符将CAL_USE_CP_ACP与 日历类型信息中定义的任何有效 CALTYPE 值组合在一起,则可能会发生异常。

[in] lpCalData

指向以 null 结尾的日历信息字符串的指针。 信息必须采用指定日历类型的格式。

返回值

如果成功,则返回非零值,否则返回 0。 若要获取扩展的错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码之一:

  • ERROR_INTERNAL_ERROR。 函数中出现意外错误。
  • ERROR_INVALID_FLAGS。 为标志提供的值无效。
  • ERROR_INVALID_PARAMETER。 任何参数值都无效。

注解

此函数仅影响日历设置的用户替代部分。 它不会设置系统默认值。

在此函数的 Unicode 版本中,日历信息始终作为以 null 结尾的 Unicode 字符串传递,在 ANSI 版本中作为以 null 结尾的 ANSI 字符串传递。 此函数不允许使用整数。 必须将任何数值指定为 Unicode 或 ANSI 文本。

当此函数的 ANSI 版本与仅限 Unicode 的区域设置标识符一起使用时,该函数可以成功,因为操作系统使用系统代码页。 但是,系统代码页中未定义的字符在字符串中显示为问号 (?) 。

CAL_ITWODIGITYEARMAX可用于任何日历,即使指定区域设置不支持该日历。 为避免复杂情况,应用程序应调用 EnumCalendarInfo ,以确保相关区域设置支持日历。

注意

winnls.h 标头将 SetCalendarInfo 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winnls.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

EnumCalendarInfo

GetCalendarInfo

国家/地区语言支持

国家/地区语言支持函数