ATL-textkodningsfunktioner

Anmärkning

Det aktiva mallbiblioteket (ATL) stöds fortfarande. Vi lägger dock inte längre till funktioner eller uppdaterar dokumentationen.

Dessa funktioner stöder textkodning och avkodning.

Funktion Description
AtlGetHexValue Anropa den här funktionen för att hämta det numeriska värdet för en hexadecimal siffra.
AtlGetVersion Anropa den här funktionen för att hämta den version av ATL-biblioteket som du använder.
AtlHexDecode Avkodar en datasträng som har kodats som hexadecimal text, till exempel vid ett tidigare anrop till AtlHexEncode.
AtlHexDecodeGetRequiredLength Anropa den här funktionen för att hämta storleken i byte för en buffert som kan innehålla data som avkodas från en hexkodad sträng med den angivna längden.
AtlHexEncode Anropa den här funktionen för att koda vissa data som en sträng med hexadecimal text.
AtlHexEncodeGetRequiredLength Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.
AtlHexValue Anropa den här funktionen för att hämta det numeriska värdet för en hexadecimal siffra.
AtlUnicodeToUTF8 Anropa den här funktionen för att konvertera en Unicode-sträng till UTF-8.
BEncode Anropa den här funktionen för att konvertera vissa data med hjälp av "B"-kodningen.
BEncodeGetRequiredLength Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.
EscapeXML Anropa den här funktionen för att konvertera tecken som är osäkra för användning i XML till deras säkra motsvarigheter.
GetExtendedChars Anropa den här funktionen för att hämta antalet utökade tecken i en sträng.
IsExtendedChar Anropa den här funktionen för att ta reda på om ett visst tecken är ett utökat tecken (mindre än 32, större än 126 och inte en flik, radmatning eller vagnretur)
QEncode Anropa den här funktionen för att konvertera vissa data med hjälp av "Q"-kodningen.
QEncodeGetRequiredLength Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.
QPDecode Avkodar en datasträng som har kodats i ett format som kan skrivas ut, till exempel vid ett tidigare anrop till QPEncode.
QPDecodeGetRequiredLength Anropa den här funktionen för att hämta storleken på en buffert i byte som kan innehålla data avkodad från en quoted-printable-kodad sträng av angiven längd.
QPEncode Anropa den här funktionen för att koda vissa data i format som kan skrivas ut med citattecken.
QPEncodeGetRequiredLength Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.
UUDecode Avkodar en datasträng som har uuenkodats, till exempel av en tidigare kallning till UUEncode.
UUDecodeGetRequiredLength Anropa den här funktionen för att hämta storleken i byte för en buffert som kan innehålla data som avkodas från en uuencoded-sträng med den angivna längden.
UUEncode Anropa den här funktionen för att uuencode vissa data.
UUEncodeGetRequiredLength Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.

Kravspecifikation

Rubrik: atlenc.h

AtlGetHexValue

Anropa den här funktionen för att hämta det numeriska värdet för en hexadecimal siffra.

inline char AtlGetHexValue(char chIn) throw();

Parameterar

Haka
Det hexadecimala tecknet '0'-'9', 'A'-'F' eller 'a'-'f'.

Returvärde

Det numeriska värdet för indatatecknet tolkat som en hexadecimal siffra. Ett indata av "0" returnerar till exempel värdet 0 och ett indata för "A" returnerar värdet 10. Om indatatecknet inte är en hexadecimal siffra returnerar den här funktionen -1.

AtlGetVersion

Anropa den här funktionen för att hämta den version av ATL-biblioteket som du använder.

ATLAPI_(DWORD) AtlGetVersion(void* pReserved);

Parameterar

Bevarade
En reserverad pekare.

Returvärde

Returnerar ett DWORD-heltalsvärde för den version av ATL-biblioteket som du kompilerar eller kör.

Example

Funktionen ska anropas på följande sätt.

DWORD ver;
ver = AtlGetVersion(NULL);   

Kravspecifikation

Rubrik: atlbase.h

AtlHexDecode

Avkodar en datasträng som har kodats som hexadecimal text, till exempel vid ett tidigare anrop till AtlHexEncode.

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

Parameterar

pSrcData
Strängen som innehåller de data som ska avkodas.

nSrcLen
Längden i tecken i pSrcData.

pbDest
Anroparens allokerade buffert för att ta emot de avkodade data.

