VerifyScripts, fonction (winnls.h)
Compare deux listes énumérées de scripts.
Syntaxe
BOOL VerifyScripts(
[in] DWORD dwFlags,
[in] LPCWSTR lpLocaleScripts,
[in] int cchLocaleScripts,
[in] LPCWSTR lpTestScripts,
[in] int cchTestScripts
);
Paramètres
[in] dwFlags
Indicateurs spécifiant les options de vérification de script.
Valeur | Signification |
---|---|
|
Autorisez « Latn » (script latin) dans la liste de test, même s’il ne figure pas dans la liste des paramètres régionaux. |
[in] lpLocaleScripts
Pointeur vers la liste des paramètres régionaux, la liste énumérée des scripts pour un paramètre régional donné. Cette liste est généralement remplie en appelant GetLocaleInfoEx avec LCType défini sur LOCALE_SSCRIPTS.
[in] cchLocaleScripts
Taille, en caractères, de la chaîne indiquée par lpLocaleScripts. L’application définit ce paramètre sur -1 si la chaîne se termine par une valeur Null. Si ce paramètre est défini sur 0, la fonction échoue.
[in] lpTestScripts
Pointeur vers la liste de tests, une deuxième liste énumérée de scripts. Cette liste est généralement remplie en appelant GetStringScripts.
[in] cchTestScripts
Taille, en caractères, de la chaîne indiquée par lpTestScripts. L’application définit ce paramètre sur -1 si la chaîne se termine par une valeur Null. Si ce paramètre est défini sur 0, la fonction échoue.
Valeur retournée
Retourne TRUE si la liste de test n’est pas vide et que tous les éléments de la liste sont également inclus dans la liste des paramètres régionaux. La fonction retourne toujours TRUE si la liste de paramètres régionaux contient plus de scripts que la liste de test, mais tous les scripts de liste de test doivent être contenus dans la liste des paramètres régionaux. Si VS_ALLOW_LATIN est spécifié dans dwFlags, la fonction se comporte comme si « Latn ; » figure toujours dans la liste des paramètres régionaux.
Dans tous les autres cas, la fonction retourne FALSE. Ce retour peut indiquer que la liste de test contient un élément qui ne figure pas dans la liste des paramètres régionaux, ou il peut indiquer une erreur. Pour faire la distinction entre ces deux cas, l’application doit appeler GetLastError, qui peut retourner l’un des codes d’erreur suivants :
- ERROR_INVALID_FLAGS. Les valeurs fournies pour les indicateurs n’étaient pas valides.
- ERROR_INVALID_PARAMETER. L’une des valeurs de paramètre n’était pas valide.
- ERROR_SUCCESS. L’action s’est terminée avec succès, mais n’a produit aucun résultat.
Remarques
Cette fonction compare des chaînes, telles que « Latn ; Cyrl ; », qui se composent d’une série de noms de script de 4 caractères, avec chaque nom de script suivi d’un point-virgule. Il a également un cas particulier pour tenir compte du fait que l’écriture latine est souvent utilisée dans les langues et les paramètres régionaux pour lesquels il n’est pas natif.
Cette fonction est utile dans le cadre d’une stratégie pour atténuer les problèmes de sécurité liés aux noms de domaine internationalisés (IDN).
Voici des exemples de retour de cette fonction et d’un appel ultérieur à GetLastError dans différents scénarios. Les deux derniers exemples illustrent, respectivement, un cas dans lequel la liste de tests n’a pas de point-virgule de fin (chaîne incorrecte) et un cas dans lequel la liste de test est vide.
Chaîne de paramètres régionaux | Test string | dwFlags | Valeur retournée | Retour GetLastError |
---|---|---|---|---|
Hani; Hira; Kana; | Hani; | * | TRUE | (inchangé) |
Hani; Hira; Kana; | Hani; Latn; | 0 | FALSE | ERROR_SUCCESS |
Hani; Hira; Kana; | Hani; Latn; | VS_ALLOW_LATIN | TRUE | (inchangé) |
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 | (inchangé) |
- Les résultats sont les mêmes, que VS_ALLOW_LATIN soit passé dans le paramètre dwFlags ou qu’aucun indicateur ne soit fourni.
Exemples
NLS : L’exemple d’atténuation de nom de domaine international (IDN) illustre l’utilisation de cette fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | winnls.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |
Voir aussi
Gestion des noms de domaine internationalisés (IDN)