Compression.SevenZipDLLDecoder.Interfaces.pas 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. unit Compression.SevenZipDLLDecoder.Interfaces;
  2. {
  3. Inno Setup
  4. Copyright (C) 1997-2025 Jordan Russell
  5. Portions by Martijn Laan
  6. For conditions of distribution and use, see LICENSE.TXT.
  7. Minimal extraction interfaces from 7-Zip Decoder DLLs
  8. }
  9. interface
  10. {$MINENUMSIZE 4}
  11. uses
  12. Winapi.ActiveX;
  13. const
  14. { From Guid.txt }
  15. CLSID_HandlerZip: TGUID = '{23170F69-40C1-278A-1000-000110010000}';
  16. CLSID_HandlerBZip2: TGUID = '{23170F69-40C1-278A-1000-000110020000}';
  17. CLSID_HandlerRar: TGUID = '{23170F69-40C1-278A-1000-000110030000}';
  18. CLSID_HandlerArj: TGUID = '{23170F69-40C1-278A-1000-000110040000}';
  19. CLSID_HandlerZ: TGUID = '{23170F69-40C1-278A-1000-000110050000}';
  20. CLSID_HandlerLzh: TGUID = '{23170F69-40C1-278A-1000-000110060000}';
  21. CLSID_Handler7z: TGUID = '{23170F69-40C1-278A-1000-000110070000}';
  22. CLSID_HandlerCab: TGUID = '{23170F69-40C1-278A-1000-000110080000}';
  23. CLSID_HandlerNsis: TGUID = '{23170F69-40C1-278A-1000-000110090000}';
  24. CLSID_HandlerLzma: TGUID = '{23170F69-40C1-278A-1000-0001100A0000}';
  25. CLSID_HandlerLzma86: TGUID = '{23170F69-40C1-278A-1000-0001100B0000}';
  26. CLSID_HandlerXz: TGUID = '{23170F69-40C1-278A-1000-0001100C0000}';
  27. CLSID_HandlerPpmd: TGUID = '{23170F69-40C1-278A-1000-0001100D0000}';
  28. CLSID_HandlerZstd: TGUID = '{23170F69-40C1-278A-1000-0001100E0000}';
  29. CLSID_HandlerLVM: TGUID = '{23170F69-40C1-278A-1000-000110BF0000}';
  30. CLSID_HandlerAVB: TGUID = '{23170F69-40C1-278A-1000-000110C00000}';
  31. CLSID_HandlerLP: TGUID = '{23170F69-40C1-278A-1000-000110C10000}';
  32. CLSID_HandlerSparse: TGUID = '{23170F69-40C1-278A-1000-000110C20000}';
  33. CLSID_HandlerAPFS: TGUID = '{23170F69-40C1-278A-1000-000110C30000}';
  34. CLSID_HandlerVhdx: TGUID = '{23170F69-40C1-278A-1000-000110C40000}';
  35. CLSID_HandlerBase64: TGUID = '{23170F69-40C1-278A-1000-000110C50000}';
  36. CLSID_HandlerCOFF: TGUID = '{23170F69-40C1-278A-1000-000110C60000}';
  37. CLSID_HandlerExt: TGUID = '{23170F69-40C1-278A-1000-000110C70000}';
  38. CLSID_HandlerVMDK: TGUID = '{23170F69-40C1-278A-1000-000110C80000}';
  39. CLSID_HandlerVDI: TGUID = '{23170F69-40C1-278A-1000-000110C90000}';
  40. CLSID_HandlerQcow: TGUID = '{23170F69-40C1-278A-1000-000110CA0000}';
  41. CLSID_HandlerGPT: TGUID = '{23170F69-40C1-278A-1000-000110CB0000}';
  42. CLSID_HandlerRar5: TGUID = '{23170F69-40C1-278A-1000-000110CC0000}';
  43. CLSID_HandlerIHex: TGUID = '{23170F69-40C1-278A-1000-000110CD0000}';
  44. CLSID_HandlerHxs: TGUID = '{23170F69-40C1-278A-1000-000110CE0000}';
  45. CLSID_HandlerTE: TGUID = '{23170F69-40C1-278A-1000-000110CF0000}';
  46. CLSID_HandlerUEFIc: TGUID = '{23170F69-40C1-278A-1000-000110D00000}';
  47. CLSID_HandlerUEFIs: TGUID = '{23170F69-40C1-278A-1000-000110D10000}';
  48. CLSID_HandlerSquashFS: TGUID = '{23170F69-40C1-278A-1000-000110D20000}';
  49. CLSID_HandlerCramFS: TGUID = '{23170F69-40C1-278A-1000-000110D30000}';
  50. CLSID_HandlerAPM: TGUID = '{23170F69-40C1-278A-1000-000110D40000}';
  51. CLSID_HandlerMslz: TGUID = '{23170F69-40C1-278A-1000-000110D50000}';
  52. CLSID_HandlerFlv: TGUID = '{23170F69-40C1-278A-1000-000110D60000}';
  53. CLSID_HandlerSwf: TGUID = '{23170F69-40C1-278A-1000-000110D70000}';
  54. CLSID_HandlerSwfc: TGUID = '{23170F69-40C1-278A-1000-000110D80000}';
  55. CLSID_HandlerNtfs: TGUID = '{23170F69-40C1-278A-1000-000110D90000}';
  56. CLSID_HandlerFat: TGUID = '{23170F69-40C1-278A-1000-000110DA0000}';
  57. CLSID_HandlerMbr: TGUID = '{23170F69-40C1-278A-1000-000110DB0000}';
  58. CLSID_HandlerVhd: TGUID = '{23170F69-40C1-278A-1000-000110DC0000}';
  59. CLSID_HandlerPe: TGUID = '{23170F69-40C1-278A-1000-000110DD0000}';
  60. CLSID_HandlerElf: TGUID = '{23170F69-40C1-278A-1000-000110DE0000}';
  61. CLSID_HandlerMachO: TGUID = '{23170F69-40C1-278A-1000-000110DF0000}';
  62. CLSID_HandlerUdf: TGUID = '{23170F69-40C1-278A-1000-000110E00000}';
  63. CLSID_HandlerXar: TGUID = '{23170F69-40C1-278A-1000-000110E10000}';
  64. CLSID_HandlerMub: TGUID = '{23170F69-40C1-278A-1000-000110E20000}';
  65. CLSID_HandlerHfs: TGUID = '{23170F69-40C1-278A-1000-000110E30000}';
  66. CLSID_HandlerDmg: TGUID = '{23170F69-40C1-278A-1000-000110E40000}';
  67. CLSID_HandlerCompound: TGUID = '{23170F69-40C1-278A-1000-000110E50000}';
  68. CLSID_HandlerWim: TGUID = '{23170F69-40C1-278A-1000-000110E60000}';
  69. CLSID_HandlerIso: TGUID = '{23170F69-40C1-278A-1000-000110E70000}';
  70. CLSID_HandlerChm: TGUID = '{23170F69-40C1-278A-1000-000110E90000}';
  71. CLSID_HandlerSplit: TGUID = '{23170F69-40C1-278A-1000-000110EA0000}';
  72. CLSID_HandlerRpm: TGUID = '{23170F69-40C1-278A-1000-000110EB0000}';
  73. CLSID_HandlerDeb: TGUID = '{23170F69-40C1-278A-1000-000110EC0000}';
  74. CLSID_HandlerCpio: TGUID = '{23170F69-40C1-278A-1000-000110ED0000}';
  75. CLSID_HandlerTar: TGUID = '{23170F69-40C1-278A-1000-000110EE0000}';
  76. CLSID_HandlerGZip: TGUID = '{23170F69-40C1-278A-1000-000110EF0000}';
  77. { From PropID.h}
  78. kpidMainSubfile = 1;
  79. kpidPath = 3;
  80. kpidName = 4;
  81. kpidIsDir = 6;
  82. kpidSize = 7;
  83. kpidAttrib = 9;
  84. kpidCTime = 10;
  85. kpidMTime = 12;
  86. kpidSolid = 13;
  87. { From IArchive.h}
  88. kExtract = 0;
  89. type
  90. { From IStream.h }
  91. ISequentialInStream = interface(IUnknown)
  92. ['{23170F69-40C1-278A-0000-000300010000}'] { From Guid.txt }
  93. function Read(data: Pointer; size: UInt32; processedSize: PUInt32): HRESULT; stdcall;
  94. end;
  95. ISequentialOutStream = interface(IUnknown)
  96. ['{23170F69-40C1-278A-0000-000300020000}']
  97. function Write(data: Pointer; size: UInt32; processedSize: PUint32): HRESULT; stdcall;
  98. end;
  99. IInStream = interface(ISequentialInStream)
  100. ['{23170F69-40C1-278A-0000-000300030000}']
  101. function Seek(offset: Int64; seekOrigin: UInt32; newPosition: PUInt64): HRESULT; stdcall;
  102. end;
  103. { From IProgress.h }
  104. IProgress = interface(IUnknown)
  105. ['{23170F69-40C1-278A-0000-000000050000}']
  106. function SetTotal(total: UInt64): HRESULT; stdcall;
  107. function SetCompleted(completeValue: PUInt64): HRESULT; stdcall;
  108. end;
  109. { From IArchive.h }
  110. TNOperationResult = (kOK, kUnsupportedMethod, kDataError, kCRCError,
  111. kUnavailable, kUnexpectedEnd, kDataAfterEnd, kIsNotArc, kHeadersError,
  112. kWrongPassword);
  113. IArchiveOpenCallback = interface
  114. ['{23170F69-40C1-278A-0000-000600100000}']
  115. function SetTotal(files, bytes: PUInt64): HRESULT; stdcall;
  116. function SetCompleted(files, bytes: PUInt64): HRESULT; stdcall;
  117. end;
  118. IArchiveOpenVolumeCallback = interface
  119. ['{23170F69-40C1-278A-0000-000600300000}']
  120. function GetProperty(propID: PROPID; var value: OleVariant): HRESULT; stdcall;
  121. function GetStream(const name: PChar; var inStream: IInStream): HRESULT; stdcall;
  122. end;
  123. IInArchiveGetStream = interface
  124. ['{23170F69-40C1-278A-0000-000600400000}']
  125. function GetStream(index: UInt32; var stream: ISequentialInStream ): HRESULT; stdcall;
  126. end;
  127. IArchiveExtractCallback = interface(IProgress)
  128. ['{23170F69-40C1-278A-0000-000600200000}']
  129. function GetStream(index: UInt32; out outStream: ISequentialOutStream;
  130. askExtractMode: Int32): HRESULT; stdcall;
  131. function PrepareOperation(askExtractMode: Int32): HRESULT; stdcall;
  132. function SetOperationResult(opRes: TNOperationResult): HRESULT; stdcall;
  133. end;
  134. IInArchive = interface
  135. ['{23170F69-40C1-278A-0000-000600600000}']
  136. function Open(stream: IInStream; const maxCheckStartPosition: PInt64;
  137. openCallback: IUnknown): HRESULT; stdcall;
  138. procedure Dummy1;
  139. function GetNumberOfItems(out numItems: UInt32): HRESULT; stdcall;
  140. function GetProperty(index: UInt32; propID: PROPID; out value: OleVariant): HRESULT; stdcall;
  141. function Extract(indices: Pointer; numItems: UInt32; testMode: Integer;
  142. extractCallback: IArchiveExtractCallback): HRESULT; stdcall;
  143. function GetArchiveProperty(propID: PROPID; out value: OleVariant): HRESULT; stdcall;
  144. end;
  145. { From IPassword.h }
  146. ICryptoGetTextPassword = interface(IUnknown)
  147. ['{23170F69-40C1-278A-0000-000500100000}']
  148. function CryptoGetTextPassword(out password: WideString): HRESULT; stdcall;
  149. end;
  150. implementation
  151. end.