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

Извлекает сведения о текущей версии указанной возможности NLS для языкового стандарта, указанного по имени.

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

 

Синтаксис

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)

Примечание В Windows Vista и более поздних версиях функция может также предоставлять сведения о версии в структуре NLSVERSIONINFO .
 

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

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

  • ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или неправильно задано значение NULL.
  • ERROR_INVALID_FLAGS. Значения, предоставленные для флагов, были недопустимыми.
  • ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.

Комментарии

Эта функция позволяет приложению, например Active Directory, определить, влияет ли изменение NLS на языковой стандарт, используемый для конкретной таблицы индексов. Если это не так, нет необходимости переиндексировать таблицу. Дополнительные сведения см. в разделе Обработка сортировки в приложениях. В частности, чтобы определить, изменилась ли версия сортировки и необходимо выполнить повторную индексацию:

  1. Используйте GetNLSVersionEx для получения структуры NLSVERSIONINFOEX при выполнении исходного индексирования данных.
  2. Сохраните следующие свойства в индексе, чтобы определить версию:
    • NLSVERSIONINFOEX.dwNLSVersion. Указывает версию используемой таблицы сортировки.
    • NLSVERSIONINFOEX.dwEffectiveId. Это указывает действующий языковой стандарт вашего типа. Пользовательский языковой стандарт будет указывать на сортировку встроенного языкового стандарта.
    • NLSVERSIONINFOEX.guidCustomVersion. Это GUID, указывающий определенную пользовательскую сортировку для пользовательских языковых стандартов, в которых они есть.
  3. При использовании индекса используйте GetNLSVersionEx для обнаружения версии данных.
  4. Если какое-либо из трех свойств было изменено, данные сортировки, которые вы используете, могут возвращать разные результаты, а при любом индексировании может быть не удается найти записи.
  5. Если вы знаете , что данные не содержат недопустимых кодовых точек Юникода (то есть все строки передали вызов IsNLSDefinedString), вы можете считать их одинаковыми, если изменился только низкий байт dwNLSVersion (описанная выше дополнительная версия).
Более подробно это рассматривается в записи блога "Как определить, изменилась ли версия параметров сортировки" (http://blogs.msdn.com/shawnste/archive/2007/06/01/how-to-tell-if-the-collation-version-changed.aspx).

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

Начиная с Windows 8. Если приложение передает языковые теги в эту функцию из пространства имен Windows.Globalization, оно должно сначала преобразовать теги, вызвав ResolveLocaleName.

Требования

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

См. также

GetNLSVersion

Обработка сортировки в приложениях

Как определить, изменилась ли версия параметров сортировки

NLSVERSIONINFO

NLSVERSIONINFOEX

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

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

SYSNLS_FUNCTION