Funzioni di codifica del testo ATL
Queste funzioni supportano la codifica e la decodifica del testo.
Funzione | Descrizione |
---|---|
AtlGetHexValue | Chiamare questa funzione per ottenere il valore numerico di una cifra esadecimale. |
AtlGetVersion | Chiamare questa funzione per ottenere la versione della libreria ATL in uso. |
AtlHexDecode | Decodifica una stringa di dati codificati come testo esadecimale, ad esempio da una chiamata precedente ad AtlHexEncode. |
AtlHexDecodeGetRequiredLength | Chiamare questa funzione per ottenere la dimensione in byte di un buffer contenente dati decodificati da una stringa esadecimale della lunghezza specificata. |
AtlHexEncode | Chiamare questa funzione per codificare dei dati come stringa di testo esadecimale. |
AtlHexEncodeGetRequiredLength | Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata. |
AtlHexValue | Chiamare questa funzione per ottenere il valore numerico di una cifra esadecimale. |
AtlUnicodeToUTF8 | Chiamare questa funzione per convertire una stringa Unicode in UTF-8. |
BEncode | Chiamare questa funzione per convertire alcuni dati utilizzando la codifica "B". |
BEncodeGetRequiredLength | Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata. |
EscapeXML | Chiamare questa funzione per convertire i caratteri non sicuri per l'utilizzo in XML nei relativi equivalenti specifici. |
GetExtendedChars | Chiamare questa funzione per ottenere il numero di caratteri estesi in una stringa. |
IsExtendedChar | Chiamare questa funzione per verificare se un determinato carattere è un carattere esteso (minore di 32, maggiore di 126 e non una scheda, avanzamento riga o ritorno a capo) |
QEncode | Chiamare questa funzione per convertire alcuni dati utilizzando la codifica "Q". |
QEncodeGetRequiredLength | Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata. |
QPDecode | Decodifica una stringa di dati codificata in formato stampabile tra virgolette, ad esempio da una chiamata precedente a QPEncode. |
QPDecodeGetRequiredLength | Chiamare questa funzione per ottenere la dimensione in byte di un buffer contenente dati decodificati da una stringa codificata stampabile tra virgolette della lunghezza specificata. |
QPEncode | Chiamare questa funzione per codificare alcuni dati nel formato stampabile tra virgolette. |
QPEncodeGetRequiredLength | Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata. |
UUDecode | Decodifica una stringa di dati che è stata uuencoded, ad esempio da una chiamata precedente a UUEncode. |
UUDecodeGetRequiredLength | Chiamare questa funzione per ottenere la dimensione in byte di un buffer contenente dati decodificati da una stringa uuencode della lunghezza specificata. |
UUEncode | Chiamare questa funzione per convertire i dati in uuencode. |
UUEncodeGetRequiredLength | Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata. |
Requisiti
Intestazione: atlenc.h
AtlGetHexValue
Chiamare questa funzione per ottenere il valore numerico di una cifra esadecimale.
inline char AtlGetHexValue(char chIn) throw();
Parametri
mento
Carattere esadecimale '0'-'9', 'A'-'F' o 'a'-'f'.
Valore restituito
Valore numerico del carattere di input interpretato come cifra esadecimale. Ad esempio, un input di '0' restituisce un valore pari a 0 e un input di 'A' restituisce un valore pari a 10. Se il carattere di input non è una cifra esadecimale, questa funzione restituisce -1.
AtlGetVersion
Chiamare questa funzione per ottenere la versione della libreria ATL in uso.
ATLAPI_(DWORD) AtlGetVersion(void* pReserved);
Parametri
preservato
Puntatore riservato.
Valore restituito
Restituisce un valore intero DWORD della versione della libreria ATL che si sta compilando o eseguendo.
Esempio
La funzione deve essere chiamata come segue.
DWORD ver;
ver = AtlGetVersion(NULL);
Requisiti
Intestazione: atlbase.h
AtlHexDecode
Decodifica una stringa di dati codificati come testo esadecimale, ad esempio da una chiamata precedente ad AtlHexEncode.
inline BOOL AtlHexDecode(
LPCSTR pSrcData,
int nSrcLen,
LPBYTE pbDest,
int* pnDestLen) throw();
Parametri
pSrcData
Stringa contenente i dati da decodificare.
nSrcLen
Lunghezza in caratteri di pSrcData.
pbDest
Buffer allocato dal chiamante per ricevere i dati decodificati.
pnDestLen
Puntatore a una variabile che contiene la lunghezza in byte di pbDest. Se la funzione ha esito positivo, la variabile riceve il numero di byte scritti nel buffer. Se la funzione ha esito negativo, la variabile riceve la lunghezza richiesta in byte del buffer.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
AtlHexDecodeGetRequiredLength
Chiamare questa funzione per ottenere la dimensione in byte di un buffer contenente dati decodificati da una stringa esadecimale della lunghezza specificata.
inline int AtlHexDecodeGetRequiredLength(int nSrcLen) throw();
Parametri
nSrcLen
Numero di caratteri nella stringa codificata.
Valore restituito
Numero di byte necessari per un buffer che può contenere una stringa decodificata di caratteri nSrcLen .
AtlHexEncode
Chiamare questa funzione per codificare dei dati come stringa di testo esadecimale.
inline BOOL AtlHexEncode(
const BYTE * pbSrcData,
int nSrcLen,
LPSTR szDest,
int * pnDestLen) throw();
Parametri
pbSrcData
Buffer contenente i dati da codificare.
nSrcLen
Lunghezza in byte dei dati da codificare.
szDest
Buffer allocato dal chiamante per ricevere i dati codificati.
pnDestLen
Puntatore a una variabile che contiene la lunghezza in caratteri di szDest. Se la funzione ha esito positivo, la variabile riceve il numero di caratteri scritti nel buffer. Se la funzione ha esito negativo, la variabile riceve la lunghezza necessaria in caratteri del buffer.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Ogni byte dei dati di origine viene codificato come 2 caratteri esadecimali.
AtlHexEncodeGetRequiredLength
Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata.
inline int AtlHexEncodeGetRequiredLength(int nSrcLen) throw();
Parametri
nSrcLen
Numero di byte di dati da codificare.
Valore restituito
Numero di caratteri necessari per un buffer che può contenere dati codificati di byte nSrcLen .
AtlHexValue
Chiamare questa funzione per ottenere il valore numerico di una cifra esadecimale.
inline short AtlHexValue(char chIn) throw();
Parametri
mento
Carattere esadecimale '0'-'9', 'A'-'F' o 'a'-'f'.
Valore restituito
Valore numerico del carattere di input interpretato come cifra esadecimale. Ad esempio, un input di '0' restituisce un valore pari a 0 e un input di 'A' restituisce un valore pari a 10. Se il carattere di input non è una cifra esadecimale, questa funzione restituisce -1.
AtlUnicodeToUTF8
Chiamare questa funzione per convertire una stringa Unicode in UTF-8.
ATL_NOINLINE inline int AtlUnicodeToUTF8(
LPCWSTR wszSrc,
int nSrc,
LPSTR szDest,
int nDest) throw();
Parametri
wszSrc
Stringa Unicode da convertire
nSrc
Lunghezza in caratteri della stringa Unicode.
szDest
Buffer allocato dal chiamante per ricevere la stringa convertita.
nDest
Lunghezza in byte del buffer.
Valore restituito
Restituisce il numero di caratteri per la stringa convertita.
Osservazioni:
Per determinare le dimensioni del buffer necessario per la stringa convertita, chiamare questa funzione passando 0 per szDest e nDest.
BEncode
Chiamare questa funzione per convertire alcuni dati utilizzando la codifica "B".
inline BOOL BEncode(
BYTE* pbSrcData,
int nSrcLen,
LPSTR szDest,
int* pnDestLen,
LPCSTR pszCharSet) throw();
Parametri
pbSrcData
Buffer contenente i dati da codificare.
nSrcLen
Lunghezza in byte dei dati da codificare.
szDest
Buffer allocato dal chiamante per ricevere i dati codificati.
pnDestLen
Puntatore a una variabile che contiene la lunghezza in caratteri di szDest. Se la funzione ha esito positivo, la variabile riceve il numero di caratteri scritti nel buffer. Se la funzione ha esito negativo, la variabile riceve la lunghezza necessaria in caratteri del buffer.
pszCharSet
Set di caratteri da utilizzare per la conversione.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Lo schema di codifica "B" è descritto in RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).
BEncodeGetRequiredLength
Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata.
inline int BEncodeGetRequiredLength(int nSrcLen, int nCharsetLen) throw();
Parametri
nSrcLen
Numero di byte di dati da codificare.
nCharsetLen
Lunghezza in caratteri del set di caratteri da utilizzare per la conversione.
Valore restituito
Numero di caratteri necessari per un buffer che può contenere dati codificati di byte nSrcLen .
Osservazioni:
Lo schema di codifica "B" è descritto in RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).
EscapeXML
Chiamare questa funzione per convertire i caratteri non sicuri per l'utilizzo in XML nei relativi equivalenti specifici.
inline int EscapeXML(
const wchar_t * szIn,
int nSrcLen,
wchar_t * szEsc,
int nDestLen,
DWORD dwFlags = ATL_ESC_FLAG_NONE) throw();
Parametri
szIn
Stringa da convertire.
nSrclen
Lunghezza in caratteri della stringa da convertire.
szEsc
Buffer allocato dal chiamante per ricevere la stringa convertita.
nDestLen
Lunghezza in caratteri del buffer allocato dal chiamante.
dwFlags
ATL_ESC Flag che descrivono come eseguire la conversione.
- ATL_ESC_FLAG_NONE Comportamento predefinito. Le virgolette e gli apostrofi non vengono convertiti.
- ATL_ESC_FLAG_ATTR virgolette e apostrofi vengono convertiti rispettivamente in
"
e'
.
Valore restituito
Lunghezza in caratteri della stringa convertita.
Osservazioni:
Le possibili conversioni eseguite da questa funzione sono visualizzate nella tabella:
Source (Sorgente) | Destination |
---|---|
< | < |
> | > |
& | & |
' | ' |
" | " |
GetExtendedChars
Chiamare questa funzione per ottenere il numero di caratteri estesi in una stringa.
inline int GetExtendedChars(LPCSTR szSrc, int nSrcLen) throw();
Parametri
szSrc
Stringa da analizzare.
nSrcLen
Lunghezza della stringa in caratteri.
Valore restituito
Restituisce il numero di caratteri estesi trovati all'interno della stringa come determinato da IsExtendedChar.
IsExtendedChar
Chiamare questa funzione per verificare se un determinato carattere è un carattere esteso (minore di 32, maggiore di 126 e non una scheda, avanzamento riga o ritorno a capo)
inline int IsExtendedChar(char ch) throw();
Parametri
Ch
Carattere da testare
Valore restituito
TRUE se il carattere è esteso, FALSE in caso contrario.
QEncode
Chiamare questa funzione per convertire alcuni dati utilizzando la codifica "Q".
inline BOOL QEncode(
BYTE* pbSrcData,
int nSrcLen,
LPSTR szDest,
int* pnDestLen,
LPCSTR pszCharSet,
int* pnNumEncoded = NULL) throw();
Parametri
pbSrcData
Buffer contenente i dati da codificare.
nSrcLen
Lunghezza in byte dei dati da codificare.
szDest
Buffer allocato dal chiamante per ricevere i dati codificati.
pnDestLen
Puntatore a una variabile che contiene la lunghezza in caratteri di szDest. Se la funzione ha esito positivo, la variabile riceve il numero di caratteri scritti nel buffer. Se la funzione ha esito negativo, la variabile riceve la lunghezza necessaria in caratteri del buffer.
pszCharSet
Set di caratteri da utilizzare per la conversione.
pnNumEncoded
Puntatore a una variabile che in caso di restituzione contiene il numero di caratteri non sicuri da convertire.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Lo schema di codifica "Q" è descritto in RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).
QEncodeGetRequiredLength
Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata.
inline int QEncodeGetRequiredLength(int nSrcLen, int nCharsetLen) throw();
Parametri
nSrcLen
Numero di byte di dati da codificare.
nCharsetLen
Lunghezza in caratteri del set di caratteri da utilizzare per la conversione.
Valore restituito
Numero di caratteri necessari per un buffer che può contenere dati codificati di byte nSrcLen .
Osservazioni:
Lo schema di codifica "Q" è descritto in RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).
QPDecode
Decodifica una stringa di dati codificata in formato stampabile tra virgolette, ad esempio da una chiamata precedente a QPEncode.
inline BOOL QPDecode(
BYTE* pbSrcData,
int nSrcLen,
LPSTR szDest,
int* pnDestLen,
DWORD dwFlags = 0) throw();
Parametri
pbSrcData
[in] Buffer contenente i dati da decodificare.
nSrcLen
[in] Lunghezza in byte di pbSrcData.
szDest
[out] Buffer allocato dal chiamante per ricevere i dati decodificati.
pnDestLen
[out] Puntatore a una variabile che contiene la lunghezza in byte di szDest. Se la funzione ha esito positivo, la variabile riceve il numero di byte scritti nel buffer. Se la funzione ha esito negativo, la variabile riceve la lunghezza richiesta in byte del buffer.
dwFlags
[in] ATLSMTP_QPENCODE flag che descrivono come eseguire la conversione.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Lo schema di codifica stampabile tra virgolette è descritto in RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).
QPDecodeGetRequiredLength
Chiamare questa funzione per ottenere la dimensione in byte di un buffer contenente dati decodificati da una stringa codificata stampabile tra virgolette della lunghezza specificata.
inline int QPDecodeGetRequiredLength(int nSrcLen) throw();
Parametri
nSrcLen
Numero di caratteri nella stringa codificata.
Valore restituito
Numero di byte necessari per un buffer che può contenere una stringa decodificata di caratteri nSrcLen .
Osservazioni:
Lo schema di codifica stampabile tra virgolette è descritto in RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).
QPEncode
Chiamare questa funzione per codificare alcuni dati nel formato stampabile tra virgolette.
inline BOOL QPEncode(
BYTE* pbSrcData,
int nSrcLen,
LPSTR szDest,
int* pnDestLen,
DWORD dwFlags = 0) throw ();
Parametri
pbSrcData
Buffer contenente i dati da codificare.
nSrcLen
Lunghezza in byte dei dati da codificare.
szDest
Buffer allocato dal chiamante per ricevere i dati codificati.
pnDestLen
Puntatore a una variabile che contiene la lunghezza in caratteri di szDest. Se la funzione ha esito positivo, la variabile riceve il numero di caratteri scritti nel buffer. Se la funzione ha esito negativo, la variabile riceve la lunghezza necessaria in caratteri del buffer.
dwFlags
ATLSMTP_QPENCODE flag che descrivono come eseguire la conversione.
ATLSMTP_QPENCODE_DOT Se all'inizio di una riga viene visualizzato un punto, viene aggiunto all'output e codificato.
ATLSMTP_QPENCODE_TRAILING_SOFT Accoda
=\r\n
alla stringa codificata.
Lo schema di codifica stampabile tra virgolette è descritto in RFC 2045.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Lo schema di codifica stampabile tra virgolette è descritto in RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).
QPEncodeGetRequiredLength
Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata.
inline int QPEncodeGetRequiredLength(int nSrcLen) throw ();
Parametri
nSrcLen
Numero di byte di dati da codificare.
Valore restituito
Numero di caratteri necessari per un buffer che può contenere dati codificati di byte nSrcLen .
Osservazioni:
Lo schema di codifica stampabile tra virgolette è descritto in RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).
UUDecode
Decodifica una stringa di dati che è stata uuencoded, ad esempio da una chiamata precedente a UUEncode.
inline BOOL UUDecode(
BYTE* pbSrcData,
int nSrcLen,
BYTE* pbDest,
int* pnDestLen) throw ();
Parametri
pbSrcData
Stringa contenente i dati da decodificare.
nSrcLen
Lunghezza in byte di pbSrcData.
pbDest
Buffer allocato dal chiamante per ricevere i dati decodificati.
pnDestLen
Puntatore a una variabile che contiene la lunghezza in byte di pbDest. Se la funzione ha esito positivo, la variabile riceve il numero di byte scritti nel buffer. Se la funzione ha esito negativo, la variabile riceve la lunghezza richiesta in byte del buffer.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Questa implementazione uuencoding segue la specifica POSIX P1003.2b/D11.
UUDecodeGetRequiredLength
Chiamare questa funzione per ottenere la dimensione in byte di un buffer contenente dati decodificati da una stringa uuencode della lunghezza specificata.
inline int UUDecodeGetRequiredLength(int nSrcLen) throw ();
Parametri
nSrcLen
Numero di caratteri nella stringa codificata.
Valore restituito
Numero di byte necessari per un buffer che può contenere una stringa decodificata di caratteri nSrcLen .
Osservazioni:
Questa implementazione uuencoding segue la specifica POSIX P1003.2b/D11.
UUEncode
Chiamare questa funzione per convertire i dati in uuencode.
inline BOOL UUEncode(
const BYTE* pbSrcData,
int nSrcLen,
LPSTR szDest,
int* pnDestLen,
LPCTSTR lpszFile = _T("file"),
DWORD dwFlags = 0) throw ();
Parametri
pbSrcData
Buffer contenente i dati da codificare.
nSrcLen
Lunghezza in byte dei dati da codificare.
szDest
Buffer allocato dal chiamante per ricevere i dati codificati.
pnDestLen
Puntatore a una variabile che contiene la lunghezza in caratteri di szDest. Se la funzione ha esito positivo, la variabile riceve il numero di caratteri scritti nel buffer. Se la funzione ha esito negativo, la variabile riceve la lunghezza necessaria in caratteri del buffer.
lpszFile
File da aggiungere all'intestazione quando ATLSMTP_UUENCODE_HEADER viene specificato in dwFlags.
dwFlags
Flag che controllano il comportamento di questa funzione.
ATLSMTP_UUENCODE_HEADE L'intestazione verrà codificata.
ATLSMTP_UUENCODE_END La fine verrà codificata.
ATLSMTP_UUENCODE_DOT verranno eseguite operazioni di inserimento dei dati.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Questa implementazione uuencoding segue la specifica POSIX P1003.2b/D11.
UUEncodeGetRequiredLength
Chiamare questa funzione per ottenere la dimensione in caratteri di un buffer contenente una stringa codificata da dati della lunghezza specificata.
inline int UUEncodeGetRequiredLength(int nSrcLen) throw ();
Parametri
nSrcLen
Numero di byte di dati da codificare.
Valore restituito
Numero di caratteri necessari per un buffer che può contenere dati codificati di byte nSrcLen .
Osservazioni:
Questa implementazione uuencoding segue la specifica POSIX P1003.2b/D11.