Функция GetLocaleInfoA (winnls.h)
Извлекает сведения о языковом стандарте, указанном идентификатором.
Синтаксис
int GetLocaleInfoA(
[in] LCID Locale,
[in] LCTYPE LCType,
[out, optional] LPSTR lpLCData,
[in] int cchData
);
Параметры
[in] Locale
идентификатор языкового стандарта для получения сведений. Вы можете использовать макрос
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
- LOCALE_INVARIANT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
[in] LCType
Извлекаемая информация о языковом стандарте. Подробные определения см. в параметре
[out, optional] lpLCData
Указатель на буфер, в котором эта функция получает запрошенные сведения о языковом стандарте. Этот указатель не используется, если cchData имеет значение 0. Дополнительные сведения см. в разделе "Примечания".
[in] cchData
Размер в значениях TCHAR буфера данных, указанный lpLCData. Кроме того, приложение может задать для этого параметра значение 0. В этом случае функция не использует параметр lpLCData и возвращает требуемый размер буфера, включая завершающий символ NULL.
Возвращаемое значение
Возвращает количество символов, полученных в буфере данных языкового стандарта, если это успешно, а cchData — ненулевое значение. Если функция выполнена успешно, cchData ненулевое, а LOCALE_RETURN_NUMBER задано, возвращаемое значение — это размер целочисленного числа, полученного в буфере данных; то есть 2 для версии функции Юникода или 4 для версии ANSI. Если функция завершается успешно, а значение cchData равно 0, возвращаемое значение является обязательным размером в символах, включая пустой символ, для буфера данных языкового стандарта.
Функция возвращает значение 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] |
целевая платформа | Виндоус |
заголовка | winnls.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |
См. также
поддержки национальных языков
функции поддержки национальных языков