mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 01:15:00 -06:00
69 lines
1.8 KiB
C++
Executable File
69 lines
1.8 KiB
C++
Executable File
// ExtractEngine.h
|
|
|
|
#ifndef __EXTRACTENGINE_H
|
|
#define __EXTRACTENGINE_H
|
|
|
|
#include "Common/MyCom.h"
|
|
#include "Common/MyString.h"
|
|
|
|
#include "../../IPassword.h"
|
|
#include "../Agent/IFolderArchive.h"
|
|
|
|
#include "ProgressBox.h"
|
|
|
|
class CExtractCallBackImp:
|
|
public IFolderArchiveExtractCallback,
|
|
public ICryptoGetTextPassword,
|
|
public CMyUnknownImp
|
|
{
|
|
public:
|
|
MY_UNKNOWN_IMP1(ICryptoGetTextPassword)
|
|
|
|
// IProgress
|
|
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,
|
|
Int32 *result);
|
|
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);
|
|
// ICryptoGetTextPassword
|
|
STDMETHOD(CryptoGetTextPassword)(BSTR *password);
|
|
|
|
private:
|
|
UInt64 _total;
|
|
UInt64 _processed;
|
|
|
|
bool _totalIsDefined;
|
|
bool _processedIsDefined;
|
|
|
|
UString m_CurrentFilePath;
|
|
|
|
CProgressBox *m_ProgressBox;
|
|
UINT m_CodePage;
|
|
|
|
bool m_PasswordIsDefined;
|
|
UString m_Password;
|
|
|
|
void CreateComplexDirectory(const UStringVector &dirPathParts);
|
|
/*
|
|
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,
|
|
bool passwordIsDefined, const UString &password);
|
|
};
|
|
|
|
#endif
|