     HISTORY FILE FOR CHIEF'S INSTALLER PRO FOR WIN16 AND WIN32
     -----------------------------------------------------------
******************************************************************
** Please DO NOT MIX the files in this version with the files of
** any other version of Chief's Installer Pro.
******************************************************************

Version 4.11 (January 1998)
---------------------------
1. This is a maintenance release that fixes bugs in the Installer
and the Uninstaller.

2. DOS command line ChiefPro LZSS archive tool (PKK.EXE) added.


Version 4.10 (December 1997)
---------------------------
1. New UKRAINIAN translations of the language DLLs

2. Literal semi-colons can be written to the registry, using
   two hashes (i.e., "##") to represent a single literal semi-colon.
   The installer converts this to a semi-colon at run time.

3. Under Win95 and NT, all shared .DLL and .OCX files going to the
   Windows, Windows\System, and Windows\System32 directories
   are now automatically added to the "SharedDLLs" section
   of the registry, and their usage count is automatically
   incremented on every installation (same as using the $REGISTER-DLL
   command for a file). 
   
   Notes 
   a. this feature is for usage count only. If you want to
   register an OCX control (by calling its "DllRegisterServer" function), 
   then you need to use $REGISTER-OCX manually.

   b. The uninstaller will not delete any such shared file whose usage 
   count has been increased by another program - but the uninstaller will
   decrease the file's usage count.

4. New reserved word: "$RENAME-FILE" to rename a file.
   This is processed after the files have been installed, and after
   the $UNZIP lines have been processed, but before the $FONT, 
   $REGISTER-DLL, $REGISTER-OCX, $WRITE-TEXT, $INI, etc., lines 
   are processed.

5. Extension to $CREATE-FILE. This command can now take an optional
   second parameter, i.e., "DIRECTORY". If this parameter is used, the
   the first parameter will be taken to refer to a directory, and the
   command will try to create a directory, instead of a file.

6. The batch command "IF ACTIVEDLL" now works for Win32 DLLs as
   it works for Win16 DLLs.

7. New batch command "IF CD-IN-DRIVE" - to check whether a CDROM
   drive contains a CD, or whether it is empty. This command was
   introduced because trying to access an empty CDROM drive under
   Win95 or NT can cause a GPF. Thus, it is advisable to use this
   command to check the drive before trying to access anything on it.

8. New (partial) non-English language support for the IDE. The string
   tables for the ChiefPro IDE are now contained in the text file:
   "CHIEFIDE.LNG". You can translate this file into any other language
   in order to run the IDE in that language.

   Note: this feature is *NOT* complete, and some messages (including
   those whose strings are in the CHIEFIDE.LNG file) will still appear
   in English. However, as time progresses, I hope to be able to 
   support most of the messages presented by the IDE in this way.

9. Proprietary SFX stub (STUBSFX.EXE) and utility (MAKESFX.EXE) added, 
   for self-extracing ZIP file support. You can use MAKESFX.EXE to create
   a self-extracting .EXE from a ZIP archive, and the resulting file will
   optionally run a setup program after extracting the files. Any such setup
   program must be called "SETUP.EXE".

   MAKESFX.EXE will use  STUBSFX.EXE as the stub for the resulting self-extracting
   .EXE. Both of these SFX support files must be in the same directory (in the
   ChiefPro "UTILS" directory). Run MAKESFX.EXE without any parameters to see
   the syntax.

10. Additional parameters can now be added to the $UNZIP and $UNPAK support
    in the Project Manager, by adding these at the end of the target directory
    edit box, separated with the pipe character (i.e., "|"). The Project
    Manager will convert each pipe to a semi-colon when creating the INF
    file.

11. The DLL file WINSTALZ.DLL is no longer needed, and should be removed
    from all files that point to it (e.g., INSTBIN.LST). The UNZIP functions 
    are now built into INSTALL.EXE itself. This should result in greater
    performance and reliability.

   
Version 4.01 (September 1997)
---------------------------
This is a maintenance release, which also fixes a bug in the
$SYS32DIR reserved word, and a bug in UNINSTAL.EXE.

