Bagikan melalui


Kelas CFtpConnection

Mengelola koneksi FTP Anda ke server Internet dan memungkinkan manipulasi langsung direktori dan file di server tersebut.

Sintaks

class CFtpConnection : public CInternetConnection

Anggota

Konstruktor Publik

Nama Deskripsi
CFtpConnection::CFtpConnection Membuat CFtpConnection objek.

Metode Publik

Nama Deskripsi
CFtpConnection::Command Mengirim perintah langsung ke server FTP.
CFtpConnection::CreateDirectory Membuat direktori pada server.
CFtpConnection::GetCurrentDirectory Mendapatkan direktori saat ini untuk sambungan ini.
CFtpConnection::GetCurrentDirectoryAsURL Mendapatkan direktori saat ini untuk koneksi ini sebagai URL.
CFtpConnection::GetFile Mendapatkan file dari server yang tersambung
CFtpConnection::OpenFile Membuka file pada server yang tersambung.
CFtpConnection::P utFile Menempatkan file di server.
CFtpConnection::Remove Menghapus file dari server.
CFtpConnection::RemoveDirectory Menghapus direktori yang ditentukan dari server.
CFtpConnection::Ganti Nama Mengganti nama file di server.
CFtpConnection::SetCurrentDirectory Mengatur direktori FTP saat ini.

Keterangan

FTP adalah salah satu dari tiga layanan Internet yang diakui oleh kelas MFC WinInet.

Untuk berkomunikasi dengan server Internet FTP, Anda harus terlebih dahulu membuat instans CInternetSession, lalu membuat CFtpConnection objek. Anda tidak pernah membuat CFtpConnection objek secara langsung; melainkan, panggil CInternetSession::GetFtpConnection, yang membuat CFtpConnection objek dan mengembalikan pointer ke objek tersebut.

Untuk mempelajari selengkapnya tentang cara CFtpConnection kerja dengan kelas Internet MFC lainnya, lihat artikel Pemrograman Internet dengan WinInet. Untuk informasi selengkapnya tentang berkomunikasi dengan dua layanan lain yang didukung, HTTP dan gopher, lihat kelas CHttpConnection dan CGopherConnection.

Contoh

Lihat contoh dalam gambaran umum kelas CFtpFileFind .

Hierarki Warisan

CObject

CInternetConnection

CFtpConnection

Persyaratan

Header: afxinet.h

CFtpConnection::CFtpConnection

Fungsi anggota ini dipanggil untuk membuat CFtpConnection objek.

CFtpConnection(
    CInternetSession* pSession,
    HINTERNET hConnected,
    LPCTSTR pstrServer,
    DWORD_PTR dwContext);

CFtpConnection(
    CInternetSession* pSession,
    LPCTSTR pstrServer,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    DWORD_PTR dwContext = 0,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
    BOOL bPassive = FALSE);

Parameter

pSession
Penunjuk ke objek CInternetSession terkait.

hConnected
Handel Windows dari sesi Internet saat ini.

pstrServer
Penunjuk ke string yang berisi nama server FTP.

dwContext
Pengidentifikasi konteks untuk operasi. dwContext mengidentifikasi informasi status operasi yang dikembalikan oleh CInternetSession::OnStatusCallback. Default diatur ke 1; namun, Anda dapat secara eksplisit menetapkan ID konteks tertentu untuk operasi tersebut. Objek dan pekerjaan apa pun yang dilakukannya akan dikaitkan dengan ID konteks tersebut.

pstrUserName
Penunjuk ke string yang dihentikan null yang menentukan nama pengguna untuk masuk. Jika NULL, defaultnya adalah anonim.

pstrPassword
Penunjuk ke string yang dihentikan null yang menentukan kata sandi yang akan digunakan untuk masuk. Jika pstrPassword dan pstrUserName adalah NULL, kata sandi anonim default adalah nama email pengguna. Jika pstrPassword adalah NULL (atau string kosong) tetapi pstrUserName bukan NULL, kata sandi kosong digunakan. Tabel berikut ini menjelaskan perilaku untuk empat kemungkinan pengaturan pstrUserName dan pstrPassword:

pstrUserName pstrPassword Nama pengguna dikirim ke server FTP Kata sandi yang dikirim ke server FTP
NULL atau " " NULL atau " " "anonim" Nama email pengguna
String Non-NULL NULL atau " " pstrUserName " "
String NULL Non-NULL KESALAHAN KESALAHAN
String Non-NULL String Non-NULL pstrUserName pstrPassword

