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

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

Синтаксис

BOOL IsNLSDefinedString(
  [in] NLS_FUNCTION     Function,
  [in] DWORD            dwFlags,
  [in] LPNLSVERSIONINFO lpVersionInformation,
  [in] LPCWSTR          lpString,
  [in] INT              cchStr
);

Параметры

[in] Function

Возможность NLS для запроса. Это значение должно быть COMPARE_STRING. См. перечисление SYSNLS_FUNCTION .

[in] dwFlags

Флаги, определяющие функцию. Должно быть равно 0.

[in] lpVersionInformation

Указатель на структуру NLSVERSIONINFO , содержащую сведения о версии. Как правило, сведения получаются путем вызова Метода GetNLSVersion. Приложение задает этому параметру значение NULL , если функция использует текущую версию.

[in] lpString

Указатель на проверяемую строку UTF-16.

[in] cchStr

Число символов UTF-16 в строке, указанной lpString. Это число может включать завершающий символ NULL. Если завершающий нуль-символ включен в число символов, это не влияет на поведение проверки, так как завершающий нуль-символ всегда определен.

Приложение должно указать значение -1, чтобы указать, что строка завершается null. В этом случае сама функция вычисляет длину строки.

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

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

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

Комментарии

Эта функция различает определенные и неопределенные строки, чтобы такие приложения, как Active Directory, могли отклонять строки с неопределенными кодовыми точками. Использование функции может свести к минимуму необходимость повторного индексирования базы данных приложением. Дополнительные сведения см. в разделе Обработка сортировки в приложениях.

Например, если для функции задано значение COMPARE_STRING, IsNLSDefinedString проверяет наличие неопределенных кодовых точек, суррогатных пар , представляющих неопределенные символы Юникода, или неправильно сформированных суррогатных пар. Если функция возвращает значение TRUE для определенной строки, результаты, полученные compareString или LCMapString с LCMAP_SORTKEY набором, гарантированно будут идентичны, если соответствующая версия NLS не изменится.

Требования

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

См. также

CompareString

GetNLSVersion

LCMapString

NLSVERSIONINFO

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

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

SYSNLS_FUNCTION