Функция SetLocaleInfoW (winnls.h)
Задает элемент информации в пользовательском переопределении части текущего языкового стандарта. Эта функция не задает системные значения по умолчанию.
Синтаксис
BOOL SetLocaleInfoW(
[in] LCID Locale,
[in] LCTYPE LCType,
[in] LPCWSTR lpLCData
);
Параметры
[in] Locale
Для версии функции ANSI идентификатор языкового стандарта языкового стандарта с кодовой страницей, используемой при интерпретации сведений lpLCData. Для версии Юникода этот параметр игнорируется.
Вы можете использовать макрос
[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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winnls.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |
См. также
поддержки национальных языков