Share via


Función VerifyScripts (winnls.h)

Compara dos listas enumeradas de scripts.

Sintaxis

BOOL VerifyScripts(
  [in] DWORD   dwFlags,
  [in] LPCWSTR lpLocaleScripts,
  [in] int     cchLocaleScripts,
  [in] LPCWSTR lpTestScripts,
  [in] int     cchTestScripts
);

Parámetros

[in] dwFlags

Marcas que especifican las opciones de comprobación del script.

Valor Significado
VS_ALLOW_LATIN
Permita "Latn" (alfabeto latino) en la lista de pruebas aunque no esté en la lista de configuración regional.

[in] lpLocaleScripts

Puntero a la lista de configuración regional, la lista enumerada de scripts para una configuración regional determinada. Esta lista se rellena normalmente mediante una llamada a GetLocaleInfoEx con LCType establecido en LOCALE_SSCRIPTS.

[in] cchLocaleScripts

Tamaño, en caracteres, de la cadena indicada por lpLocaleScripts. La aplicación establece este parámetro en -1 si la cadena termina en null. Si este parámetro se establece en 0, se produce un error en la función.

[in] lpTestScripts

Puntero a la lista de pruebas, una segunda lista enumerada de scripts. Esta lista se rellena normalmente mediante una llamada a GetStringScripts.

[in] cchTestScripts

Tamaño, en caracteres, de la cadena indicada por lpTestScripts. La aplicación establece este parámetro en -1 si la cadena termina en null. Si este parámetro se establece en 0, se produce un error en la función.

Valor devuelto

Devuelve TRUE si la lista de pruebas no está vacía y todos los elementos de la lista también se incluyen en la lista de configuración regional. La función sigue devuelve TRUE si la lista de configuración regional contiene más scripts que la lista de pruebas, pero todos los scripts de lista de pruebas deben estar incluidos en la lista de configuración regional. Si VS_ALLOW_LATIN se especifica en dwFlags, la función se comporta como si "Latn;" siempre se encuentra en la lista de configuración regional.

En todos los demás casos, la función devuelve FALSE. Esta devolución puede indicar que la lista de pruebas contiene un elemento que no está en la lista de configuración regional o puede indicar un error. Para distinguir entre estos dos casos, la aplicación debe llamar a GetLastError, que puede devolver uno de los siguientes códigos de error:

  • 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.
  • ERROR_SUCCESS. La acción se completó correctamente, pero no produjo ningún resultado.

Comentarios

Esta función compara cadenas, como "Latn; Cyrl;", que consta de una serie de nombres de script de 4 caracteres, con cada nombre de script seguido de un punto y coma. También tiene un caso especial para tener en cuenta el hecho de que el alfabeto latino se usa a menudo en idiomas y configuraciones regionales para los que no es nativo.

Esta función es útil como parte de una estrategia para mitigar los problemas de seguridad relacionados con los nombres de dominio internacionalizados (IDN).

A continuación se muestran ejemplos de la devolución de esta función y una llamada posterior a GetLastError en varios escenarios. Los dos últimos ejemplos ilustran, respectivamente, un caso en el que la lista de pruebas carece de punto y coma de terminación (cadena con formato incorrecto) y un caso en el que la lista de pruebas está vacía.

Cadena de configuración regional Test string dwFlags Valor devuelto GetLastError return
Hani; Hira; Kana; Hani; * TRUE (sin cambios)
Hani; Hira; Kana; Hani; Latn; 0 FALSE ERROR_SUCCESS
Hani; Hira; Kana; Hani; Latn; VS_ALLOW_LATIN TRUE (sin cambios)
Hani; Hira; Kana; Cyrl; * FALSE ERROR_SUCCESS
Hani; Hani; Hira; Kana; * FALSE ERROR_SUCCESS
Hani; Hira; Kana; Cyrl * FALSE ERROR_INVALID_PARAMETER
Hani; Hira; Kana; * TRUE (sin cambios)
 
  • Los resultados son los mismos si se pasa VS_ALLOW_LATIN en el parámetro dwFlags o si no se proporcionan marcas.

Ejemplos

NLS: Ejemplo de mitigación de nombres de dominio internacionalizados (IDN) muestra el uso de esta función.

Requisitos

Requisito Value
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

DownlevelVerifyScripts

GetLocaleInfoEx

GetStringScripts

Control de nombres de dominio internacionalizados (IDN)

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales