GetStringTypeA, fonction (winnls.h)

Action déconseillée. 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 GetStringTypeA 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 GetStringTypeA(
  [in]  LCID   Locale,
  [in]  DWORD  dwInfoType,
  [in]  LPCSTR 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. 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 ANSI pour laquelle récupérer les types de caractères. La chaîne peut être une chaîne de jeu de caractères codés sur deux octets (DBCS) si les paramètres régionaux fournis sont appropriés pour DBCS. 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.

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 , GetStringTypeA est d’une utilisation limitée pour les chaînes à plusieurs caractères. Les fonctions GetStringTypeW et GetStringTypeEx sont recommandées à la place.

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

Le paramètre Locale n’est pas utilisé par la fonction GetStringTypeW correspondante. 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winnls.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

GetStringTypeEx

GetStringTypeW

Prise en charge des langues nationales

Fonctions de prise en charge des langues nationales