Функция GetUserPreferredUILanguages (winnls.h)
Извлекает сведения о параметре языка интерфейса. Дополнительные сведения см. в разделе Управление языком пользовательского интерфейса.
Синтаксис
BOOL GetUserPreferredUILanguages(
[in] DWORD dwFlags,
[out] PULONG pulNumLanguages,
[out, optional] PZZWSTR pwszLanguagesBuffer,
[in, out] PULONG pcchLanguagesBuffer
);
Параметры
[in] dwFlags
Флаги, определяющие языковой формат и фильтрацию. Следующие флаги указывают формат языка, используемый для списка языков интерфейса. Флаги являются взаимоисключающими, а значение по умолчанию — MUI_LANGUAGE_NAME.
Значение | Значение |
---|---|
MUI_LANGUAGE_ID | Получение строк языка в идентификаторе языка |
MUI_LANGUAGE_NAME | Получение строк языка в формате имени языка . |
[out] pulNumLanguages
Указатель на количество языков, полученных в pwszLanguagesBuffer.
[out, optional] pwszLanguagesBuffer
Необязательный элемент. Указатель на буфер, в котором эта функция извлекает упорядоченный список языков интерфейса с разделителями NULL в формате, определенном dwflags. Этот список заканчивается двумя символами NULL.
Кроме того, если для этого параметра задано значение NULL , а для pcchLanguagesBuffer задано значение 0, функция извлекает требуемый размер буфера языка в pcchLanguagesBuffer. Требуемый размер включает два символа NULL.
[in, out] pcchLanguagesBuffer
Указатель на размер (в символах) для буфера языка, указанного pwszLanguagesBuffer. При успешном возвращении из функции параметр содержит размер извлеченного языкового буфера.
Кроме того, если для этого параметра задано значение 0, а для pwszLanguagesBuffer задано значение NULL, функция получает требуемый размер буфера языка в pcchLanguagesBuffer.
Возвращаемое значение
Возвращает значение TRUE в случае успешного выполнения или false в противном случае. Чтобы получить расширенные сведения об ошибке, приложение может вызвать функцию GetLastError, которая может возвращать один из следующих кодов ошибок:
- ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или для него неправильно задано значение NULL.
Если функция завершается сбоем по какой-либо другой причине, значения pulNumLanguages и pcchLanguagesBuffer не определены.
Комментарии
При указании MUI_LANGUAGE_ID извлекаемые строки языка будут шестнадцатеричными идентификаторами языка, не включающими в себя 0x, и длиной 4 символа. Например, en-US будет возвращено как "0409" и en как "0009".
Язык интерфейса не может содержать более одного языка пакет интерфейса пользователя , соответствующего дополнительному языковому стандарту. Если список содержит более одного из этих языков и если приложение указывает MUI_LANGUAGE_ID в вызове функции, буфер языка содержит "1400" для этого языка. Эта строка соответствует шестнадцатеричным значениям LOCALE_CUSTOM_UI_DEFAULT.
Список языков, полученный этой функцией, имеет следующие характеристики:
- Каждый язык представляет допустимый языковой стандарт NLS.
- Каждый язык установлен в операционной системе.
- Список содержит одну запись для каждого языка без повторяющихся записей.
- Если список пуст или не соответствует этим критериям проверки, вместо него используется список предпочтительных языков пользовательского интерфейса системы.
Подпись C#
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetUserPreferredUILanguages(
System.UInt32 dwFlags,
ref System.UInt32 pulNumLanguages,
System.IntPtr pwszLanguagesBuffer,
ref System.UInt32 pcchLanguagesBuffer
);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | winnls.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
См. также
Функция GetSystemPreferredUILanguages, Функция GetThreadPreferredUILanguages, Функция GetThreadUILanguage, Функция SetThreadPreferredUILanguages, Многоязыковые пользовательские интерфейсы, Функции многоязыкового пользовательского интерфейса