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
VS_ALLOW_LATIN
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

DownlevelVerifyScripts

GetLocaleInfoEx

GetStringScripts

Gestion des noms de domaine internationalisés (IDN)

Prise en charge des langues nationales

Fonctions de prise en charge des langues nationales