nPort
Angka yang mengidentifikasi port TCP/IP untuk digunakan di server.

bPassive
Menentukan mode pasif atau aktif untuk sesi FTP ini. Jika diatur ke TRUE, ini mengatur API Win32 dwFlag ke INTERNET_FLAG_PASSIVE.

Keterangan

Anda tidak pernah membuat objek secara CFtpConnection langsung. Sebagai gantinya, panggil CInternetSession::GetFtpConnection, yang membuat CFptConnection objek.

CFtpConnection::Command

Mengirim perintah langsung ke server FTP.

CInternetFile* Command(
    LPCTSTR pszCommand,
    CmdResponseType eResponse = CmdRespNone,
    DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY,
    DWORD_PTR dwContext = 1);

Parameter

pszCommand
Penunjuk ke string yang berisi perintah yang akan dikirim.

eResponse
Menentukan apakah respons diharapkan dari server FTP. Dapat berupa salah satu dari nilai berikut:

  • CmdRespNone Tidak ada respons yang diharapkan.
  • CmdRespRead Respons diharapkan.
  • CmdRespWrite Tidak digunakan.

CmdResponseType adalah anggota CFtpConnection, yang ditentukan dalam afxinet.h.

dwFlags
Nilai yang berisi bendera yang mengontrol fungsi ini. Untuk daftar lengkapnya, lihat FTPCommand.

dwContext
Penunjuk ke nilai yang berisi nilai yang ditentukan aplikasi yang digunakan untuk mengidentifikasi konteks aplikasi dalam panggilan balik.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini meniru fungsionalitas fungsi FTPCommand , seperti yang dijelaskan dalam Windows SDK.

Jika terjadi kesalahan, MFC melemparkan pengecualian jenis CInternetException.

CFtpConnection::CreateDirectory

Panggil fungsi anggota ini untuk membuat direktori di server yang tersambung.

BOOL CreateDirectory(LPCTSTR pstrDirName);

Parameter

pstrDirName
Penunjuk ke string yang berisi nama direktori yang akan dibuat.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Windows GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

Gunakan GetCurrentDirectory untuk menentukan direktori kerja saat ini untuk koneksi ini ke server. Jangan berasumsi bahwa sistem jarak jauh telah menghubungkan Anda ke direktori akar.

Parameter pstrDirName dapat berupa nama file sebagian atau yang sepenuhnya memenuhi syarat relatif terhadap direktori saat ini. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. CreateDirectory menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum digunakan.

CFtpConnection::GetCurrentDirectory

Panggil fungsi anggota ini untuk mendapatkan nama direktori saat ini.

BOOL GetCurrentDirectory(CString& strDirName) const;

BOOL GetCurrentDirectory(
    LPTSTR pstrDirName,
    LPDWORD lpdwLen) const;

Parameter

strDirName
Referensi ke string yang akan menerima nama direktori.

pstrDirName
Penunjuk ke string yang akan menerima nama direktori.

lpdwLen
Pointer ke DWORD yang berisi informasi berikut:

Pada entri: Ukuran buffer yang dirujuk oleh pstrDirName.

Saat dikembalikan: Jumlah karakter yang disimpan ke pstrDirName. Jika fungsi anggota gagal dan ERROR_INSUFFICIENT_BUFFER dikembalikan, maka lpdwLen berisi jumlah byte yang harus dialokasikan aplikasi untuk menerima string.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Win32 GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

Untuk mendapatkan nama direktori sebagai URL, panggil GetCurrentDirectoryAsURL.

Parameter pstrDirName atau strDirName dapat berupa nama file yang sebagian memenuhi syarat relatif terhadap direktori saat ini atau sepenuhnya memenuhi syarat. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. GetCurrentDirectory menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum digunakan.

CFtpConnection::GetCurrentDirectoryAsURL

Panggil fungsi anggota ini untuk mendapatkan nama direktori saat ini sebagai URL.

BOOL GetCurrentDirectoryAsURL(CString& strDirName) const;

BOOL GetCurrentDirectoryAsURL(
    LPTSTR pstrName,
    LPDWORD lpdwLen) const;

Parameter

strDirName
Referensi ke string yang akan menerima nama direktori.

pstrDirName
Penunjuk ke string yang akan menerima nama direktori.

