Функция 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. Любое из значений параметров было недопустимым.

Комментарии

Эта функция влияет только на переопределение пользователем части параметров календаря. Системные значения по умолчанию не задаются.

Сведения о календаре всегда передаются в виде строки Юникода, завершаемой null, в версии Юникода этой функции и в виде строки ANSI, завершаемой нулевым значением, в версии ANSI. Эта функция не допускает целые числа. Любые числовые значения должны быть указаны в виде текста Юникода или ANSI.

Если версия ANSI этой функции используется с идентификатором языкового стандарта только в Юникоде, функция может завершиться успешно, так как операционная система использует системную кодовую страницу. Однако символы, которые не определены на системной кодовой странице, отображаются в строке как вопросительный знак (?).

CAL_ITWODIGITYEARMAX можно использовать с любым календарем, даже если календарь не поддерживается для указанного языкового стандарта. Чтобы избежать осложнений, приложение должно вызвать EnumCalendarInfo , чтобы убедиться, что календарь поддерживается для интересующего языкового стандарта.

Примечание

Заголовок winnls.h определяет SetCalendarInfo в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winnls.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

EnumCalendarInfo

GetCalendarInfo

Поддержка национальных языков

Функции поддержки национальных языков