Version 4.00 (September 1997)
---------------------------
This is a MAJOR upgrade over all previous versions, and many things have
changed. Please do NOT mix the files in this version with those of *any*
earlier version, and please install this version into a different directory
tree.

COMPILER
--------
The file format of the ChiefPro compiler has changed. Any existing
compiled batch or INF file must be recompiled with the v4.00 compiler.

Version 4.00 also contains all the following new features;
      1. New support for self-extracting .EXEs
      2. New reserved word: "$SHORT-CUT" - to create shortcuts on Win95 and
         NT 4.x desktop - requires WINSTL32.DLL.
      3. New support for "auto" execute batch files. These batch files now be
         run automatically, if found:
         	'AUTOEXEC.CHF',    AutoExec batch file - run by SETUP.EXE
         	'AUTOMID.CHF',     Auto MID-batch-file (mid-install)
         	'AUTOPOST.CHF'     Auto-batch-file (post install)
      4. New reserved word: "$MAKE-LOG-ENTRY" - to make entries to uninstal.log
      6. New support conditional definitions in INF and batch files;
         Check the documentation on: #IFDEF, #ELSEIF, #ENDIF #NEWDEF, SHOWDEFS,
         and $SHOWDEFINES.
      7. New batch command: "IF FIND" - to look for a file on local drives (and
         non-cdrom drives) only.
      8. New reserved word: "$CDROM-DRIVE" - points to the *first* CD-ROM drive
         on the system. If there is no CD in the drive, trying to access a file
         or directory on the drive will cause a GPF under Win95 or NT.
      9. New batch command: "IF HAS-CD-DRIVE" - to check whether there is a
         CD-ROM drive on the system.
      10. New batch command: "IF IS-CD-DRIVE" - to check whether a drive is
         a CD-ROM drive.
      11. New "IF" batch commands for Windows versions:
          IF WIN95, IF WINNT, IF WINNT3.X, IF WINNT4.X, IF WINNT5.X
          IF NEWSHELL, IF NT-NEWSHELL
      12. New reserved word: "$REGISTER-OCX" - to register OCX files.
      13. New reserved word: "$REGISTER-DLL" - to register DLLs
      14. New reserved word: "$SYS32DIR" - points to the Win32 "System32"
          directory.
      15. Extension to "IF REGENTRY";
      	  if the value to be retrieved contains a path name itself (i.e., a backslash),
      	  then interpose "=" between the keyname and the valuename (i.e., instead of
      	  a backslash)
      16. Extension to $BITMAP = if "NORMAL" is used as the second parameter, then it can
       	  take 2 further parameters - the X and Y coordinates of the bitmap.
      17. New batch command: "SHOWBITMAP" - to display a bitmap file.
      18. New reserved word: "$HOME-DIR" - points to whereever install.exe is running from.
      19. Comments can now be used in the middle of lines in batch and INF files. Comments
          begin with "//*". Anything after the comment marker is removed.
      20. New batch command: "IF POS" - to check whether a given substring exists in a
          given string.
      21. New batch command: "IF WHOLEPOS" - like "IF POS" - but checks for whole words
          only.
      22. New batch commands: "IF GETINI-FIRST" and "IF GETINI-LAST" - for parsing entries
          read from INI files.
      23. New batch commands: "INC" and "DEC" - to increment and decrement a value.
      24. New batch command: "WRITEREG-EX" - same syntax as "WRITEREG", but only writes
          the value if none exits.
      25. New batch command: "INCREGVALUE" - increases the value in the key, or sets to 1
          if value does not exist
      26. New batch command: "DECREGVALUE" - decreases the value in the key, or ignores it
          if value does not exist. If the value is zero, it does nothing.
      27. New reserved word: "$COMMONDIR" - points to the Win32 "Common Files" directory.
      27A. New reserved word: "$CURRENTDIR" - points to whatever is the current directory.
      28 - New functions in batch files -
      		FSize(), FTime(), FVersion(), FreeDisk(), UpperCase(), LowerCase(),
      		CopyStr(), DeleteStr(), InsertStr(), WholePos(), Pos(), ForceExtension(),
      		JustFileName(), JustPathName(), JustExtension(), NoExtension(), Chr()
      29. New "IF" commands: "IF LESS", and "IF GREATER" - for comparing values in batch
      	  files.
      30. Change of syntax for "IF INPUT" - after the "IF INPUT", only semi-colons are now
          allowed as parameter separators
           e.g.,
           IF INPUT;Prompt [(default)[ == Value]];<command>
     31. New batch command: "IF GETPASSWORD - *exactly* the same as "IF INPUT" except that
         the characters typed are not echoed (instead a space is echoed)
     32. Bug that caused GPFs under OS/2 Warp is fixed.
     33. New batch command: "SET-BDE-ALIAS" to set an alias during BDE installs
     34. The names of the ChiefPro folders/program groups have changed
     35. Enhancements to the uninstaller
     36. IMPORTANT CHANGES TO THE IDE
     --------------------------------
     	A. The IDE now fully automates the BDE install setups
     	B. The IDE is now called CHIEFPRO.EXE (and not AUTOCALC.EXE), and all
           the AUTO*.* files are now called CHIEF*.*. All previous references to
           AUTOCALC.INI are now to CHIEFPRO.INI.
     	C. You can now create ZIP files from the IDE
     	D. The Project Manager has an "Extra ..." button which allows you to
     	   manually specify commands to be added to your INF file
        E. The IDE now uses ZIP compression for WINSTALL.BIN. This results
	   in a smaller footprint for the installer's support files


