mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-09 14:07:08 -06:00
254 lines
8.0 KiB
C++
Executable File
254 lines
8.0 KiB
C++
Executable File
// FolderInterface.h
|
|
|
|
#pragma once
|
|
|
|
#ifndef __FOLDERINTERFACE_H
|
|
#define __FOLDERINTERFACE_H
|
|
|
|
#include "../IProgress.h"
|
|
|
|
namespace NPlugin
|
|
{
|
|
enum
|
|
{
|
|
kName = 0,
|
|
kType,
|
|
kClassID,
|
|
kOptionsClassID
|
|
};
|
|
}
|
|
|
|
// {23170F69-40C1-278A-0000-000800000000}
|
|
DEFINE_GUID(IID_IFolderFolder,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800000000")
|
|
IFolderFolder: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(LoadItems)() = 0;
|
|
STDMETHOD(GetNumberOfItems)(UINT32 *numItems) = 0;
|
|
// STDMETHOD(GetNumberOfSubFolders)(UINT32 *numSubFolders) = 0;
|
|
STDMETHOD(GetProperty)(UINT32 itemIndex, PROPID propID, PROPVARIANT *value) = 0;
|
|
STDMETHOD(BindToFolder)(UINT32 index, IFolderFolder **resultFolder) = 0;
|
|
STDMETHOD(BindToFolder)(const wchar_t *name, IFolderFolder **resultFolder) = 0;
|
|
STDMETHOD(BindToParentFolder)(IFolderFolder **resultFolder) = 0;
|
|
STDMETHOD(GetName)(BSTR *name) = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000800010000}
|
|
DEFINE_GUID(IID_IEnumProperties,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800010000")
|
|
IEnumProperties: public IUnknown
|
|
{
|
|
public:
|
|
// STDMETHOD(EnumProperties)(IEnumSTATPROPSTG **enumerator) = 0;
|
|
STDMETHOD(GetNumberOfProperties)(UINT32 *numProperties) = 0;
|
|
STDMETHOD(GetPropertyInfo)(UINT32 index,
|
|
BSTR *name, PROPID *propID, VARTYPE *varType) = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000800020000}
|
|
DEFINE_GUID(IID_IFolderGetTypeID,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800020000")
|
|
IFolderGetTypeID: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(GetTypeID)(BSTR *name) = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000800030000}
|
|
DEFINE_GUID(IID_IFolderGetPath,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800030000")
|
|
IFolderGetPath: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(GetPath)(BSTR *path) = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000800040000}
|
|
DEFINE_GUID(IID_IFolderWasChanged,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800040000")
|
|
IFolderWasChanged: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(WasChanged)(INT32 *wasChanged) = 0;
|
|
};
|
|
|
|
/*
|
|
// {23170F69-40C1-278A-0000-000800050000}
|
|
DEFINE_GUID(IID_IFolderReload,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x05, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800050000")
|
|
IFolderReload: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(Reload)() = 0;
|
|
};
|
|
*/
|
|
|
|
// {23170F69-40C1-278A-0000-000800060100}
|
|
DEFINE_GUID(IID_IFolderOperationsExtractCallback,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x01, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800060100")
|
|
IFolderOperationsExtractCallback: public IProgress
|
|
{
|
|
public:
|
|
STDMETHOD(AskWrite)(
|
|
const wchar_t *srcPath,
|
|
INT32 srcIsFolder,
|
|
const FILETIME *srcTime,
|
|
const UINT64 *srcSize,
|
|
const wchar_t *destPathRequest,
|
|
BSTR *destPathResult,
|
|
INT32 *writeAnswer) = 0;
|
|
STDMETHOD(ShowMessage)(const wchar_t *message) = 0;
|
|
};
|
|
|
|
/*
|
|
// {23170F69-40C1-278A-0000-000800060200}
|
|
DEFINE_GUID(IID_IFolderOperationsUpdateCallback,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x02, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800060200")
|
|
IFolderOperationsUpdateCallback: public IProgress
|
|
{
|
|
public:
|
|
STDMETHOD(AskOverwrite)(
|
|
const wchar_t *srcPath,
|
|
INT32 destIsFolder,
|
|
const FILETIME *destTime,
|
|
const UINT64 *destSize,
|
|
const wchar_t *aDestPathRequest,
|
|
const wchar_t *aDestName,
|
|
BSTR *aDestPathResult,
|
|
INT32 *aResult);
|
|
};
|
|
*/
|
|
|
|
// {23170F69-40C1-278A-0000-000800060000}
|
|
DEFINE_GUID(IID_IFolderOperations,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800060000")
|
|
IFolderOperations: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(CreateFolder)(const wchar_t *name, IProgress *progress) = 0;
|
|
STDMETHOD(CreateFile)(const wchar_t *name, IProgress *progress) = 0;
|
|
STDMETHOD(Rename)(UINT32 index, const wchar_t *newName, IProgress *progress) = 0;
|
|
STDMETHOD(Delete)(const UINT32 *indices, UINT32 numItems, IProgress *progress) = 0;
|
|
STDMETHOD(CopyTo)(const UINT32 *indices, UINT32 numItems,
|
|
const wchar_t *path, IFolderOperationsExtractCallback *callback) = 0;
|
|
STDMETHOD(MoveTo)(const UINT32 *indices, UINT32 numItems,
|
|
const wchar_t *path, IFolderOperationsExtractCallback *callback) = 0;
|
|
STDMETHOD(CopyFrom)(const wchar_t *fromFolderPath,
|
|
const wchar_t **itemsPaths, UINT32 numItems, IProgress *progress) = 0;
|
|
STDMETHOD(SetProperty)(UINT32 index, PROPID propID, const PROPVARIANT *value, IProgress *progress) = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000800070000}
|
|
DEFINE_GUID(IID_IFolderGetSystemIconIndex,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800070000")
|
|
IFolderGetSystemIconIndex: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(GetSystemIconIndex)(UINT32 index, INT32 *iconIndex) = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000800080000}
|
|
DEFINE_GUID(IID_IFolderGetItemFullSize,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800080000")
|
|
IFolderGetItemFullSize: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(GetItemFullSize)(UINT32 index, PROPVARIANT *value, IProgress *progress) = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000800090000}
|
|
DEFINE_GUID(IID_IFolderClone,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800090000")
|
|
IFolderClone: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(Clone)(IFolderFolder **resultFolder) = 0;
|
|
};
|
|
|
|
/*
|
|
// {23170F69-40C1-278A-0000-0008000A0000}
|
|
DEFINE_GUID(IID_IFolderOpen,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-0008000A0000")
|
|
IFolderOpen: public IUnknown
|
|
{
|
|
STDMETHOD(FolderOpen)(
|
|
const wchar_t *aFileName,
|
|
// IArchiveHandler100 **anArchiveHandler,
|
|
// NZipRootRegistry::CArchiverInfo &anArchiverInfoResult,
|
|
// UString &aDefaultName,
|
|
IOpenArchive2CallBack *anOpenArchive2CallBack) = 0;
|
|
};
|
|
*/
|
|
|
|
// {23170F69-40C1-278A-0000-000900000000}
|
|
DEFINE_GUID(IID_IFolderManager,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000900000000")
|
|
IFolderManager: public IUnknown
|
|
{
|
|
STDMETHOD(OpenFolderFile)(const wchar_t *filePath, IFolderFolder **resultFolder, IProgress *progress) = 0;
|
|
STDMETHOD(GetTypes)(BSTR *types);
|
|
STDMETHOD(GetExtension)(const wchar_t *type, BSTR *extension);
|
|
STDMETHOD(CreateFolderFile)(const wchar_t *type, const wchar_t *filePath, IProgress *progress) = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000900010000}
|
|
DEFINE_GUID(IID_IFolderManagerGetIconPath,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000900010000")
|
|
IFolderManagerGetIconPath: public IUnknown
|
|
{
|
|
STDMETHOD(GetIconPath)(const wchar_t *type, BSTR *iconPath) = 0;
|
|
};
|
|
|
|
/*
|
|
// {23170F69-40C1-278A-0000-000800050A00}
|
|
DEFINE_GUID(IID_IFolderExtract,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x05, 0x0A, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800050A00")
|
|
IFolderExtract: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(Clone)(IFolderFolder **aFolder) = 0;
|
|
};
|
|
*/
|
|
|
|
/*
|
|
// {23170F69-40C1-278A-0000-000800050400}
|
|
DEFINE_GUID(IID_IFolderChangeNotify,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x05, 0x04, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800050400")
|
|
IFolderChangeNotify: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(OnChanged)() = 0;
|
|
};
|
|
|
|
// {23170F69-40C1-278A-0000-000800050500}
|
|
DEFINE_GUID(IID_IFolderSetChangeNotify,
|
|
0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x05, 0x05, 0x00);
|
|
MIDL_INTERFACE("23170F69-40C1-278A-0000-000800050500")
|
|
IFolderSetChangeNotify: public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(SetChangeNotify)(IFolderChangeNotify *aChangeNotify) = 0;
|
|
};
|
|
*/
|
|
|
|
|
|
#endif
|