lpdwLen
Pointer ke DWORD yang berisi informasi berikut:

Pada entri: Ukuran buffer yang dirujuk oleh pstrDirName.

Saat dikembalikan: Jumlah karakter yang disimpan ke pstrDirName. Jika fungsi anggota gagal dan ERROR_INSUFFICIENT_BUFFER dikembalikan, maka lpdwLen berisi jumlah byte yang harus dialokasikan aplikasi untuk menerima string.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Win32 GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

GetCurrentDirectoryAsURL bertingkah sama dengan GetCurrentDirectory

Parameter strDirName dapat berupa nama file yang memenuhi syarat sebagian relatif terhadap direktori saat ini atau sepenuhnya memenuhi syarat. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. GetCurrentDirectoryAsURL menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum digunakan.

CFtpConnection::GetFile

Panggil fungsi anggota ini untuk mendapatkan file dari server FTP dan menyimpannya di komputer lokal.

BOOL GetFile(
    LPCTSTR pstrRemoteFile,
    LPCTSTR pstrLocalFile,
    BOOL bFailIfExists = TRUE,
    DWORD dwAttributes = FILE_ATTRIBUTE_NORMAL,
    DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY,
    DWORD_PTR dwContext = 1);

Parameter

pstrRemoteFile
Penunjuk ke string yang dihentikan null yang berisi nama file yang akan diambil dari server FTP.

pstrLocalFile
Penunjuk ke string yang dihentikan null yang berisi nama file yang akan dibuat pada sistem lokal.

bFailIfExists
Menunjukkan apakah nama file mungkin sudah digunakan oleh file yang ada. Jika nama file lokal sudah ada, dan parameter ini TRUE, GetFile gagal. Jika tidak, GetFile akan menghapus salinan file yang ada.

dwAttributes
Menunjukkan atribut file. Ini bisa berupa kombinasi bendera FILE_ATTRIBUTE_* berikut.

  • FILE_ATTRIBUTE_ARCHIVE File adalah file arsip. Aplikasi menggunakan atribut ini untuk menandai file untuk pencadangan atau penghapusan.

  • FILE_ATTRIBUTE_COMPRESSED File atau direktori dikompresi. Untuk file, kompresi berarti bahwa semua data dalam file dikompresi. Untuk direktori, kompresi adalah default untuk file dan subdirektori yang baru dibuat.

  • FILE_ATTRIBUTE_DIRECTORY File adalah direktori.

  • FILE_ATTRIBUTE_NORMAL File tidak memiliki atribut lain yang ditetapkan. Atribut ini hanya valid jika digunakan sendiri. Semua atribut file lainnya mengambil alih FILE_ATTRIBUTE_NORMAL:

  • FILE_ATTRIBUTE_HIDDEN File disembunyikan. Ini tidak boleh disertakan dalam daftar direktori biasa.

  • FILE_ATTRIBUTE_READONLY File hanya dibaca. Aplikasi dapat membaca file tetapi tidak dapat menulis atau menghapusnya.

  • FILE_ATTRIBUTE_SYSTEM File adalah bagian dari atau digunakan secara eksklusif oleh sistem operasi.

  • FILE_ATTRIBUTE_TEMPORARY File sedang digunakan untuk penyimpanan sementara. Aplikasi harus menulis ke file hanya jika benar-benar diperlukan. Sebagian besar data file tetap dalam memori tanpa dibersihkan ke media karena file akan segera dihapus.

dwFlags
Menentukan kondisi di mana transfer terjadi. Parameter ini dapat menjadi salah satu nilai dwFlags yang dijelaskan dalam FtpGetFile di Windows SDK.

dwContext
Pengidentifikasi konteks untuk pengambilan file. Lihat Keterangan untuk informasi selengkapnya tentang dwContext.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Win32 GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

GetFile adalah rutinitas tingkat tinggi yang menangani semua overhead yang terkait dengan membaca file dari server FTP dan menyimpannya secara lokal. Aplikasi yang hanya mengambil data file, atau yang memerlukan kontrol ketat atas transfer file, harus menggunakan OpenFile dan CInternetFile::Read sebagai gantinya.

Jika dwFlags FILE_TRANSFER_TYPE_ASCII, terjemahan data file juga mengonversi karakter kontrol dan pemformatan ke setara Windows. Transfer default adalah mode biner, di mana file diunduh dalam format yang sama seperti yang disimpan di server.

