mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-14 22:11:38 -06:00
3.13
This commit is contained in:
172
7zip/Archive/IArchive.h
Executable file
172
7zip/Archive/IArchive.h
Executable file
@@ -0,0 +1,172 @@
|
||||
// IArchive.h
|
||||
|
||||
#ifndef __IARCHIVE_H
|
||||
#define __IARCHIVE_H
|
||||
|
||||
#include "../IStream.h"
|
||||
#include "../IProgress.h"
|
||||
#include "../PropID.h"
|
||||
|
||||
namespace NFileTimeType
|
||||
{
|
||||
enum EEnum
|
||||
{
|
||||
kWindows,
|
||||
kUnix,
|
||||
kDOS
|
||||
};
|
||||
}
|
||||
|
||||
namespace NArchive
|
||||
{
|
||||
enum
|
||||
{
|
||||
kName = 0,
|
||||
kClassID,
|
||||
kExtension,
|
||||
kAddExtension,
|
||||
kUpdate,
|
||||
kKeepName,
|
||||
};
|
||||
|
||||
namespace NExtract
|
||||
{
|
||||
namespace NAskMode
|
||||
{
|
||||
enum
|
||||
{
|
||||
kExtract = 0,
|
||||
kTest,
|
||||
kSkip,
|
||||
};
|
||||
}
|
||||
namespace NOperationResult
|
||||
{
|
||||
enum
|
||||
{
|
||||
kOK = 0,
|
||||
kUnSupportedMethod,
|
||||
kDataError,
|
||||
kCRCError,
|
||||
};
|
||||
}
|
||||
}
|
||||
namespace NUpdate
|
||||
{
|
||||
namespace NOperationResult
|
||||
{
|
||||
enum
|
||||
{
|
||||
kOK = 0,
|
||||
kError,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// {23170F69-40C1-278A-0000-000100010000}
|
||||
DEFINE_GUID(IID_IArchiveOpenCallback,
|
||||
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00);
|
||||
MIDL_INTERFACE("23170F69-40C1-278A-0000-000100010000")
|
||||
IArchiveOpenCallback: public IUnknown
|
||||
{
|
||||
public:
|
||||
STDMETHOD(SetTotal)(const UINT64 *files, const UINT64 *bytes) PURE;
|
||||
STDMETHOD(SetCompleted)(const UINT64 *files, const UINT64 *bytes) PURE;
|
||||
};
|
||||
|
||||
// {23170F69-40C1-278A-0000-000100090000}
|
||||
DEFINE_GUID(IID_IArchiveExtractCallback,
|
||||
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x00);
|
||||
MIDL_INTERFACE("23170F69-40C1-278A-0000-000100090000")
|
||||
IArchiveExtractCallback: public IProgress
|
||||
{
|
||||
public:
|
||||
STDMETHOD(GetStream)(UINT32 index, ISequentialOutStream **outStream,
|
||||
INT32 askExtractMode) PURE;
|
||||
STDMETHOD(PrepareOperation)(INT32 askExtractMode) PURE;
|
||||
STDMETHOD(SetOperationResult)(INT32 resultEOperationResult) PURE;
|
||||
};
|
||||
|
||||
|
||||
// {23170F69-40C1-278A-0000-0001000D0000}
|
||||
DEFINE_GUID(IID_IArchiveOpenVolumeCallback,
|
||||
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, 0x00, 0x00);
|
||||
MIDL_INTERFACE("23170F69-40C1-278A-0000-0001000D0000")
|
||||
IArchiveOpenVolumeCallback: public IUnknown
|
||||
{
|
||||
public:
|
||||
STDMETHOD(GetProperty)(PROPID propID, PROPVARIANT *value) PURE;
|
||||
STDMETHOD(GetStream)(const wchar_t *name, IInStream **inStream) PURE;
|
||||
};
|
||||
|
||||
|
||||
// {23170F69-40C1-278A-0000-000100080000}
|
||||
DEFINE_GUID(IID_IInArchive,
|
||||
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00);
|
||||
MIDL_INTERFACE("23170F69-40C1-278A-0000-000100080000")
|
||||
IInArchive: public IUnknown
|
||||
{
|
||||
public:
|
||||
STDMETHOD(Open)(IInStream *stream, const UINT64 *maxCheckStartPosition,
|
||||
IArchiveOpenCallback *openArchiveCallback) PURE;
|
||||
STDMETHOD(Close)() PURE;
|
||||
STDMETHOD(GetNumberOfItems)(UINT32 *numItems) PURE;
|
||||
STDMETHOD(GetProperty)(UINT32 index, PROPID propID, PROPVARIANT *value) PURE;
|
||||
STDMETHOD(Extract)(const UINT32* indices, UINT32 numItems,
|
||||
INT32 testMode, IArchiveExtractCallback *extractCallback) 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;
|
||||
};
|
||||
|
||||
|
||||
// {23170F69-40C1-278A-0000-000100040000}
|
||||
DEFINE_GUID(IID_IArchiveUpdateCallback,
|
||||
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00);
|
||||
MIDL_INTERFACE("23170F69-40C1-278A-0000-000100040000")
|
||||
IArchiveUpdateCallback: public IProgress
|
||||
{
|
||||
public:
|
||||
// STDMETHOD(EnumProperties)(IEnumSTATPROPSTG **enumerator) PURE;
|
||||
STDMETHOD(GetUpdateItemInfo)(UINT32 index,
|
||||
INT32 *newData, // 1 - new data, 0 - old data
|
||||
INT32 *newProperties, // 1 - new properties, 0 - old properties
|
||||
UINT32 *indexInArchive // -1 if there is no in archive, or if doesn't matter
|
||||
) PURE;
|
||||
STDMETHOD(GetProperty)(UINT32 index, PROPID propID, PROPVARIANT *value) PURE;
|
||||
STDMETHOD(GetStream)(UINT32 index, IInStream **inStream) PURE;
|
||||
STDMETHOD(SetOperationResult)(INT32 operationResult) PURE;
|
||||
// STDMETHOD(GetVolumeSize)(UINT32 index, UINT64 *size) PURE;
|
||||
// STDMETHOD(GetVolumeStream)(UINT32 index, IOutStream **volumeStream) PURE;
|
||||
};
|
||||
|
||||
// {23170F69-40C1-278A-0000-000100020000}
|
||||
DEFINE_GUID(IID_IOutArchive,
|
||||
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00);
|
||||
MIDL_INTERFACE("23170F69-40C1-278A-0000-000100020000")
|
||||
IOutArchive: public IUnknown
|
||||
{
|
||||
STDMETHOD(UpdateItems)(IOutStream *outStream, UINT32 numItems,
|
||||
IArchiveUpdateCallback *updateCallback) PURE;
|
||||
STDMETHOD(GetFileTimeType)(UINT32 *type) PURE;
|
||||
};
|
||||
|
||||
// {23170F69-40C1-278A-0000-000100030000}
|
||||
DEFINE_GUID(IID_ISetProperties,
|
||||
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00);
|
||||
MIDL_INTERFACE("23170F69-40C1-278A-0000-000100030000")
|
||||
ISetProperties: public IUnknown
|
||||
{
|
||||
STDMETHOD(SetProperties)(const BSTR *names, const PROPVARIANT *values, INT32 numProperties) PURE;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user