diff options
Diffstat (limited to 'CPP/7zip/UI/Agent/IFolderArchive.h')
-rwxr-xr-x | CPP/7zip/UI/Agent/IFolderArchive.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/CPP/7zip/UI/Agent/IFolderArchive.h b/CPP/7zip/UI/Agent/IFolderArchive.h new file mode 100755 index 00000000..41d9eb22 --- /dev/null +++ b/CPP/7zip/UI/Agent/IFolderArchive.h @@ -0,0 +1,90 @@ +// IFolderArchive.h + +#ifndef __IFOLDER_ARCHIVE_H +#define __IFOLDER_ARCHIVE_H + +#include "../../Archive/IArchive.h" +// #include "../Format/Common/ArchiveInterface.h" +#include "../../FileManager/IFolder.h" +#include "../Common/IFileExtractCallback.h" +#include "../Common/ExtractMode.h" + +// {23170F69-40C1-278A-0000-000100050000} +DEFINE_GUID(IID_IArchiveFolder, +0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00); +MIDL_INTERFACE("23170F69-40C1-278A-0000-000100050000") +IArchiveFolder: public IUnknown +{ +public: + STDMETHOD(Extract)(const UINT32 *indices, UINT32 numItems, + NExtract::NPathMode::EEnum pathMode, + NExtract::NOverwriteMode::EEnum overwriteMode, + const wchar_t *path, + INT32 testMode, + IFolderArchiveExtractCallback *extractCallback2) PURE; +}; + +// {23170F69-40C1-278A-0000-000100060000} +DEFINE_GUID(IID_IInFolderArchive, +0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00); +MIDL_INTERFACE("23170F69-40C1-278A-0000-000100060000") +IInFolderArchive: public IUnknown +{ +public: + STDMETHOD(Open)(const wchar_t *filePath, + // CLSID *clsIDResult, + BSTR *archiveType, + IArchiveOpenCallback *openArchiveCallback) PURE; + STDMETHOD(ReOpen)( + // const wchar_t *filePath, + IArchiveOpenCallback *openArchiveCallback) PURE; + STDMETHOD(Close)() PURE; + STDMETHOD(GetArchiveProperty)(PROPID propID, PROPVARIANT *value) PURE; + STDMETHOD(GetNumberOfProperties)(UINT32 *numProperties) PURE; + STDMETHOD(GetPropertyInfo)(UINT32 index, + BSTR *name, PROPID *propID, VARTYPE *varType) PURE; + STDMETHOD(GetNumberOfArchiveProperties)(UINT32 *numProperties) PURE; + STDMETHOD(GetArchivePropertyInfo)(UINT32 index, + BSTR *name, PROPID *propID, VARTYPE *varType) PURE; + STDMETHOD(BindToRootFolder)(IFolderFolder **resultFolder) PURE; + STDMETHOD(Extract)( + NExtract::NPathMode::EEnum pathMode, + NExtract::NOverwriteMode::EEnum overwriteMode, + const wchar_t *path, + INT32 testMode, + IFolderArchiveExtractCallback *extractCallback2) PURE; +}; + +// {23170F69-40C1-278A-0000-0001000B0000} +DEFINE_GUID(IID_IFolderArchiveUpdateCallback, +0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0B, 0x00, 0x00); +MIDL_INTERFACE("23170F69-40C1-278A-0000-0001000B0000") +IFolderArchiveUpdateCallback: public IProgress +{ +public: + STDMETHOD(CompressOperation)(const wchar_t *name) PURE; + STDMETHOD(DeleteOperation)(const wchar_t *name) PURE; + STDMETHOD(OperationResult)(INT32 operationResult) PURE; + STDMETHOD(UpdateErrorMessage)(const wchar_t *message) PURE; +}; + +// {23170F69-40C1-278A-0000-0001000A0000} +DEFINE_GUID(IID_IOutFolderArchive, +0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x00, 0x00); +MIDL_INTERFACE("23170F69-40C1-278A-0000-0001000A0000") +IOutFolderArchive: public IUnknown +{ + STDMETHOD(SetFolder)(IFolderFolder *folder) PURE; + STDMETHOD(SetFiles)(const wchar_t *folderPrefix, const wchar_t **names, UINT32 numNames) PURE; + STDMETHOD(DeleteItems)(const wchar_t *newArchiveName, + const UINT32 *indices, UINT32 numItems, IFolderArchiveUpdateCallback *updateCallback) PURE; + STDMETHOD(DoOperation)( + const wchar_t *filePath, + const CLSID *clsID, + const wchar_t *newArchiveName, + const Byte *stateActions, + const wchar_t *sfxModule, + IFolderArchiveUpdateCallback *updateCallback) PURE; +}; + +#endif |