pnDestLen
Pekare till en variabel som innehåller längden i byte av pbDest. Om funktionen lyckas tar variabeln emot antalet byte som skrivits till bufferten. Om funktionen misslyckas får variabeln den längd som krävs i byte av bufferten.

Returvärde

Returnerar TRUE vid lyckad, FALSE vid fel.

AtlHexDecodeGetRequiredLength

Anropa den här funktionen för att hämta storleken i byte för en buffert som kan innehålla data som avkodas från en hexkodad sträng med den angivna längden.

inline int AtlHexDecodeGetRequiredLength(int nSrcLen) throw();

Parameterar

nSrcLen
Antalet tecken i den kodade strängen.

Returvärde

Antalet byte som krävs för en buffert som kan innehålla en avkodad sträng med nSrcLen-tecken .

AtlHexEncode

Anropa den här funktionen för att koda vissa data som en sträng med hexadecimal text.

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

Parameterar

pbSrcData
Bufferten som innehåller de data som ska kodas.

nSrcLen
Längden i byte av de data som ska kodas.

szDest
Anroparens allokerade buffert för att ta emot kodade data.

pnDestLen
Pekare till en variabel som innehåller längden i tecken i szDest. Om funktionen lyckas tar variabeln emot antalet tecken som skrivits till bufferten. Om funktionen misslyckas får variabeln den längd som krävs i buffertens tecken.

Returvärde

Returnerar TRUE vid lyckad, FALSE vid fel.

Anmärkningar

Varje byte av källdata kodas som 2 hexadecimala tecken.

AtlHexEncodeGetRequiredLength

Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.

inline int AtlHexEncodeGetRequiredLength(int nSrcLen) throw();

Parameterar

nSrcLen
Antalet byte med data som ska kodas.

Returvärde

Antalet tecken som krävs för en buffert som kan innehålla kodade data för nSrcLen-byte .

AtlHexValue

Anropa den här funktionen för att hämta det numeriska värdet för en hexadecimal siffra.

inline short AtlHexValue(char chIn) throw();

Parameterar

Haka
Det hexadecimala tecknet '0'-'9', 'A'-'F' eller 'a'-'f'.

Returvärde

Det numeriska värdet för indatatecknet tolkat som en hexadecimal siffra. Ett indata av "0" returnerar till exempel värdet 0 och ett indata för "A" returnerar värdet 10. Om indatatecknet inte är en hexadecimal siffra returnerar den här funktionen -1.

AtlUnicodeToUTF8

Anropa den här funktionen för att konvertera en Unicode-sträng till UTF-8.

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

Parameterar

wszSrc
Unicode-strängen som ska konverteras

nSrc
Längden på tecken i Unicode-strängen.

szDest
Anroparallokerad buffert för att ta emot den konverterade strängen.

nDest
Längden i byte för bufferten.

Returvärde

Returnerar antalet tecken för den konverterade strängen.

Anmärkningar

För att fastställa storleken på bufferten som krävs för den konverterade strängen anropar du den här funktionen som skickar 0 för szDest och nDest.

BEncode

Anropa den här funktionen för att konvertera vissa data med hjälp av "B"-kodningen.

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

Parameterar

pbSrcData
Bufferten som innehåller de data som ska kodas.

nSrcLen
Längden i byte av de data som ska kodas.

szDest
Anroparens allokerade buffert för att ta emot kodade data.

pnDestLen
Pekare till en variabel som innehåller längden i tecken i szDest. Om funktionen lyckas tar variabeln emot antalet tecken som skrivits till bufferten. Om funktionen misslyckas får variabeln den längd som krävs i buffertens tecken.

pszCharSet
Teckenuppsättningen som ska användas för konverteringen.

Returvärde

Returnerar TRUE vid lyckad, FALSE vid fel.

Anmärkningar

Kodningsschemat "B" beskrivs i RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

BEncodeGetRequiredLength

Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.

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

Parameterar

nSrcLen
Antalet byte med data som ska kodas.

nCharsetLen
Längden på tecken i teckenuppsättningen som ska användas för konverteringen.

Returvärde

Antalet tecken som krävs för en buffert som kan innehålla kodade data för nSrcLen-byte .

Anmärkningar

Kodningsschemat "B" beskrivs i RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

EscapeXML

Anropa den här funktionen för att konvertera tecken som är osäkra för användning i XML till deras säkra motsvarigheter.

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

Parameterar

szIn
Strängen som ska konverteras.

nSrclen
Längden på tecken i strängen som ska konverteras.

