00001
00002
00003
00004
00005
00006 #if !defined(AFX_FSINTERNETURLFILE_H__F1F640DC_4992_4104_AB67_5C29AFD245D4__INCLUDED_)
00007 #define AFX_FSINTERNETURLFILE_H__F1F640DC_4992_4104_AB67_5C29AFD245D4__INCLUDED_
00008
00009 #include "fsinet.h"
00010 #if _MSC_VER > 1000
00011 #pragma once
00012 #endif
00013
00014 #include "fsHttpFile.h"
00015 #include "fsFtpFile.h"
00016 #include "fsHttpConnection.h"
00017 #include "fsFtpConnection.h"
00018 #include "fsLocalFile.h"
00019 #include "fsInternetFile2.h"
00020 #include "fsSpeaking.h"
00021
00022 class fsInternetURLFile : public fsSpeaking
00023 {
00024 public:
00025 void set_Charset (LPCSTR psz);
00026 void set_EnableAutoRedirect (BOOL b);
00027 fsString GetCookiesFromResponse();
00028 fsInternetResult OpenAnotherRequestOnServer (LPCSTR pszPath, UINT64 uStartPosition, UINT64 uUploadPartSize, UINT64 uUploadTotalSize);
00029 void set_UseMultipart (BOOL b);
00030 fsInternetResult Write (LPBYTE pBuffer, DWORD dwToWrite, DWORD *pdwWritten);
00031
00032 fsInternetResult OpenEx (INTERNET_SCHEME scheme, LPCSTR pszHostName, LPCSTR pszUser,
00033 LPCSTR pszPassword, INTERNET_PORT port, LPCSTR pszPath, UINT64 uStartPosition,
00034 BOOL bSendHTTPBasicAuthImmediately = FALSE, UINT64 uUploadPartSize = _UI64_MAX,
00035 UINT64 uUploadTotalSize = _UI64_MAX);
00036 fsFtpTransferType FtpGetTransferType();
00037
00038 void SetPostData (LPCSTR pszHdrs);
00039 void SetCookies (LPCSTR pszCookies);
00040
00041
00042
00043
00044
00045 void FtpSetDontUseLIST (BOOL b);
00046
00047
00048
00049
00050
00051
00052
00053
00054 fsInternetResult Open (INTERNET_SCHEME scheme, LPCSTR pszHostName, LPCSTR pszUser, LPCSTR pszPassword, INTERNET_PORT port, LPCSTR pszPath, UINT64 uStartPosition, BOOL bSendHTTPBasicAuthImmediately = FALSE);
00055
00056 fsInternetResult QuerySize (INTERNET_SCHEME scheme, LPCSTR pszHostName, LPCSTR pszUser, LPCSTR pszPassword, INTERNET_PORT port, LPCSTR pszPath, BOOL bSendHTTPBasicAuthImmediately);
00057
00058 fsInternetResult Read (BYTE *pBuffer, DWORD dwToRead, DWORD *pdwRead);
00059
00060 LPCSTR GetSuggestedFileName();
00061 fsResumeSupportType IsResumeSupported();
00062 BOOL GetLastModifiedDate (LPFILETIME pDate);
00063 BOOL GetContentType (LPSTR pszType);
00064 LPCSTR GetLastError();
00065 void FtpSetTransferType (fsFtpTransferType enType);
00066 void UseFtpPassiveMode (BOOL bUse);
00067 void UseCookie (BOOL bUse);
00068 void UseHttp11 (BOOL bUse);
00069 void SetReferer (LPCSTR pszReferer);
00070 UINT64 GetFileSize();
00071 fsInternetResult Initialize (class fsInternetSession *pSession, BOOL bAutoDelSession = FALSE);
00072
00073
00074
00075 void CloseHandle();
00076
00077 void Close();
00078
00079
00080 fsInternetURLFile();
00081 virtual ~fsInternetURLFile();
00082
00083 protected:
00084 fsString m_strRespFromServer;
00085 BOOL m_bCatchFromServerResponse;
00086 static void _InetFileDialogFunc (fsInetFileDialogDirection enDir, LPCSTR pszMsg, LPVOID lp1, LPVOID lp2);
00087 void FormHttpBasicAuthHdr (LPCSTR pszUser, LPCSTR pszPassword);
00088 void SetupProxyForFile2();
00089 bool m_bUseFile2;
00090 fsInternetFile2 m_ifile2;
00091 BOOL m_bAutoDelSession;
00092 CRITICAL_SECTION m_cs;
00093 LPCSTR m_pszLastError;
00094 class fsInternetSession* m_pSession;
00095 class fsInternetFile* m_pFile;
00096 class fsInternetServerConnection *m_pServer;
00097 fsFtpConnection m_ftpConnection;
00098 fsHttpConnection m_httpConnection;
00099 fsHttpFile m_httpFile;
00100 fsFtpFile m_ftpFile;
00101 fsLocalFile m_localFile;
00102 };
00103
00104 #endif