function BuildCmdLine( Cmd,ArchiveFileName:string;Options:TArchiverOptions;Path:String;FileList:array of const;UseResFile:boolean ):String;
function FindOpen ( Handle:HWND;ArchiveFileName:string;dwMode:DWORD ):THARC; override;
function FindFirst( hArc:THArc;var IndivisualInfo:TIndivisualInfo;FileMask:string ):integer; override;
function FindNext ( hArc:THArc;var IndivisualInfo:TIndivisualInfo ):integer; override;
function FindClose( hArc:THArc ):integer; override;
public
function Unbel( Handle:HWND;cmdline:string;var Output:string ):Integer;
function UnpackFiles ( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;DstPath:String;FileList:array of const;UseResFile:boolean;var Output:string ):Integer; override;
// function PackFiles ( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;BaseDir:String;FileList:array of const;UseResFile:boolean;var Output:string ):Integer; override;
// function RemoveItems ( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;BaseDir:String;FileList:array of const;UseResFile:boolean;var Output:string ):Integer; override;
// function UpdateArchive( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;BaseDir:String;FileList:array of const;UseResFile:boolean;var Output:string ):Integer; override;
// function MakeSfx ( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;DstPath:String ;var Output:string ):Integer; override;
// function UnpackToMem ( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;FileName:string;lpvBuffer:LPVOID;dwSize:DWORD;lpdwWriteSize:LPDWORD ):Integer; override;
function CheckArchive ( ArchiveFileName:string;CheckMode:integer;CheckOptions:integer ):DWORD; override;
// function SetOwnerWindowEx ( Handle:HWND;lpArcProc:LPARCHIVERPROC ):boolean; override;
// function KillOwnerWindowEx( Handle:HWND ):boolean; override;
end;
function IsBelArchive( ArchiveFileName:string ):boolean;
// function UnbelOpenArchive( Handle:HWND;ArchiveFileName:PAnsiChar;dwMode:DWORD ):THARC; stdcall;
// function UnbelCloseArchive( hArc:THARC ):integer; stdcall;
// function UnbelFindFirst( hArc:THArc;FileMask:PAnsiChar;IndivisualInfo:PIndivisualInfo ):integer; stdcall;
// function UnbelFindNext( hArc:THArc;IndivisualInfo:PIndivisualInfo ):integer; stdcall;
// function UnbelSetOwnerWindowEx( Handle:HWND;lpArcProc:LPARCHIVERPROC ):BOOL; stdcall;
function TBel32.UnpackFiles( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;DstPath:String;FileList:array of const;UseResFile:boolean;var Output:string ):Integer;
begin
FCmdLine := BuildCmdLine( 'x',ArchiveFileName,Options,DstPath,FileList,ruOnUnpack in Options.ResFileUsage );
result := Unbel( Handle,FCmdLine,Output );
end;
// function TBel32.PackFiles( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;BaseDir:String;FileList:array of const;UseResFile:boolean;var Output:string ):Integer;
// begin
// FCmdLine := BuildCmdLine( 'u',ArchiveFileName,Options,BaseDir,FileList,ruOnPack in Options.ResFileUsage );
// result := Unbel( Handle,FCmdLine,Output );
// end;
// function TBel32.RemoveItems( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;BaseDir:String;FileList:array of const;UseResFile:boolean;var Output:string ):Integer;
// begin
// FCmdLine := BuildCmdLine( 'd',ArchiveFileName,Options,'',FileList,ruOnRemoveItem in Options.ResFileUsage );
// result := Unbel( Handle,FCmdLine,Output );
// end;
// function TBel32.UpdateArchive( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;BaseDir:String;FileList:array of const;UseResFile:boolean;var Output:string ):Integer;
// begin
// FCmdLine := BuildCmdLine( 'f',ArchiveFileName,Options,BaseDir,FileList,ruOnUpdate in Options.ResFileUsage );
// result := Unbel( Handle,FCmdLine,Output );
// end;
// function TBel32.MakeSfx( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;DstPath:String;var Output:string ):Integer;
// function TBel32.UnpackToMem( Handle:HWND;ArchiveFileName:string;Options:TArchiverOptions;FileName:string;lpvBuffer:LPVOID;dwSize:DWORD;lpdwWriteSize:LPDWORD ):Integer;