szEsc
Anroparallokerad buffert för att ta emot den konverterade strängen.

nDestLen
Längden på tecken i den anroparallokerade bufferten.

dwFlags
ATL_ESC Flaggor som beskriver hur konverteringen ska utföras.

  • ATL_ESC_FLAG_NONE Standardbeteende. Citattecken och apostrofer konverteras inte.
  • ATL_ESC_FLAG_ATTR Citattecken och apostrofer konverteras till "' respektive.

Returvärde

Längden på tecken i den konverterade strängen.

Anmärkningar

Möjliga konverteringar som utförs av den här funktionen visas i tabellen:

Källa Resmål
< <
> >
& &
' '
" "

GetExtendedChars

Anropa den här funktionen för att hämta antalet utökade tecken i en sträng.

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

Parameterar

szSrc
Strängen som ska analyseras.

nSrcLen
Längden på strängen i tecken.

Returvärde

Returnerar antalet utökade tecken som finns i strängen enligt IsExtendedChar.

IsExtendedChar

Anropa den här funktionen för att ta reda på om ett visst tecken är ett utökat tecken (mindre än 32, större än 126 och inte en flik, radmatning eller vagnretur)

inline int IsExtendedChar(char ch) throw();

Parameterar

Ch
Tecknet som ska testas

Returvärde

SANT om tecknet utökas, ANNARS FALSKT.

QEncode

Anropa den här funktionen för att konvertera vissa data med hjälp av "Q"-kodningen.

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

Parameterar

pbSrcData
Bufferten som innehåller de data som ska kodas.

nSrcLen
Längden i byte av de data som ska kodas.

szDest
Anroparens allokerade buffert för att ta emot kodade data.

pnDestLen
Pekare till en variabel som innehåller längden i tecken i szDest. Om funktionen lyckas tar variabeln emot antalet tecken som skrivits till bufferten. Om funktionen misslyckas får variabeln den längd som krävs i buffertens tecken.

pszCharSet
Teckenuppsättningen som ska användas för konverteringen.

pnNumEncoded
En pekare till en variabel som vid retur innehåller antalet osäkra tecken som måste konverteras.

Returvärde

Returnerar TRUE vid lyckad, FALSE vid fel.

Anmärkningar

Kodningsschemat "Q" beskrivs i RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

QEncodeGetRequiredLength

Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.

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

Parameterar

nSrcLen
Antalet byte med data som ska kodas.

nCharsetLen
Längden på tecken i teckenuppsättningen som ska användas för konverteringen.

Returvärde

Antalet tecken som krävs för en buffert som kan innehålla kodade data för nSrcLen-byte .

Anmärkningar

Kodningsschemat "Q" beskrivs i RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

QPDecode

Avkodar en datasträng som har kodats i ett format som kan skrivas ut, till exempel vid ett tidigare anrop till QPEncode.

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

Parameterar

pbSrcData
[i] Bufferten som innehåller de data som ska avkodas.

nSrcLen
[i] Längden i byte av pbSrcData.

szDest
[ut] Anroparens allokerade buffert för att ta emot de avkodade data.

pnDestLen
[ut] Pekare till en variabel som innehåller längden i byte av szDest. Om funktionen lyckas tar variabeln emot antalet byte som skrivits till bufferten. Om funktionen misslyckas får variabeln den längd som krävs i byte av bufferten.

dwFlags
[i] ATLSMTP_QPENCODE flaggor som beskriver hur konverteringen ska utföras.

Returvärde

Returnerar TRUE vid lyckad, FALSE vid fel.

Anmärkningar

Det angivna utskrivbara kodningsschemat beskrivs i RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPDecodeGetRequiredLength

Anropa den här funktionen för att hämta storleken på en buffert i byte som kan innehålla data avkodad från en quoted-printable-kodad sträng av angiven längd.

inline int QPDecodeGetRequiredLength(int nSrcLen) throw();

Parameterar

nSrcLen
Antalet tecken i den kodade strängen.

Returvärde

Antalet byte som krävs för en buffert som kan innehålla en avkodad sträng med nSrcLen-tecken .

Anmärkningar

Det angivna utskrivbara kodningsschemat beskrivs i RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPEncode

Anropa den här funktionen för att koda vissa data i format som kan skrivas ut med citattecken.

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

Parameterar

pbSrcData
Bufferten som innehåller de data som ska kodas.

nSrcLen
Längden i byte av de data som ska kodas.