Version 3.60 (June 1997)
---------------------------
1. Bug fixes in the IDE.

2. Bug in WRITEREG and $REG-DATA fixed.

3. New Win32 support DLL (WINSTL32.DLL) introduced. 

4. Intermittent GPFs under NT 4.0 fixed.

5. Enhancements to the UnInstaller.


Version 3.50 (May 1997)
---------------------------
1. $REG-DATA can be used in the $TARGET line to
   read a value from the registry.

2. Literal semi-colons can be put on icon lines ($ICO, $ICON) by using
   2 hashes (i.e., "##") - this gets converted to a semi-colon.

3. Looks for .XTR file for project, also to add contents to template
   INF file; the .XTR file is created when clicking on the "extra" button
   in the Project Manager.

4. New reserved word: "$WRITE-TEXT" - to write to text files; takes the
   same parameters as the WRITETEXT batch command
   e.g. $WRITE-TEXT=$DEST\TT.TXT;1;SETUP=THIS.BAT
   It is processed just before the $INI lines.

5. New reserved word: "$CREATE-FILE" -  creates a new file or overwrites
   existing one. Logs the file for uninstal
   e.g.  $CREATE-FILE=$DEST\TTT.FIL
   It is processed just before the $WRITE-TEXT lines.

6. New batch command "PLAYSOUND" to play WAV files.
   Syntax = PLAYSOUND <.WAV file>

7. New batch command PLAY-AVI to play AVI files.
         Syntax = PLAY-AVI;<.AVI file>[;FULLSCREEN]

8. New batch commands "IF FILEDATE" and "IF NOT-FILEDATE" 
   - to check the date and time stamp on a file;
         Syntax = IF FILEDATE;filename;date;command
                  IF NOT-FILEDATE;filename;date;command
         Date format = dd/mm/yyyy-hh:mm
         e.g.,         29/04/1997-17:45


Version 3.12 (March 1997)
---------------------------
1. This is a maintenance release - contains internal enhancements, etc.

2. New Hebrew language DLLs

3. Bugs fixed in the Project Manager


Version 3.11 (February 1997)
---------------------------
This is a maintenance release - contains internal enhancements, etc.


Version 3.10 (January 1997)
---------------------------
1. Fixes some bugs in the ChiefPro IDE.

2. Fixes a minor bug in the main installer.

3. More functionality added to the IDE.

