HISTORY FILE FOR CHIEF'S INSTALLER PRO FOR WIN16 AND WIN32 ----------------------------------------------------------- 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. This DLL can be left out of the distribution if you are not shipping Win32 applications. 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;;;; 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;;;; 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;; 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;; 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; 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 or $VAR e.g., #VAR ChiefDir $VAR ChiefInstaller 2. Assign a value to a variable ASSIGN;@= e.g, ASSIGN;@ChiefDir=C:\CHIEFPRO ASSIGN;@ChiefInstaller=Chief's Installer Pro 3. Check if a variable has a value IF ASSIGNED;@variablename; IF NOT-ASSIGNED;@VariableName; 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; IF NOT-EQUAL;@%VARIABLE1%;value; 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;;;[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; 19. New batch command: IF GETDIR - to retrieve a directory name from a dialog box Syntax= IF GETDIR;Caption;DefaultName; 20. New support for "Wizards" - this can be turned on by using the "$USE-WIZARDS" command Syntax= $USE-WIZARDS= 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=;[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 ---------------------------------------------------------------------------