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 |
---|---|
|
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
Control de nombres de dominio internacionalizados (IDN)