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.