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


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

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

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

Синтаксис

BOOL SetLocaleInfoA(
  [in] LCID   Locale,
  [in] LCTYPE LCType,
  [in] LPCSTR lpLCData
);

Параметры

[in] Locale

Для версии ANSI функции — идентификатор языкового стандарта с кодовой страницей, используемой при интерпретации сведений lpLCData . Для версии Юникода этот параметр игнорируется.

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

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

[in] LCType

Тип устанавливаемых сведений о языковом стандарте. Допустимые константы см. в разделе "Константы, используемые в параметре LCType для GetLocaleInfo, GetLocaleInfoEx и SetLocaleInfo" статьи Константы сведений о языковом стандарте. Приложение может указывать только одно значение для каждого вызова, но может использовать бинарный оператор OR для объединения LOCALE_USE_CP_ACP с любой другой константой.

[in] lpLCData

Указатель на строку, завершающуюся значением NULL, которая содержит сведения о языковом стандарте, который необходимо задать. Сведения должны быть в формате, определенном для указанной константы. Приложение использует строку Юникода для версии функции в Юникоде и строку ANSI для версии ANSI.

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

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

  • ERROR_ACCESS_DISABLED_BY_POLICY. Эта операция запрещена групповой политикой компьютера или пользователя.
  • ERROR_INVALID_ACCESS. Недопустимый код доступа.
  • ERROR_INVALID_FLAGS. Значения, указанные для флагов, были недопустимыми.
  • ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.

Комментарии

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

Для параметра LCType приложение должно задать LOCALE_USE_CP_ACP использовать кодовую страницу ANSI операционной системы вместо кодовой страницы языкового стандарта для преобразования строк.

Если версия ANSI этой функции используется с идентификатором языкового стандарта только в Юникоде, функция может быть успешной, так как операционная система использует системную кодовую страницу. Однако символы, неопределенные на системной кодовой странице, отображаются в строке как вопросительный знак (?).

В Windows Vista константы LOCALE_SDATE и LOCALE_STIME устарели. Не используйте эти константы. Вместо этого используйте LOCALE_SSHORTDATE и LOCALE_STIMEFORMAT . В пользовательском языковом стандарте может не быть единообразного символа-разделителя в формате даты или времени. Например, допустимым может быть такой формат, как "12/31, 2006" или "03:56'23".

Примечание

Заголовок winnls.h определяет SetLocaleInfo как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

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

См. также

GetLocaleInfo

Поддержка национальных языков

Функции поддержки национальных языков