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