Partager via


Fonctions de codage de texte ATL

Ces fonctions prennent en charge l’encodage de texte et le décodage.

Fonction Description
AtlGetHexValue Appelez cette fonction pour obtenir la valeur numérique d'un chiffre hexadécimal.
AtlGetVersion Appelez cette fonction pour obtenir la version de la bibliothèque ATL que vous utilisez.
AtlHexDecode Décode une chaîne de données qui a été encodée en tant que texte hexadécimal tel qu’un appel précédent à AtlHexEncode.
AtlHexDecodeGetRequiredLength Appelez cette fonction pour obtenir la taille en octets d'une mémoire tampon qui peut contenir des données décodées à partir d'une chaîne encodée au format hexadécimal de longueur spécifique.
AtlHexEncode Appelez cette fonction pour encoder des données sous forme de chaîne hexadécimale.
AtlHexEncodeGetRequiredLength Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.
AtlHexValue Appelez cette fonction pour obtenir la valeur numérique d'un chiffre hexadécimal.
AtlUnicodeToUTF8 Appelez cette fonction pour convertir une chaîne Unicode au format UTF-8.
BEncode Appelez cette fonction pour convertir certaines données à l'aide de l'encodage « B ».
BEncodeGetRequiredLength Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.
EscapeXML Appelez cette fonction pour convertir les caractères dont l'utilisation n'est pas sécurisée dans du code XML en leurs équivalents sécurisés.
GetExtendedChars Appelez cette fonction pour obtenir le nombre de caractères étendus d'une chaîne.
IsExtendedChar Appelez cette fonction pour déterminer si un caractère donné est un caractère étendu (inférieur à 32, supérieur à 126 et non un onglet, un saut de ligne ou un retour chariot)
QEncode Appelez cette fonction pour convertir certaines données à l'aide de l'encodage « Q ».
QEncodeGetRequiredLength Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.
QPDecode Décode une chaîne de données qui a été encodée dans un format entre guillemets imprimables, par exemple par un appel précédent à QPEncode.
QPDecodeGetRequiredLength Appelez cette fonction pour obtenir la taille en octets d'une mémoire tampon qui peut contenir des données décodées à partir d'une chaîne encodée au format Quoted-Printable (QP) de longueur spécifique.
QPEncode Appelez cette fonction pour encoder des données au format Quoted-Printable (QP).
QPEncodeGetRequiredLength Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.
UUDecode Décode une chaîne de données qui a été uuencoded par un appel précédent à UUEncode.
UUDecodeGetRequiredLength Appelez cette fonction pour obtenir la taille en octets d'une mémoire tampon qui peut contenir des données décodées à partir d'une chaîne encodée au format UUEncode de longueur spécifique.
UUEncode Appelez cette fonction pour convertir des données au format UUEncode.
UUEncodeGetRequiredLength Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.

Spécifications

En-tête : atlenc.h

AtlGetHexValue

Appelez cette fonction pour obtenir la valeur numérique d'un chiffre hexadécimal.

inline char AtlGetHexValue(char chIn) throw();

Paramètres

menton
Caractère hexadécimal '0'-'9', 'A'-'F' ou 'a'-'f'.

Valeur de retour

Valeur numérique du caractère d’entrée interprété comme un chiffre hexadécimal. Par exemple, une entrée de « 0 » retourne une valeur de 0 et une entrée de « A » retourne une valeur de 10. Si le caractère d’entrée n’est pas un chiffre hexadécimal, cette fonction retourne -1.

AtlGetVersion

Appelez cette fonction pour obtenir la version de la bibliothèque ATL que vous utilisez.

ATLAPI_(DWORD) AtlGetVersion(void* pReserved);

Paramètres

confit
Pointeur réservé.

Valeur de retour

Retourne une valeur entière DWORD de la version de la bibliothèque ATL que vous compilez ou exécutez.

Exemple

La fonction doit être appelée comme suit.

DWORD ver;
ver = AtlGetVersion(NULL);   

Spécifications

