Поделиться через


Функция SetCalendarInfoA (winnls.h)

Задает элемент сведений о языковом стандарте для календаря. Дополнительные сведения см. в даты и календаря.

Синтаксис

BOOL SetCalendarInfoA(
  [in] LCID    Locale,
  [in] CALID   Calendar,
  [in] CALTYPE CalType,
  [in] LPCSTR  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, завершаемой значением NULL, в версии ANSI. Никакие целые числа не допускаются этой функцией. Все числовые значения должны быть указаны как текст Юникода или ANSI.

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

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winnls.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

EnumCalendarInfo

GetCalendarInfo

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

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