Bagikan melalui


Fungsi Pengodean Teks ATL

Nota

Pustaka Templat Aktif (ATL) terus didukung. Namun, kami tidak lagi menambahkan fitur atau memperbarui dokumentasi.

Fungsi-fungsi ini mendukung pengodean dan dekode teks.

Fungsi Deskripsi
AtlGetHexValue Panggil fungsi ini untuk mendapatkan nilai numerik digit heksadesimal.
AtlGetVersion Panggil fungsi ini untuk mendapatkan versi pustaka ATL yang Anda gunakan.
AtlHexDecode Mendekode string data yang telah dikodekan sebagai teks heksadesimal seperti dengan panggilan sebelumnya ke AtlHexEncode.
AtlHexDecodeGetRequiredLength Panggil fungsi ini untuk mendapatkan ukuran dalam byte buffer yang dapat berisi data yang didekodekan dari string yang dikodekan hex dengan panjang yang ditentukan.
AtlHexEncode Panggil fungsi ini untuk mengodekan beberapa data sebagai string teks heksadesimal.
AtlHexEncodeGetRequiredLength Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.
AtlHexValue Panggil fungsi ini untuk mendapatkan nilai numerik digit heksadesimal.
AtlUnicodeToUTF8 Panggil fungsi ini untuk mengonversi string Unicode ke UTF-8.
BEncode Panggil fungsi ini untuk mengonversi beberapa data menggunakan pengodean "B".
BEncodeGetRequiredLength Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.
EscapeXML Panggil fungsi ini untuk mengonversi karakter yang tidak aman untuk digunakan dalam XML ke yang setara dengan amannya.
GetExtendedChars Panggil fungsi ini untuk mendapatkan jumlah karakter yang diperluas dalam string.
IsExtendedChar Panggil fungsi ini untuk mengetahui apakah karakter tertentu adalah karakter yang diperluas (kurang dari 32, lebih besar dari 126, dan bukan tab, umpan baris, atau pengembalian pengangkutan)
QEncode Panggil fungsi ini untuk mengonversi beberapa data menggunakan pengodean "Q".
QEncodeGetRequiredLength Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.
QPDecode Mendekode string data yang telah dikodekan dalam format yang dapat dicetak yang dikutip seperti dengan panggilan sebelumnya ke QPEncode.
QPDecodeGetRequiredLength Panggil fungsi ini untuk mendapatkan ukuran dalam byte buffer yang dapat berisi data yang didekodekan dari string yang dikodekan yang dapat dicetak yang dikutip dari panjang yang ditentukan.
QPEncode Panggil fungsi ini untuk mengodekan beberapa data dalam format yang dapat dicetak yang dikutip.
QPEncodeGetRequiredLength Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.
UUDecode Mendekode string data yang telah diumpulkan seperti oleh panggilan sebelumnya ke UUEncode.
UUDecodeGetRequiredLength Panggil fungsi ini untuk mendapatkan ukuran dalam byte buffer yang dapat berisi data yang didekodekan dari string uuencoded dengan panjang yang ditentukan.
UUEncode Panggil fungsi ini untuk uuencode beberapa data.
UUEncodeGetRequiredLength Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.

Persyaratan

Header: atlenc.h

AtlGetHexValue

Panggil fungsi ini untuk mendapatkan nilai numerik digit heksadesimal.

inline char AtlGetHexValue(char chIn) throw();

Parameter

dagu
Karakter heksadesimal '0'-'9', 'A'-'F', atau 'a'-'f'.

Tampilkan Nilai

Nilai numerik karakter input ditafsirkan sebagai digit heksadesimal. Misalnya, input '0' mengembalikan nilai 0 dan input 'A' mengembalikan nilai 10. Jika karakter input bukan digit heksadesimal, fungsi ini mengembalikan -1.

AtlGetVersion

Panggil fungsi ini untuk mendapatkan versi pustaka ATL yang Anda gunakan.

ATLAPI_(DWORD) AtlGetVersion(void* pReserved);

Parameter

Diawetkan
Pointer yang dipesan.

Tampilkan Nilai

Mengembalikan nilai bilangan bulat DWORD dari versi pustaka ATL yang Anda kompilasi atau jalankan.

Contoh

Fungsi harus dipanggil sebagai berikut.

DWORD ver;
ver = AtlGetVersion(NULL);   

Persyaratan

Header: atlbase.h

AtlHexDecode

Mendekode string data yang telah dikodekan sebagai teks heksadesimal seperti dengan panggilan sebelumnya ke AtlHexEncode.

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

Parameter

pSrcData
String yang berisi data yang akan didekodekan.

nSrcLen
Panjang karakter pSrcData.

pbDest
Buffer yang dialokasikan pemanggil untuk menerima data yang didekodekan.