pstrRemoteFile dan pstrLocalFile dapat berupa nama file yang sebagian memenuhi syarat relatif terhadap direktori saat ini atau sepenuhnya memenuhi syarat. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. GetFile menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum digunakan.

Ambil alih default dwContext untuk mengatur pengidentifikasi konteks ke nilai yang Anda pilih. Pengidentifikasi konteks dikaitkan dengan operasi spesifik objek yang CFtpConnection dibuat oleh objek CInternetSession ini. Nilai dikembalikan ke CInternetSession::OnStatusCallback untuk memberikan status pada operasi yang diidentifikasi. Lihat artikel Langkah Pertama Internet: WinInet untuk informasi selengkapnya tentang pengidentifikasi konteks.

CFtpConnection::OpenFile

Panggil fungsi anggota ini untuk membuka file yang terletak di server FTP untuk membaca atau menulis.

CInternetFile* OpenFile(
    LPCTSTR pstrFileName,
    DWORD dwAccess = GENERIC_READ,
    DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY,
    DWORD_PTR dwContext = 1);

Parameter

pstrFileName
Penunjuk ke string yang berisi nama file yang akan dibuka.

dwAccess
Menentukan bagaimana file akan diakses. Dapat berupa GENERIC_READ atau GENERIC_WRITE, tetapi tidak keduanya.

dwFlags
Menentukan kondisi di mana transfer berikutnya terjadi. Ini bisa menjadi salah satu konstanta FTP_TRANSFER_* berikut:

  • FTP_TRANSFER_TYPE_ASCII Transfer file menggunakan metode transfer FTP ASCII (Tipe A). Mengonversi informasi kontrol dan pemformatan ke setara lokal.

  • FTP_TRANSFER_TYPE_BINARY File mentransfer data menggunakan metode transfer Gambar (Tipe I) FTP. File mentransfer data persis seperti yang ada, tanpa perubahan. Ini adalah metode transfer default.

dwContext
Pengidentifikasi konteks untuk membuka file. Lihat Keterangan untuk informasi selengkapnya tentang dwContext.

Tampilkan Nilai

Penunjuk ke objek CInternetFile .

Keterangan

OpenFile harus digunakan dalam situasi berikut:

  • Aplikasi memiliki data yang perlu dikirim dan dibuat sebagai file di server FTP, tetapi data tersebut tidak ada dalam file lokal. Setelah OpenFile membuka file, aplikasi menggunakan CInternetFile::Write untuk mengirim data file FTP ke server.

  • Aplikasi harus mengambil file dari server dan menempatkannya ke dalam memori yang dikontrol aplikasi, alih-alih menulisnya ke disk. Aplikasi ini menggunakan CInternetFile::Read setelah menggunakan OpenFile untuk membuka file.

  • Aplikasi membutuhkan tingkat kontrol yang baik atas transfer file. Misalnya, aplikasi mungkin ingin menampilkan kontrol kemajuan menunjukkan kemajuan status transfer file saat mengunduh file.

Setelah memanggil OpenFile dan sampai memanggil CInternetFile::Close, aplikasi hanya dapat memanggil CInternetFile::Read, CInternetFile::Write, CInternetConnection::Close, atau CFtpFileFind::FindFile. Panggilan ke fungsi FTP lain untuk sesi FTP yang sama akan gagal dan mengatur kode kesalahan ke FTP_ETRANSFER_IN_PROGRESS.

Parameter pstrFileName dapat berupa nama file yang sebagian memenuhi syarat relatif terhadap direktori saat ini atau sepenuhnya memenuhi syarat. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. OpenFile menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum menggunakannya.

Ambil alih default dwContext untuk mengatur pengidentifikasi konteks ke nilai yang Anda pilih. Pengidentifikasi konteks dikaitkan dengan operasi spesifik objek yang CFtpConnection dibuat oleh objek CInternetSession ini. Nilai dikembalikan ke CInternetSession::OnStatusCallback untuk memberikan status pada operasi yang diidentifikasi. Lihat artikel Langkah Pertama Internet: WinInet untuk informasi selengkapnya tentang pengidentifikasi konteks.

CFtpConnection::P utFile

Panggil fungsi anggota ini untuk menyimpan file di server FTP.

BOOL PutFile(
    LPCTSTR pstrLocalFile,
    LPCTSTR pstrRemoteFile,
    DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY,
    DWORD_PTR dwContext = 1);

Parameter

