// 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 |