4. New reserved word: $SKIP-OLDER-FILE - to allow the installer
   to skip specified older files.
	e.g.,
	$SKIP-OLDER-FILE=TROOK.CFG;*.DB;TRAGG.TRK

5. New batch command: SHOW-TEXTFILE - to display a text file
   to the user in a custom dialog box.
	e.g.,
	SHOW-TEXTFILE;$SOURCEDIR\UPGRADE.TXT;Upgrade Notice.

6. Extensions to the ChiefPro IDE;
	"Add Files" button - to allow you to add new files to your project
	without opening the file manager
	"Jump to File" button - to allow you to select a file record from
	a listbox instead of clicking on the "next" or "previous" buttons.


Version 3.00 (January 1997)
---------------------------
This is a MAJOR UPGRADE to Chief's Installer Pro. Please do NOT mix
the files in this version with those of any earlier version.

COMPILER
--------
The file format of the ChiefPro compiler has changed. Any existing
compiled batch or INF file must be recompiled with the v3.00 compiler.

Version 3.00 also contains all the following new features;

1. New reserved word: $COPYRIGHT-MESSAGE - this allows you to prepare a
   copyright message in a text file, and to ask the user to agree to it.
   If the user does not agree, the installation will terminate.
   
   Syntax=   
   $COPYRIGHT-MESSAGE;<filename>;<AgreeButtonTitle>;<DisageeButtonTitle>;<DialogTitle>
   
2. New reserved word: $WELCOME-MESSAGE - this allows you to prepare a
   welcome message in a text file. If the user does not wish to
   continue, the installation will terminate.

	Syntax=   
	$WELCOME-MESSAGE;<filename>;<OkButtonTitle>;<CancelButtonTitle>;<DialogTitle>

