00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 Open Download Manager Copyright (c) 2008-2010 OpenDownloadManager.ORG 00004 */ 00005 00006 #if !defined(AFX_FSDOWNLOADSHISTORYMGR_H__EDB70A83_62F7_4001_8C36_E948F4B569BF__INCLUDED_) 00007 #define AFX_FSDOWNLOADSHISTORYMGR_H__EDB70A83_62F7_4001_8C36_E948F4B569BF__INCLUDED_ 00008 00009 #if _MSC_VER > 1000 00010 #pragma once 00011 #endif 00012 00013 struct fsDLHistoryRecord 00014 { 00015 fsString strFileName; 00016 fsString strURL; 00017 FILETIME dateAdded; 00018 FILETIME dateDownloaded; 00019 UINT64 uFileSize; 00020 fsString strSavedTo; 00021 FILETIME dateRecordAdded; 00022 fsString strComment; 00023 00024 fsDLHistoryRecord (fsDLHistoryRecord& r) 00025 { 00026 *this = r; 00027 } 00028 00029 fsDLHistoryRecord& operator = (fsDLHistoryRecord& r) 00030 { 00031 strFileName = r.strFileName; 00032 strURL = r.strURL; 00033 strComment = r.strComment; 00034 dateAdded = r.dateAdded; 00035 dateDownloaded = r.dateDownloaded; 00036 uFileSize = r.uFileSize; 00037 strSavedTo = r.strSavedTo; 00038 dateRecordAdded = r.dateRecordAdded; 00039 00040 return *this; 00041 } 00042 00043 fsDLHistoryRecord () {} 00044 }; 00045 00046 enum fsDownloadsHistoryMgrEvent 00047 { 00048 DHME_RECORDADDED, 00049 DHME_RECORDDELETED, 00050 DHME_HISTORYCLEARED, 00051 }; 00052 00053 typedef void (*fntDHMEEventFunc)(fsDownloadsHistoryMgrEvent ev, int info, LPVOID); 00054 00055 #define DLHISTFILE_CURRENT_VERSION (1) 00056 #define DLHISTFILE_SIG "FDM Downloads History" 00057 00058 struct fsDownloadsHistMgrFileHdr 00059 { 00060 char szSig [sizeof (DLHISTFILE_SIG) + 1]; 00061 WORD wVer; 00062 00063 fsDownloadsHistMgrFileHdr () 00064 { 00065 strcpy (szSig, DLHISTFILE_SIG); 00066 wVer = DLHISTFILE_CURRENT_VERSION; 00067 } 00068 }; 00069 00070 class fsDownloadsHistoryMgr 00071 { 00072 public: 00073 int FindIndex (fsDLHistoryRecord *rec); 00074 void DeleteRecord (fsDLHistoryRecord* rec); 00075 fsDLHistoryRecord* GetRecord (int iIndex); 00076 BOOL LoadHistory(); 00077 BOOL SaveHistory(); 00078 int GetRecordCount(); 00079 void AddToHistory (vmsDownloadSmartPtr dld); 00080 void SetEventFunc (fntDHMEEventFunc pfn, LPVOID lpParam); 00081 void ClearHistory (); 00082 00083 void ReadSettings(); 00084 00085 fsDownloadsHistoryMgr(); 00086 virtual ~fsDownloadsHistoryMgr(); 00087 00088 protected: 00089 00090 void Event (fsDownloadsHistoryMgrEvent ev, int info = 0); 00091 fntDHMEEventFunc m_pfnEventFunc; 00092 LPVOID m_lpEvParam; 00093 00094 void ApplySettings(); 00095 BOOL m_bCompOnly; 00096 UINT m_cDaysMax; 00097 BOOL m_bUse; 00098 fs::list <fsDLHistoryRecord> m_vRecords; 00099 }; 00100 00101 #endif
1.5.6