pstrLocalFile
Penunjuk ke string yang berisi nama file yang akan dikirim dari sistem lokal.

pstrRemoteFile
Penunjuk ke string yang berisi nama file yang akan dibuat di server FTP.

dwFlags
Menentukan kondisi di mana transfer file terjadi. Dapat berupa salah satu konstanta FTP_TRANSFER_* yang dijelaskan dalam OpenFile.

dwContext
Pengidentifikasi konteks untuk menempatkan file. Lihat Keterangan untuk informasi selengkapnya tentang dwContext.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Win32 GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

PutFile adalah rutinitas tingkat tinggi yang menangani semua operasi yang terkait dengan penyimpanan file di server FTP. Aplikasi yang hanya mengirim data, atau yang memerlukan kontrol lebih dekat atas transfer file, harus menggunakan OpenFile dan CInternetFile::Write.

Ambil alih dwContext default untuk mengatur pengidentifikasi konteks ke nilai yang Anda pilih. Pengidentifikasi konteks dikaitkan dengan operasi spesifik objek yang CFtpConnection dibuat oleh objek CInternetSession ini. Nilai dikembalikan ke CInternetSession::OnStatusCallback untuk memberikan status pada operasi yang diidentifikasi. Lihat artikel Langkah Pertama Internet: WinInet untuk informasi selengkapnya tentang pengidentifikasi konteks.

CFtpConnection::Remove

Panggil fungsi anggota ini untuk menghapus file yang ditentukan dari server yang tersambung.

BOOL Remove(LPCTSTR pstrFileName);

Parameter

pstrFileName
Penunjuk ke string yang berisi nama file yang akan dihapus.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Win32 GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

Parameter pstrFileName dapat berupa nama file yang sebagian memenuhi syarat relatif terhadap direktori saat ini atau sepenuhnya memenuhi syarat. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. Fungsi ini Remove menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum digunakan.

CFtpConnection::RemoveDirectory

Panggil fungsi anggota ini untuk menghapus direktori yang ditentukan dari server yang tersambung.

BOOL RemoveDirectory(LPCTSTR pstrDirName);

Parameter

pstrDirName
Penunjuk ke string yang berisi direktori yang akan dihapus.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Win32 GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

Gunakan GetCurrentDirectory untuk menentukan direktori kerja server saat ini. Jangan berasumsi bahwa sistem jarak jauh telah menghubungkan Anda ke direktori akar.

Parameter pstrDirName dapat berupa nama file yang sebagian atau sepenuhnya memenuhi syarat relatif terhadap direktori saat ini. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. RemoveDirectory menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum digunakan.

CFtpConnection::Ganti Nama

Panggil fungsi anggota ini untuk mengganti nama file yang ditentukan pada server yang tersambung.

BOOL Rename(
    LPCTSTR pstrExisting,
    LPCTSTR pstrNew);

Parameter

pstrExisting
Penunjuk ke string yang berisi nama file saat ini yang akan diganti namanya.

pstrNew
Penunjuk ke string yang berisi nama baru file.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Win32 GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

Parameter pstrExisting dan pstrNew dapat berupa nama file yang sebagian memenuhi syarat relatif terhadap direktori saat ini atau sepenuhnya memenuhi syarat. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. Rename menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum digunakan.

CFtpConnection::SetCurrentDirectory

Panggil fungsi anggota ini untuk mengubah ke direktori lain di server FTP.

BOOL SetCurrentDirectory(LPCTSTR pstrDirName);

Parameter

pstrDirName
Penunjuk ke string yang berisi nama direktori.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0. Jika panggilan gagal, fungsi Win32 GetLastError dapat dipanggil untuk menentukan penyebab kesalahan.

Keterangan

Parameter pstrDirName dapat berupa nama file yang sebagian atau sepenuhnya memenuhi syarat relatif terhadap direktori saat ini. Garis miring terbalik (\) atau garis miring (/) dapat digunakan sebagai pemisah direktori untuk salah satu nama. SetCurrentDirectory menerjemahkan pemisah nama direktori ke karakter yang sesuai sebelum digunakan.

Gunakan GetCurrentDirectory untuk menentukan direktori kerja server FTP saat ini. Jangan berasumsi bahwa sistem jarak jauh telah menghubungkan Anda ke direktori akar.

Lihat juga

Kelas CInternetConnection
Bagan Hierarki
Kelas CInternetConnection
Kelas CInternetSession