En-tête : atlbase.h

AtlHexDecode

Décode une chaîne de données qui a été encodée en tant que texte hexadécimal tel qu’un appel précédent à AtlHexEncode.

inline BOOL AtlHexDecode(
   LPCSTR pSrcData,
   int nSrcLen,
   LPBYTE pbDest,
   int* pnDestLen) throw();

Paramètres

pSrcData
Chaîne contenant les données à décoder.

nSrcLen
Longueur des caractères de pSrcData.

pbDest
Mémoire tampon allouée par l’appelant pour recevoir les données décodées.

pnDestLen
Pointeur vers une variable qui contient la longueur en octets du pbDest. Si la fonction réussit, la variable reçoit le nombre d’octets écrits dans la mémoire tampon. Si la fonction échoue, la variable reçoit la longueur requise en octets de la mémoire tampon.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

AtlHexDecodeGetRequiredLength

Appelez cette fonction pour obtenir la taille en octets d'une mémoire tampon qui peut contenir des données décodées à partir d'une chaîne encodée au format hexadécimal de longueur spécifique.

inline int AtlHexDecodeGetRequiredLength(int nSrcLen) throw();

Paramètres

nSrcLen
Nombre de caractères dans la chaîne encodée.

Valeur de retour

Nombre d’octets requis pour une mémoire tampon qui peut contenir une chaîne décodée de caractères nSrcLen .

AtlHexEncode

Appelez cette fonction pour encoder des données sous forme de chaîne hexadécimale.

inline BOOL AtlHexEncode(
   const BYTE * pbSrcData,
   int nSrcLen,
   LPSTR szDest,
int * pnDestLen) throw();

Paramètres

pbSrcData
Mémoire tampon contenant les données à encoder.

nSrcLen
Longueur en octets des données à encoder.

szDest
Mémoire tampon allouée par l’appelant pour recevoir les données encodées.

pnDestLen
Pointeur vers une variable qui contient la longueur en caractères de szDest. Si la fonction réussit, la variable reçoit le nombre de caractères écrits dans la mémoire tampon. Si la fonction échoue, la variable reçoit la longueur requise en caractères de la mémoire tampon.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Chaque octet des données sources est encodé sous la forme de 2 caractères hexadécimaux.

AtlHexEncodeGetRequiredLength

Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.

inline int AtlHexEncodeGetRequiredLength(int nSrcLen) throw();

Paramètres

nSrcLen
Nombre d’octets de données à encoder.

Valeur de retour

Nombre de caractères requis pour une mémoire tampon qui peut contenir des données encodées d’octets nSrcLen .

AtlHexValue

Appelez cette fonction pour obtenir la valeur numérique d'un chiffre hexadécimal.

inline short AtlHexValue(char chIn) throw();

Paramètres

menton
Caractère hexadécimal '0'-'9', 'A'-'F' ou 'a'-'f'.

Valeur de retour

Valeur numérique du caractère d’entrée interprété comme un chiffre hexadécimal. Par exemple, une entrée de « 0 » retourne une valeur de 0 et une entrée de « A » retourne une valeur de 10. Si le caractère d’entrée n’est pas un chiffre hexadécimal, cette fonction retourne -1.

AtlUnicodeToUTF8

Appelez cette fonction pour convertir une chaîne Unicode au format UTF-8.

ATL_NOINLINE inline int AtlUnicodeToUTF8(
   LPCWSTR wszSrc,
   int nSrc,
   LPSTR szDest,
   int nDest) throw();

Paramètres

wszSrc
Chaîne Unicode à convertir

nSrc
Longueur en caractères de la chaîne Unicode.

szDest
Mémoire tampon allouée par l’appelant pour recevoir la chaîne convertie.

nDest
Longueur en octets de la mémoire tampon.

Valeur de retour

Retourne le nombre de caractères de la chaîne convertie.

Notes

Pour déterminer la taille de la mémoire tampon requise pour la chaîne convertie, appelez cette fonction en passant 0 pour szDest et nDest.

