// UpdateCallback.h | |
#ifndef __UPDATECALLBACK_H | |
#define __UPDATECALLBACK_H | |
#include "Common/MyCom.h" | |
#include "Common/MyString.h" | |
#include "../../IPassword.h" | |
#include "../../ICoder.h" | |
#include "../Common/UpdatePair.h" | |
#include "../Common/UpdateProduce.h" | |
#define INTERFACE_IUpdateCallbackUI(x) \ | |
virtual HRESULT SetTotal(UInt64 size) x; \ | |
virtual HRESULT SetCompleted(const UInt64 *completeValue) x; \ | |
virtual HRESULT SetRatioInfo(const UInt64 *inSize, const UInt64 *outSize) x; \ | |
virtual HRESULT CheckBreak() x; \ | |
virtual HRESULT Finilize() x; \ | |
virtual HRESULT SetNumFiles(UInt64 numFiles) x; \ | |
virtual HRESULT GetStream(const wchar_t *name, bool isAnti) x; \ | |
virtual HRESULT OpenFileError(const wchar_t *name, DWORD systemError) x; \ | |
virtual HRESULT SetOperationResult(Int32 operationResult) x; \ | |
virtual HRESULT CryptoGetTextPassword2(Int32 *passwordIsDefined, BSTR *password) x; \ | |
virtual HRESULT CryptoGetTextPassword(BSTR *password) x; \ | |
/* virtual HRESULT ShowDeleteFile(const wchar_t *name) x; */ \ | |
/* virtual HRESULT CloseProgress() { return S_OK; }; */ | |
struct IUpdateCallbackUI | |
{ | |
INTERFACE_IUpdateCallbackUI(=0) | |
}; | |
class CArchiveUpdateCallback: | |
public IArchiveUpdateCallback2, | |
public ICryptoGetTextPassword2, | |
public ICryptoGetTextPassword, | |
public ICompressProgressInfo, | |
public CMyUnknownImp | |
{ | |
public: | |
MY_UNKNOWN_IMP4( | |
IArchiveUpdateCallback2, | |
ICryptoGetTextPassword2, | |
ICryptoGetTextPassword, | |
ICompressProgressInfo) | |
STDMETHOD(SetRatioInfo)(const UInt64 *inSize, const UInt64 *outSize); | |
INTERFACE_IArchiveUpdateCallback2(;) | |
STDMETHOD(CryptoGetTextPassword2)(Int32 *passwordIsDefined, BSTR *password); | |
STDMETHOD(CryptoGetTextPassword)(BSTR *password); | |
public: | |
CRecordVector<UInt64> VolumesSizes; | |
UString VolName; | |
UString VolExt; | |
IUpdateCallbackUI *Callback; | |
bool ShareForWrite; | |
bool StdInMode; | |
const CDirItems *DirItems; | |
const CObjectVector<CArcItem> *ArcItems; | |
const CRecordVector<CUpdatePair2> *UpdatePairs; | |
const UStringVector *NewNames; | |
CMyComPtr<IInArchive> Archive; | |
CArchiveUpdateCallback(); | |
}; | |
#endif |