(******************************************************************) (* SFX for DelZip v1.8 *) (* ZipSFX *) (* Copyright 1997, Carl Bunton Twojags@cris.com *) (* *) (* 1998-1901 maintained by Chris Vleghert *) (* *) (* 2002-? maintained again by Markus Stephany *) (* mailto:delphizip@mirkes.de *) (* http://delphizip.mirkes.de *) (* *) (* Credits: see CREDITS.TXT *) (* *) (* last changed: 09/19/2005 *) (* *) (* In memory of Chris Vleghert *) (* *) (* modified by Russell Peters, Roger Aelbrecht This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License (licence.txt) for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA contact: problems AT delphizip DOT org updates: http://www.delphizip.org modified 22-Nov-2008 ---------------------------------------------------------------------------*) // Changes RCV: // Jan. 10, 1999 Adapted for D4 beta v0.99f=now v1.60 // Feb. 10, 1999 Changed the Initialization and Finalization sections // to include file close and CRC table. // ( The Crc table was not freed after an Halt. ) // Jun. 15, 2000 Added code to Dialog.pas to free a pidl, bug found by // Lucjan Lukasik // Sep. 01, 2000 Added version Checked for Delphi 5 and BCB 4 and 5 // Oct. 09, 2000 Added DirExists to the function FileExists because // FindFirstFile does not work when there is no file on // a drive (e.g. an empty 'A' drive) extract to that drive // would not work, found by Clyde England clyde@conres.com.au // changes mst: // apr 2002 almost completely rewritten (or better re-cut'n'pasted...) // - moved routines/types/variables to appropriate units // - added progress bar, ability to (initially) hide the files listview // - removed "new directory" handling (this is handled by newer windows' themselves) // - added the ability to expand environment variables // - uses a new sfxheader instead of the MPV header; it's now a pascal record // - added the ability to interrupt extraction (by pressing the "X" in the caption bar) // may 01, 2002 added the GetExeSize function from Angus Johnson's TZip-SFX to get rid of // caring about the executable's size // further changes: see history.txt in the ..\doc\ directory { Notes: the initial release of zipsfx comes from Carl Bunton (see above). the first modifications came from Eric W. Engler, the author of the great freeware delphi-vcl delzip that can handle zip-archives and -sfx's. (EEngler@zcsterling.com) original zip-code comes from the infozip-group, they developped a free implementation of the zip/unzip-code for unix and later for other platforms. Info-Zip home page: http://freesoftware.com/pub/infozip/Info-ZIP.html regards, Markus Stephany saarbrücken, saarland, germany, january 2004/september 2005 please read SFXInterface.pas for further details. } (* the structure of a zipsfx-file : - zipsfx-executable code (0-xxxxx) - TSFXFileHeader record (see above) - possibly one or more strings (depending on the headers' properties) (not #0 terminated) Caption sfx dialog caption Path sfx default extraction path CmdLine command line to execute after extraction RegFailPath default extract path if Path could not be read from registry StartMsg startup message NOTE: the complete header (including the strings) must be DWORD-aligned! if not detached from the archive: - the zip archive if detached from the archive: - TSFXDetachedHeader + filename + TSFXDetachedHeader - centraldirectories[] + endofcentraldir of the zip archive *) program ZMSFX19; {$IFDEF UNICODE} cannot use Delphi 2009 or later {$ENDIF} {$R 'ZMSFXDLG19.res' 'ZMSFXDLG19.rc'} {$R 'ZMSFX19.res' 'ZMSFX19.rc'} uses Windows, ZMSFXDialogs19 in 'ZMSFXDialogs19.pas', ZMSFXProcs19 in 'ZMSFXProcs19.pas', ZMSFXInflate19 in 'ZMSFXInflate19.pas', ZMSFXDefs19 in 'ZMSFXDefs19.pas', ZMSFXInt19 in '..\ZMSFXInt19.pas', ZMSFXStructs19 in 'ZMSFXStructs19.pas', ZMSFXVars19 in 'ZMSFXVars19.pas', ZMSFXStrings19 in 'ZMSFXStrings19.pas', nvWinTrust in 'nvWinTrust.pas'; begin Run; end.