pnDestLen
Penunjuk ke variabel yang berisi panjang dalam byte pbDest. Jika fungsi berhasil, variabel menerima jumlah byte yang ditulis ke buffer. Jika fungsi gagal, variabel menerima panjang yang diperlukan dalam byte buffer.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

AtlHexDecodeGetRequiredLength

Panggil fungsi ini untuk mendapatkan ukuran dalam byte buffer yang dapat berisi data yang didekodekan dari string yang dikodekan hex dengan panjang yang ditentukan.

inline int AtlHexDecodeGetRequiredLength(int nSrcLen) throw();

Parameter

nSrcLen
Jumlah karakter dalam string yang dikodekan.

Tampilkan Nilai

Jumlah byte yang diperlukan untuk buffer yang dapat menyimpan string karakter nSrcLen yang didekodekan.

AtlHexEncode

Panggil fungsi ini untuk mengodekan beberapa data sebagai string teks heksadesimal.

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

Parameter

pbSrcData
Buffer yang berisi data yang akan dikodekan.

nSrcLen
Panjang byte data yang akan dikodekan.

szDest
Buffer yang dialokasikan pemanggil untuk menerima data yang dikodekan.

pnDestLen
Penunjuk ke variabel yang berisi panjang karakter szDest. Jika fungsi berhasil, variabel menerima jumlah karakter yang ditulis ke buffer. Jika fungsi gagal, variabel menerima panjang yang diperlukan dalam karakter buffer.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Setiap byte data sumber dikodekan sebagai 2 karakter heksadesimal.

AtlHexEncodeGetRequiredLength

Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.

inline int AtlHexEncodeGetRequiredLength(int nSrcLen) throw();

Parameter

nSrcLen
Jumlah byte data yang akan dikodekan.

Tampilkan Nilai

Jumlah karakter yang diperlukan untuk buffer yang dapat menyimpan data yang dikodekan dari byte nSrcLen .

AtlHexValue

Panggil fungsi ini untuk mendapatkan nilai numerik digit heksadesimal.

inline short AtlHexValue(char chIn) throw();

Parameter

dagu
Karakter heksadesimal '0'-'9', 'A'-'F', atau 'a'-'f'.

Tampilkan Nilai

Nilai numerik karakter input ditafsirkan sebagai digit heksadesimal. Misalnya, input '0' mengembalikan nilai 0 dan input 'A' mengembalikan nilai 10. Jika karakter input bukan digit heksadesimal, fungsi ini mengembalikan -1.

AtlUnicodeToUTF8

Panggil fungsi ini untuk mengonversi string Unicode ke UTF-8.

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

Parameter

wszSrc
String Unicode yang akan dikonversi

nSrc
Panjang karakter string Unicode.

szDest
Buffer yang dialokasikan pemanggil untuk menerima string yang dikonversi.

nDest
Panjang byte buffer.

Tampilkan Nilai

Mengembalikan jumlah karakter untuk string yang dikonversi.

Keterangan

Untuk menentukan ukuran buffer yang diperlukan untuk string yang dikonversi, panggil fungsi ini melewati 0 untuk szDest dan nDest.

BEncode

Panggil fungsi ini untuk mengonversi beberapa data menggunakan pengodean "B".

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

Parameter

pbSrcData
Buffer yang berisi data yang akan dikodekan.

nSrcLen
Panjang byte data yang akan dikodekan.

szDest
Buffer yang dialokasikan pemanggil untuk menerima data yang dikodekan.

pnDestLen
Penunjuk ke variabel yang berisi panjang karakter szDest. Jika fungsi berhasil, variabel menerima jumlah karakter yang ditulis ke buffer. Jika fungsi gagal, variabel menerima panjang yang diperlukan dalam karakter buffer.

pszCharSet
Karakter yang diatur untuk digunakan untuk konversi.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Skema pengodean "B" dijelaskan dalam RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

BEncodeGetRequiredLength

Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.

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

Parameter

nSrcLen
Jumlah byte data yang akan dikodekan.

nCharsetLen
Panjang karakter karakter yang diatur untuk digunakan untuk konversi.

Tampilkan Nilai

Jumlah karakter yang diperlukan untuk buffer yang dapat menyimpan data yang dikodekan dari byte nSrcLen .

Keterangan

Skema pengodean "B" dijelaskan dalam RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

EscapeXML

Panggil fungsi ini untuk mengonversi karakter yang tidak aman untuk digunakan dalam XML ke yang setara dengan amannya.

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

Parameter

szIn
String yang akan dikonversi.

nSrclen
Panjang karakter string yang akan dikonversi.

szEsc
Buffer yang dialokasikan pemanggil untuk menerima string yang dikonversi.

