00001
00002
00003
00004
00005 #if !defined(AFX_FSINTERNETFILE_H__3693BB45_3388_4234_821D_FE3961082A7C__INCLUDED_)
00006 #define AFX_FSINTERNETFILE_H__3693BB45_3388_4234_821D_FE3961082A7C__INCLUDED_
00007
00008 #include "fsinet.h"
00009 #include <limits.h>
00010 #if _MSC_VER > 1000
00011 #pragma once
00012 #endif
00013
00014 #include <windows.h>
00015 #include <wininet.h>
00016 #include "fsServerConnection.h"
00017 #include <fsString.h>
00018 #include "fsSpeaking.h"
00019
00020 enum fsResumeSupportType
00021 {
00022 RST_PRESENT,
00023 RST_NONE,
00024 RST_UNKNOWN,
00025 };
00026
00027 class fsInternetFile : public fsSpeaking
00028 {
00029 public:
00030
00031 HINTERNET GetRawHandle();
00032
00033
00034 virtual fsInternetResult QuerySize(LPCSTR pszFilePath);
00035
00036
00037
00038
00039 virtual fsInternetResult Open (LPCSTR pszFilePath, UINT64 uStartPos) = NULL;
00040 virtual fsInternetResult OpenEx (LPCSTR pszFilePath, UINT64 uStartPos, UINT64 uUploadPartSize, UINT64 uUploadTotalSize) = NULL;
00041
00042
00043
00044
00045 virtual fsInternetResult Read (LPBYTE pBuffer, DWORD dwSize, DWORD *pdwRead) = NULL;
00046 virtual fsInternetResult Write (LPBYTE pBuffer, DWORD dwSize, DWORD *pdwWritten) = NULL;
00047
00048
00049
00050
00051 LPCSTR GetSuggestedFileName ();
00052
00053 fsResumeSupportType IsResumeSupported ();
00054
00055
00056 BOOL GetContentType (LPSTR pszType);
00057
00058
00059
00060 BOOL GetLastModifiedDate (FILETIME* pTime);
00061
00062 virtual void CloseHandle();
00063
00064 LPCSTR GetLastError();
00065
00066 virtual UINT64 GetFileSize () {return m_uFileSize;};
00067
00068
00069 virtual fsInternetResult Initialize (fsInternetServerConnection *pServer);
00070 fsInternetFile();
00071 virtual ~fsInternetFile();
00072
00073 protected:
00074 fsResumeSupportType m_enRST;
00075 LPSTR m_pszLastError;
00076 fsString m_strContentType;
00077 BOOL m_bContentTypeValid;
00078 FILETIME m_date;
00079 BOOL m_bDateValid;
00080 UINT64 m_uFileSize;
00081 HINTERNET m_hFile;
00082 fsInternetServerConnection *m_pServer;
00083 fsString m_strSuggFileName;
00084 };
00085
00086 #endif