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