Partager via


GetStringTypeW, fonction (stringapiset.h)

Note

Cette API peut avoir des informations incomplètes/obsolètes pour certains caractères Unicode, en particulier celles de la plage supplémentaire. Pour obtenir des informations de type caractère Unicode plus précises et complètes, envisagez d’utiliser des API DCU équivalentes telles que u_charType, u_islower, u_isspaceet u_ispunct. Pour obtenir des conseils sur l’utilisation d’API ICU sur Windows, consultez Prise en main de l’ICU sur Windows.

Récupère les informations de type caractère 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 Utilisation 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.

Drapeau Signification
CT_CTYPE1
Récupérer les informations de type de caractère.
CT_CTYPE2
Récupérer les informations de disposition bidirectionnelles.
CT_CTYPE3
Récupérer des informations de traitement de 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 a la 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 caractère pour ce caractère. Si l’application définit la taille sur un 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 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 é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 est retournée, ce tableau contient un mot correspondant à chaque caractère de la chaîne source.

Valeur de retour

Retourne une valeur différente de zéro si elle réussit ou 0 sinon. 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’est 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 identiques. S’ils sont identiques, la fonction échoue avec ERROR_INVALID_PARAMETER.

Le paramètre Paramètres régionaux 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 en utilisant 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 saisie de caractères ANSI C et POSIX (LC_CTYPE). Une or 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, et les caractères idéogrammes kanji ont tous l’attribut C1_ALPHA.

Nom Valeur Signification
C1_UPPER 0x0001 Majuscule
C1_LOWER 0x0002 Minuscule
C1_DIGIT 0x0004 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, syllabe 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 computables à partir de 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 espaces (tous les types C1_* sauf C1_CNTRL)
 

Ctype 2

Ces types prennent en charge la disposition appropriée 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 bidirectionnel normalisé par Unicode produise des résultats précis. Ces types s’excluent mutuellement. Pour plus d’informations sur l’utilisation de ces attributs, consultez l'Standard Unicode.

Nom Valeur Signification
Fort
C2_LEFTTORIGHT 0x0001 Gauche à droite
C2_RIGHTTOLEFT 0x0002 Droite à gauche
Faible
C2_EUROPENUMBER 0x0003 Numéro européen, chiffre européen
C2_EUROPESEPARATOR 0x0004 Séparateur numérique européen
C2_EUROPETERMINATOR 0x0005 Terminateur numérique européen
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
Sans objet
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 aux 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 aux caractères étroits et aux caractères larges. Les caractères hiragana et katakana japonais, et 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 voyelle non-espacement
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 de kashida
C3_LEXICAL 0x0400 Ponctuation qui est comptée dans le mot (kashida, trait d’union, indicateurs ordinaux féminins/masculins, signe égal, etc.)
C3_ALPHA 0x8000 Tous les caractères linguistiques (alphabétique, syllabe et idéographique)
C3_HIGHSURROGATE 0x0800 Windows Vista : unité de code de substitution élevée
C3_LOWSURROGATE 0x1000 Windows Vista : unité de code de substitution faible
Sans objet
C3_NOTAPPLICABLE 0x0000 Sans objet
 

C3_HIGHSURROGATE et C3_LOWSURROGATE sont répertoriés uniquement pour l’exhaustivité et ne doivent jamais être fournis à cette fonction. Elles sont pertinentes uniquement pour Unicode.

à partir de Windows 8 : GetStringTypeW est déclaré dans Stringapiset.h. Avant Windows 8, il a été déclaré dans Winnls.h.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête stringapiset.h (include 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