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

Извлекает сведения о календаре для языкового стандарта, заданного идентификатором.

Примечание Для обеспечения совместимости приложение должно использовать функцию GetCalendarInfoEx вместо GetCalendarInfo, так как корпорация Майкрософт переходит на использование имен языкового стандарта вместо идентификаторов языкового стандарта для новых языковых стандартов. Любое приложение, которое выполняется только в Windows Vista и более поздних версий, должно использовать GetCalendarInfoEx.
 

Синтаксис

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 для создания идентификатора языкового стандарта или использовать одно из следующих предопределенных значений.

[in] Calendar

Идентификатор календаря.

[in] CalType

Тип извлекаемой информации. Дополнительные сведения см. в разделе Сведения о типе календаря.

Примечание. GetCalendarInfo возвращает только одну строку, если этот параметр задает CAL_IYEAROFFSETRANGE или CAL_SERASTRING. В обоих случаях возвращается текущая эра.
 
CAL_USE_CP_ACP относится только к версии ANSI этой функции.

Для CAL_NOUSEROVERRIDE функция игнорирует любое значение, заданное SetCalendarInfo , и использует параметры базы данных для текущего языкового стандарта системы по умолчанию. Этот тип относится только к сочетанию CAL_NOUSEROVERRIDE | CAL_ITWODIGITYEARMAX. CAL_ITWODIGITYEARMAX — это единственное значение, которое можно задать с помощью SetCalendarInfo.

[out, optional] lpCalData

Указатель на буфер, в котором эта функция извлекает запрошенные данные в виде строки. Если CAL_RETURN_NUMBER указан в CalType, этот параметр должен получить значение NULL.

[in] cchData

Размер буфера lpCalData в символах. Приложение может задать для этого параметра значение 0, чтобы вернуть необходимый размер для буфера данных календаря. В этом случае параметр lpCalData не используется. Если CAL_RETURN_NUMBER указан для CalType, значение cchData должно быть равно 0.

[out, optional] lpValue

Указатель на переменную, которая получает запрошенные данные в виде числа. Если CAL_RETURN_NUMBER указан в CalType, значение lpValue не должно иметь значение NULL. Если CAL_RETURN_NUMBER не указан в CalType, значение lpValue должно иметь значение NULL.

Возвращаемое значение

Возвращает количество символов, полученных в буфере lpCalData , при этом cchData имеет ненулевое значение, если успешно. Если функция выполнена успешно, параметр cchData имеет значение 0, а CAL_RETURN_NUMBER не указан, возвращаемое значение — это размер буфера, необходимый для хранения сведений календаря. Если функция выполнена успешно, cchData имеет значение 0, а CAL_RETURN_NUMBER указано, возвращаемое значение — это размер значения, полученного в lpValue, то есть 2 для версии функции в Юникоде или 4 для версии ANSI.

Эта функция возвращает значение 0, если не удалось. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать один из следующих кодов ошибок:

  • ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или неправильно задано значение NULL.
  • ERROR_INVALID_FLAGS. Значения, предоставленные для флагов, были недопустимыми.
  • ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.

Комментарии

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

Примечание

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

Требования

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

См. также

Сведения о типе календаря

GetCalendarInfoEx

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

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

SetCalendarInfo