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


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

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

Примечание По соображениям взаимодействия приложение должно предпоч есть функцию getCalendarInfoExGetCalendarInfo, так как корпорация Майкрософт переносится на использование имен языкового стандарта вместо идентификаторов языков для новых языковых стандартов. Любое приложение, работающее только в 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 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winnls.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

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

GetCalendarInfoEx

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

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

SetCalendarInfo