88 lines
2.4 KiB
ObjectPascal
88 lines
2.4 KiB
ObjectPascal
(* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is TurboPower Abbrevia
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* TurboPower Software
|
|
*
|
|
* Portions created by the Initial Developer are Copyright (C) 1997-2002
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* ***** END LICENSE BLOCK ***** *)
|
|
|
|
{*********************************************************}
|
|
{* ABBREVIA: QSELFSTUB.DPR *}
|
|
{*********************************************************}
|
|
{* ABBREVIA Example program file *}
|
|
{*********************************************************}
|
|
|
|
(* This program creates a ZIP stub called SELFEX.EXE. This
|
|
stub can then be used to create self-extracting ZIP files.
|
|
For more information on self-extracting ZIPs and ZIP stubs see
|
|
page 112 in the Abbrevia manual. *)
|
|
|
|
program QSelfStub;
|
|
|
|
{$IFDEF WIN32}
|
|
{$APPTYPE CONSOLE}
|
|
{$ENDIF}
|
|
|
|
uses
|
|
AbArcTyp,
|
|
AbUnzPrc,
|
|
AbUtils,
|
|
AbZipTyp,
|
|
{$IFDEF Windows}
|
|
WinCRT,
|
|
{$ENDIF}
|
|
SysUtils;
|
|
|
|
type
|
|
THelper = class
|
|
public
|
|
procedure UnzipProc(Sender : TObject;
|
|
Item : TAbArchiveItem;
|
|
const NewName : string);
|
|
end;
|
|
|
|
procedure THelper.UnzipProc(Sender : TObject;
|
|
Item : TAbArchiveItem;
|
|
const NewName : string);
|
|
begin
|
|
AbUnzip(Sender, TAbZipItem(Item), NewName);
|
|
end;
|
|
|
|
{Build this app using the Define "BuildingStub", to keep it smaller!}
|
|
|
|
var
|
|
ZipArchive : TAbZipArchive;
|
|
Helper : THelper;
|
|
begin
|
|
WriteLn( 'Abbrevia Self Extracting Archive' );
|
|
ZipArchive := TAbZipArchive.Create(ParamStr(0),
|
|
fmOpenRead or fmShareDenyNone);
|
|
ChDir( ExtractFilePath(ParamStr(0)));
|
|
Helper := THelper.Create;
|
|
try
|
|
ZipArchive.Load;
|
|
ZipArchive.ExtractHelper := Helper.UnzipProc;
|
|
ZipArchive.ExtractFiles('*.*');
|
|
finally
|
|
Helper.Free;
|
|
ZipArchive.Free;
|
|
end;
|
|
end.
|