xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Agent/IFolderArchive.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 // IFolderArchive.h
2 
3 #ifndef ZIP7_INC_IFOLDER_ARCHIVE_H
4 #define ZIP7_INC_IFOLDER_ARCHIVE_H
5 
6 #include "../../../Common/MyString.h"
7 
8 #include "../../Archive/IArchive.h"
9 #include "../../UI/Common/LoadCodecs.h"
10 #include "../../UI/FileManager/IFolder.h"
11 
12 #include "../Common/ExtractMode.h"
13 #include "../Common/IFileExtractCallback.h"
14 
15 Z7_PURE_INTERFACES_BEGIN
16 
17 /* ---------- IArchiveFolder ----------
18 IArchiveFolder is implemented by CAgentFolder (Agent/Agent.h)
19 IArchiveFolder is used by:
20   - FileManager/PanelCopy.cpp
21       CPanel::CopyTo(), if (options->testMode)
22   - FAR/PluginRead.cpp
23       CPlugin::ExtractFiles
24 */
25 
26 #define Z7_IFACEM_IArchiveFolder(x) \
27   x(Extract(const UInt32 *indices, UInt32 numItems, \
28       Int32 includeAltStreams, \
29       Int32 replaceAltStreamCharsMode, \
30       NExtract::NPathMode::EEnum pathMode, \
31       NExtract::NOverwriteMode::EEnum overwriteMode, \
32       const wchar_t *path, Int32 testMode, \
33       IFolderArchiveExtractCallback *extractCallback2)) \
34 
35 Z7_IFACE_CONSTR_FOLDERARC(IArchiveFolder, 0x0D)
36 
37 
38 /* ---------- IInFolderArchive ----------
39 IInFolderArchive is implemented by CAgent (Agent/Agent.h)
40 IInFolderArchive Is used by FAR/Plugin
41 */
42 
43 #define Z7_IFACEM_IInFolderArchive(x) \
44   x(Open(IInStream *inStream, const wchar_t *filePath, const wchar_t *arcFormat, BSTR *archiveTypeRes, IArchiveOpenCallback *openArchiveCallback)) \
45   x(ReOpen(IArchiveOpenCallback *openArchiveCallback)) \
46   x(Close()) \
47   x(GetNumberOfProperties(UInt32 *numProperties)) \
48   x(GetPropertyInfo(UInt32 index, BSTR *name, PROPID *propID, VARTYPE *varType)) \
49   x(BindToRootFolder(IFolderFolder **resultFolder)) \
50   x(Extract(NExtract::NPathMode::EEnum pathMode, \
51       NExtract::NOverwriteMode::EEnum overwriteMode, const wchar_t *path, \
52       Int32 testMode, IFolderArchiveExtractCallback *extractCallback2)) \
53 
54 Z7_IFACE_CONSTR_FOLDERARC(IInFolderArchive, 0x0E)
55 
56 #define Z7_IFACEM_IFolderArchiveUpdateCallback(x) \
57   x(CompressOperation(const wchar_t *name)) \
58   x(DeleteOperation(const wchar_t *name)) \
59   x(OperationResult(Int32 opRes)) \
60   x(UpdateErrorMessage(const wchar_t *message)) \
61   x(SetNumFiles(UInt64 numFiles)) \
62 
63 Z7_IFACE_CONSTR_FOLDERARC_SUB(IFolderArchiveUpdateCallback, IProgress, 0x0B)
64 
65 #define Z7_IFACEM_IOutFolderArchive(x) \
66   x(SetFolder(IFolderFolder *folder)) \
67   x(SetFiles(const wchar_t *folderPrefix, const wchar_t * const *names, UInt32 numNames)) \
68   x(DeleteItems(ISequentialOutStream *outArchiveStream, \
69       const UInt32 *indices, UInt32 numItems, IFolderArchiveUpdateCallback *updateCallback)) \
70   x(DoOperation( \
71       FStringVector *requestedPaths, \
72       FStringVector *processedPaths, \
73       CCodecs *codecs, int index, \
74       ISequentialOutStream *outArchiveStream, const Byte *stateActions, const wchar_t *sfxModule, \
75       IFolderArchiveUpdateCallback *updateCallback)) \
76   x(DoOperation2( \
77       FStringVector *requestedPaths, \
78       FStringVector *processedPaths, \
79       ISequentialOutStream *outArchiveStream, const Byte *stateActions, const wchar_t *sfxModule, \
80       IFolderArchiveUpdateCallback *updateCallback)) \
81 
82 Z7_IFACE_CONSTR_FOLDERARC(IOutFolderArchive, 0x0F)
83 
84 
85 #define Z7_IFACEM_IFolderArchiveUpdateCallback2(x) \
86   x(OpenFileError(const wchar_t *path, HRESULT errorCode)) \
87   x(ReadingFileError(const wchar_t *path, HRESULT errorCode)) \
88   x(ReportExtractResult(Int32 opRes, Int32 isEncrypted, const wchar_t *path)) \
89   x(ReportUpdateOperation(UInt32 notifyOp, const wchar_t *path, Int32 isDir)) \
90 
91 Z7_IFACE_CONSTR_FOLDERARC(IFolderArchiveUpdateCallback2, 0x10)
92 
93 
94 #define Z7_IFACEM_IFolderScanProgress(x) \
95   x(ScanError(const wchar_t *path, HRESULT errorCode)) \
96   x(ScanProgress(UInt64 numFolders, UInt64 numFiles, UInt64 totalSize, const wchar_t *path, Int32 isDir)) \
97 
98 Z7_IFACE_CONSTR_FOLDERARC(IFolderScanProgress, 0x11)
99 
100 
101 #define Z7_IFACEM_IFolderSetZoneIdMode(x) \
102   x(SetZoneIdMode(NExtract::NZoneIdMode::EEnum zoneMode)) \
103 
104 Z7_IFACE_CONSTR_FOLDERARC(IFolderSetZoneIdMode, 0x12)
105 
106 #define Z7_IFACEM_IFolderSetZoneIdFile(x) \
107   x(SetZoneIdFile(const Byte *data, UInt32 size)) \
108 
109 Z7_IFACE_CONSTR_FOLDERARC(IFolderSetZoneIdFile, 0x13)
110 
111 
112 // if the caller calls Before_ArcReopen(), the callee must
113 // clear user break status, because the caller want to open archive still.
114 #define Z7_IFACEM_IFolderArchiveUpdateCallback_MoveArc(x) \
115   x(MoveArc_Start(const wchar_t *srcTempPath, const wchar_t *destFinalPath, UInt64 size, Int32 updateMode)) \
116   x(MoveArc_Progress(UInt64 totalSize, UInt64 currentSize)) \
117   x(MoveArc_Finish()) \
118   x(Before_ArcReopen()) \
119 
120 Z7_IFACE_CONSTR_FOLDERARC(IFolderArchiveUpdateCallback_MoveArc, 0x14)
121 
122 Z7_PURE_INTERFACES_END
123 #endif
124