GetStringTypeExW, fonction (stringapiset.h)

Récupère les informations de type de caractères pour les caractères de la chaîne source spécifiée. Pour chaque caractère de la chaîne, la fonction définit un ou plusieurs bits dans l’élément 16 bits correspondant du tableau de sortie. Chaque bit identifie un type de caractère donné, par exemple, lettre, chiffre ou aucun des deux.

Attention L’utilisation incorrecte de la fonction GetStringTypeEx peut compromettre la sécurité de votre application. Pour éviter un dépassement de mémoire tampon, l’application doit définir correctement la taille de la mémoire tampon de sortie. Pour plus d’informations sur la sécurité, consultez Considérations relatives à la sécurité : Interface utilisateur Windows.
 
Note Contrairement à ses proches parents GetStringTypeA et GetStringTypeW, cette fonction présente le comportement ANSI ou Unicode approprié grâce à l’utilisation du commutateur UNICODE #define. Il s’agit de la fonction recommandée pour la récupération de type caractère.
 

Syntaxe

BOOL GetStringTypeExW(
  [in]  LCID                          Locale,
  [in]  DWORD                         dwInfoType,
  [in]  _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
  [in]  int                           cchSrc,
  [out] LPWORD                        lpCharType
);

Paramètres

[in] Locale

Identificateur de paramètres régionaux qui spécifie les paramètres régionaux. Cette valeur définit de manière unique la page de codes ANSI. Vous pouvez utiliser la macro MAKELCID pour créer un identificateur de paramètres régionaux ou utiliser l’une des valeurs prédéfinies suivantes.

Windows Vista et versions ultérieures : Les identificateurs de paramètres régionaux personnalisés suivants sont également pris en charge.

[in] dwInfoType

Indicateurs spécifiant les informations de type de caractère à récupérer. Pour connaître les valeurs d’indicateur possibles, consultez le paramètre dwInfoType de GetStringTypeW. Pour plus d’informations sur les bits de type caractère, consultez Remarques pour GetStringTypeW.

[in] lpSrcStr

Pointeur vers la chaîne pour laquelle récupérer les types de caractères. La chaîne est supposée être terminée par null si cchSrc est défini sur une valeur négative.

[in] cchSrc

Taille, en caractères, de la chaîne indiquée par lpSrcStr. La taille fait référence à des octets pour la version ANSI de la fonction ou à des caractères larges pour la version Unicode. Si la taille inclut un caractère null de fin, la fonction récupère les informations de type de caractère pour ce caractère. Si l’application définit la taille sur n’importe quel entier négatif, la chaîne source est supposée être terminée par null et la fonction calcule automatiquement la taille avec un caractère supplémentaire pour l’arrêt Null.

[out] lpCharType

Pointeur vers un tableau de valeurs 16 bits. La longueur de ce tableau doit être suffisamment grande pour recevoir une valeur de 16 bits pour chaque caractère de la chaîne source. Si cchSrc n’est pas un nombre négatif, lpCharType doit être un tableau de mots avec des éléments cchSrc . Si cchSrc est défini sur un nombre négatif, lpCharType est un tableau de mots avec lpSrcStr + 1 éléments. Lorsque la fonction retourne, ce tableau contient un mot correspondant à chaque caractère de la chaîne source.

Valeur retournée

Retourne une valeur différente de zéro en cas de réussite, ou 0 dans le cas contraire. Pour obtenir des informations d’erreur étendues, l’application peut 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.

Remarques

Pour obtenir une vue d’ensemble de l’utilisation des fonctions de chaîne, consultez Chaînes.

À l’aide de la page de codes ANSI pour les paramètres régionaux fournis, cette fonction traduit la chaîne source d’ANSI en Unicode. Il analyse ensuite chaque caractère Unicode à la recherche d’informations sur le type de caractère.

La version ANSI de cette fonction convertit la chaîne source en Unicode et appelle la fonction GetStringTypeW correspondante. Ainsi, les mots de la mémoire tampon de sortie ne correspondent pas à la chaîne ANSI d’origine, mais à son équivalent Unicode. La conversion d’ANSI en Unicode peut entraîner une modification de la longueur de chaîne, par exemple, une paire de caractères ANSI peut être mappée à un caractère Unicode unique. Par conséquent, la correspondance entre les mots de la mémoire tampon de sortie et les caractères de la chaîne ANSI d’origine n’est pas un-à-un dans tous les cas, par exemple, les chaînes multioctets. Par conséquent, la version ANSI de cette fonction est d’une utilisation limitée pour les chaînes à plusieurs caractères. La version Unicode de la fonction est recommandée à la place.

Cette fonction contourne une limitation causée par la différence de paramètres entre GetStringTypeA et GetStringTypeW. En raison de la différence de paramètre, une application ne peut pas appeler automatiquement la version ANSI ou Unicode appropriée d’une fonction GetStringType* via l’utilisation du commutateur UNICODE #define. En revanche, GetStringTypeEx se comporte correctement par rapport à ce commutateur. Il s’agit donc de la fonction recommandée.

Lorsque la version ANSI de cette fonction est utilisée avec un identificateur de paramètres régionaux Unicode uniquement, la fonction peut réussir, car le système d’exploitation utilise la page de codes système. Toutefois, les caractères qui ne sont pas définis dans la page de codes système apparaissent dans la chaîne sous la forme d’un point d’interrogation (?).

Les valeurs des paramètres lpSrcStr et lpCharType ne doivent pas être les mêmes. Si elles sont identiques, la fonction échoue avec ERROR_INVALID_PARAMETER.

Le paramètre Paramètres régionaux est utilisé uniquement pour effectuer une conversion de chaîne en Unicode. Cela n’a rien à voir avec les valeurs CTYPE* fournies par l’application. Ces valeurs sont uniquement déterminées par des points de code Unicode et ne varient pas selon les paramètres régionaux. Par exemple, les lettres grecques sont spécifiées comme C1_ALPHA pour n’importe quelle valeur de Paramètres régionaux.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête stringapiset.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

GetStringTypeW

Prise en charge des langues nationales

Fonctions de prise en charge des langues nationales