diff options
Diffstat (limited to 'CPP/7zip/UI/Far/ExtractEngine.h')
-rwxr-xr-x | CPP/7zip/UI/Far/ExtractEngine.h | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/CPP/7zip/UI/Far/ExtractEngine.h b/CPP/7zip/UI/Far/ExtractEngine.h index 5cccf6ef..62486fb1 100755 --- a/CPP/7zip/UI/Far/ExtractEngine.h +++ b/CPP/7zip/UI/Far/ExtractEngine.h @@ -11,7 +11,7 @@ #include "ProgressBox.h" -class CExtractCallBackImp: +class CExtractCallBackImp: public IFolderArchiveExtractCallback, public ICryptoGetTextPassword, public CMyUnknownImp @@ -20,15 +20,15 @@ public: MY_UNKNOWN_IMP1(ICryptoGetTextPassword) // IProgress - STDMETHOD(SetTotal)(UINT64 size); - STDMETHOD(SetCompleted)(const UINT64 *completeValue); + STDMETHOD(SetTotal)(UInt64 size); + STDMETHOD(SetCompleted)(const UInt64 *completeValue); // IExtractCallBack STDMETHOD(AskOverwrite)( - const wchar_t *existName, const FILETIME *existTime, const UINT64 *existSize, - const wchar_t *newName, const FILETIME *newTime, const UINT64 *newSize, + const wchar_t *existName, const FILETIME *existTime, const UInt64 *existSize, + const wchar_t *newName, const FILETIME *newTime, const UInt64 *newSize, INT32 *result); - STDMETHOD (PrepareOperation)(const wchar_t *name, bool isFolder, INT32 askExtractMode, const UINT64 *position); + STDMETHOD (PrepareOperation)(const wchar_t *name, bool isFolder, INT32 askExtractMode, const UInt64 *position); STDMETHOD(MessageError)(const wchar_t *message); STDMETHOD(SetOperationResult)(INT32 resultEOperationResult, bool encrypted); @@ -36,14 +36,22 @@ public: STDMETHOD(CryptoGetTextPassword)(BSTR *password); private: + UInt64 _total; + UInt64 _processed; + + bool _totalIsDefined; + bool _processedIsDefined; + UString m_CurrentFilePath; + /* struct CProcessedFileInfo { - FILETIME UTCLastWriteTime; - bool IsDirectory; + FILETIME MTime; + bool isDir; UINT32 Attributes; } m_ProcessedFileInfo; + */ CProgressBox *m_ProgressBox; UINT m_CodePage; @@ -53,15 +61,16 @@ private: void CreateComplexDirectory(const UStringVector &dirPathParts); /* - void GetPropertyValue(LPITEMIDLIST anItemIDList, PROPID aPropId, + void GetPropertyValue(LPITEMIDLIST anItemIDList, PROPID aPropId, PROPVARIANT *aValue); bool IsEncrypted(LPITEMIDLIST anItemIDList); */ void AddErrorMessage(LPCTSTR message); public: + CExtractCallBackImp(): _totalIsDefined(false), _processedIsDefined(false) {} ~CExtractCallBackImp(); - void Init(UINT codePage, - CProgressBox *progressBox, + void Init(UINT codePage, + CProgressBox *progressBox, bool passwordIsDefined, const UString &password); }; |