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