home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
frlnch.zip
/
frltech.inf
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1995-04-06
|
41KB
|
1,319 lines
ΓòÉΓòÉΓòÉ 1. Copyright ΓòÉΓòÉΓòÉ
Copyright
FreeLaunch V 1.3 is not Freeware. Thomas Blummer holds Copyright on this
program and its documentation. The use and distribution of this programm and
its documentation is regulated by its license agreement. You may received this
program as Shareware, wich means you are allowed to test this program for a
limited period of time.
ΓòÉΓòÉΓòÉ 1.1. License agreement ΓòÉΓòÉΓòÉ
License agreement
You are granted to use a shareware version of this program for 30 days prior to
registartion for test porposes.
You may
o transfer a configured runtime part of the product to other party.
o rename the runtime modul.
o alter any resource shipped with this product, build and build executable
moduls with altered resources.
o transfer the program to other party provided you agree to accept that this
program in the particular runtime configuration is for the other party an
undivorceable part of your product or contract.
o use this program if you agree to assume that because the program is highly
configurable any loss of you or the other party originated by its use or
inability to use is caused by your erronous configuration of the program.
You may not
o transfer or make accessible other than the runtime part of the product to
other party.
o bill a fee for the runtime part of this product.
o use an unregistered copy after the trial period.
o use one licensed copy at two sites or a product licensed for an other person.
o reverse-assemble or reverse-compile the program without my written
permission.
The runtime parts of this product are the executable files frlrun.exe,
frlsrun.exe, frlwrun.exe and frlwsrun.exe linked with your resource-compiled
configuration for an other product.
ΓòÉΓòÉΓòÉ 1.2. about Info-ZIP ΓòÉΓòÉΓòÉ
FreeLaunch v1.3 contains portions of the code of the 7 February 1994 public
release of the Info-ZIP group's portable UnZip zipfile-extraction program.
FreeLaunch is using Info-ZIP's algorithm according to the information contained
in the Info-ZIP package :
Q. Can I use the source code of Zip and UnZip in my commercial application?
A. Yes, so long as you include in your product an acknowledgment and an offer of
the original compression sources for free or for a small copying fee, and make
clear that there are no extra or hidden charges resulting from the use of the
compression code by your product. In other words, you are allowed to sell only
your own work, not ours. [Note the additional restrictions above on the code in
unreduce.c, unshrink.c and vms.c.] If you have special requirements, contact us
at zip-bugs@wkuvx1.wku.edu.
I offer to deliver the complete Info-ZIP package as on 7 February 1994 in
source and/or executable form for any user of FreeLaunch. Additionally you can
obtain Info-ZIP from nearly all OS/2 FTP sites, HOBBES OS/2 CDs or Compuserve
Forum OS2SHARE. FreeLaunch does not contain any hidden charge for the use of
Info-ZIP.
FreeLaunch does not contain the code of unreduce.c unshrink.c and vms.c of the
Info-ZIP distribution. Therefore the additional restrictions mentioned in the
answer are not applicable, and FreeLaunch can not support the compression forms
"shrinked" and "reduced".
FreeLaunch does support "stored", "imploded", and "deflated" files.
ΓòÉΓòÉΓòÉ 2. Shareware registration ΓòÉΓòÉΓòÉ
FreeLaunch is licensed for one company site or one person of your choice.
One license allows you to create and distribute unlimited copies in unlimited
configurations of the run time modul (frlrun.exe, frlsrun.exe, frlwrun.exe
frlswrun.exe) created at one company site or by one person respectively.
You will receive a serial number if you register this product. The a valid
serial number hides the Information window about Shareware at program start.
Order form
Name ________________________________________________________________
Company _____________________________________________________________
Address _____________________________________________________________
_____________________________________________________________
Phone _______________________________________________________________
Depending on your location and net access you can choose between three
registration methods:
o BMT Micro is likely the best choice for USA residents and/or Internet users.
o Direct registration is the best choice for european especially german
speaking users.
o Registration via CompuServe is practicable only for CompuServe users.
See details right below.
Order through BMT Micro
Mail Orders To: BMT Micro
452 Horn Road
Wilmington, NC 28412-2411
U.S.A.
Voice Orders: 8:00am - 8:00pm EST (-5 GMT)
(800) 414-4268 (Orders Only)
(910) 791-7052 (Orders, questions)
Fax Orders: (910) 350-2937 24 hours / 7 Days
Online Orders via modem: (910) 350-8061 10 lines, all 14.4K
(910) 799-0923 Direct 28.8K line
via Compuserve: Thomas Bradford, 74031,307
via Internet: orders@bmtmicro.com
We accept Visa, Mastercard, Discover, American Express, Optima,
Eurocard, money orders, cashiers checks and personal checks.
Please do not send cash in the mail. Personal checks are subject to
clearance.
We accept purchase orders from educational institutions,
governmental agencies and other verifiable businesses. Terms are
"Due Upon Receipt".
Product Quantity Price Number of copies
_________________________ ______________ ________________
FreeLaunch Version 1.3 $ 60.00 US
1st Class ................................. Free
Airborne (Next day most places, USA Only).. $ 7.00 US
Federal Express (USA Only)................. $ 13.00 US
Federal Express (Canada/Mexico)............ $ 25.00 US
Federal Express (Europe/Japan)............. $ 30.00 US
Express (Outside USA) ..................... $ 16.00 US
Total: $ _______
For credit card payment only
Circle one: VISA / Master / Discover
Credit card number: _____________________________________________
Expiration date: ________________________________________________
Authorization signature: ________________________________________
Direct order
For one license send me your order per E-Mail to:
100273.3607@compuserve.com from the Internet or to 100273,3607 from CompuServe.
I will ask you for a check (Verrechnungsscheck) in Deutsche Mark DM 85,- per
License. You will receive direct phone support by me if you choose this way to
registrate.
Order via CompuServe's SWREG Service
You can register trough Compuserve's SWREG service also. GO SWREG and register
ID : 4693. The registration fee is $ 60.00 US if you use this method.
ΓòÉΓòÉΓòÉ 3. How to get Support ? ΓòÉΓòÉΓòÉ
I support this product via E-Mail. Please address your questions in english or
german to
100273.3607@compuserve.com from the Internet or to 100273,3607 from CompuServe.
I am glad to hear your suggestions too.
I also support this product in CompuServe's OS2SHARE forum in english and in
OS2UGER forum in german language.
ΓòÉΓòÉΓòÉ 4. Introduction ΓòÉΓòÉΓòÉ
FreeLaunch is a free configurable program launcher. FreeLaunch can deal with
many installation diskettes, deep destination directory structures, deep
desktop folder structures and CONFIG.SYS variables. It is designed to save you
from the boring work of programming an installer for your application. As it
is free configurable there is no need to rewrite it if your distribution
changes.
You configure FreeLaunch by writing a configuration file and storing it with
the name install.scr. You can immediately test the configuration by
frltest.exe. If you are satisfied with a configuration you should compile it,
then build the compiled configuration into one of the runtime executables
frlrun.exe, frlwrun.exe frlsrun.exe, frlswrun.exe. Note that you are not
allowed to tansfer frltest.exe to other party, as it provided for development
only.
This approach might appear too complicated on first sight, but it has
significant advantages.
o The Launcher you build with this approach safe against user who think they
might edit every configuration file.
o It keeps your exact configuration parameters secret.
o The bounded Launcher is smaller than the testing one.
o No one can misuse your Launcher to install some other products.
The price for all of above is: you have to understand the language and
compiling procedure it uses.
ΓòÉΓòÉΓòÉ 5. Creating a runtime executable ΓòÉΓòÉΓòÉ
FreeLaunch is distributed in a very developer friendly manner. With this
product you receive :
o All resource files, including all messages, dialog boxes and icons.
o A script compiler (frlcomp.exe ).
o A Launcher (frltest.exe) with built-in interpreter for its Language to quick
test new configurations.
o Various runtime executables wich can be linked with compiled scripts.
o A make-file to build a new configuration frl.mak
You configure FreeLaunch by writing a configuration file install.scr. You can
test this configuration with the FreeLaunch Tester frltest.exe and after you
are satisfied with its tested functionality you should build a runtime
executable wich you can ship with your application.
FreeLaunch comes with all resources in source, so you can also redisign the
dialog boxes, icons and messages it uses. Use the program objects "Edit Dialog
Resources" and "Edit Error Messages" created by the installation of FreeLaunch
to finish this job.
The configuration file install.scr must also be compiled into a resource file
with the FreeLaunch configuration compiler frlcomp.exe. Simply execute this
compiler wich will create the file install.rc.
install.rc is a resource file wich should also be linked to the runtime
executables.
FreeLaunch comes with a make-file for the OS/2 Toolkit's NMAKE wich simplifies
the procedure described abowe.
You can start this makefile by simply starting the program object "Build a new
FreeLaunch" created by the FreeLaunch Installation. There is an other program
object in the Warp only folder to start this makefile to build the warp
executables.
If you are not familiar with the use of makefiles, here a sample command
sequence to create all runtime executables of FreeLaunch for an ISTALL.SCR
script:
[C:\FL]e install.scr
[C:\FL]frlcomp
[C:\FL]rc -r install.rc
[C:\FL]rc -x install.res frlrun.exe
[C:\FL]rc -x install.res frlsrun.exe
[C:\FL]rc -x2 install.res frlwrun.exe
[C:\FL]rc -x2 install.res frlswrun.exe
Note that you can successfully execute the last two command only on Warp.
Also remember that install.rc includes frl.rc.
If you redesigned the dialog boxes, error messages or icons of FreeLaunch
execute the following commands to create a new Tester too:
[C:\FL]rc -r frl.rc
[C:\FL]rc -x frl.res frltest.exe
See the content of the file frl.mak below.
# Makefile for FreeLaunch 1.3
# (c) Thomas Blummer 1995
# execute
# nmake /f frl.mak all
# to create an new FreeLaunch and a new DLL
# destination old creates the Tester and the runtime Moduls
# with and without Info-Unzip
# The executables frltest.exe frlrun.exe and frlsrun.exe are
# runnable on every OS/2 Versions >= 2.0 including Warp 3.0
old : frltest.exe frlrun.exe frlsrun.exe
all : old warp dll
# executables created by this destination frlwrun.exe frlswrun.exe
# are runnable ONLY on OS/2 Warp 3.0 (and hopefully above)
warp : frlwrun.exe frlswrun.exe
dll : frldll.dll
frldll.dll : frldll.c frldll.def
icc /Q /Gm /Ge- frldll.c /B/BATCH frldll.def
frltest.exe : frl.rc dialog.dlg resource.h dialog.h
rc -x frl.rc $@
frlrun.exe : install.res
rc -x $? $@ >nul
frlsrun.exe : install.res
rc -x $? $@ >nul
# for Warp I am using the new -x2 flag of the resource compiler
# distributed in warp. It does a better compression than the older
# versions.
frlwrun.exe : install.res
rc -x2 $? $@ >nul
frlswrun.exe : install.res
rc -x2 $? $@ >nul
install.res : install.rc frl.rc dialog.dlg resource.h dialog.h
rc -r install.rc >nul
install.rc : install.scr
frlcomp
ΓòÉΓòÉΓòÉ 6. Choosing the right runtime executable ΓòÉΓòÉΓòÉ
FreeLaunch comes with four runtime executables. The following table helps you
to choose the right one for your product:
Executable Description
frlrun.exe Executable on OS/2 2.0 and above including Warp. Supports ZIP
archives.
frlsrun.exe Exectuable on OS/2 2.0 and above including Warp. Does not
support ZIP archives
frlwrun.exe Executable on OS/2 Warp 3.0 and hopefully above. Supports ZIP
archives.
frlwsrun.exe Executable on OS/2 Warp 3.0 and hopefully above. Does not
support ZIP archives.
Depending on your requirements you can choose the smallest executable for a
given installation to save disk space.
Remember that you are allowed to rename the runtime executable as install.exe,
setup.exe or any name you prefer.
Remember that you must ship runtime executables of FreeLaunch with your
application, and you are not permitted to distribute frltest.exe.
ΓòÉΓòÉΓòÉ 7. How to extend FreeLaunch with a DLL ? ΓòÉΓòÉΓòÉ
FreeLaunch offers you to execute a function in an extension DLL at installation
and removal.
You have to compile a DLL to use this functionality. The name of the DLL is
defined by the ExtensionDLL statement.
This DLL must contain a function
BOOL _System frlentry (HAB hab, HWND frame, ULONG state, const char *dir, ULONG param);
See the include file frldll.h.
The following sections describe how the extension works.
ΓòÉΓòÉΓòÉ 7.1. Using the DLL while installing a product ΓòÉΓòÉΓòÉ
The extension DLL is loaded by FreeLaunch right after the user dismissed the
dialog wich asks for the source path of the installation. The named DLL must
reside at this time in this drive or path.
The function frlentry is called by FreeLaunch only after a succesfull
installation. At this time all files are copied and uncompressed, the
config.sys and the desktop are already updated.
FreeLaunch calls frlentry with FLST_INSTALLDONE as third parameter, the fourth
parameter is the destination directory path of the installation, the last
parameter is a combination of the macros FLP_CONFIG, FLP_DESKTOP, FLP_ALLFILES,
FLP_OLDERFILES and FLP_KEEPFILES. The combination of these macros reflect the
settings the user selected as he started the installation.
The first parameter is the anchor block of the FreeLaunch main thread.
The function is called from the first PM thread while processing a message, so
you must return within 1/10 second or you should start an other thread and
disable the frame window wich is passed as the second parameter until you
finish.
The DLL is unloaded if FreeLaunch exits.
ΓòÉΓòÉΓòÉ 7.2. Using the DLL while removing a product ΓòÉΓòÉΓòÉ
The extension DLL is loaded by FreeLaunch right after the user selected the
remove option. The DLL must reside at this time in the same directory as the
installer.
FreeLaunch calls the frlentry function rigth after the user dismissed the
options dialog for removal. Nothing was removed by FreeLaunch at this time. The
removal procedure does not start if frlentry returns FALSE.
FreeLaunch calls frlentry with FLST_REMOVESTART as third parameter, the fourth
parameter is the destination directory path of the installation, the last
parameter is a combination of the macros FLP_CONFIG, FLP_DESKTOP, FLP_INI and
FLP_ALLFILES. The combination of these macros reflect the settings the user
selected as he started the removal.
The first parameter is the anchor block of the FreeLaunch main thread.
The function is called from the first PM thread while processing a message, so
you must return within 1/10 second or you should start an other thread and
disable the frame window wich is passed as the second parameter until you
finish.
The DLL is unloaded if FreeLaunch exits.
ΓòÉΓòÉΓòÉ 7.3. frldll.h ΓòÉΓòÉΓòÉ
/*
FreeLaunch InstallationDll header (c) Thomas Blummer 1995
*/
#ifndef _FRLDLL_
#define _FRLDLL_
#define INCL_WIN
#include <os2.h>
/*
** This entry is called by FreeLaunch
** Parameters :
** hab : Anchor Block
** frame : Window handle of the top level frame
** state : one of the FLST_ macros below
** dir : installation directory
** param : additional parameter to the state if required.
** Return Values :
** TRUE : all right.
** FALSE : see per state below.
*/
BOOL _System frlentry (HAB hab, HWND frame, ULONG state, const char *dir, ULONG param);
typedef BOOL (_System FRLENTRY)(HAB, HWND, ULONG, const char *, ULONG);
typedef FRLENTRY *PFRLENTRY;
/*
** frlentry is called with this state AFTER FreeLaunch completed
** the installation procedure.
** This entry is NOT called if FreeLaunch failed to install the product.
** const char *dir : ASCIZ destination directory
** ULONG param : combination of the FLP_ macros below
** Return value : no matter.
*/
#define FLST_INSTALLDONE 1
/*
** flrentry is called with this state BEFORE FreeLaunch attempts to remove the product.
** const char *dir : ASCIZ installation directory
** ULONG param : combination of the FLDONE_ macros
** return value : FALSE stop removal.
*/
#define FLST_REMOVESTART 2
/*
** Macros for param
** they represent the options the user requested.
*/
#define FLP_CONFIG 0x00000001
#define FLP_DESKTOP 0x00000002
#define FLP_INI 0x00000004
#define FLP_ALLFILES 0x00000008
#define FLP_OLDERFILES 0x00000010
#define FLP_KEEPFILES 0x00000020
#endif /* _FRLDLL_ */
ΓòÉΓòÉΓòÉ 7.4. Sample DLL source ΓòÉΓòÉΓòÉ
// compile this sample (if you are using IBM C Set++) as
// icc /Gm /Ge- frldll.c /B/BATCH frldll.def
// contents of frldll.def :
// LIBRARY FRLDLL
// PROTMODE
// DATA MULTIPLE NONSHARED READWRITE PRELOAD
// CODE PRELOAD
// EXPORTS
// frlentry
#include "frldll.h"
#define INCL_BASE
#include <os2.h>
#include <string.h>
BOOL _System frlentry (HAB hab, HWND frame, ULONG state, const char *dir, ULONG param)
{
switch ( state )
{
case FLST_INSTALLDONE :
return TRUE;
case FLST_REMOVESTART :
/*
** The following lines are only meaningful
** for the deinstallation of FreeLaunch
** Replace or delete the following lines
** depending on your needs
*/
{
char path [1024];
strcpy (path, dir);
strcat (path, "\\frldll.dll");
DosDelete (path);
strcpy (path, dir);
strcat (path, "\\frldll.obj");
DosDelete (path);
strcpy (path, dir);
strcat (path, "\\install.rc");
DosDelete (path);
strcpy (path, dir);
strcat (path, "\\install.res");
DosDelete (path);
strcpy (path, dir);
strcat (path, "\\frl.res");
DosDelete (path);
}
return TRUE;
}
return TRUE;
}
ΓòÉΓòÉΓòÉ 8. The Language ΓòÉΓòÉΓòÉ
FreeLaunch is controlled by a configuration file wich contains a script in his
language. This language is discussed in this section.
The Language is context free and case sensitiv. The Language is made up of
statements of strictly defined syntax.
Because FreeLaunch reads the script only once no forward references within the
statements are allowed. Therefore there is a suggested order of statements.
Some statements are required for every configuration file.
ΓòÉΓòÉΓòÉ 8.1. Required statements ΓòÉΓòÉΓòÉ
A configuration file must include the following statements:
OwnerOfThisProgram
ApplicationName
InstallationTitle
ReadMe
Disk
Directory
ΓòÉΓòÉΓòÉ 8.2. Suggested order of statements ΓòÉΓòÉΓòÉ
To reduce the possibility of forward references, I suggest to write statements
in the following order.
OwnerOfThisProgram
ApplicationName
InstallationTitle
ReadMe
ExtensionDll
Disk
Directory
Environment
SomClass
Folder
Program
SomObject
ΓòÉΓòÉΓòÉ 8.3. Statements ΓòÉΓòÉΓòÉ
Statements
The Language is an unlimited list of statements. See the an alphabetical list
of all statements below.
Statement Purpose
ApplicationName Defines a short name of the application to be used in
USER.INI
Archive Defines a ZIP archive of files.
Directory Defines a directory, its contents and subdirectories.
Disk Describes the Installation media.
Environment Defines an environment Variable wich should be updated
in CONFIG.SYS
ExtensionDll Defines the name of a DLL wich extends the
Functionality of FreeLaunch
File Defines a file within a directory.
Folder Defines a Workplace Folder.
InstallationTitle Defines the title bar text of the Installation
OwnerOfThisProgram Stores the name of a registered user of this program
Program Defines a Workplace Program object.
ReadMe Specifies the file name of your READ ME file.
SomClass Registers a SOM Class DLL into the Workplace
SomObject Defines a Workplace Object.
ΓòÉΓòÉΓòÉ 8.3.1. ApplicationName ΓòÉΓòÉΓòÉ
Syntax
ApplicationName "a name";
You must include this statement in every configuration file. The application
name will be used by FreeLaunch to create an entry in the USER.INI, using this
name as Application and the key "InstallationDirectory". The value of this
entry is the directory the user selected to use for the product.
I know some of you developers including me hate programs wich dump their
rabbish into the system INI files. I hope I managed a compromise. FreeLaunch
needs an entry to find the product on removal, and you could use this entry to
find your own INI files. FreeLaunch deletes this entry on removal.
Example
ApplicationName "FreeLaunch";
ΓòÉΓòÉΓòÉ 8.3.2. Archive ΓòÉΓòÉΓòÉ
Syntax
Archive disk_number "archive file name" "description"
Begin
File "file name";
File "file name";
// ... and so on
End
FreeLaunch assumes that the archive file on the installation media is an
archive created with Info-ZIP. FreeLaunch copies the archive then uncomresses
it using the "strored", "imploded" and "deflated" algorithms.
FreeLaunch checks if the archive is consistent and if it contains all files
listed in the definition. FreeLaunch deletes the archive in the destination
directory after successfully uncompressing it.
Example
// create a zip file:
// zip arch.zip app.exe crtl.dll app.ico
Directory prod "Product directory"
Begin
Archive 1 arch.zip "application"
Begin
File app.exe;
File crtl.dll;
File app.ico;
End
End
// create a program object on the desktop
Program "my Application" <MYAPP> PathNameOf (app.exe) "" PathNameOf (prod) PathNameOf (app.ico) Desktop;
ΓòÉΓòÉΓòÉ 8.3.3. Directory ΓòÉΓòÉΓòÉ
Syntax
Directory "name" "description"
Begin
Directory statement
// and/or
File statement
// and/or
Archive statement
End
FreeLaunch will create the directory and copy its contents from the
installation media. You can specify only one top level directory for an
installation. Other directories must be nested within the top level one.
Parameter Function
class name Directory name
description an informative description of the directory.
Example
Directory prod "product directory"
Begin
File 1 read.me "Read me file";
Directory help "Help files"
Begin
File 1 myhlp.inf "Help file";
Archive 1 misc.zip "misc. files"
Begin
File english.inf;
File deutsch.inf;
End
End
End
ΓòÉΓòÉΓòÉ 8.3.4. Disk ΓòÉΓòÉΓòÉ
Syntax
Disk disk_number "disk title" "label file";
You must define at least one Disk in a configuration file.
Parameter Function
disk title The title printed on the disk. The user will be asked
to insert the disk with this label
label file The file name of a possibly dummy file on the disk.
The installer is seeking for this file to decide if
the inserted disk is the correct one.
Example
Disk 1 "FreeLaunch Version 1.3 Disk 1" frlrun.exe;
ΓòÉΓòÉΓòÉ 8.3.5. Environment ΓòÉΓòÉΓòÉ
Syntax
Environment variable "value";
This line causes that FreeLaunch updates the file CONFIG.SYS on the boot drive.
The Variable is either added or the value is appended to existing definitions
of the variable. FreeLaunch appends values in PATH style, it also knows about
the different syntax of the LIBPATH line.
Parameter Function
variable Variable name. Should be one word.
value any value you need.
Example
Environment PATH PathNameOf ( bin );
ΓòÉΓòÉΓòÉ 8.3.6. ExtensionDll ΓòÉΓòÉΓòÉ
Syntax
ExtensionDll "DLL file name";
This statement causes that FreeLaunch loads the named DLL at installation and
removal. FreeLaunch also executes the function frlentry in this DLL. For
details see How to extend FreeLaunch with a DLL.
Example
ExtensionDll "frldll.dll";
ΓòÉΓòÉΓòÉ 8.3.7. File ΓòÉΓòÉΓòÉ
Syntax
File disk_number "file name" "description";
FreeLaunch will copy the specified file from the disk.
Parameter Function
disk_number Number of the disk where the source file resides. See
statement Disk
file name destination and source file name.
description This string will be displayed while FreeLaunch is
copying the file.
FreeLaunch v1.3 no longer supports the use of external decompressors, as the
build-in ZIP algorithm makes this feature obsolate, and I want to keep the
executable size as low as possible. See statement Archive
Example
File 1 myapp.exe "The application";
ΓòÉΓòÉΓòÉ 8.3.8. Folder ΓòÉΓòÉΓòÉ
Syntax
Folder "title" <object_id> [location]
Begin
Folder statement
// and/or
SomObject statement
// and/or
Program statement
End
FreeLaunch creates Workplace Folder by this statement. Note that a Folder is
only a specialized case of SomObject, so you can create more flexible Folders
by using the SomObject statement.
Parameter Function
title title of the created folder
object id Instance ID
location parent folder or object. Location is not allowed in
nested definitions, as nesting already defines parent
object.
Note that you must provide UNIQ object ID for every Workplace object you create
with FreeLaunch
Example
Folder "My Application Folder" <MY_FOLDER> Desktop
Begin
Program "My Application" <MY_APP> PathNameOf ( myapp.exe ) "-dosomething" PathNameOf ( data ) PathNameOf ( myapp.ico );
Folder "Help Files" <MY_HELP_FOLDER>
Begin
Program "English help" <MY_ENGLISH_HELP> view.exe PathNameOf ( english.inf ) PathNameOf ( help ) "";
End
End
ΓòÉΓòÉΓòÉ 8.3.9. InstallationTitle ΓòÉΓòÉΓòÉ
Syntax
InstallationTitle "title bar text";
You must include this statement in every configuration file. This value will
be displayed as title bar text of the installation program.
Example
InstallationTitle "Installing FreeLaunch Version 1.3";
ΓòÉΓòÉΓòÉ 8.3.10. OwnerOfThisProgram ΓòÉΓòÉΓòÉ
Syntax
OwnerOfThisProgram "name of the licensee" license_number;
You must include this statement in every configuration file. If you did not
licensed this program yet include : OwnerOfThisProgram "unregistered
shareware" 0;
Example
OwnerOfThisProgram "(c) Bugs Unlimited" 4711;
ΓòÉΓòÉΓòÉ 8.3.11. Program ΓòÉΓòÉΓòÉ
Syntax
Program "title" <object_id> "program file" "parameters" "startup directory" "icon file" [location];
FreeLaunch creates Workplace Program Objects by this statement.
Parameter Function
title icon title
object id Instance ID
program file executable
parameters parameters for the executable
startup directory startup directory
icon file icon file
location parent folder or object. Location is not allowed in
nested definitions, as nesting already defines parent
object.
Note that you must provide UNIQ object ID for every Workplace object you create
with FreeLaunch
Example
Program "My Application" <MY_APP> PathNameOf ( myapp.exe ) "/HELP" "" "" Desktop;
ΓòÉΓòÉΓòÉ 8.3.12. ReadMe ΓòÉΓòÉΓòÉ
Syntax
ReadMe "readme file";
You must include this statement in every configuration file. The specified
file will be displayed by installation program.
Example
ReadMe "READ.ME";
ΓòÉΓòÉΓòÉ 8.3.13. SomClass ΓòÉΓòÉΓòÉ
Syntax
SomClass "class name" "class dll path";
FreeLaunch will register the defined SOM Class into the Workplace.
Parameter Function
class name Workplace class name. Avoid conflicts with standard
names
class dll path The path to the DLL implementing the WP Class. Use
PathNameOf ( "filename" )
Example
SomClass "MyClass" PathNameOf ( mysom.dll );
ΓòÉΓòÉΓòÉ 8.3.14. SomObject ΓòÉΓòÉΓòÉ
Syntax
SomObject "icon title" "class name" <object_id> "setup" [location];
or
SomObject "icon title" "class name" <object_id> "setup" [ location ]
Begin
Folder statement
// and/or
SomObject statement
// and/or
Program statement
End
FreeLaunch creates Workplace Object Instances of any registered object class.
You should register your own classes with SomClass before creating instances of
it.
Parameter Function
icon title icon title
class name Workplace class name
object id Instance ID
setup Setup string. This string will be passed to
WinCreateObject as parameter 3.
location parent folder or object. Location is not allowed in
nested definitions, as nesting already defines parent
object.
Note that you must provide UNIQ object ID for every Workplace object you create
with FreeLaunch
Example
SomObject "My Object" "MyClass" <MY_OBJECT> "DOWHAT=YES;" Desktop;
ΓòÉΓòÉΓòÉ 8.3.15. // ΓòÉΓòÉΓòÉ
Syntax
// (c) Thomas Blummer 1995
Everything between // and the end of the line is handled as comment. Comments
are simply ignored.
ΓòÉΓòÉΓòÉ 8.4. Functions ΓòÉΓòÉΓòÉ
Functions
FreeLaunch supports the following Functions in the current release:
Function Purpose
PathNameOf Returns the destination path of a file or directory.
ΓòÉΓòÉΓòÉ 8.4.1. PathNameOf ΓòÉΓòÉΓòÉ
Syntax
PathNameOf ( FileName )
or
PathNameOf ( DirectoryName )
The function returns the destination path name of the file.
Parameter Function
FileName Name of a file on the distribution after decompression
DirectoryName Name of a destination Directory (First parameter of a
Directory statement)
Example
PathNameOf ( mysom.dll )
PathNameOf ( bin )
ΓòÉΓòÉΓòÉ 8.5. Parameters ΓòÉΓòÉΓòÉ
The next sections describe parameter of statements.
ΓòÉΓòÉΓòÉ 8.5.1. Location ΓòÉΓòÉΓòÉ
FreeLaunch creates Workplace objects at a specified location. A location is
either the Object ID of an existing object or one of the following predefined
constants
Constant Value
Configuration the system configuration folder
Desktop the desktop
Drives the drives folder
Information the system information folder
Nowhere nowhere
Startup the system startup folder
System the system folder
Templates the templates folder
Example
<MY_FOLDER>
Desktop
ΓòÉΓòÉΓòÉ 8.5.2. Object ID ΓòÉΓòÉΓòÉ
FreeLaunch creates named Workplace objects. You must assign an object ID to
each created instance. An object ID starts with < und ends with >, use any
alphanumeric character beetwen these two. No spaces, commas or semicolons are
allowed.
Avoid conflicts with existing standard names.
Note that you must provide UNIQ object ID for every Workplace object you create
with FreeLaunch
Example
<MY_OBJECT>
ΓòÉΓòÉΓòÉ 8.5.3. String Expression ΓòÉΓòÉΓòÉ
StringExpressions are used as parameter for many statements.
Definition Purpose
String a String is a StringExpression
StringExpression + StringExpression Concatenates to strings.
PathNameOf ( "file name" ) Substitutes the full target pathname of
the named file.
NOTE : The previous syntax of FreeLaunch 1.0 PathNameOf "string" (without
paranthesis) is also supported, but please use the new Syntax in the future.
Example
"a string"
PathNameOf ( read.me ) // Expands "c:\destination\read.me"
"this is a string " + " expression"
"ICONFILE=" + PathNameOf ( app.ico ) + ";" // Expands to eg. "ICONFILE=c:\destination\icons\app.ico;"
ΓòÉΓòÉΓòÉ 8.5.4. String ΓòÉΓòÉΓòÉ
Strings are used as parameters for statements. A string is a chain of zero or
more alphanumeric characters including _#$@ФДБЩОЪсб╓врВРа╡Е╖К╘ЧыХуН▐. A string
must be delimited by quotation marks if it contains a character not listed
above.
Example
"this is a string"
"" // this is an empty string
ΓòÉΓòÉΓòÉ 9. Tips ΓòÉΓòÉΓòÉ
This section discusses some hints.
ΓòÉΓòÉΓòÉ 9.1. Setting LIBPATH and PATH ΓòÉΓòÉΓòÉ
Assume you want to append the subdirectory bin of your installation into the
PATH and the subdirectory dll into the LIBPATH Variable.
You also need a variable MYINSTDIR wich should point to the installation
directory, MYINFO wich should point to the installed read.me file and MYNAME to
thomas.
Directory APP "My application directory"
Begin
File 1 read.me;
Directory bin "Executables"
Begin
File 1 app.exe "The application";
End
Directory dll "Run time libraries"
Begin
File 1 crt.dll "My CRTL";
End
End
Environment PATH PathNameOf (bin);
Environment LIBPATH PathNameOf (dll);
Environment MYINSTDIR PathNameOf (APP);
Environment MYINFO PathNameOf (read.me);
Environment MYNAME thomas;
ΓòÉΓòÉΓòÉ 9.2. Install your own WPS Class ΓòÉΓòÉΓòÉ
You can use FreeLaunch to copy, register and create instances of your own
WP-Class DLL.
Directory MYAPP "The Application Directory"
Begin
File 1 beauty.ico;
Directory SOM "my SOM DLL directory"
Begin
File 1 mysom.dll "My SOM DLL";
End
End
// append the directory to the LIBPATH
Environment LIBPATH PathNameOf (SOM);
// register the new SOM-Class
SomClass "MySomClass" PathNameOf (mysom.dll);
// create an instance on the desktop
SomObject "A useful Object" "MySomClass" <MYSOMOBJECT> "ICONID=" PathNameOf (beauty.ico) + ";" +
"SOMEUSEFULSETUP=YES;" Desktop;
ΓòÉΓòÉΓòÉ 9.3. Create a Folder with your Icon ΓòÉΓòÉΓòÉ
Folder and Program are only specialized cases of SomObject. You can create SOM
objects with any parameters using FreeLaunch. To create a Folder with
beauty.ico as its icon on the desktop, just write:
SomObject "Beauty Folder" "WPFolder" <BEAUTIES> "ICONFILE=" +
PathNameOf (beauty.ico) + ";" Desktop;
ΓòÉΓòÉΓòÉ 9.4. Associate a file extension with your program ΓòÉΓòÉΓòÉ
You can create a link between data file extensions and your program. You have
to create the Program object for your application as SomObject in this case :
// create a program object on the desktop and
// link *.yap and *.ypp files to yapp.exe
SomObject "Your Application" "WPProgram" <YAPP> "EXENAME=" + PathNameOf (yapp.exe) + ";" +
"ASSOCFILTER=*.yap,*.ypp;" Desktop;
You can also assign Extended Attribute Type with your program object via
ASSOCTYPE.
ΓòÉΓòÉΓòÉ 9.5. Install a Win-OS/2 or DOS Program ΓòÉΓòÉΓòÉ
Create Program objects as SomObjects and use the PROGTYPE setup.
// create a windowed dos application
// wich needs a device driver xxx.sys wich resides in your dev directory
SomObject "Your DOS APP" "WPProgram" <YDOSAPP> "PROGTYPE=VDM;EXENAME=" + PathNameOf (yapp.exe) + ";" +
"SET DOS_DEVICE=" + PathNameOf (dev) + "\\xxx.sys;" Desktop;
// create a seamless win-os/2 program object
// wich needs a special PATH
SomObject "Your Win APP" "WPProgram" <YWINAPP> "PROGTYPE=STDSEAMLESSVDM;EXENAME=" + PathNameOf (yapp.exe) + ";" +
"SET PATH=" + PathNameOf (odapi) + ";" Desktop;
ΓòÉΓòÉΓòÉ 9.6. Automatically start a program after install ΓòÉΓòÉΓòÉ
To automatically start a program after installation just create a SomObject
wich resides in Nowhere. This makes it disappear at next boot. You also have to
set the OPEN=DEFAULT Style of the object.
// Create a temporary program object to show your documentation
// right after install
SomObject "Must Read This" "WPProgram" <MUSTREAD>
"EXENAME=view.exe;OPEN=DEFAULT;PARAMETERS=" + PathNameOf (document.inf) + ";"
Nowhere;
ΓòÉΓòÉΓòÉ 9.7. The FreeLaunch installation script. ΓòÉΓòÉΓòÉ
// (c) Thomas Blummer 1995
//
// This is a configuration file for FreeLaunch v1.3
//
// It is written in its own Language. Please read "FreeLaunch v1.3 Technical
// Documentation"
// (frltech.inf) for a sophiscated definition of the language.
//
// This file may be extecuted by "FreeLaunch Tester" (frltest.exe)
// for test purposes or it can be compiled into the runtime Launcher "FreeLaunch RT"
// (frlrun.exe, frlsrun.exe, frlswrun.exe) by executing "Build a new Launcher"
// (it starts a make-file for NMAKE).
// defines the title bar text
InstallationTitle "FreeLaunch v1.3";
// defines the file wich will be shown in the client area of the installer
ReadMe read.me;
// defines Application Name used in USER.INI
ApplicationName "FreeLaunch";
// Extension Dll for customized install or cleanup
ExtensionDll frldll.dll;
// defines Installation diskette and a file wich identifies the correct disk
Disk 1 "FreeLaunch v1.3" frlrun.exe;
// defines installation directories
// no subdirectories are used here, BUT NO WORRY FreeLaunch can deal with nested directories.
Directory FRL "FreeLaunch installation directory"
Begin
// defines files of the distribution
File 1 read.me "Read me file";
File 1 frltest.exe "FreeLaunch Tester";
File 1 frlrun.exe "FreeLaunch RT";
File 1 frlsrun.exe "FreeLaunch RT without Info-UnZip";
File 1 frlwrun.exe "FreeLaunch RT for Warp";
File 1 frlswrun.exe "FreeLaunch RT for Warp without Info-Unzip";
File 1 frlcomp.exe "FreeLaunch Compiler";
File 1 frldll.dll "FreeLaunch Extension DLL";
File 1 frltech.inf "FreeLaunch Documentation";
// Define an Archive
Archive 1 source.zip "FreeLaunch Sources"
Begin
File frl.mak;
File frldll.h;
File frldll.c;
File frldll.def;
File install.scr;
File scratch.scr;
File dialog.dlg;
File dialog.h;
File dialog.res;
File frl.rc;
File resource.h;
File clock.ico;
File diskin.ico;
File info.ico;
File instl.ico;
File question.ico;
File stop.ico;
End
End
// defines Desktop Folder
Folder "FreeLaunch v1.3" <FRLFOLDER> Desktop
Begin
// defines Program objects in this folder
Program "Read Me" <FRLREADME> e.exe read.me PathNameOf ( FRL ) "";
Program "FreeLaunch v1.3 RT" <FRLRT> PathNameOf ( frlrun.exe ) "" PathNameOf ( FRL ) "";
Program "FreeLaunch v1.3 RT
without Info-Unzip" <FRLRTS> PathNameOf ( frlsrun.exe ) "" PathNameOf ( FRL ) "";
// defines a subfolder
Folder Development <FRLDEVELOP>
Begin
// some other programs
Program "Edit Configuration file" <FRLCONFEDIT> e.exe install.scr PathNameOf ( FRL ) "";
Program "Edit Dialog Resources" <FRLDLGEDIT> dlgedit.exe dialog PathNameOf ( FRL ) "";
Program "Edit Error Messages" <FRLMSGEDIT> e.exe frl.rc PathNameOf ( FRL ) "";
Program "Build a new FreeLaunch" <FRLBUILD> nmake.exe "/f frl.mak old" PathNameOf ( FRL ) "";
Program "FreeLaunch v1.3 Tester" <FRLTEST> PathNameOf ( frltest.exe ) "" PathNameOf ( FRL ) "";
Program "FreeLaunch v1.3
Technical Documentation" <FRLHELP> view.exe frltech.inf PathNameOf ( FRL ) "";
Folder "FreeLaunch DLL" <FRLDLL>
Begin
Program "Edit DLL Source" <FRLDLLC> e.exe PathNameOf (frldll.c) "" "";
Program "Build a new DLL" <FRLDLLBUILD> nmake.exe "/f frl.mak dll" PathNameOf ( FRL ) "";
End
Folder "Warp only" <FRLWARP>
Begin
Program "FreeLaunch v1.3 RT
for Warp" <FRLRTW> PathNameOf ( frlwrun.exe ) "" PathNameOf ( FRL ) "";
Program "FreeLaunch v1.3 RT
for Warp
without Info-Unzip" <FRLTSW> PathNameOf ( frlswrun.exe ) "" PathNameOf ( FRL ) "";
Program "Build a new FreeLaunch
for Warp" <FRLBUILDW> nmake.exe "/f frl.mak warp" PathNameOf ( FRL ) "";
End
// a sub-sub Folder
Folder Icons <FRLICONS>
Begin
// shadows for icon files.
SomObject "" "WPShadow" <FRLINFOICON> "SHADOWID=" + PathNameOf ( info.ico ) + ";";
SomObject "" "WPShadow" <FRLQUESTIONICON> "SHADOWID=" + PathNameOf ( question.ico ) +";";
SomObject "" "WPShadow" <FRLERRORICON> "SHADOWID=" + PathNameOf ( stop.ico ) +";";
SomObject "" "WPShadow" <FRLINSTLICON> "SHADOWID=" + PathNameOf ( instl.ico ) +";";
SomObject "" "WPShadow" <FRLWAITICON> "SHADOWID=" + PathNameOf ( clock.ico ) +";";
SomObject "" "WPShadow" <FRLINSERTICON> "SHADOWID=" + PathNameOf ( diskin.ico ) +";";
End
End
End
// YOU MUST INCLUDE THIS LINE INTO EVERY CONFIGURATION FILE
OwnerOfThisProgram "Unregistered Shareware" 0;
// FreeLaunch supports your own WPS Classes, CONFIG.SYS Variables and more ...
// Please read the "FreeLauch v1.3 Technical Documentation".
ΓòÉΓòÉΓòÉ 10. Trademarks ΓòÉΓòÉΓòÉ
The following names are Trademarks of the IBM.
o OS/2
o Workplace Shell
o SOM