GetStringTypeW, fonction (stringapiset.h)

Récupère les informations de type de caractères pour les caractères de la chaîne source Unicode 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 GetStringTypeW 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.

 

Syntaxe

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

Paramètres

[in] dwInfoType

Indicateurs spécifiant les informations de type de caractère à récupérer. Ce paramètre peut avoir les valeurs suivantes. Les types de caractères sont divisés en différents niveaux, comme décrit dans la section Remarques.

Indicateur Signification
CT_CTYPE1
Récupérer des informations sur le type de caractère.
CT_CTYPE2
Récupérer des informations de disposition bidirectionnelles.
CT_CTYPE3
Récupérer les informations de traitement du texte.

[in] lpSrcStr

Pointeur vers la chaîne Unicode 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. 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.

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 Locale utilisé par la fonction GetStringTypeA correspondante n’est pas utilisé par cette fonction. 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. Une application peut contourner cette limitation à l’aide de GetStringTypeEx, qui est la fonction recommandée.

Types de caractères pris en charge

Les bits de type caractère sont divisés en plusieurs niveaux. Les informations d’un niveau peuvent être récupérées par un seul appel à cette fonction. Chaque niveau est limité à 16 bits d’informations afin que les autres fonctions de mappage, qui sont limitées à 16 bits de représentation par caractère, puissent également retourner des informations de type caractère.

Ctype 1

Ces types prennent en charge les fonctions de typage de caractères ANSI C et POSIX (LC_CTYPE). Une ou au niveau du bit de ces valeurs est récupérée dans le tableau dans la mémoire tampon de sortie lorsque dwInfoType est défini sur CT_CTYPE1. Pour les paramètres régionaux DBCS, les attributs de type s’appliquent aux caractères étroits et aux caractères larges. Les caractères hiragana et katakana japonais, ainsi que les idéogrammes kanji ont tous l’attribut C1_ALPHA.

Nom Valeur Signification
C1_UPPER 0x0001 Majuscules
C1_LOWER 0x0002 Minuscules
C1_DIGIT 0x0004 des chiffres décimaux
C1_SPACE 0x0008 Espaces
C1_PUNCT 0x0010 Ponctuation
C1_CNTRL 0x0020 Caractères de contrôle
C1_BLANK 0x0040 Caractères vides
C1_XDIGIT 0x0080 Chiffres hexadécimaux
C1_ALPHA 0x0100 Tout caractère linguistique : alphabétique, syllabaire ou idéographique
C1_DEFINED 0x0200 Caractère défini, mais pas l’un des autres types C1_*
 

Les types de caractères suivants sont constants ou calculables à partir des types de base et n’ont pas besoin d’être pris en charge par cette fonction.

Type Description
Alphanumérique Caractères alphabétiques et chiffres (C1_ALPHA et C1_DIGIT)
Imprimable Caractères graphiques et vides (tous les types C1_* à l’exception des C1_CNTRL)
 

Ctype 2

Ces types prennent en charge la disposition correcte du texte Unicode. Pour les paramètres régionaux DBCS, le type de caractère s’applique aux caractères étroits et larges. Les attributs de direction sont attribués afin que l’algorithme de disposition bidirectionnelle standardisé par Unicode produise des résultats précis. Ces types s’excluent mutuellement. Pour plus d’informations sur l’utilisation de ces attributs, consultez La norme Unicode.

Nom Valeur Signification
Remarque
C2_LEFTTORIGHT 0x0001 De gauche à droite
C2_RIGHTTOLEFT 0x0002 De droite à gauche
Weak
C2_EUROPENUMBER 0x0003 Numéro européen, chiffre européen
C2_EUROPESEPARATOR 0x0004 Séparateur numérique européen
C2_EUROPETERMINATOR 0x0005 Terminaison numérique européenne
C2_ARABICNUMBER 0x0006 Numéro arabe
C2_COMMONSEPARATOR 0x0007 Séparateur numérique commun
Neutre
C2_BLOCKSEPARATOR 0x0008 Séparateur de blocs
C2_SEGMENTSEPARATOR 0x0009 Séparateur de segments
C2_WHITESPACE 0x000A Espace blanc
C2_OTHERNEUTRAL 0x000B Autres neutres
Non applicable
C2_NOTAPPLICABLE 0x0000 Aucune direction implicite (par exemple, codes de contrôle)
 

Ctype 3

Ces types sont destinés à être des espaces réservés pour les extensions des types POSIX requis pour le traitement de texte général ou pour les fonctions de bibliothèque C standard. Une or au niveau du bit de ces valeurs est récupérée lorsque dwInfoType est défini sur CT_CTYPE3. Pour les paramètres régionaux DBCS, les attributs Ctype 3 s’appliquent à la fois aux caractères étroits et aux caractères larges. Les caractères hiragana et katakana japonais, ainsi que les caractères idéogrammes kanji ont tous l’attribut C3_ALPHA.

Nom Valeur Signification
C3_NONSPACING 0x0001 Marque de non-espacement
C3_DIACRITIC 0x0002 Marque de non-espacement diacritique
C3_VOWELMARK 0x0004 Marque de non-espacement de voyelle
C3_SYMBOL 0x0008 Symbole
C3_KATAKANA 0x0010 Caractère katakana
C3_HIRAGANA 0x0020 Caractère Hiragana
C3_HALFWIDTH 0x0040 Caractère demi-largeur (étroit)
C3_FULLWIDTH 0x0080 Caractère pleine largeur (large)
C3_IDEOGRAPH 0x0100 Caractère idéographique
C3_KASHIDA 0x0200 Caractère arabe kashida
C3_LEXICAL 0x0400 Ponctuation qui est comptée dans le mot (kashida, trait d’union, indicateurs ordinaux féminin/masculin, signe égal, etc.)
C3_ALPHA 0x8000 Tous les caractères linguistiques (alphabétiques, syllabiques et idéographiques)
C3_HIGHSURROGATE 0x0800 Windows Vista : Unité de code de substitution élevée
C3_LOWSURROGATE 0x1000 Windows Vista : Unité de code de substitution faible
Non applicable
C3_NOTAPPLICABLE 0x0000 Non applicable
 

C3_HIGHSURROGATE et C3_LOWSURROGATE ne sont répertoriés qu’à des fins d’exhaustivité et ne doivent jamais être fournis à cette fonction. Elles s’appliquent uniquement à Unicode.

À compter de Windows 8 : GetStringTypeW est déclaré dans Stringapiset.h. Avant Windows 8, elle était déclarée dans Winnls.h.

Configuration requise

Condition requise Valeur
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

GetStringTypeA

GetStringTypeEx

Prise en charge des langues nationales

Fonctions de prise en charge des langues nationales