Función IsNLSDefinedString (winnls.h)

Determina si cada carácter de una cadena tiene un resultado definido para una funcionalidad NLS especificada.

Sintaxis

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

Parámetros

[in] Function

Funcionalidad NLS para realizar consultas. Este valor debe ser COMPARE_STRING. Consulte la enumeración SYSNLS_FUNCTION .

[in] dwFlags

Marcas que definen la función. Debe ser 0.

[in] lpVersionInformation

Puntero a una estructura NLSVERSIONINFO que contiene información de versión. Normalmente, la información se obtiene mediante una llamada a GetNLSVersion. La aplicación establece este parámetro en NULL si la función va a usar la versión actual.

[in] lpString

Puntero a la cadena UTF-16 que se va a examinar.

[in] cchStr

Número de caracteres UTF-16 en la cadena indicada por lpString. Este recuento puede incluir un carácter nulo de terminación. Si el carácter nulo de terminación se incluye en el recuento de caracteres, no afecta al comportamiento de comprobación porque el carácter nulo de terminación siempre se define.

La aplicación debe proporcionar -1 para indicar que la cadena termina en null. En este caso, la propia función calcula la longitud de la cadena.

Valor devuelto

Devuelve TRUE si se ejecuta correctamente, solo si la cadena de entrada es válida o FALSE en caso contrario. Para obtener información de error extendida, la aplicación puede llamar a GetLastError, que puede devolver uno de los siguientes códigos de error:

  • ERROR_INSUFFICIENT_BUFFER. Un tamaño de búfer proporcionado no era lo suficientemente grande o se estableció incorrectamente en NULL.
  • ERROR_INVALID_FLAGS. Los valores proporcionados para las marcas no eran válidos.
  • ERROR_INVALID_PARAMETER. Cualquiera de los valores de parámetro no era válido.

Comentarios

Esta función diferencia entre cadenas definidas y no definidas, de modo que una aplicación como Active Directory pueda rechazar cadenas con puntos de código no definidos. El uso de la función puede minimizar la necesidad de que la aplicación vuelva a indexar su base de datos. Para obtener más información, consulte Control de la ordenación en las aplicaciones.

Por ejemplo, si Function se establece en COMPARE_STRING, IsNLSDefinedString comprueba si hay puntos de código no definidos, pares suplentes que representan caracteres Unicode sin definir o pares suplentes con formato incorrecto. Si la función devuelve TRUE para una cadena determinada, se garantiza que los resultados, tal como se recuperan mediante CompareString o LCMapString con LCMAP_SORTKEY establecido, son idénticos siempre que la versión NLS correspondiente no cambie.

Requisitos

   
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winnls.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

CompareString

GetNLSVersion

LCMapString

NLSVERSIONINFO

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales

SYSNLS_FUNCTION