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


Функция 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, Многоязыковые пользовательские интерфейсы, Функции многоязыкового пользовательского интерфейса