Функция GetNLSVersionEx (winnls.h)
Извлекает сведения о текущей версии указанной возможности NLS для языкового стандарта, указанного по имени.
Синтаксис
BOOL GetNLSVersionEx(
[in] NLS_FUNCTION function,
[in, optional] LPCWSTR lpLocaleName,
[in, out] LPNLSVERSIONINFOEX lpVersionInformation
);
Параметры
[in] function
Возможность NLS для запроса. Это значение должно быть COMPARE_STRING. См. перечисление SYSNLS_FUNCTION .
[in, optional] lpLocaleName
Указатель на имя языкового стандарта или одно из следующих предопределенных значений.
[in, out] lpVersionInformation
Указатель на структуру NLSVERSIONINFOEX . Приложение должно инициализировать член dwNLSVersionInfoSize в . sizeof(NLSVERSIONINFOEX)
Возвращаемое значение
Возвращает значение TRUE , если и только в том случае, если приложение предоставило допустимые значения в lpVersionInformation или FALSE в противном случае. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать один из следующих кодов ошибок:
- ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или неправильно задано значение NULL.
- ERROR_INVALID_FLAGS. Значения, предоставленные для флагов, были недопустимыми.
- ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.
Комментарии
Эта функция позволяет приложению, например Active Directory, определить, влияет ли изменение NLS на языковой стандарт, используемый для конкретной таблицы индексов. Если это не так, нет необходимости переиндексировать таблицу. Дополнительные сведения см. в разделе Обработка сортировки в приложениях. В частности, чтобы определить, изменилась ли версия сортировки и необходимо выполнить повторную индексацию:
- Используйте GetNLSVersionEx для получения структуры NLSVERSIONINFOEX при выполнении исходного индексирования данных.
- Сохраните следующие свойства в индексе, чтобы определить версию:
- NLSVERSIONINFOEX.dwNLSVersion. Указывает версию используемой таблицы сортировки.
- NLSVERSIONINFOEX.dwEffectiveId. Это указывает действующий языковой стандарт вашего типа. Пользовательский языковой стандарт будет указывать на сортировку встроенного языкового стандарта.
- NLSVERSIONINFOEX.guidCustomVersion. Это GUID, указывающий определенную пользовательскую сортировку для пользовательских языковых стандартов, в которых они есть.
- При использовании индекса используйте GetNLSVersionEx для обнаружения версии данных.
- Если какое-либо из трех свойств было изменено, данные сортировки, которые вы используете, могут возвращать разные результаты, а при любом индексировании может быть не удается найти записи.
- Если вы знаете , что данные не содержат недопустимых кодовых точек Юникода (то есть все строки передали вызов IsNLSDefinedString), вы можете считать их одинаковыми, если изменился только низкий байт dwNLSVersion (описанная выше дополнительная версия).
Эта функция поддерживает пользовательские языковые параметры. Если lpLocaleName указывает дополнительный языковой стандарт, полученные данные являются правильными данными для порядка сортировки, связанного с этим дополнительным языковым стандартом.
Начиная с Windows 8. Если приложение передает языковые теги в эту функцию из пространства имен Windows.Globalization, оно должно сначала преобразовать теги, вызвав ResolveLocaleName.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | winnls.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
См. также
Обработка сортировки в приложениях
Как определить, изменилась ли версия параметров сортировки