nDestLen
Panjang karakter buffer yang dialokasikan pemanggil.

dwFlags
ATL_ESC Bendera yang menjelaskan bagaimana konversi akan dilakukan.

  • ATL_ESC_FLAG_NONE Perilaku default. Tanda kutip dan apostrof tidak dikonversi.
  • ATL_ESC_FLAG_ATTR Tanda kutip dan apostrof dikonversi ke " dan ' masing-masing.

Tampilkan Nilai

Panjang karakter string yang dikonversi.

Keterangan

Kemungkinan konversi yang dilakukan oleh fungsi ini ditampilkan dalam tabel:

Sumber Tujuan
< <
> >
& &
' '
" "

GetExtendedChars

Panggil fungsi ini untuk mendapatkan jumlah karakter yang diperluas dalam string.

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

Parameter

szSrc
String yang akan dianalisis.

nSrcLen
Panjang string dalam karakter.

Tampilkan Nilai

Mengembalikan jumlah karakter yang diperluas yang ditemukan dalam string seperti yang ditentukan oleh IsExtendedChar.

IsExtendedChar

Panggil fungsi ini untuk mengetahui apakah karakter tertentu adalah karakter yang diperluas (kurang dari 32, lebih besar dari 126, dan bukan tab, umpan baris, atau pengembalian pengangkutan)

inline int IsExtendedChar(char ch) throw();

Parameter

Ch
Karakter yang akan diuji

Tampilkan Nilai

TRUE jika karakter diperluas, FALSE jika tidak.

QEncode

Panggil fungsi ini untuk mengonversi beberapa data menggunakan pengodean "Q".

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

Parameter

pbSrcData
Buffer yang berisi data yang akan dikodekan.

nSrcLen
Panjang byte data yang akan dikodekan.

szDest
Buffer yang dialokasikan pemanggil untuk menerima data yang dikodekan.

pnDestLen
Penunjuk ke variabel yang berisi panjang karakter szDest. Jika fungsi berhasil, variabel menerima jumlah karakter yang ditulis ke buffer. Jika fungsi gagal, variabel menerima panjang yang diperlukan dalam karakter buffer.

pszCharSet
Karakter yang diatur untuk digunakan untuk konversi.

pnNumEncoded
Penunjuk ke variabel yang saat dikembalikan berisi jumlah karakter tidak aman yang harus dikonversi.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Skema pengodean "Q" dijelaskan dalam RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

QEncodeGetRequiredLength

Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.

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

Parameter

nSrcLen
Jumlah byte data yang akan dikodekan.

nCharsetLen
Panjang karakter karakter yang diatur untuk digunakan untuk konversi.

Tampilkan Nilai

Jumlah karakter yang diperlukan untuk buffer yang dapat menyimpan data yang dikodekan dari byte nSrcLen .

Keterangan

