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

Задает язык пользовательского интерфейса для текущего потока.

Windows Vista и более поздних версий: Эта функция не может очистить список предпочтительных языков пользовательского интерфейса потока. Приложение MUI должно вызывать Метод SetThreadPreferredUILanguages , чтобы очистить список языков.

Windows XP: Эта функция ограничена тем, что позволяет операционной системе определить и задать значение, которое безопасно использовать в консоли Windows.

Синтаксис

LANGID SetThreadUILanguage(
  [in] LANGID LangId
);

Параметры

[in] LangId

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

Windows Vista и более поздних версий: Приложение может указать идентификатор языка 0 или ненулевой идентификатор. Дополнительные сведения см. в разделе «Примечания».

Windows XP: Приложение может задать для этого параметра только значение 0. Этот параметр заставляет функцию выбрать язык, который лучше всего поддерживает отображение консоли. Дополнительные сведения см. в разделе «Примечания».

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

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

Если идентификатор языка ввода не является нулевым и функция завершается ошибкой, возвращаемое значение отличается от идентификатора языка ввода. Чтобы получить расширенные сведения об ошибке, приложение может вызвать GetLastError.

Комментарии

При создании потока параметр языка пользовательского интерфейса потока пуст, а пользовательский интерфейс для потока отображается на выбранном пользователем языке. Эта функция позволяет приложению изменять язык пользовательского интерфейса для текущего выполняемого потока.

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

Windows XP: Когда приложение вызывает эту функцию с идентификатором языка 0, функция сначала проверяет, что текущий пользовательский интерфейс не требует Uniscribe и что он поддерживается кодовой страницей консоли. Если пользовательский интерфейс проходит эти тесты, функция использует предоставленное значение. В противном случае функция изменяет язык пользовательского интерфейса потока на язык, который может отображаться в консоли Windows. Windows XP не поддерживает концепцию языка пользовательского интерфейса потока, отдельного от языкового стандарта потока. Поэтому эта функция изменяет языковой стандарт потока в Windows XP. Приложение легко настроить поток для использования наиболее подходящего языка для отображения консоли на основе предпочитаемых пользователем и системой языков пользовательского интерфейса, языка для приложений, отличных от Юникода, и возможностей консоли.

Подпись C#

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.UInt16 SetThreadUILanguage(
            System.UInt16 LangId
            );

Требования

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

См. также

GetThreadUILanguage

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

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

SetThreadPreferredUILanguages