View Single Post
  #1  
Old 08-04-2026, 14:42
BLACKFIRE69's Avatar
BLACKFIRE69 BLACKFIRE69 is offline
Registered User
 
Join Date: Mar 2019
Location: In the Hell
Posts: 701
Thanks: 486
Thanked 2,610 Times in 574 Posts
BLACKFIRE69 is on a distinguished road
Arrow ISRarEx - Advanced RAR Extraction API for Inno Setup

ISRarEx - Advanced RAR Extraction API for Inno Setup
======================================

Code:
> Overview:
ISRarEx is a high-performance extraction library meticulously crafted
for Inno Setup. It provides a robust interface for handling RAR
archives, offering advanced progress tracking, multi-part archive
support, and precise extraction metrics that standard tools often lack.

> Specifications:
- Version	: v0.1
- Author	: BLACKFIRE69
- Build		: 6997A400
- Compatibility	: Inno Setup v6.0 or later (Required)
- License       : Proprietary (See LICENSE file for details)
- Tested Engine	: WinRAR v7.20 (Latest)
Code:
> Key Features:
- Flexible Extraction Modes: Full support for Normal archives, 
  Splitted (multi-volume) archives, and Combined sets.
- Advanced Progress Tracking: Real-time metrics for Overall Progress, 
  Current Disk Progress, and Extracted/Total File Counts.
- Performance Metrics: Accurate Current and Average Speed (MB/s).
- Time Management: Intelligent "Time Remaining" and "Elapsed Time"
  tracking with three customizable display formats.
- Process Control: Built-in functions to Suspend, Resume, or Stop
  the extraction process safely.
- UI Stability: Includes "Calc Accuracy" reduction logic to prevent
  erratic jumping in speed and ETA displays.
- Localization: Easily switch between languages using external .ini
  configuration files.
Code:
> Supported File Structures:
ISRarEx supports complex distribution layouts, including nested 
volumes and mixed archive types:

[ROOT]
 ├── data1.rar
 ├── Disks/
 │    ├── Disk1/
 │    │    ├── Sonic 2.part01.rar
 │    │    └── Sonic 2.part02.rar
 │    └── Disk2/
 │         ├── Sonic 2.part03.rar
 │         └── Sonic 2.part04.rar
 ├── data3.rar
 └── Setup.exe

> Distribution Files:
- ISRarEx.dll	— Core API Library.
- UnRAR_32.dll 	— UnRAR engine integration.
- ISRarEx.iss 	— Header for Inno Setup.
- English.ini / Russian.ini — Language configuration files.
- Quick Start Examples -

* Example 1: Normal Archives

Code:
{Code]
#include "ISRarEx.iss"

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
  begin
    { - ADDING DISKS - }
    repeat
      if not AddArchiveEntry('data1.rar') then Break;
      if not AddArchiveEntry('data2.rar') then Break;
      if not AddArchiveEntry('data3.rar') then Break;
    until true;

    { - INITIALIZE & EXTRACT - }
    if ISRarExInitEx(2, @ProgressCallbackEx) then
    begin
      repeat
        for i := 1 to ISRarExDiskCount do
        begin
          if not ISRarExExtract(i) then Break;
        end;
      until true;

      ISRarExStop;
    end;
  end;
end;
* Example 2: Normal + Splitted Archives

Code:
{Code]
#include "ISRarEx.iss"

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
  begin
    { - ADDING DISKS - }
    repeat
      if not AddArchiveEntry('data1.rar') then Break;
      if not AddArchiveEntry('Sonic 2.part01.rar') then Break;
      if not AddArchiveEntry('data3.rar') then Break;
    until true;

    { - INITIALIZE & EXTRACT - }
    if ISRarExInitEx(2, @ProgressCallbackEx) then
    begin
      repeat
        for i := 1 to ISRarExDiskCount do
        begin
          if not ISRarExExtract(i) then Break;
        end;
      until true;

      ISRarExStop;
    end;
  end;
end;
.
Attached Images
File Type: png 1.png (19.5 KB, 89 views)
File Type: png 2.png (19.1 KB, 90 views)
File Type: png 3.png (20.9 KB, 90 views)
File Type: png 4.png (24.7 KB, 90 views)
File Type: png 5.png (18.5 KB, 90 views)
Attached Files
File Type: 7z ISRarEx v0.1 + Examples.7z (1.30 MB, 7 views)
File Type: 7z ISRarEx v0.1 - Update 01 (LibOnly).7z (56.2 KB, 2 views)

Last edited by BLACKFIRE69; 19-04-2026 at 16:09.
Reply With Quote
The Following 9 Users Say Thank You to BLACKFIRE69 For This Useful Post:
audiofeel (08-04-2026), Cesar82 (08-04-2026), Dunnowho69 (08-04-2026), Ele (14-04-2026), Gehrman (05-05-2026), GTX590 (21-04-2026), Razor12911 (09-04-2026), ScOOt3r (09-04-2026), Valtus (27-04-2026)
Sponsored Links