Skema pengodean "Q" dijelaskan dalam RFC 2047 (https://www.ietf.org/rfc/rfc2047.txt).

QPDecode

Mendekode string data yang telah dikodekan dalam format yang dapat dicetak yang dikutip seperti dengan panggilan sebelumnya ke QPEncode.

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

Parameter

pbSrcData
[di] Buffer yang berisi data yang akan didekodekan.

nSrcLen
[di] Panjang byte pbSrcData.

szDest
[out] Buffer yang dialokasikan pemanggil untuk menerima data yang didekodekan.

pnDestLen
[out] Penunjuk ke variabel yang berisi panjang dalam byte szDest. Jika fungsi berhasil, variabel menerima jumlah byte yang ditulis ke buffer. Jika fungsi gagal, variabel menerima panjang yang diperlukan dalam byte buffer.

dwFlags
[di] ATLSMTP_QPENCODE bendera yang menjelaskan bagaimana konversi akan dilakukan.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Skema pengodean yang dapat dicetak yang dikutip dijelaskan dalam RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPDecodeGetRequiredLength

Panggil fungsi ini untuk mendapatkan ukuran dalam byte buffer yang dapat berisi data yang didekodekan dari string yang dikodekan yang dapat dicetak yang dikutip dari panjang yang ditentukan.

inline int QPDecodeGetRequiredLength(int nSrcLen) throw();

Parameter

nSrcLen
Jumlah karakter dalam string yang dikodekan.

Tampilkan Nilai

Jumlah byte yang diperlukan untuk buffer yang dapat menyimpan string karakter nSrcLen yang didekodekan.

Keterangan

Skema pengodean yang dapat dicetak yang dikutip dijelaskan dalam RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPEncode

Panggil fungsi ini untuk mengodekan beberapa data dalam format yang dapat dicetak yang dikutip.

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

Parameter

pbSrcData
Buffer yang berisi data yang akan dikodekan.

nSrcLen
Panjang byte data yang akan dikodekan.

szDest
Buffer yang dialokasikan pemanggil untuk menerima data yang dikodekan.

pnDestLen
Penunjuk ke variabel yang berisi panjang karakter szDest. Jika fungsi berhasil, variabel menerima jumlah karakter yang ditulis ke buffer. Jika fungsi gagal, variabel menerima panjang yang diperlukan dalam karakter buffer.

dwFlags
ATLSMTP_QPENCODE bendera yang menjelaskan bagaimana konversi akan dilakukan.

  • ATLSMTP_QPENCODE_DOT Jika titik muncul di awal baris, titik ditambahkan ke output serta dikodekan.

  • ATLSMTP_QPENCODE_TRAILING_SOFT Menambahkan =\r\n ke string yang dikodekan.

Skema pengodean yang dapat dicetak yang dikutip dijelaskan dalam RFC 2045.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Skema pengodean yang dapat dicetak yang dikutip dijelaskan dalam RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

QPEncodeGetRequiredLength

Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.

inline int QPEncodeGetRequiredLength(int nSrcLen) throw ();

Parameter

nSrcLen
Jumlah byte data yang akan dikodekan.

Tampilkan Nilai

Jumlah karakter yang diperlukan untuk buffer yang dapat menyimpan data yang dikodekan dari byte nSrcLen .

Keterangan

Skema pengodean yang dapat dicetak yang dikutip dijelaskan dalam RFC 2045 (https://www.ietf.org/rfc/rfc2045.txt).

UUDecode

Mendekode string data yang telah diumpulkan seperti oleh panggilan sebelumnya ke UUEncode.

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

Parameter

pbSrcData
String yang berisi data yang akan didekodekan.

nSrcLen
Panjang byte pbSrcData.

pbDest
Buffer yang dialokasikan pemanggil untuk menerima data yang didekodekan.

pnDestLen
Penunjuk ke variabel yang berisi panjang dalam byte pbDest. Jika fungsi berhasil, variabel menerima jumlah byte yang ditulis ke buffer. Jika fungsi gagal, variabel menerima panjang yang diperlukan dalam byte buffer.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Implementasi uuencoding ini mengikuti spesifikasi POSIX P1003.2b/D11.

UUDecodeGetRequiredLength

Panggil fungsi ini untuk mendapatkan ukuran dalam byte buffer yang dapat berisi data yang didekodekan dari string uuencoded dengan panjang yang ditentukan.

inline int UUDecodeGetRequiredLength(int nSrcLen) throw ();

Parameter

nSrcLen
Jumlah karakter dalam string yang dikodekan.

Tampilkan Nilai

Jumlah byte yang diperlukan untuk buffer yang dapat menyimpan string karakter nSrcLen yang didekodekan.

Keterangan

Implementasi uuencoding ini mengikuti spesifikasi POSIX P1003.2b/D11.

UUEncode

Panggil fungsi ini untuk uuencode beberapa data.

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

Parameter

pbSrcData
Buffer yang berisi data yang akan dikodekan.

nSrcLen
Panjang byte data yang akan dikodekan.

szDest
Buffer yang dialokasikan pemanggil untuk menerima data yang dikodekan.

pnDestLen
Penunjuk ke variabel yang berisi panjang karakter szDest. Jika fungsi berhasil, variabel menerima jumlah karakter yang ditulis ke buffer. Jika fungsi gagal, variabel menerima panjang yang diperlukan dalam karakter buffer.

lpszFile
File yang akan ditambahkan ke header ketika ATLSMTP_UUENCODE_HEADER ditentukan dalam dwFlags.

dwFlags
Bendera yang mengontrol perilaku fungsi ini.

  • ATLSMTP_UUENCODE_HEADE Header akan dikodekan.

  • ATLSMTP_UUENCODE_END Akhir akan dikodekan.

  • ATLSMTP_UUENCODE_DOT Pengisian data akan dilakukan.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Implementasi uuencoding ini mengikuti spesifikasi POSIX P1003.2b/D11.

UUEncodeGetRequiredLength

Panggil fungsi ini untuk mendapatkan ukuran dalam karakter buffer yang dapat berisi string yang dikodekan dari data dengan ukuran yang ditentukan.

inline int UUEncodeGetRequiredLength(int nSrcLen) throw ();

Parameter

nSrcLen
Jumlah byte data yang akan dikodekan.

Tampilkan Nilai

Jumlah karakter yang diperlukan untuk buffer yang dapat menyimpan data yang dikodekan dari byte nSrcLen .

Keterangan

Implementasi uuencoding ini mengikuti spesifikasi POSIX P1003.2b/D11.

Lihat juga

Konsep
Komponen Desktop ATL COM