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.

Vedi anche

Concetti
Componenti Desktop COM ATL