Files
Aaru.Compression.Native/3rdparty/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h

113 lines
3.5 KiB
C
Raw Normal View History

2021-10-19 21:27:23 +01:00
// IFileExtractCallback.h
2023-09-24 03:13:03 +01:00
#ifndef ZIP7_INC_I_FILE_EXTRACT_CALLBACK_H
#define ZIP7_INC_I_FILE_EXTRACT_CALLBACK_H
2021-10-19 21:27:23 +01:00
#include "../../../Common/MyString.h"
#include "../../IDecl.h"
#include "LoadCodecs.h"
#include "OpenArchive.h"
2023-09-24 03:13:03 +01:00
Z7_PURE_INTERFACES_BEGIN
#define Z7_IFACE_CONSTR_FOLDERARC_SUB(i, base, n) \
Z7_DECL_IFACE_7ZIP_SUB(i, base, 1, n) \
{ Z7_IFACE_COM7_PURE(i) };
#define Z7_IFACE_CONSTR_FOLDERARC(i, n) \
Z7_IFACE_CONSTR_FOLDERARC_SUB(i, IUnknown, n)
2021-10-19 21:27:23 +01:00
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
*/
2023-09-24 03:13:03 +01:00
#define Z7_IFACEM_IFolderArchiveExtractCallback(x) \
x(AskOverwrite( \
2021-10-19 21:27:23 +01:00
const wchar_t *existName, const FILETIME *existTime, const UInt64 *existSize, \
const wchar_t *newName, const FILETIME *newTime, const UInt64 *newSize, \
2023-09-24 03:13:03 +01:00
Int32 *answer)) \
x(PrepareOperation(const wchar_t *name, Int32 isFolder, Int32 askExtractMode, const UInt64 *position)) \
x(MessageError(const wchar_t *message)) \
x(SetOperationResult(Int32 opRes, Int32 encrypted)) \
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
Z7_IFACE_CONSTR_FOLDERARC_SUB(IFolderArchiveExtractCallback, IProgress, 0x07)
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
#define Z7_IFACEM_IFolderArchiveExtractCallback2(x) \
x(ReportExtractResult(Int32 opRes, Int32 encrypted, const wchar_t *name)) \
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
Z7_IFACE_CONSTR_FOLDERARC(IFolderArchiveExtractCallback2, 0x08)
2021-10-19 21:27:23 +01:00
/* ---------- IExtractCallbackUI ----------
is implemented by
Console/ExtractCallbackConsole.h CExtractCallbackConsole
FileManager/ExtractCallback.h CExtractCallbackImp
*/
2023-09-24 03:13:03 +01:00
#ifdef Z7_NO_CRYPTO
#define Z7_IFACEM_IExtractCallbackUI_Crypto(px)
2021-10-19 21:27:23 +01:00
#else
2023-09-24 03:13:03 +01:00
#define Z7_IFACEM_IExtractCallbackUI_Crypto(px) \
virtual HRESULT SetPassword(const UString &password) px
2021-10-19 21:27:23 +01:00
#endif
2023-09-24 03:13:03 +01:00
#define Z7_IFACEN_IExtractCallbackUI(px) \
virtual HRESULT BeforeOpen(const wchar_t *name, bool testMode) px \
virtual HRESULT OpenResult(const CCodecs *codecs, const CArchiveLink &arcLink, const wchar_t *name, HRESULT result) px \
virtual HRESULT ThereAreNoFiles() px \
virtual HRESULT ExtractResult(HRESULT result) px \
Z7_IFACEM_IExtractCallbackUI_Crypto(px)
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
// IExtractCallbackUI - is non-COM interface
// IFolderArchiveExtractCallback - is COM interface
// Z7_IFACE_DECL_PURE_(IExtractCallbackUI, IFolderArchiveExtractCallback)
Z7_IFACE_DECL_PURE(IExtractCallbackUI)
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
#define Z7_IFACEM_IGetProp(x) \
x(GetProp(PROPID propID, PROPVARIANT *value)) \
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
Z7_IFACE_CONSTR_FOLDERARC(IGetProp, 0x20)
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
#define Z7_IFACEM_IFolderExtractToStreamCallback(x) \
x(UseExtractToStream(Int32 *res)) \
x(GetStream7(const wchar_t *name, Int32 isDir, ISequentialOutStream **outStream, Int32 askExtractMode, IGetProp *getProp)) \
x(PrepareOperation7(Int32 askExtractMode)) \
x(SetOperationResult8(Int32 resultEOperationResult, Int32 encrypted, UInt64 size)) \
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
Z7_IFACE_CONSTR_FOLDERARC(IFolderExtractToStreamCallback, 0x31)
2021-10-19 21:27:23 +01:00
2023-09-24 03:13:03 +01:00
Z7_PURE_INTERFACES_END
2021-10-19 21:27:23 +01:00
#endif