1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
// IFileExtractCallback.h
#ifndef __I_FILE_EXTRACT_CALLBACK_H
#define __I_FILE_EXTRACT_CALLBACK_H
#include "../../../Common/MyString.h"
#include "../../IDecl.h"
#include "LoadCodecs.h"
#include "OpenArchive.h"
namespace NOverwriteAnswer
{
enum EEnum
{
kYes,
kYesToAll,
kNo,
kNoToAll,
kAutoRename,
kCancel
};
}
/* ---------- IFolderArchiveExtractCallback ----------
is implemented by
Console/ExtractCallbackConsole.h CExtractCallbackConsole
FileManager/ExtractCallback.h CExtractCallbackImp
FAR/ExtractEngine.cpp CExtractCallBackImp: (QueryInterface is not supported)
IID_IFolderArchiveExtractCallback is requested by:
- Agent/ArchiveFolder.cpp
CAgentFolder::CopyTo(..., IFolderOperationsExtractCallback *callback)
is sent to IArchiveFolder::Extract()
- FileManager/PanelCopy.cpp
CPanel::CopyTo(), if (options->testMode)
is sent to IArchiveFolder::Extract()
IFolderArchiveExtractCallback is used by Common/ArchiveExtractCallback.cpp
*/
#define INTERFACE_IFolderArchiveExtractCallback(x) \
STDMETHOD(AskOverwrite)( \
const wchar_t *existName, const FILETIME *existTime, const UInt64 *existSize, \
const wchar_t *newName, const FILETIME *newTime, const UInt64 *newSize, \
Int32 *answer) x; \
STDMETHOD(PrepareOperation)(const wchar_t *name, Int32 isFolder, Int32 askExtractMode, const UInt64 *position) x; \
STDMETHOD(MessageError)(const wchar_t *message) x; \
STDMETHOD(SetOperationResult)(Int32 opRes, Int32 encrypted) x; \
DECL_INTERFACE_SUB(IFolderArchiveExtractCallback, IProgress, 0x01, 0x07)
{
INTERFACE_IFolderArchiveExtractCallback(PURE)
};
#define INTERFACE_IFolderArchiveExtractCallback2(x) \
STDMETHOD(ReportExtractResult)(Int32 opRes, Int32 encrypted, const wchar_t *name) x; \
DECL_INTERFACE_SUB(IFolderArchiveExtractCallback2, IUnknown, 0x01, 0x08)
{
INTERFACE_IFolderArchiveExtractCallback2(PURE)
};
/* ---------- IExtractCallbackUI ----------
is implemented by
Console/ExtractCallbackConsole.h CExtractCallbackConsole
FileManager/ExtractCallback.h CExtractCallbackImp
*/
#ifdef _NO_CRYPTO
#define INTERFACE_IExtractCallbackUI_Crypto(x)
#else
#define INTERFACE_IExtractCallbackUI_Crypto(x) \
virtual HRESULT SetPassword(const UString &password) x;
#endif
#define INTERFACE_IExtractCallbackUI(x) \
virtual HRESULT BeforeOpen(const wchar_t *name, bool testMode) x; \
virtual HRESULT OpenResult(const CCodecs *codecs, const CArchiveLink &arcLink, const wchar_t *name, HRESULT result) x; \
virtual HRESULT ThereAreNoFiles() x; \
virtual HRESULT ExtractResult(HRESULT result) x; \
INTERFACE_IExtractCallbackUI_Crypto(x)
struct IExtractCallbackUI: IFolderArchiveExtractCallback
{
INTERFACE_IExtractCallbackUI(PURE)
};
#define INTERFACE_IGetProp(x) \
STDMETHOD(GetProp)(PROPID propID, PROPVARIANT *value) x; \
DECL_INTERFACE_SUB(IGetProp, IUnknown, 0x01, 0x20)
{
INTERFACE_IGetProp(PURE)
};
#define INTERFACE_IFolderExtractToStreamCallback(x) \
STDMETHOD(UseExtractToStream)(Int32 *res) x; \
STDMETHOD(GetStream7)(const wchar_t *name, Int32 isDir, ISequentialOutStream **outStream, Int32 askExtractMode, IGetProp *getProp) x; \
STDMETHOD(PrepareOperation7)(Int32 askExtractMode) x; \
STDMETHOD(SetOperationResult7)(Int32 resultEOperationResult, Int32 encrypted) x; \
DECL_INTERFACE_SUB(IFolderExtractToStreamCallback, IUnknown, 0x01, 0x30)
{
INTERFACE_IFolderExtractToStreamCallback(PURE)
};
#endif
|