Функция GetLocaleInfoA (winnls.h)
Извлекает сведения о языковом стандарте, заданном идентификатором.
Синтаксис
int GetLocaleInfoA(
[in] LCID Locale,
[in] LCTYPE LCType,
[out, optional] LPSTR lpLCData,
[in] int cchData
);
Параметры
[in] Locale
Идентификатор языкового стандарта , для которого требуется получить сведения. Вы можете использовать макрос MAKELCID для создания идентификатора языкового стандарта или использовать одно из следующих предопределенных значений.
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
- LOCALE_INVARIANT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
[in] LCType
Извлекаемая информация о языковом стандарте. Подробные определения см. в параметре LCTypeобъекта GetLocaleInfoEx.
[out, optional] lpLCData
Указатель на буфер, в котором эта функция получает запрошенные сведения о языковом стандарте. Этот указатель не используется, если параметр cchData имеет значение 0. Дополнительные сведения см. в разделе «Примечания».
[in] cchData
Размер (в значениях TCHAR) буфера данных, указанного lpLCData. Кроме того, приложение может задать для этого параметра значение 0. В этом случае функция не использует параметр lpLCData и возвращает требуемый размер буфера, включая завершающий символ NULL.
Возвращаемое значение
Возвращает число символов, полученных в буфере данных языкового стандарта, если параметр cchData имеет ненулевое значение. Если функция выполнена успешно, cchData не равно нулю, а LOCALE_RETURN_NUMBER указано, возвращаемое значение равно размеру целого числа, полученного в буфере данных; то есть 2 для юникодовой версии функции или 4 для версии ANSI. Если функция выполняется успешно и значение cchData равно 0, возвращаемое значение — это обязательный размер буфера данных языкового стандарта в символах, включая символ null.
Функция возвращает значение 0, если не удалось. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать один из следующих кодов ошибок:
- ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или неправильно задано значение NULL.
- ERROR_INVALID_FLAGS. Значения, предоставленные для флагов, были недопустимыми.
- ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.
Комментарии
Сведения о работе этой функции см. в разделе Примечания для GetLocaleInfoEx.
int ret;
CALID calid;
DWORD value;
ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
(LPTSTR)&value,
sizeof(value) / sizeof(TCHAR) );
calid = value;
LOCALESIGNATURE LocSig;
ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
LOCALE_FONTSIGNATURE,
(LPWSTR)&LocSig,
sizeof(LocSig) / sizeof(TCHAR) );
Строка ANSI, полученная версией ANSI этой функции, преобразуется из Юникода в ANSI на основе кодовой страницы ANSI по умолчанию для идентификатора языкового стандарта. Однако если указано LOCALE_USE_CP_ACP , перевод основан на системной кодовой странице ANSI по умолчанию.
Если версия ANSI этой функции используется с идентификатором языкового стандарта только в Юникоде, функция может завершиться успешно, так как операционная система использует системную кодовую страницу. Однако символы, которые не определены на системной кодовой странице, отображаются в строке как вопросительный знак (?).
Примечание
Заголовок winnls.h определяет GetLocaleInfo как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | winnls.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
См. также
Функции поддержки национальных языков