BEncode

Appelez cette fonction pour convertir certaines données à l'aide de l'encodage « B ».

inline BOOL BEncode(
   BYTE* pbSrcData,
   int nSrcLen,
   LPSTR szDest,
   int* pnDestLen,
   LPCSTR pszCharSet) throw();

Paramètres

pbSrcData
Mémoire tampon contenant les données à encoder.

nSrcLen
Longueur en octets des données à encoder.

szDest
Mémoire tampon allouée par l’appelant pour recevoir les données encodées.

pnDestLen
Pointeur vers une variable qui contient la longueur en caractères de szDest. Si la fonction réussit, la variable reçoit le nombre de caractères écrits dans la mémoire tampon. Si la fonction échoue, la variable reçoit la longueur requise en caractères de la mémoire tampon.

pszCharSet
Jeu de caractères à utiliser pour la conversion.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le schéma d’encodage « B » est décrit dans RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

BEncodeGetRequiredLength

Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.

inline int BEncodeGetRequiredLength(int nSrcLen, int nCharsetLen) throw();

Paramètres

nSrcLen
Nombre d’octets de données à encoder.

nCharsetLen
Longueur en caractères du jeu de caractères à utiliser pour la conversion.

Valeur de retour

Nombre de caractères requis pour une mémoire tampon qui peut contenir des données encodées d’octets nSrcLen .

Notes

Le schéma d’encodage « B » est décrit dans RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

EscapeXML

Appelez cette fonction pour convertir les caractères dont l'utilisation n'est pas sécurisée dans du code XML en leurs équivalents sécurisés.

inline int EscapeXML(
   const wchar_t * szIn,
   int nSrcLen,
   wchar_t * szEsc,
   int nDestLen,
   DWORD dwFlags = ATL_ESC_FLAG_NONE) throw();

Paramètres

szIn
Chaîne à convertir.

nSrclen
Longueur en caractères de la chaîne à convertir.

szEsc
Mémoire tampon allouée par l’appelant pour recevoir la chaîne convertie.

nDestLen
Longueur en caractères de la mémoire tampon allouée par l’appelant.

dwFlags
ATL_ESC indicateurs décrivant la façon dont la conversion doit être effectuée.

  • ATL_ESC_FLAG_NONE comportement par défaut. Les guillemets et les apostrophes ne sont pas convertis.
  • ATL_ESC_FLAG_ATTR guillemets et apostrophes sont convertis en " et ' respectivement.

Valeur de retour

Longueur en caractères de la chaîne convertie.

Notes

Les conversions possibles effectuées par cette fonction sont affichées dans le tableau :

Source Destination
< <
> gt>
& &
' '
" "

GetExtendedChars

Appelez cette fonction pour obtenir le nombre de caractères étendus d'une chaîne.

inline int GetExtendedChars(LPCSTR szSrc, int nSrcLen) throw();

Paramètres

szSrc
Chaîne à analyser.

nSrcLen
Longueur de la chaîne en caractères.

Valeur de retour

Retourne le nombre de caractères étendus trouvés dans la chaîne, tel que déterminé par IsExtendedChar.

IsExtendedChar

Appelez cette fonction pour déterminer si un caractère donné est un caractère étendu (inférieur à 32, supérieur à 126 et non un onglet, un saut de ligne ou un retour chariot)

inline int IsExtendedChar(char ch) throw();

Paramètres

Ch
Caractère à tester

Valeur de retour

TRUE si le caractère est étendu, FALSE sinon.

QEncode

Appelez cette fonction pour convertir certaines données à l'aide de l'encodage « Q ».

inline BOOL QEncode(
   BYTE* pbSrcData,
   int nSrcLen,
   LPSTR szDest,
   int* pnDestLen,
   LPCSTR pszCharSet,
   int* pnNumEncoded = NULL) throw();

Paramètres

pbSrcData
Mémoire tampon contenant les données à encoder.

nSrcLen
Longueur en octets des données à encoder.

