mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-08 06:06:59 -06:00
100 lines
2.4 KiB
C++
100 lines
2.4 KiB
C++
// ExtractCallbackConsole.h
|
|
|
|
#ifndef __EXTRACTCALLBACKCONSOLE_H
|
|
#define __EXTRACTCALLBACKCONSOLE_H
|
|
|
|
#include "../../../Common/MyString.h"
|
|
#include "../../../Common/StdOutStream.h"
|
|
|
|
#include "../../Common/FileStreams.h"
|
|
|
|
#include "../../IPassword.h"
|
|
|
|
#include "../../Archive/IArchive.h"
|
|
|
|
#include "../Common/ArchiveExtractCallback.h"
|
|
|
|
class CExtractCallbackConsole:
|
|
public IExtractCallbackUI,
|
|
#ifndef _NO_CRYPTO
|
|
public ICryptoGetTextPassword,
|
|
#endif
|
|
public CMyUnknownImp
|
|
{
|
|
public:
|
|
MY_QUERYINTERFACE_BEGIN2(IFolderArchiveExtractCallback)
|
|
#ifndef _NO_CRYPTO
|
|
MY_QUERYINTERFACE_ENTRY(ICryptoGetTextPassword)
|
|
#endif
|
|
MY_QUERYINTERFACE_END
|
|
MY_ADDREF_RELEASE
|
|
|
|
STDMETHOD(SetTotal)(UInt64 total);
|
|
STDMETHOD(SetCompleted)(const UInt64 *completeValue);
|
|
|
|
// IFolderArchiveExtractCallback
|
|
STDMETHOD(AskOverwrite)(
|
|
const wchar_t *existName, const FILETIME *existTime, const UInt64 *existSize,
|
|
const wchar_t *newName, const FILETIME *newTime, const UInt64 *newSize,
|
|
Int32 *answer);
|
|
STDMETHOD (PrepareOperation)(const wchar_t *name, bool isFolder, Int32 askExtractMode, const UInt64 *position);
|
|
|
|
STDMETHOD(MessageError)(const wchar_t *message);
|
|
STDMETHOD(SetOperationResult)(Int32 operationResult, bool encrypted);
|
|
|
|
HRESULT BeforeOpen(const wchar_t *name);
|
|
HRESULT OpenResult(const wchar_t *name, HRESULT result, bool encrypted);
|
|
HRESULT SetError(int level, const wchar_t *name,
|
|
UInt32 errorFlags, const wchar_t *errors,
|
|
UInt32 warningFlags, const wchar_t *warnings);
|
|
|
|
HRESULT ThereAreNoFiles();
|
|
HRESULT ExtractResult(HRESULT result);
|
|
HRESULT OpenTypeWarning(const wchar_t *name, const wchar_t *okType, const wchar_t *errorType);
|
|
|
|
|
|
#ifndef _NO_CRYPTO
|
|
HRESULT SetPassword(const UString &password);
|
|
STDMETHOD(CryptoGetTextPassword)(BSTR *password);
|
|
|
|
bool PasswordIsDefined;
|
|
UString Password;
|
|
|
|
#endif
|
|
|
|
UInt64 NumTryArcs;
|
|
bool ThereIsErrorInCurrent;
|
|
bool ThereIsWarningInCurrent;
|
|
|
|
UInt64 NumCantOpenArcs;
|
|
UInt64 NumOkArcs;
|
|
UInt64 NumArcsWithError;
|
|
UInt64 NumArcsWithWarnings;
|
|
|
|
UInt64 NumProblemArcsLevs;
|
|
UInt64 NumOpenArcErrors;
|
|
UInt64 NumOpenArcWarnings;
|
|
|
|
UInt64 NumFileErrors;
|
|
UInt64 NumFileErrorsInCurrent;
|
|
|
|
CStdOutStream *OutStream;
|
|
|
|
void Init()
|
|
{
|
|
NumTryArcs = 0;
|
|
NumOkArcs = 0;
|
|
NumCantOpenArcs = 0;
|
|
NumArcsWithError = 0;
|
|
NumArcsWithWarnings = 0;
|
|
|
|
NumOpenArcErrors = 0;
|
|
NumOpenArcWarnings = 0;
|
|
NumFileErrors = 0;
|
|
NumFileErrorsInCurrent = 0;
|
|
}
|
|
|
|
};
|
|
|
|
#endif
|