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

Извлекает предпочитаемые языки пользовательского интерфейса процесса. Дополнительные сведения см. в разделе Управление языком пользовательского интерфейса.

Синтаксис

BOOL GetProcessPreferredUILanguages(
  [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 многострочного буфера, в котором функция получает упорядоченный список с разделителями NULL в порядке предпочтения, начиная с наиболее предпочтительного.

Кроме того, если для этого параметра задано значение NULL , а для pcchLanguagesBuffer задано значение 0, функция извлекает требуемый размер буфера языка в pcchLanguagesBuffer. Требуемый размер включает два символа NULL.

[in, out] pcchLanguagesBuffer

Указатель на размер (в символах) для буфера языка, указанного pwszLanguagesBuffer. При успешном возвращении из функции параметр содержит размер извлеченного языкового буфера.

Кроме того, если для этого параметра задано значение 0, а для pwszLanguagesBuffer задано значение NULL, функция получает требуемый размер буфера языка в pcchLanguagesBuffer.

Возвращаемое значение

Возвращает значение TRUE в случае успешного выполнения или false в противном случае. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать один из следующих кодов ошибок:

  • ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или для него неправильно задано значение NULL.
  • ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.
Если список предпочтительных языков пользовательского интерфейса процесса пуст или языки, указанные для процесса, недопустимы, функция завершается успешно и возвращает пустую многостроку в pwszLanguagesBuffer и 2 в параметре pcchLanguagesBuffer .

Комментарии

В зависимости от флагов, заданных приложением, эта функция может получить список, состоящий из предпочитаемых процессом языков пользовательского интерфейса. Если встречается повторяющийся язык, функция извлекает только первый экземпляр повторяющегося языка.

При указании MUI_LANGUAGE_ID извлекаемой строкой языка будут шестнадцатеричные идентификаторы языка.

не включают в себя 0x в начале и будут содержать 4 символа. Например, возвращается en-US

как "0409" и en как "0009".

Примечание Рекомендуется использовать MUI_LANGUAGE_NAME MUI_LANGUAGE_ID.
 

Подпись C#

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean GetProcessPreferredUILanguages(
            System.UInt32 dwFlags,
            ref System.UInt32 pulNumLanguages,
            System.IntPtr pwszLanguagesBuffer,
            ref System.UInt32 pcchLanguagesBuffer
            );

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header winnls.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Многоязыковой интерфейс пользователя

Функции многоязыкового пользовательского интерфейса

SetProcessPreferredUILanguages