szDest
Mémoire tampon allouée par l’appelant pour recevoir les données encodées.

pnDestLen
Pointeur vers une variable qui contient la longueur en caractères de szDest. Si la fonction réussit, la variable reçoit le nombre de caractères écrits dans la mémoire tampon. Si la fonction échoue, la variable reçoit la longueur requise en caractères de la mémoire tampon.

pszCharSet
Jeu de caractères à utiliser pour la conversion.

pnNumEncoded
Un pointeur vers une variable retournée contient le nombre de caractères non sécurisés à convertir.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le schéma d’encodage « Q » est décrit dans RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

QEncodeGetRequiredLength

Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.

inline int QEncodeGetRequiredLength(int nSrcLen, int nCharsetLen) throw();

Paramètres

nSrcLen
Nombre d’octets de données à encoder.

nCharsetLen
Longueur en caractères du jeu de caractères à utiliser pour la conversion.

Valeur de retour

Nombre de caractères requis pour une mémoire tampon qui peut contenir des données encodées d’octets nSrcLen .

Notes

Le schéma d’encodage « Q » est décrit dans RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

QPDecode

Décode une chaîne de données qui a été encodée dans un format entre guillemets imprimables, par exemple par un appel précédent à QPEncode.

inline BOOL QPDecode(
   BYTE* pbSrcData,
   int nSrcLen,
   LPSTR szDest,
   int* pnDestLen,
   DWORD dwFlags = 0) throw();

Paramètres

pbSrcData
[in] Mémoire tampon contenant les données à décoder.

nSrcLen
[in] Longueur en octets de pbSrcData.

szDest
[out] Mémoire tampon allouée par l’appelant pour recevoir les données décodées.

pnDestLen
[out] Pointeur vers une variable qui contient la longueur en octets de szDest. Si la fonction réussit, la variable reçoit le nombre d’octets écrits dans la mémoire tampon. Si la fonction échoue, la variable reçoit la longueur requise en octets de la mémoire tampon.

dwFlags
[in] ATLSMTP_QPENCODE indicateurs décrivant la façon dont la conversion doit être effectuée.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le schéma d’encodage entre guillemets est décrit dans RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPDecodeGetRequiredLength

Appelez cette fonction pour obtenir la taille en octets d'une mémoire tampon qui peut contenir des données décodées à partir d'une chaîne encodée au format Quoted-Printable (QP) de longueur spécifique.

inline int QPDecodeGetRequiredLength(int nSrcLen) throw();

Paramètres

nSrcLen
Nombre de caractères dans la chaîne encodée.

Valeur de retour

Nombre d’octets requis pour une mémoire tampon qui peut contenir une chaîne décodée de caractères nSrcLen .

Notes

Le schéma d’encodage entre guillemets est décrit dans RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPEncode

Appelez cette fonction pour encoder des données au format Quoted-Printable (QP).

inline BOOL QPEncode(
   BYTE* pbSrcData,
   int nSrcLen,
   LPSTR szDest,
   int* pnDestLen,
   DWORD dwFlags = 0) throw ();

Paramètres

pbSrcData
Mémoire tampon contenant les données à encoder.

nSrcLen
Longueur en octets des données à encoder.

szDest
Mémoire tampon allouée par l’appelant pour recevoir les données encodées.

pnDestLen
Pointeur vers une variable qui contient la longueur en caractères de szDest. Si la fonction réussit, la variable reçoit le nombre de caractères écrits dans la mémoire tampon. Si la fonction échoue, la variable reçoit la longueur requise en caractères de la mémoire tampon.

dwFlags
ATLSMTP_QPENCODE indicateurs décrivant la façon dont la conversion doit être effectuée.

  • ATLSMTP_QPENCODE_DOT Si une période apparaît au début d’une ligne, elle est ajoutée à la sortie, ainsi qu’encodée.

  • ATLSMTP_QPENCODE_TRAILING_SOFT Ajouts =\r\n à la chaîne encodée.