3. New batch command: POSTMESSAGE, or SENDMESSAGE
   This command allows you to send a message to an active window (identified
   by it's window title. You can use the wildcard ('*') at the beginning of 
   the window title or at the end of it to siginify that any beginning or 
   ending will be okay. See syntax for EXECWAIT-WINDOW for details.

   Syntax=
   POSTMESSAGE;<windowtitle>;<message>

   List of messages:
          MAX        = sw_Maximize
          MIN        = sw_Minimize
          CLOSE      = Wm_Close
          QUIT       = wm_Quit
          HIDE       = sw_Hide
          SHOW       = sw_Show
          TOPMOST    = HWnd_TopMost
          NOTOPMOST  = HWnd_NoTopMost
          SETFOCUS   = SetFocus

4.  New batch command; IF ACTIVEDLL - to check whether a particular DLL is
    loaded (active) and (optionally) to return its handle if it is active.
    If the DLL is active, then its handle is returned in; ACTIVEDLL

	Syntax=
	IF ACTIVEDLL;<dllname>;<command [ACTIVEDLL]>

5. New batch command; IF REGENTRY - to check whether a registry entry exists.
   It only works in respect of string entries (REG_SZ)

	Syntax=
	IF REGENRY;full-entry;<command [REGENTRY]>

6. New Reserved Word: $SPLASH-MESSAGE - to manipulate the dialog used
   for splash messages during the installation.
    Syntax =
    $SPLASH-MESSAGE=filename;left;top;width;height;max-lines-for-each-message

6A. New support for $ELSE (or #ELSE) for use with "IF" commands

7.  New support for declaring and using variables in batch files. A variable
   MUST be declared BEFORE it is used in any way. It is advised that variable
   declarations be done at the beginning of the batch file (either immediately
   before or after #CONST and #DEFINE statements. Below is the support for
   variables;

   1.	Declare a variable		
	#VAR <variablename> or $VAR <variablename>

	e.g.,	#VAR ChiefDir
		$VAR ChiefInstaller

   2.	Assign a value to a variable	
	ASSIGN;@<variablename>=<value>	

	e.g,	ASSIGN;@ChiefDir=C:\CHIEFPRO
		ASSIGN;@ChiefInstaller=Chief's Installer Pro

   3.	Check if a variable has a value
	IF ASSIGNED;@variablename;<command>
	IF NOT-ASSIGNED;@VariableName;<command>

	e.g.,	IF ASSIGNED;@ChiefDir;GOTO CONTINUE
		IF NOT-ASSIGNED;@ChiefDir;GOTO TERMINATE

   4.	Use a variable in an expression
	@%variablename%
	
	e.g.,	IF ASSIGNED;@ChiefDir;CHDIR @%ChiefDir%
		ASSIGN;@ChiefBackup=@%ChiefDir%\BACKUP
		MKDIR @%ChiefBackup%
		COPY @%ChiefDir%\*.CHF @%ChiefBackup%

   5.   Check if a value/variable is the same as another 
        value/variable

        IF EQUAL;@%VARIABLE1%;value;<command>
        IF NOT-EQUAL;@%VARIABLE1%;value;<command>

	e.g.,
	IF EQUAL;@%Customer1%;@%Customer2%;GOTO END;$ELSE GOTO NEXT

   6.   Add a variable/value to a variable value
	CONCAT;dest;value/variable to add

	e.g.,
	CONCAT;@%DestDir%;\TEMP
	CONCAT;@%DestDir%;@%TmpName%


8. Enhancement of $BITMAP - to provide for the display of
   more than 1 bitmap. You can now have multiple $BITMAP
   lines, each pointing to a different bitmap, and (optionally)
   stating whether it should be stretched or not. Each of them
   will be displayed in order as the installation proceeds.

   If the first $BITMAP is not found, then no bitmap will be
   displayed. 

9. Enhancement of colour commands. It is now possible to use predefined 
    strings for some colour values, for these reserved words;

	$BANNER-TEXT-COLOR
	$BANNER-TEXT-BACKGROUND
	$BANNER-WINDOW-BRUSH
	$BANNER-SHADOW-COLOR
	$SMALL-METER-COLOR
	$BIG-METER-COLOR

  The predefined (case insensitive) string values are;
	Cyan
	White
	Black
	Red
	Green
	Blue
	Yellow
	Magenta
	Gray
	LightGray
	DarkGray
	DarkYellow
	Purple
	DarkRed
	DarkBlue
	DarkCyan
	DarkPurple

	examples:
	$BANNER-TEXT-COLOR=Purple
	$BANNER-TEXT-BACKGROUND=black
	$BANNER-WINDOW-BRUSH=yellow
	$BANNER-SHADOW-COLOR=Cyan


10. New batch command: IF DISKLABEL - to check the label of a
    disk/drive.

11. New reserved word: $BUILD-FILE-EX
    This command rebuilds a split file from the
    installation floppies (i.e., without having first to copy
    the files to the hard disk). If any of the parts of a split
    file is not found on the disk on which it is expected, a
    message dialog will come up, prompting the user to insert
    the disk containing that file. ChiefPro will then try to 
    read the file again. This will continue until the file is
    found, or the user clicks "Cancel".

12. New support for native ChiefPro archives, using LZSS compression.
    The support (to archive files) comes via ChiefPro IDE menu items, 
    and the files can be extracted from the archives via the $UNPAK
    reserved word, and the UNPAK batch command.

13. New reserved word: $UNPAK
    - to unpack a ChiefPro packed archive. This can only be used on a
    $DISK line;

    Syntax=
    $DISK#=$UNPAK;<packed file>;<target dir>;[code]

    The codes are the same as those in $UNZIP

14. New batch command: UNPAK

    - see $UNPAK above for syntax.

15. Portuguese and Esperanto language DLLs;

16. New (limited) support for BDE installation - archiving the BDE 
    files from the ChiefPro IDE, and then installing the BDE via
    batch files; sample batch files are supplied.

17. New batch commands: "SET-BDE-INSTALL", and "UNSET-BDE-INSTALL"
    - to mark the beginning and end of BDE install operations. It
    is necessary to do this, so that the BDE installation will not
    be logged for the uninstaller's use - otherwise, the BDE files may
    be removed by the installer, and the user may have other programs 
    that use the BDE. From the SET-BDE-INSTALL command until the next 
    "UNSET-BDE-INSTALL" command, no operation of the installer will be
    logged in the UNINSTAL.LOG file

18. New batch command: IF GETFILE - to retrieve a filename from a
    file dialog box
	Syntax=
	IF GETFILE;Caption;DefaultName;FileMask;<command>

19. New batch command: IF GETDIR - to retrieve a directory name
    from a dialog box
	Syntax=
	IF GETDIR;Caption;DefaultName;<command>

20. New support for "Wizards" - this can be turned on by
    using the "$USE-WIZARDS" command
	Syntax=
	$USE-WIZARDS=<CODE>

21. New reserved word: $MID-BATCH-FILE
    This is almost the same as $BATCH-FILE - except that in this case,
    the specfied batch file is executed immediately after the "Start
    Install" button is clicked - and before the installation of the
    files begins. This is useful for doing some preparatory work (e.g.
    backing up users' configuration files, etc), before the full 
    installation begins

    Note that anything done in a batch file called with this command 
    is not logged in UNINSTAL.LOG - and so it will not be undone by 
    the uninstaller.

22. New batch command: "DLLCOMMAND" - to load a DLL and run a command 
    from it;
	Syntax=
     	DLLCOMMAND;Dll_Name;16/32;FunctionName;Function Parameter
	
	The specified function must be in the following format;
	Returns :  a long integer   (you can access this through ERRORCODE)
	Parameter: a single null terminated string

	e.g.,
	DLLCOMMAND;$dest\dll\protect.dll;16;EncryptInfo;$windir\prog.ccc

23. New support for user DLLs: defaults to 16-bit DLL - "winstalu.dll"
    - but you can use the new $USER-DLL reserved word to point to a 
    different DLL, and to indicate whether it is 16-bit or 32-bit
	Syntax = $USER-DLL=<dllName>;[16/32]
	e.g.,
	$USER-DLL=PROG32.DLL;32
	
	The DLL can export 3 functions, which are called automatically if
	the DLL is loaded successfully;

	1. UserInitProc()  - called before any window appears
	2. UserMidProc()   - called immediately after clicking "start install"
	3. UserEndProc()   - called just before the installer terminates

	* each function takes a single parameter - a null terminated string
	* each function returns a long integer
	* the return value is ignored by the installer
	* the installer automatically passes some (pipe delimited) information 
          to the DLL via the null terminated string parameter - you can use this
	  information, or you may just ignore it - the functions (if found)
	  receive the equivalent of the following;

	UserInitProc() - receives: $SOURCEDIR|$SOURCEDRIVE|$TEMPDIR
	UserMidProc()  - receives: $SOURCEDIR|$SOURCEDRIVE|$TEMPDIR|$DEST
	UserInitProc() - receives: $SOURCEDIR|$SOURCEDRIVE|$TEMPDIR|$DEST

24. New reserved word: $SKIP-NEWER-FILES
    This command causes the installer to skip an existing file which
    is a newer (more recent version) than the version on the installation
    disks. This command takes no parameter.

25.  New support for debug information (while testing your installation)
     through the new reserved word: $DEBUG-LOG
        * this command takes no parameter
	* this MUST be the FIRST line in the WINSTALL.INF file
	* it is to be used for testing purposes only - do not use it
	  in the WINSTALL.INF file that you ship with your application

     When this feature is used, ChiefPro will create an ascii file called
     CHIEFBUG.LOG, in your TEMP directory. This file will contain the details
     of all the failed operations which the installer encounters. If the file
     exists already, it is appended to. If it does not exist, a new one is 
     created.

26. New support for test runs (i.e., files on $DISK lines will not be installed
    but the installer will go through the motions of installing them, and will
    also process other commands, including batch files).

    This is activated by a new reserved word: $TEST-RUN

    	* This command takes no parameter.
	* This is for testing purposes only. Do NOT use this in the WINSTALL.INF 
          file that you ship with your application
---------------------------------------------------------------------------

