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.
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.
[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 |