Le schéma d’encodage entre guillemets est décrit dans RFC 2045.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Le schéma d’encodage entre guillemets est décrit dans RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPEncodeGetRequiredLength

Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.

inline int QPEncodeGetRequiredLength(int nSrcLen) throw ();

Paramètres

nSrcLen
Nombre d’octets de données à encoder.

Valeur de retour

Nombre de caractères requis pour une mémoire tampon qui peut contenir des données encodées d’octets nSrcLen .

Notes

Le schéma d’encodage entre guillemets est décrit dans RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

UUDecode

Décode une chaîne de données qui a été uuencoded par un appel précédent à UUEncode.

inline BOOL UUDecode(
   BYTE* pbSrcData,
   int nSrcLen,
   BYTE* pbDest,
   int* pnDestLen) throw ();

Paramètres

pbSrcData
Chaîne contenant les données à décoder.

nSrcLen
Longueur en octets de pbSrcData.

pbDest
Mémoire tampon allouée par l’appelant pour recevoir les données décodées.

pnDestLen
Pointeur vers une variable qui contient la longueur en octets du pbDest. Si la fonction réussit, la variable reçoit le nombre d’octets écrits dans la mémoire tampon. Si la fonction échoue, la variable reçoit la longueur requise en octets de la mémoire tampon.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Cette implémentation uuencoding suit la spécification POSIX P1003.2b/D11.

UUDecodeGetRequiredLength

Appelez cette fonction pour obtenir la taille en octets d'une mémoire tampon qui peut contenir des données décodées à partir d'une chaîne encodée au format UUEncode de longueur spécifique.

inline int UUDecodeGetRequiredLength(int nSrcLen) throw ();

Paramètres

nSrcLen
Nombre de caractères dans la chaîne encodée.

Valeur de retour

Nombre d’octets requis pour une mémoire tampon qui peut contenir une chaîne décodée de caractères nSrcLen .

Notes

Cette implémentation uuencoding suit la spécification POSIX P1003.2b/D11.

UUEncode

Appelez cette fonction pour convertir des données au format UUEncode.

inline BOOL UUEncode(
   const BYTE* pbSrcData,
   int nSrcLen,
   LPSTR szDest,
   int* pnDestLen,
   LPCTSTR lpszFile = _T("file"),
   DWORD dwFlags = 0) throw ();

Paramètres

pbSrcData
Mémoire tampon contenant les données à encoder.

nSrcLen
Longueur en octets des données à encoder.

szDest
Mémoire tampon allouée par l’appelant pour recevoir les données encodées.

pnDestLen
Pointeur vers une variable qui contient la longueur en caractères de szDest. Si la fonction réussit, la variable reçoit le nombre de caractères écrits dans la mémoire tampon. Si la fonction échoue, la variable reçoit la longueur requise en caractères de la mémoire tampon.

lpszFile
Fichier à ajouter à l’en-tête lorsque ATLSMTP_UUENCODE_HEADER est spécifié dans dwFlags.

dwFlags
Indicateurs contrôlant le comportement de cette fonction.

  • ATLSMTP_UUENCODE_HEADE L’en-tête est encodé.

  • ATLSMTP_UUENCODE_END La fin sera encodée.

  • ATLSMTP_UUENCODE_DOT le chargement des données sera effectué.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Cette implémentation uuencoding suit la spécification POSIX P1003.2b/D11.

UUEncodeGetRequiredLength

Appelez cette fonction pour obtenir la taille en caractères d'une mémoire tampon qui peut contenir une chaîne encodée à partir des données de la taille spécifiée.

inline int UUEncodeGetRequiredLength(int nSrcLen) throw ();

Paramètres

nSrcLen
Nombre d’octets de données à encoder.

Valeur de retour

Nombre de caractères requis pour une mémoire tampon qui peut contenir des données encodées d’octets nSrcLen .

Notes

Cette implémentation uuencoding suit la spécification POSIX P1003.2b/D11.

Voir aussi

Concepts
Composants de bureau COM ATL