szDest
Anroparens allokerade buffert för att ta emot kodade data.

pnDestLen
Pekare till en variabel som innehåller längden i tecken i szDest. Om funktionen lyckas tar variabeln emot antalet tecken som skrivits till bufferten. Om funktionen misslyckas får variabeln den längd som krävs i buffertens tecken.

dwFlags
ATLSMTP_QPENCODE flaggor som beskriver hur konverteringen ska utföras.

  • ATLSMTP_QPENCODE_DOT Om en punkt visas i början av en rad läggs den till i utdata och kodas.

  • ATLSMTP_QPENCODE_TRAILING_SOFT Lägger till =\r\n i den kodade strängen.

Det angivna utskrivbara kodningsschemat beskrivs i RFC 2045.

Returvärde

Returnerar TRUE vid lyckad, FALSE vid fel.

Anmärkningar

Det angivna utskrivbara kodningsschemat beskrivs i RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPEncodeGetRequiredLength

Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.

inline int QPEncodeGetRequiredLength(int nSrcLen) throw ();

Parameterar

nSrcLen
Antalet byte med data som ska kodas.

Returvärde

Antalet tecken som krävs för en buffert som kan innehålla kodade data för nSrcLen-byte .

Anmärkningar

Det angivna utskrivbara kodningsschemat beskrivs i RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

UUDecode

Avkodar en datasträng som har uuenkodats, till exempel av en tidigare kallning till UUEncode.

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

Parameterar

pbSrcData
Strängen som innehåller de data som ska avkodas.

nSrcLen
Längden i byte av pbSrcData.

pbDest
Anroparens allokerade buffert för att ta emot de avkodade data.

pnDestLen
Pekare till en variabel som innehåller längden i byte av pbDest. Om funktionen lyckas tar variabeln emot antalet byte som skrivits till bufferten. Om funktionen misslyckas får variabeln den längd som krävs i byte av bufferten.

Returvärde

Returnerar TRUE vid lyckad, FALSE vid fel.

Anmärkningar

Denna implementering av uuencoding följer POSIX P1003.2b/D11-specifikationen.

UUDecodeGetRequiredLength

Anropa den här funktionen för att hämta storleken i byte för en buffert som kan innehålla data som avkodas från en uuencoded-sträng med den angivna längden.

inline int UUDecodeGetRequiredLength(int nSrcLen) throw ();

Parameterar

nSrcLen
Antalet tecken i den kodade strängen.

Returvärde

Antalet byte som krävs för en buffert som kan innehålla en avkodad sträng med nSrcLen-tecken .

Anmärkningar

Denna implementering av uuencoding följer POSIX P1003.2b/D11-specifikationen.

Uuencode

Anropa den här funktionen för att uuencode vissa data.

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

Parameterar

pbSrcData
Bufferten som innehåller de data som ska kodas.

nSrcLen
Längden i byte av de data som ska kodas.

szDest
Anroparens allokerade buffert för att ta emot kodade data.

pnDestLen
Pekare till en variabel som innehåller längden i tecken i szDest. Om funktionen lyckas tar variabeln emot antalet tecken som skrivits till bufferten. Om funktionen misslyckas får variabeln den längd som krävs i buffertens tecken.

lpszFile
Filen som ska läggas till i rubriken när ATLSMTP_UUENCODE_HEADER anges i dwFlags.

dwFlags
Flaggor som styr funktionens beteende.

  • ATLSMTP_UUENCODE_HEADE Rubriken kodas.

  • ATLSMTP_UUENCODE_END Slutet kodas.

  • ATLSMTP_UUENCODE_DOT Datafyllning utförs.

Returvärde

Returnerar TRUE vid lyckad, FALSE vid fel.

Anmärkningar

Denna implementering av uuencoding följer POSIX P1003.2b/D11-specifikationen.

UUEncodeGetRequiredLength

Anropa den här funktionen för att hämta storleken på tecken i en buffert som kan innehålla en sträng som kodas från data med den angivna storleken.

inline int UUEncodeGetRequiredLength(int nSrcLen) throw ();

Parameterar

nSrcLen
Antalet byte med data som ska kodas.

Returvärde

Antalet tecken som krävs för en buffert som kan innehålla kodade data för nSrcLen-byte .

Anmärkningar

Denna implementering av uuencoding följer POSIX P1003.2b/D11-specifikationen.

Se även

Begrepp
ATL COM Desktop-komponenter