Sandboxie/SandboxiePlus/MiscHelpers/Archive/ArchiveHelper.h

86 lines
4.3 KiB
C

#pragma once
#include "Archive.h"
#ifdef USE_7Z
#if 1
#include "./7z/CPP/Common/MyInitGuid.h"
#include "./7z/CPP/Common/MyCom.h"
#include "./7z/CPP/7zip/Archive/IArchive.h"
#include "./7z/CPP/7zip/IPassword.h"
#include "./7z/CPP/7zip/IProgress.h"
#include "./7z/CPP/Windows/PropVariant.h"
#include "./7z/CPP/Common/Defs.h"
#include "./7z/CPP/Windows/Defs.h"
#include "./7z/CPP/7zip/ICoder.h"
#else
#ifndef WIN32
#include "../../7-Zip/p7zip_9.20.1/CPP/myWindows/StdAfx.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/Common/MyCom.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/Common/MyGuidDef.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/7zip/Archive/IArchive.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/7zip/IPassword.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/7zip/IProgress.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/Windows/PropVariant.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/Common/Defs.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/Windows/Defs.h"
#include "../../7-Zip/p7zip_9.20.1/CPP/7zip/ICoder.h"
#else
#include "../../7-Zip/7z920/CPP/Common/MyInitGuid.h"
#include "../../7-Zip/7z920/CPP/Common/MyCom.h"
#include "../../7-Zip/7z920/CPP/7zip/Archive/IArchive.h"
#include "../../7-Zip/7z920/CPP/7zip/IPassword.h"
#include "../../7-Zip/7z920/CPP/7zip/IProgress.h"
#include "../../7-Zip/7z920/CPP/Windows/PropVariant.h"
#include "../../7-Zip/7z920/CPP/Common/Defs.h"
#include "../../7-Zip/7z920/CPP/Windows/Defs.h"
#include "../../7-Zip/7z920/CPP/7zip/ICoder.h"
#endif
#endif
#include <QLibrary>
#include "ArchiveIO.h"
typedef UInt32 (WINAPI *GetMethodPropertyFunc)(UInt32 index, PROPID propID, PROPVARIANT *value);
typedef UInt32 (WINAPI *GetNumberOfMethodsFunc)(UInt32 *numMethods);
typedef UInt32 (WINAPI *GetHandlerPropertyFunc)(PROPID propID, PROPVARIANT *value);
typedef UInt32 (WINAPI *GetHandlerPropertyFunc2)(UInt32 index, PROPID propID, PROPVARIANT *value);
typedef UInt32 (WINAPI *GetNumberOfFormatsFunc)(UInt32 *numFormats);
typedef UInt32 (WINAPI *CreateObjectFunc)(const GUID *clsID, const GUID *interfaceID, void **outObject);
HRESULT GetCoderClass(GetMethodPropertyFunc getMethodProperty, UInt32 index, PROPID propId, CLSID &clsId, bool &isAssigned);
HRESULT ReadProp(GetHandlerPropertyFunc getProp, GetHandlerPropertyFunc2 getProp2, UInt32 index, PROPID propID, NWindows::NCOM::CPropVariant &prop);
HRESULT ReadStringProp(GetHandlerPropertyFunc getProp, GetHandlerPropertyFunc2 getProp2, UInt32 index, PROPID propID, QString &res);
HRESULT ReadBoolProp(GetHandlerPropertyFunc getProp, GetHandlerPropertyFunc2 getProp2, UInt32 index, PROPID propID, bool &res);
HRESULT IsArchiveItemProp(IInArchive *archive, UInt32 index, PROPID propID, bool &result);
QString GetPropertyName(PROPID PropID);
/*
DEFINE_GUID(CLSID_7z, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x07, 0x00, 0x00); // 7z - 7-Zip Archive
DEFINE_GUID(CLSID_rar, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x03, 0x00, 0x00); // rar r00 - WinRar Archive
DEFINE_GUID(CLSID_cab, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x08, 0x00, 0x00); // cab - Cabinet File
DEFINE_GUID(CLSID_tar, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xEE, 0x00, 0x00); // tar - Tar Archive
DEFINE_GUID(CLSID_zip, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x01, 0x00, 0x00); // zip jar xpi odt ods docx xlsx - Zip Archive
DEFINE_GUID(CLSID_hfs, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xE3, 0x00, 0x00); // hfs - HFS Image
DEFINE_GUID(CLSID_iso, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xE7, 0x00, 0x00); // iso img - ISO Image
DEFINE_GUID(CLSID_udf, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xE0, 0x00, 0x00); // iso img - UDF Image
DEFINE_GUID(CLSID_wim, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xE6, 0x00, 0x00); // wim swm - Windows Image
DEFINE_GUID(CLSID_chm, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xE9, 0x00, 0x00); // chm chi chq chw hxs hxi hxr hxq hxw lit - Compressed HTML Help
DEFINE_GUID(CLSID_msi, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xE5, 0x00, 0x00); // msi msp doc xls ppt - Microsoft Installer
DEFINE_GUID(CLSID_nsis, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x09, 0x00, 0x00); // - Nullsoft Scriptable Install System
*/
#ifndef TRACE
#define TRACE
#endif
#define QS2CS(x) (x.toLatin1().data())
#endif