Функция SetLocaleInfoA (winnls.h)
Задает элемент сведений в части переопределения пользователем текущего языкового стандарта. Эта функция не задает системные значения по умолчанию.
Синтаксис
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 |