Inno-Setup-issrc/Projects/Src/Compression.SevenZipDLLDecoder.Interfaces.pas
2025-06-01 15:39:22 +02:00

160 lines
7.4 KiB
ObjectPascal

unit Compression.SevenZipDLLDecoder.Interfaces;
{
Inno Setup
Copyright (C) 1997-2025 Jordan Russell
Portions by Martijn Laan
For conditions of distribution and use, see LICENSE.TXT.
Minimal extraction interfaces from 7-Zip Decoder DLLs
}
interface
{$MINENUMSIZE 4}
uses
Winapi.ActiveX;
const
{ From Guid.txt }
CLSID_HandlerZip: TGUID = '{23170F69-40C1-278A-1000-000110010000}';
CLSID_HandlerBZip2: TGUID = '{23170F69-40C1-278A-1000-000110020000}';
CLSID_HandlerRar: TGUID = '{23170F69-40C1-278A-1000-000110030000}';
CLSID_HandlerArj: TGUID = '{23170F69-40C1-278A-1000-000110040000}';
CLSID_HandlerZ: TGUID = '{23170F69-40C1-278A-1000-000110050000}';
CLSID_HandlerLzh: TGUID = '{23170F69-40C1-278A-1000-000110060000}';
CLSID_Handler7z: TGUID = '{23170F69-40C1-278A-1000-000110070000}';
CLSID_HandlerCab: TGUID = '{23170F69-40C1-278A-1000-000110080000}';
CLSID_HandlerNsis: TGUID = '{23170F69-40C1-278A-1000-000110090000}';
CLSID_HandlerLzma: TGUID = '{23170F69-40C1-278A-1000-0001100A0000}';
CLSID_HandlerLzma86: TGUID = '{23170F69-40C1-278A-1000-0001100B0000}';
CLSID_HandlerXz: TGUID = '{23170F69-40C1-278A-1000-0001100C0000}';
CLSID_HandlerPpmd: TGUID = '{23170F69-40C1-278A-1000-0001100D0000}';
CLSID_HandlerZstd: TGUID = '{23170F69-40C1-278A-1000-0001100E0000}';
CLSID_HandlerLVM: TGUID = '{23170F69-40C1-278A-1000-000110BF0000}';
CLSID_HandlerAVB: TGUID = '{23170F69-40C1-278A-1000-000110C00000}';
CLSID_HandlerLP: TGUID = '{23170F69-40C1-278A-1000-000110C10000}';
CLSID_HandlerSparse: TGUID = '{23170F69-40C1-278A-1000-000110C20000}';
CLSID_HandlerAPFS: TGUID = '{23170F69-40C1-278A-1000-000110C30000}';
CLSID_HandlerVhdx: TGUID = '{23170F69-40C1-278A-1000-000110C40000}';
CLSID_HandlerBase64: TGUID = '{23170F69-40C1-278A-1000-000110C50000}';
CLSID_HandlerCOFF: TGUID = '{23170F69-40C1-278A-1000-000110C60000}';
CLSID_HandlerExt: TGUID = '{23170F69-40C1-278A-1000-000110C70000}';
CLSID_HandlerVMDK: TGUID = '{23170F69-40C1-278A-1000-000110C80000}';
CLSID_HandlerVDI: TGUID = '{23170F69-40C1-278A-1000-000110C90000}';
CLSID_HandlerQcow: TGUID = '{23170F69-40C1-278A-1000-000110CA0000}';
CLSID_HandlerGPT: TGUID = '{23170F69-40C1-278A-1000-000110CB0000}';
CLSID_HandlerRar5: TGUID = '{23170F69-40C1-278A-1000-000110CC0000}';
CLSID_HandlerIHex: TGUID = '{23170F69-40C1-278A-1000-000110CD0000}';
CLSID_HandlerHxs: TGUID = '{23170F69-40C1-278A-1000-000110CE0000}';
CLSID_HandlerTE: TGUID = '{23170F69-40C1-278A-1000-000110CF0000}';
CLSID_HandlerUEFIc: TGUID = '{23170F69-40C1-278A-1000-000110D00000}';
CLSID_HandlerUEFIs: TGUID = '{23170F69-40C1-278A-1000-000110D10000}';
CLSID_HandlerSquashFS: TGUID = '{23170F69-40C1-278A-1000-000110D20000}';
CLSID_HandlerCramFS: TGUID = '{23170F69-40C1-278A-1000-000110D30000}';
CLSID_HandlerAPM: TGUID = '{23170F69-40C1-278A-1000-000110D40000}';
CLSID_HandlerMslz: TGUID = '{23170F69-40C1-278A-1000-000110D50000}';
CLSID_HandlerFlv: TGUID = '{23170F69-40C1-278A-1000-000110D60000}';
CLSID_HandlerSwf: TGUID = '{23170F69-40C1-278A-1000-000110D70000}';
CLSID_HandlerSwfc: TGUID = '{23170F69-40C1-278A-1000-000110D80000}';
CLSID_HandlerNtfs: TGUID = '{23170F69-40C1-278A-1000-000110D90000}';
CLSID_HandlerFat: TGUID = '{23170F69-40C1-278A-1000-000110DA0000}';
CLSID_HandlerMbr: TGUID = '{23170F69-40C1-278A-1000-000110DB0000}';
CLSID_HandlerVhd: TGUID = '{23170F69-40C1-278A-1000-000110DC0000}';
CLSID_HandlerPe: TGUID = '{23170F69-40C1-278A-1000-000110DD0000}';
CLSID_HandlerElf: TGUID = '{23170F69-40C1-278A-1000-000110DE0000}';
CLSID_HandlerMachO: TGUID = '{23170F69-40C1-278A-1000-000110DF0000}';
CLSID_HandlerUdf: TGUID = '{23170F69-40C1-278A-1000-000110E00000}';
CLSID_HandlerXar: TGUID = '{23170F69-40C1-278A-1000-000110E10000}';
CLSID_HandlerMub: TGUID = '{23170F69-40C1-278A-1000-000110E20000}';
CLSID_HandlerHfs: TGUID = '{23170F69-40C1-278A-1000-000110E30000}';
CLSID_HandlerDmg: TGUID = '{23170F69-40C1-278A-1000-000110E40000}';
CLSID_HandlerCompound: TGUID = '{23170F69-40C1-278A-1000-000110E50000}';
CLSID_HandlerWim: TGUID = '{23170F69-40C1-278A-1000-000110E60000}';
CLSID_HandlerIso: TGUID = '{23170F69-40C1-278A-1000-000110E70000}';
CLSID_HandlerChm: TGUID = '{23170F69-40C1-278A-1000-000110E90000}';
CLSID_HandlerSplit: TGUID = '{23170F69-40C1-278A-1000-000110EA0000}';
CLSID_HandlerRpm: TGUID = '{23170F69-40C1-278A-1000-000110EB0000}';
CLSID_HandlerDeb: TGUID = '{23170F69-40C1-278A-1000-000110EC0000}';
CLSID_HandlerCpio: TGUID = '{23170F69-40C1-278A-1000-000110ED0000}';
CLSID_HandlerTar: TGUID = '{23170F69-40C1-278A-1000-000110EE0000}';
CLSID_HandlerGZip: TGUID = '{23170F69-40C1-278A-1000-000110EF0000}';
{ From PropID.h}
kpidPath = 3;
kpidIsDir = 6;
kpidSize = 7;
kpidAttrib = 9;
kpidCTime = 10;
kpidMTime = 12;
kpidSolid = 13;
{ From IArchive.h}
kExtract = 0;
type
{ From IStream.h }
ISequentialInStream = interface(IUnknown)
['{23170F69-40C1-278A-0000-000300010000}'] { From Guid.txt }
function Read(data: Pointer; size: UInt32; processedSize: PUInt32): HRESULT; stdcall;
end;
ISequentialOutStream = interface(IUnknown)
['{23170F69-40C1-278A-0000-000300020000}']
function Write(data: Pointer; size: UInt32; processedSize: PUint32): HRESULT; stdcall;
end;
IInStream = interface(ISequentialInStream)
['{23170F69-40C1-278A-0000-000300030000}']
function Seek(offset: Int64; seekOrigin: UInt32; newPosition: PUInt64): HRESULT; stdcall;
end;
{ From IProgress.h }
IProgress = interface(IUnknown)
['{23170F69-40C1-278A-0000-000000050000}']
function SetTotal(total: UInt64): HRESULT; stdcall;
function SetCompleted(completeValue: PUInt64): HRESULT; stdcall;
end;
{ From IArchive.h }
TNOperationResult = (kOK, kUnsupportedMethod, kDataError, kCRCError,
kUnavailable, kUnexpectedEnd, kDataAfterEnd, kIsNotArc, kHeadersError,
kWrongPassword);
IArchiveOpenCallback = interface
['{23170F69-40C1-278A-0000-000600100000}']
function SetTotal(files, bytes: PUInt64): HRESULT; stdcall;
function SetCompleted(files, bytes: PUInt64): HRESULT; stdcall;
end;
IArchiveExtractCallback = interface(IProgress)
['{23170F69-40C1-278A-0000-000600200000}']
function GetStream(index: UInt32; out outStream: ISequentialOutStream;
askExtractMode: Int32): HRESULT; stdcall;
function PrepareOperation(askExtractMode: Int32): HRESULT; stdcall;
function SetOperationResult(opRes: TNOperationResult): HRESULT; stdcall;
end;
IInArchive = interface
['{23170F69-40C1-278A-0000-000600600000}']
function Open(stream: IInStream; const maxCheckStartPosition: PInt64;
openCallback: IUnknown): HRESULT; stdcall;
procedure Dummy1;
function GetNumberOfItems(out numItems: UInt32): HRESULT; stdcall;
function GetProperty(index: UInt32; propID: PROPID; out value: OleVariant): HRESULT; stdcall;
function Extract(indices: Pointer; numItems: UInt32; testMode: Integer;
extractCallback: IArchiveExtractCallback): HRESULT; stdcall;
function GetArchiveProperty(propID: PROPID; out value: OleVariant): HRESULT; stdcall;
end;
{ From IPassword.h }
ICryptoGetTextPassword = interface(IUnknown)
['{23170F69-40C1-278A-0000-000500100000}']
function CryptoGetTextPassword(out password: WideString): HRESULT; stdcall;
end;
implementation
end.