Функция 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 |