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_vms7zipArchiveExtractCallback_H__DEC4C09F_A9EE_40B3_9CA3_99C17CF06198__INCLUDED_) 00007 #define AFX_vms7zipArchiveExtractCallback_H__DEC4C09F_A9EE_40B3_9CA3_99C17CF06198__INCLUDED_ 00008 00009 #include "vmsArchiveCallback.h" 00010 #if _MSC_VER > 1000 00011 #pragma once 00012 #endif 00013 00014 #include "vmsArchiveCallback.h" 00015 #include <archive\IArchive.h> 00016 #include <archive\String.h> 00017 #include <archive\extractmode.h> 00018 00019 class vms7zipArchiveExtractCallback : public IArchiveExtractCallback 00020 { 00021 public: 00022 00023 LPCSTR get_FurtherExtractFile (); 00024 00025 bool is_AbortedByUser(); 00026 00027 STDMETHOD(SetOperationResult )(Int32 resultEOperationResult); 00028 STDMETHOD(PrepareOperation )(Int32 askExtractMode); 00029 STDMETHOD(GetStream )(UInt32 index, ISequentialOutStream **outStream, Int32 askExtractMode); 00030 00031 ULONG STDMETHODCALLTYPE Release(); 00032 ULONG STDMETHODCALLTYPE AddRef (); 00033 STDMETHOD(QueryInterface )(REFIID riid, void** ppvObject); 00034 00035 STDMETHOD(SetCompleted )(const UInt64 *completeValue); 00036 STDMETHOD(SetTotal )(UInt64 total); 00037 00038 vms7zipArchiveExtractCallback(IInArchive* pArc, LPCSTR pszOutFolder, vmsArchiveCallback* pAC, LPCSTR pszSrcArcFileName); 00039 virtual ~vms7zipArchiveExtractCallback(); 00040 00041 protected: 00042 00043 CString m_strFurtherExtractFile; 00044 00045 bool m_bAbortedByUser; 00046 00047 void UpdateFileInfo(); 00048 00049 NExtract::NOverwriteMode::EEnum AskOverwrite(); 00050 00051 UInt64 m_uTotal; 00052 00053 UInt64 m_uCurFileNewSize; 00054 00055 vmsArchiveCallback* m_pAC; 00056 IInArchive* m_pArc; 00057 00058 UString m_strOutFolder; 00059 00060 CString m_strCurFile; 00061 00062 bool m_bSplit; 00063 00064 UInt64 m_uPosition; 00065 00066 bool m_bAttributesDefined; 00067 DWORD m_dwAttributes; 00068 00069 bool m_bLastWriteTimeDefined; 00070 FILETIME m_timeLastWrite; 00071 NExtract::NOverwriteMode::EEnum m_enOverwriteMode; 00072 00073 class COutFileStream* m_pFileStream; 00074 00075 CString m_strSrcArcFileName; 00076 }; 00077 00078 #endif
1.5.6