Partager via


Fonction DownlevelGetStringScripts

Fournit la liste des scripts utilisés dans la chaîne Unicode spécifiée.

Remarque

Cette fonction est utilisée uniquement par les applications qui s’exécutent sur des systèmes d’exploitation pré-Windows Vista. Son utilisation nécessite le package de téléchargement. Les applications qui s’exécutent uniquement sur Windows Vista et versions ultérieures doivent appeler GetStringScripts.

 

Syntaxe

int DownlevelGetStringScripts(
  _In_  DWORD   dwFlags,
  _In_  LPCWSTR lpString,
  _In_  int     cchString,
  _Out_ LPWSTR  lpScripts,
  _In_  int     cchScripts
);

Paramètres

dwFlags [in]

Indicateurs spécifiant les options de récupération de script.

Valeur Signification
GSS_ALLOW_INHERITED_COMMON
Récupérez les informations de script "Qaii" (INHERITED) et "Zyyy" (COMMON). Cette valeur n’affecte pas le traitement des caractères non attribués. Ces caractères dans la chaîne d’entrée provoquent toujours l’apparition d’un "Zzzz" (UNASSIGNED script) dans la chaîne de script.

 

Remarque

Par défaut, cette fonction ignore tous les caractères hérités ou courants dans la chaîne Unicode d’entrée. Si GSS_ALLOW_INHERITED_COMMON n’est pas défini, ni "Qaii" ni "Zyyy" n’apparaissent dans la chaîne de script, même si la chaîne d’entrée contient de tels caractères. Si GSS_ALLOW_INHERITED_COMMON est défini et si la chaîne d’entrée contient des caractères hérités et/ou communs, "Qaii" et/ou "Zyyy" apparaissent dans la chaîne de script. Consultez la section Notes.

 

lpString [in]

Pointeur vers la chaîne Unicode à analyser.

cchString [in]

Taille, en caractères, de la chaîne Unicode indiquée par lpString. L’application définit ce paramètre sur -1 si la chaîne se termine par Null. Si l’application définit ce paramètre sur 0, la fonction récupère une chaîne Unicode Null (L"\0") dans lpScripts et retourne 1.

lpScripts [out]

Pointeur vers une mémoire tampon dans laquelle cette fonction récupère une chaîne terminée par Null représentant une liste de scripts, à l’aide de la notation de 4 caractères utilisée dans ISO 15924. Chaque nom de script se compose de quatre caractères latins et les noms sont récupérés par ordre alphabétique. Chacun nom, y compris le dernier, est suivi d’un point-virgule.

Ce paramètre peut également contenir NULL si cchScripts a la valeur 0. Dans ce cas, la fonction retourne la taille requise pour la mémoire tampon de script.

cchScripts [in]

Taille, en caractères, pour la mémoire tampon de script indiquée par lpScripts.

L’application peut également définir ce paramètre sur 0. Dans ce cas, la fonction récupère NULL dans lpScripts et retourne la taille requise pour la mémoire tampon de script.

Valeur retournée

Retourne le nombre de caractères récupérés dans la mémoire tampon de sortie, y compris un caractère null de fin, en cas de réussite et la valeur cchScripts est définie sur une valeur différente de zéro. La fonction retourne 1 pour indiquer qu’aucun script n’a été trouvé, par exemple, lorsque la chaîne d’entrée contient uniquement des caractères COMMON ou INHERITED et que GSS_ALLOW_INHERITED_COMMON n’est pas défini. Étant donné que chaque script trouvé ajoute cinq caractères (quatre caractères + délimiteur), une opération mathématique simple fournit le nombre de scripts en tant que (return_code - 1) / 5.

Si la fonction réussit et que la valeur de cchScripts est 0, la valeur de retour est la taille requise, en caractères incluant un caractère Null de fin, pour la mémoire tampon du script. Le nombre de scripts est décrit ci-dessus.

La fonction retourne 0 si elle ne réussit pas. Pour obtenir des informations d’erreur étendues, l’application peut appeler GetLastError, qui peut retourner l’un des codes d’erreur suivants :

  • ERROR_BADDB. La fonction n’a pas pu accéder aux données. Cette situation ne doit pas se produire normalement et indique généralement une installation incorrecte, un problème de disque, etc.
  • ERROR_INSUFFICIENT_BUFFER. Une taille de mémoire tampon fournie n’était pas suffisante, ou elle était incorrectement définie sur NULL.
  • ERROR_INVALID_FLAGS. Les valeurs fournies pour les indicateurs n’étaient pas valides.
  • ERROR_INVALID_PARAMETER. Toutes les valeurs de paramètre n’étaient pas valides.

Notes

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 internationaux (IDN).

La détermination du script est basée sur les valeurs de script publiées par l’Unicode Consortium dans https://www.unicode.org/Public/4.1.0/ucd/Scripts.txt, sauf que les caractères non attribués ont la valeur "Zzzz" (UNASSIGNED) au lieu de "Zyyy" (COMMON).

Voici quelques exemples du comportement de cette fonction :

Chaîne d’entrée

dwFlags

lpScripts

Scripts

Microsoft.com

0

Latn;

Latin

Microsoft.com

GSS_ALLOW_INHERITED_COMMON

Latn;Zyyy;

Latin + Common

${ROWSPAN2}$Niño${REMOVE}$

004E 0069 0241 006F

${ROWSPAN2}$GSS_ALLOW_INHERITED_COMMON${REMOVE}$

${ROWSPAN2}$Latn;${REMOVE}$

${ROWSPAN2}$Latin${REMOVE}$

Utilise LATIN SMALL LETTER N WITH TILDE

${ROWSPAN2}$Niño${REMOVE}$

004E 0069 006E 0303 006F

${ROWSPAN2}$GSS_ALLOW_INHERITED_COMMON${REMOVE}$

${ROWSPAN2}$Latn;Qaii;${REMOVE}$

${ROWSPAN2}$Latin + Inherited${REMOVE}$

Utilise COMBINING TILDE

${ROWSPAN2}$Spооf${REMOVE}$

0053 0070 043e 043e 0066

${ROWSPAN2}$0${REMOVE}$

${ROWSPAN2}$Latn;Cyrl;${REMOVE}$

${ROWSPAN2}$Latin + Cyrillic${REMOVE}$

Utilise CYRILLIC SMALL LETTER O

U+f000

0

Zzzz;

Non attribué

U+f000

GSS_ALLOW_INHERITED_COMMON

Zzzz;

Non attribué

 

Le fichier d’en-tête et la DLL requis font partie du téléchargement « API d’atténuation de nom de domaine international (IDN) Microsoft » disponible sur archive.org.

Spécifications

Condition requise Value
Client minimal pris en charge
Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003 [applications de bureau uniquement]
Composant redistribuable
API d’atténuation du nom de domaine international (IDN) Microsoft sur Windows XP (SP2 ou version ultérieure), Windows Server 2003 (SP1 ou version ultérieure) ou Windows Vista
En-tête
Idndl.h
DLL
Idndl.dll

Voir aussi

National Language Support

Fonctions National Language Support

Gestion des noms de domaine internationaux (IDN)

DownlevelGetLocaleScripts

DownlevelVerifyScripts

GetStringScripts