Fonction SHUnicodeToAnsi (shlwapi.h)
[Cette fonction est disponible via Windows XP et Windows Server 2003. Il peut être modifié ou indisponible dans les versions ultérieures de Windows.]
Convertit une chaîne de la page de code Unicode en page de code ANSI.
Syntaxe
int SHUnicodeToAnsi(
[in] PCWSTR pwszSrc,
[out] PSTR pszDst,
int cchBuf
);
Paramètres
[in] pwszSrc
Type : PCWSTR
Pointeur vers la chaîne Unicode terminée par null à convertir en ANSI.
[out] pszDst
Type : PSTR
Pointeur vers une mémoire tampon qui, lorsque cette fonction retourne correctement, reçoit les caractères convertis. La mémoire tampon doit être suffisamment grande pour contenir le nombre de caractères CHAR spécifiés par le paramètre cchBuf , y compris la place pour un caractère null de fin.
cchBuf
Type : int
Nombre de valeurs CHAR pouvant être contenues par la mémoire tampon pointée par pszDst. La valeur affectée au paramètre doit être supérieure à zéro.
Valeur retournée
Type : int
Retourne le nombre de valeurs CHAR écrites dans la mémoire tampon de sortie, y compris le caractère null de fin. Retourne 0 en cas d’échec.
Remarques
Avertissement de sécurité : L’utilisation incorrecte de cette fonction peut compromettre la sécurité de votre application. Par exemple, si la mémoire tampon pszDst n’est pas assez grande pour contenir le nombre de caractères spécifié par cchBuf, un dépassement de mémoire tampon peut se produire. Les dépassements de mémoire tampon peuvent entraîner une attaque par déni de service contre une application si une violation d’accès se produit. Dans le pire des cas, un dépassement de mémoire tampon peut permettre à un attaquant d’injecter du code exécutable dans votre processus, en particulier si pszDst est une mémoire tampon basée sur une pile. En outre, la chaîne de sortie est tronquée en mode silencieux si elle est trop grande pour la mémoire tampon. Cela peut entraîner une canonisation ou d’autres vulnérabilités de sécurité.
Si la mémoire tampon pszDst n’est pas assez grande pour contenir la chaîne de sortie convertie entière, la chaîne est tronquée pour s’adapter à la mémoire tampon. Il n’existe aucun moyen de détecter que la chaîne de retour a été tronquée. La chaîne est toujours terminée par null, même si elle a été tronquée. Cette fonction prend soin de ne pas tronquer entre les octets de prospect et de fin d’une paire de caractères DBCS. Dans ce cas, seuls les caractères cchBuf-1 sont retournés.
Si les mémoires tampons pwszSrc et pszDst se chevauchent, le comportement de la fonction n’est pas défini.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel, Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server, Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shlwapi.h |
DLL | Shlwapi.dll (version 5.0 ou ultérieure) |
Voir aussi
StringCchLength