Custom CD Menu 1.07 (For Windows 95, Windows 98 and Windows NT)

Created by Smart Projects (Smart.Projects@Bigfoot.com)
This neat little program is FOR FREE and can be distributed freely.
Make sure nobody ever charges anybody for this program !

--------------------------------------------------------------------
How to use Custom CD Menu :

When you create a CD (place all sorts of programs and files on a CD) you often need an easy way to copy, Install or Unpack the data to HD (or any other medium).
This program offers you exactly that !

The program Interprets a text file called CD.pet (exceptions possible) that needs to be placed in the same directory 'Custom CD Menu' is placed in, OR ... in the submenu 'menu'.  (An example is included)

Two REMARKS before we go one :  
- The options are NOT caps sensitive (everything to make it easy for you).
- pathnames are relative to the root of the medium.  (e.g. when an application is located d:\games\game1\Install.exe you should use : games\game1\Install.exe).  When you use an absolute pathname, that (absolute) path will be used (e.g. when you want something to be copied from the a: drive)
In most cases you will want to use a relative path since you never know what drive-letter the user's CD-ROM drive will have.
To make it even more interesting, several (well specified) wildcards can be used.

The text file (CD.pet) can contain :
------------------------------------

CDTitle= Any text you like  
 -> This text will be placed in the caption of the window (the blue bar above the application)
 -> Only the first occurence of this option in the cd.pet file will be used !
 
defaultpicture= relative path
 -> relative path is the location of the picture you want to use (e.g. pictures\ecdm.bmp)
 -> Only the first occurence of this option in the cd.pet file will be used !
 -> Following formats are allowed : bmp, ico, wmf, emf, jpg, jif, gif, dib, rle, tga, pcx.
    NOTE !
	Read the part about picture display carefully, since you need to include a .dll for some picture formats.
 -> If No defaultpicture is specified (or the specified one is corrupt or nonexistant) the program's default picture will be shown (in case no normal picture is chosen for the selection (see below))
 
defaultmedia= relative path
-> Relative path is the location of the media file you want to open/run (e.g. pictures\ecdm.bmp)
-> Only the first occurence of this option in the cd.pet file will be used !
-> If there isn't a media specified for a certain selection, the defaultmedia will be played.
-> Read the explanation for media= (down below) for knowledge on how to use it !
 
display= biub
 -> This line is optional.
 -> This line alters the display settings of the items-window on the left of the menu.
 -> in case this line is absent; bold black is used (default setting).
 -> In case you include this line, the string MUST contain 4 characters (otherwise this line will be ignored).
 	-> The first character sets BOLD.  Set this character to "b" or "1". (in case no bold is wanted, another character may be used (e.g. "0")).
 	-> The second character sets ITALIC.  Set this character to "i" or "1". (in case no italic is wanted, another character may be used (e.g. "0")).
	-> The third character sets UNDERLINED.  Set this character to "u" or "1". (in case no underlined is wanted, another character may be used (e.g. "0")).
	-> The fourth character sets the colour of the text :
			b = Black
			g = Green
			n = Navy
			p = Purple
			t = Teal
			r = Red
			s = Blue
			f = Fuchsia
			w = White
			a = Aqua
			
The cd.pet file can contain MAX. 1500 'file=' entries !!
Use with cauton since decoding will take a LONG time in case of so many entries.
In case of long decoding times; Read SpeedFile.txt.
 
======
 The following block has to be specified for each application / game / directory ...
 Title= Is the only mandatory entry per selection (although this won't have much use).
======

Title= title you want displayed in the listbox (e.g. Game1) (Not too long, to fit in windows (Test))

file= relative location to the file you want to run (exceptions explained later)
 -> A file can be an executable (e.g. install.exe) but also any other file of which you know that the user has installed a standard program for.  For instance when the file is help.html, the user's default browser will automatically display the html file.  Other example : when the file is called game.zip, Winzip will start IF (and I emphasise IF) winzip is installed on that system.  Command line paramters are allowed under certain conditions (see further for syntax).
 -> Wildcards in path (see further) allowed.
 
seq= relative location to the file you want to run (exceptions same as file=)
 -> The main reason for this option is to allow two commands in a sequence per entry (e.g. unzip and next run unzipped file)
 -> Same options and possibilities as file=
 Except :
 -> Sequence of commands (max. count is 9, so ... : file + seq is 10 actions possible !)
 -> This entry is only considdered : If, mentioned AFTER the 'file=' (or 'seq=') line and if 'file=' (or 'seq=') contained : <*copy*>, <*directory*> or <*zip*>.  This limitation is implemented, because other options are launched without control of CCDM, which could make the use of sequences impossible.
 
cdsize= size of the application on the CD (optionally !)
 -> e.g. when you use : cdsize=40 MB, the program will display : Size on CD : 40 MB
 -> An exception on this rule is explained later
 
HDSize= size of the application on the HD (e.g. once it is unpacked)
 -> e.g. when you use : hdsize=60 MB, the program will display : Size on HD : 60 MB
 -> An exception on this rule is explained later
 
Extra= type here any text you like 
 -> e.g. explanations, cheat codes, things to watch out for when installing the program
 -> You need to make sure that no hard returns <Enter key> are used in the text.
    If so, only the part before the hard return will be displayed 
	-> An exception on this rule is explained later
	
Picture= relative location to the picture you want to display for this selection
 -> relative path is the location of the picture you want to use (e.g. pictures\default.bmp)
 -> If none specified or if not exist .. the default picture will be used.
 -> The best result (Loading time <-> optimal display) will be with a 234 x 173 pixels bmp.
 -> Any size will do however !
 -> Since version 1.5 multiple picture files per selection are possible (up to 9 different pictures).  Just include picture= as many times as there are pictures for the selection.
 -> If you specify <*none*> (e.g. picture= <*none*>) even the default picture won't be loaded.  Use this option only when you have a movie running as 'defaultmedia' !  The option <*none*> will avoid fashing, each time the user makes another selection !
 NOTE !
	Read this part about picture display carefully, since you need to include a .dll for some picture formats :
	When you include the NViewLib.dll in the directory the menu.exe file is located :
		- Following formats are allowed : bmp, ico, wmf, emf, jpg, jif, gif, dib, rle, tga, pcx.
		- The pictures may have any extension because the files are parsed to see what type they are.
		- EXCEPTION on this rule : wmf, ico, emf, pcx and tga picture formats MUST have the correct extension in order to work.
		- If the specified picture file isn't a picture file or an incorrect format, a NASTY error message will pop up (I can not work around because I use a third party .dll file).
		- Some .jpg formats are also known to be not displayable with this dll.
		- If you want to mask your file by giving it another extension, DO NOT use the extension bmp, ico, emf, wmf or you will only see the default picture for these selections.  Golden rule if you want to mask : use non-known-picture format extensions.
		- Always test the result to make sure you didn't miss anything.
	When the file NViewLib.dll isn't included (also not in the windows or system directory !) :
		- Only formats bmp, ico, wmf, emf are supported.
		- They need to have the correct extension in order to work.
 -> Wildcards in path (see further) allowed.
	
Media= relative location to the media you want to display/hear for this selection
-> relative path is the location of the media file you want to run (e.g. sounds\jingle.wav)
-> If none specified or if not exist .. the default media will be opened.
-> When a Media is specified, the Media will be Opened (Play button pops up)
-> Each media file, when it is being opened, needs a bit of time (also CD access), which can slow down the performance when you browse (test this first !).
-> This function uses the standard Windows APIs that are installed and can therefor play all media files that also can be played by the Windows MediaPlayer.  Performance and handling sometimes differs a bit depending on the Software installed.  E.g. on a clean Win95 OSR2 system you can play .avi, .wav, .mid, .mpg, .mpeg, .mov, ..., but when for instance another mpg player is installed (e.g. Xing) some formats can't be played anymore (e.g. mov).  It is also a question of 'What has the user installed on his/her system' !  If you use .wav, .mid and .avi, you will experience NO problems whatsoever !
-> The Media can start in different modes.  When No extra info is provided with the path, the file will be opened and the Media will stand by.  When you specify <*play*>, the media will start playing the moment it is opened.  When you specify <*loop*> the media file will keep on playing until it is stopped (Still needs to be started manually).  When you specify <*pllo*>, the media file will be opened, start playing and keep on playing until stopped manually.
E.g. media= <*play*> movies\weezer.avi
-> Since playing a media file probably constantly uses CD-ROM access, the media event is PAUSED automatically when you Unzip or copy a file or directory with the Menu.  The media event will RESUME the moment the unzip or copy action is over.
-> When a not controllable action (by the menu itself) is started (e.g. <*dos*>, <*run*>, <*install*>) the media event is Paused or Stopped, but the buttons remain active and the media event can be started again manually.
-> WORD OF CAUTION :
  - As specified, playability of certain files depends on the system software (but .avi, .mid and .wav will never be a problem).
  - As specified, using a 'media=' for every selection is probably hard for your CD-ROM and might slow down (system dependant)
  - So, don't overdo it and test it out !  The option is there for you, but the system might not be able to handle it (?)
-> Wildcards in path (see further) allowed.

Text= relative location to the text file you additionally want to show to the user
-> If no file is specified, the Text-button will not appear.
-> If the specified file can't be loaded the user will be informed of this.
-> If you try to load a binary file, you will see some strange characters in the display field.
-> The opened and displayed text can be altered (ONLY Visually, NOT the content).
-> The content can be printed (as visually determined by setting the Font) or saved to any location the user chooses.
-> The text can be launched in the user's default .txt editor (through temporary file saved in the temp directory)
-> Wildcards in path (see further) allowed.

======

Exceptions to the rule !
------------------------

file=<*DOS*> relative location to the file you want to unpack (e.g. <*DOS*>apps\app1.zip)
 IMPORTANT NOTE : The use of the <*zip*> option is preferred over the <*dos*> option in case of a .zip file since the <*zip*> option offers 32 bit unzipping.
 -> When you are not sure that the user will be able to unpack files of the type *.zip, *.arj or *.rar you could specify the <*dos*> option before mentioning the path.
 -> For this option to work you need to deliver pkunzip.exe and/or arj.exe and/or rar.exe and they need to be placed in the same directory the application (and cd.pet file) is located in.
 -> When the executables are present, Easy CD Menu will unpack them for you when prompted.
 -> One nasty side-effect : when these packed files contain long filenames, they will be shortened because DOS unpackers are used !  E.g. when long filenames are used and the first word of every filename is the same for every file, each file will be overwritten by the next unpacked file (when prompted).
 (Since version 1.02 of Custom CD Menu, 32 bit unzipping is available, use <*zip*>).
 -> HINT : you could use Winzip 6.3 to make the zipfiles self-extracting (convert them to .exe file).  In that case you do NOT want to use the <*dos*> option.

file=<*directory*> relative location of a complete directory (e.g. <*DIRECTORY*>apps\app1)
 -> This directory may contain files and possibly other directories.
 -> When 'install' is clicked during run-time of the application, the user interface will offer the option to copy the complete directory to a location on HD (or any other medium you prefer).
 -> This option could be useful when for instance you want a directory filled with pictures to be copied to another location.
 -> With this option it is allowed to use <*suggest*> or <*to*>

file=<*copy*> relative location of a file
 -> This option does exactly the same as the <*directory*> option but is intended to be used with a single file instead of a directory.  The user-interface will relate to a file being copied instead of a directory.
 -> So, both <*copy*> and <*directory*> can be used interchangeably but remember to use the path to the file when you want to copy a single file and the path to the directory (No filename) when you want to copy a directory.
 -> With this option it is allowed to use <*suggest*> or <*to*>
 
file=<*run*> relative location of a file you want to run (e.g. patch.exe)
or
file=<*open*> relative location of a file you want to open (e.g. readme.txt)
or
file=<*install*> relative location of a file you want to run (e.g. install.exe)
 -> The three options do exactly the same.  Actually none of these options is required since stating NO option also runs the file you specify.
 -> These options are solely implemented to fill a need for better insight in what is to be done with the file.
 -> Depending on the parameter used, the help text in the StatusBar changes when the cursor moves over the 'Run' button
 
file=<*zip*> relative location of a .zip file that needs to be unzipped (e.g. game1.zip)
 -> IMPORTANT : You need to place the file : Unzdll.dll in the same directory the files cd_menu.exe and cd.pet are placed in OR in the subdirectory 'menu'!  (Default the program looks for the file in the subdirectory 'menu', the Windows system paths and next in the directory the program runs.  The file is only needed for 32 bit unzipping, if you don't use <*zip*> you DON'T need to include the .dll)
 -> This option enables you to automatically unzip a specified .zip file.
 -> This is a 32 bit unzipper (such as Winzip); So long filenames and other Win95 features are supported.
 -> In case files need to be unzipped, you best use this option instead of the <*DOS*> option.
 The Dos option stays available for 16 bit unzipping so that this new cd_menu.exe stays compatible with cd.pet files that were created for versions 1.0 and 1.01.
  -> Thanks to Eric W. Engler & Chris Vleghert for the 32 bit unzip code.
  -> With this option it is allowed to use <*suggest*> or <*to*>
 -> Since CCDM Beta 4, this functionality is enhanced and a NEW (more recent) Unzdll.dll (v 1.5.2) should be used ! 
  
seq= ALL OPTIONS AND LIMITATONS SUCH AS file=
(Seq= is not always considdered, it needs to placed AFTER 'file=' (or 'seq=') (and file= needs to contain <*copy*>, <*directory*> or <*zip*>)

Command line parameters :
-------------------------
file=<*run*> relative path to executable <*cmd*> command line parameter(s).
file=<*open*> relative path to executable <*cmd*> command line parameter(s).
file=<*install*> relative path to executable <*cmd*> command line parameter(s).
file= relative path to executable <*cmd*> command line parameter(s).
 -> Under these four conditions, command line parameters are allowed. 
 -> Make sure you use <*cmd*> between the executable and the command line parameter(s)

<*cmd*> is not checked in any way.  If this needs to be a path, use absolute pathname.
<*cmn*> IS considdered to be a pathname and checked as such.  Relative pathname and wildcards (as specified) allowed.

<*suggest*> or <*to*> :
-----------------------
These options are only allowed when file= contains :
<*copy*>, <*directory*> or <*zip*> which are processes under control of the menu.
<*suggest*> relative pathname (wildcards allowed, all pathname rules apply)
	Will suggest a path to copy or unzip to.
<*to*> relative pathname (wildcards allowed, all pathname rules apply)
	Will suggest a path to copy or unzip to, but without choice of path (unless 'NO' is clicked by the user)
e.g :
file= <*zip*> test.zip <*suggest*> applicationpath
file= <*copy*> text.doc <*to*> documents
 
----

cdsize=<*info*>text
 -> when you don't want to display 'Size on CD : ...'
 -> With this option, only the text you specify will be shown
 -> REMARK : don't make your text too long !
 -> ideal when you want to display a cheat code or something similar
 	-> This field however can't be copied from (e.g. <ctrl>C will not work)
	
----

cdsize=<*html*>URL    (e.g.  http://www.yoursite.com)
 -> Use this to display the text as a hyperlink
 -> Clicking the text will launch the specified URL in the default browser installed on the system.
 -> Although mainly intended for URLs, this feature also launches any file you want.
    However, Only if an absolute path is given in the filename !
	If No absolute filename is used, the execution path can vary (Do not use).
	
----

hdsize=<*info*>text
hdsize=<*html*>URL
 -> See cdsize=

----

Extra=<*BEGIN*>  Remark (optionally)
Text on line 1 ...
Text on line 2 ...
Text on line 3 ...
...
<*End*>  
 ->The option <*BEGIN*> <*END*> makes it possible to type more than one line of text.
 -> In this case Hard returns are allowed.  All text will be parsed until the option <*End*> is detected.
 -> IMPORTANT REMARK : <*END*> needs to placed at the beginning of a new line (So preceded by a Hard return)
 -> Text on the same line and after <*begin*> or <*end*> is ignored.  You can enter remarks there if you like.
 
----

Text= <*extra*>
	-> This option copies the content of the Extra field in the Full-Text field (So, No file-pas needs to be included here)

----

Absolute, relative Pathnames and Wildcards :

- An absolute pathname's string contains a drive letter (c:\ or d:\ or ... ).
- A relative pathname's string DOESN'T contain the drive letter.
  Custom CD Menu adds the drive letter from the drive, the application is run from.
- (Typical Custom CD Menu kind) wildcards are :
	<<w>> Will be the Windows directory (where the user installed windows in) (e.g. c:\windows)
	<<s>> The user's System directory (e.g. c:\windows\system)
	<<d>> The user's desktop (e.g. c:\windows\desktop)
	<<i>> The user's favorites directory (e.g. c:\windows\favorites) (To copy URLs to)
	<<m>> The user's start menu
	<<f>> The user's font directory (to copy fonts to)
	<<r>> The root of the user's HD (where Windows is installed on)
	<<c>> The root of the drive where the menu is run from (e.g. d:\)
	<<a>> The directory where the menu is ran from
	<<l>> The previous path from the sequence (e.g. where you copied to or where you unzipped in)
		-> Note that you sometimes need to know the directory structure of the unzipped file to get it right.
		-> Same goes when you copy a directory (only the directory in which you copied the directory is remembered)
	<<t>> The User's temporary directory (set by tmp= or temp= in autoexec.bat) or Windows' temporary directory (e.g. c:\windows\temp)
These Wildcards are ONLY considdered when :
	- Only ONE wildcard per pathname.
	- Wildcards are first characters of pathname (blanks not considdered) !
	- Only when NO absolute path is used
So, DO NOT TRY :
	c:\<<w>>   : Wildcard is not first character.
	<<w>>c:\   : This path will be : C:\windows\C:\ and won't work
	<<w>><<w>> : This path will be : C:\windows\<<w>> and won't work
	
------------------
------------------
IMPORTANT REMARK :
------------------
All the specifiers that enable the program to interpret the line must be written in one single word and must be placed as first characters on a new line (Appart from blank spaces that are trimmed automatically)

OK :
----
file=path
file=    <*directory*>  path
         cdsize=     50 MB
     picture=path


NOT OK :
--------
file =path
_file=    <*directory*>  path
     //    cdsize=     50 MB
	 picture = path
	 
SO :
----
Always keep the specifier and the '=' together and make sure the specifier is the first word that can be found on the new line !


Command line parameters :
-------------------------

cd_menu.exe -create -pet:relative path to other content file

-create
 -> When the program is started with this option, three extra buttons are enabled.
  -> The refresh button (although this option is also enabled when started without the -create option (F5) )
  -> The Open button which allows you to load another content file (e.g. cd2.pet or test.TXT)
  -> The SpeedFile button will create a Speedfile (PetfileName.bin)  Extra caution is adviced (Read the SpeedFile.txt)
 -> The three buttons come in handy when you are creating the cd.pet file.
 -> Refresh lets you view the changes you made to the cd.pet file immediately
 (You could create a shortcut to the application that contains the command parameters you like)
  
-pet:relative path to other content file
 -> E.g. -pet:menu\content.dat
 -> PRO : You can specify this option in the autorun.inf file and this file will be parsed when the CD is inserted in a CD-ROM drive.
 -> CONTRA : when the user double clicks the program, the cd.pet file will be loaded (if present)
 -> More PRO : this gives you the option to misguide the user.  One time he/she sees what's in the specified file, the other time he/she sees what's in cd.pet.
 
 E.g. :
 
 cd_menu.exe -create -pet:menu\content.dat
 
 The content file will be 'content.dat' which is found in the directory menu.  The application will show the 'Open' button.
 
 
The best way to create the cd.pet file.
---------------------------------------

- Use a normal text editor (I prefer Textpad) to create the cd.pet file.
 - When you don't want *.pet files to be associated with the editor (although I see no harm in that) you save it as a text file (.txt) and rename it when it's finished. (Don't forget to rename afterwards)
 You can load the .txt file when you start the application with the -create option and next use the Load button.
 
- Create the directories as they are going to be written to CD in the root of your HD.
 E.g. when the CD will contain two directories Apps and Games, create those two directories in the root of your C: drive (or any other HD that contains the files).
 Copy or move the programs you want on CD in those directories.
 
- An Easy way to proceed is :
 - Create a seperate partition for your CD project (Easy to test) or ...
 - Create on a seperate device (e.g. Jaz or Zip drive)
 - Or Create a VIRTUAL DRIVE (easiest way to handle this).
   E.g. Create a directory (e.g. CDProject) in which you will place your CD project (layout)
   Open a DOS box and use the DOS commands to create a virtual drive from this directory :
   ->  Subst P: c:\CDProj~1  This will substitute the directory to a P:\ drive.
 
 >>>>>>> The above mentioned is not mandatory but will give you the option to test your cd.pet file while you are creating it.

- You can place Custom Cd Menu (together with cd.pet and optionally also Unzdll.dll, NViewLib.dll, pkunzip, arj and rar) in any directory you like since all paths (specified in cd.pet) are relative to the root.

- Test the created .pet file by running the application.  If the programs are placed in the same relative directories they are going to be placed on CD, this test will tell you a lot about your created .pet file.  
If not everythings works as it should, check the .pet file for write errors (incorrect path, file-name mis-spelled, ...).  Use F5 (Refresh) to load the newly saved .pet file and check again.

- When all is created you can burn the CD (Keep the paths relatively the same !)
  - Easy CD Menu and cd.pet can be placed in the root or any other directory you like.
  - I suggest to place them in the root so that the user can easily run the program.
  - When you want the application to run automatically when the CD is inserted you need to place a file called autorun.inf in THE ROOT of your CD.
  - This file is not more than a small text file that contains the relative location of the executable to start and (optionally) the icon to display.
  E.g. :
  	[autorun]
  	open=CD_menu.exe
  	icon=icon.ico
 REMARK : autorun will only work when the user has 'Auto Insert Notification' checked, (set to 'ON') yet this is the default setting of Windows 95, 98, NT, so most users have !
 
 You can extend the autorun.inf functionality with :
 	shell=Install
 	shell\Install=&Run CD Menu
	shell\Install\command=CD_menu.exe
 This will Display : Run CD Menu in bold when you apply the right button click on the drive (& marks the character underlined)

=======================================================
=======================================================

Bugfixes from 0.99 (test-version) -> 1.0 (final version)
--------------------------------------------------------
- Picture and .arj,.zip and .rar extensions (when <*dos*> is used) may now be in small, big or mixed caps.  E.g. test.zIP
- Some Windows error messages are better handled by the 1.0 version.
- <*dos*> file.arj is now extracted correctly (full path and subdirectories are taken in account)

Bugfixes from 1.0 -> 1.01
--------------------------------------------------------
- The reported Free Space (when a directory will be copied or compressed file will be unpacked) was not correctly reported under Win95 OSR2 (fat32, HD bigger than 2GB).  Now the Free space is reported CORRECTLY.

Bugfixes from 1.01 -> 1.02
--------------------------------------------------------
- In some (rare) cases the application ran into problems when a just created directory was deleted again during run-time of the application.  The application couldn't deal well with this situation (Borland C++ problem).  Through a work-around this problem is now fixed.

Bugfixes from 1.02 -> 1.03
--------------------------------------------------------
- Version 1.02 might refuse to copy/install/unpack when using Win95 OSR2 and the Free HD space is over 2 Giga Bytes.  This problem is now fixed.

Bugfixes from 1.03 -> 1.04
--------------------------------------------------------
- The program didn't look very nice when 'Large Fonts' was selected.
Now the program should look fine with any setting (96 dpi, 120 dpi, ...)

Bugfixes from 1.04 -> 1.05
--------------------------------------------------------
- NO PROBLEMS reported (all works fine).

Bugfixes from 1.05 -> 1.06
--------------------------------------------------------
- In case No 'Extra=' field was specified, the Extra window wasn't cleared.
- In case No <*end*> was used near the end of the cd.pet file (only rare circumstances) the program could lock up.
- In case other selections were made during 32bit unzip, the status-display sometimes wasn't correctly updated.

Bugfixes from 1.06 -> 1.07
--------------------------------------------------------
- Fixed a minor bug with command line parameters (only when executed twice in a row)


=======================================================
=======================================================

Known Problems :
----------------

None

=======================================================
=======================================================

Extra's, features, Upgrades (1.0 -> 1.01) :
-------------------------------------------
- When there is no picture AND no defaultpicture, the program's defaultpicture will automatically be shown.
- De picture-display routine is re-written to enable jpg pictures (in the following version).  

Extra's, features, Upgrades (1.01 -> 1.02) :
-------------------------------------------
- The program now unzips files for you with 32 bit code.  Long filenames are therefore supported.
- Some extra options are introduced : <*run*>, <*install*>, <*copy*>, <*zip*>

Extra's, features, Upgrades (1.02 -> 1.03) :
-------------------------------------------
- Compiled with new 32 bit compiler.
- Problem with Free HD space fixed.

Extra's, features, Upgrades (1.03 -> 1.04) :
-------------------------------------------
- Menu can't be maximised anymore (didn't look nice)
- Menu adjusts correctly to other display setting (96 dpi <-> 120 dpi)
- Menu now displays extra picture formats : jpg, jif, gif, dib, rle, tga, pcx
- Some of these formats do not need to have the correct extension so you can 'mask' the files.

Extra's, features, Upgrades (1.04 -> 1.05) :
-------------------------------------------
- Command line parameters allowed (use <*cmd*>)
- Up to 9 pictures per selection supported.
- Display window can be customised (bold/italic/underlined/several colours).

Extra's, features, Upgrades (1.05 -> 1.06) :
-------------------------------------------
- Custom CD Menu now can play media files (wav, avi, mid, mpg, ...).
- The 'media' files can start automatically, loop, each selection can contain its own link, ... .
- It is possible to specify <*none*> for a picture (avoids flashing when playing an avi or mpg file, the default picture isn't displayed)
- Some minor bugfixes

Extra's, features, Upgrades (1.06 -> 1.07) :
---------------------------------------------------
Beta 1
- Unzipping (Using the 32 bit Unzip functionality) now can be interrupted.
- An Easy to use interface to launch your own html documents (Online).
- Double click or pressing Enter launches the desired sequence (Install / copy / ...).
Beta 2
- Allow extra file= parameter : <*open*>  (does essentially the same as <*run*> but the StatusBar display is different
- Custom CD Menu (CCDM) is visually slightly altered.
- CCDM displays MORE information in the StatusBar
- The Run-Button's StatusBar help text differs when different file= parameters are used
- The User gets to set Options : Media and/or Pictures En/Dis-abled (helpfull if user has badly installed system or very slow CD-ROM drive)
- (text= ) Per Entry in the list, a text-file can be specified with extra data  'text=relative path'
	This data can be saved to HD (or any other location)
	This data can be printed directly (CCDM Print Support)
Beta 3
- Allow Sequence of commands (through parameter seq=)
- Allow Wildcards in pathnames (wildcards defined)
- Use of <*suggest*> or <*to*> when choosing destination
- Enhanced 'directory selection' window

Beta 4
- Enhanced Save functionality (In case of text=).
- Enhanced UnZip functionality (Visually, functional)
  - Based upon renewed Unzdll.dll !!!!!
  - Make sure you use this latest version (1.5.2)
- Files cd.pet, Unzdll.dll and NViewLib.dll can be placed in Subdirectory 'menu' !
  - First this 'menu' directory is scanned, next the exe directory (in case of cd.pet).  In case of .dll, Windows paths are scanned After 'menu'.
- The cd.pet file can be way larger (experimented with several MegaBytes).
  - Limited to 1500 'file=' entries'.
- Decoding of the cd.pet files is slightly faster (my P133 taken as refference).
- SpeedFile Option can speed up decoding 10 to 100 times. (Woehoe ... (Read as Homer Simpson would shout out)).
  - Use with caution ... Read SpeedFile.txt first !!
- Text= text display window enhanced with 'Launch in Editor' button and functionality.
- Sequence of commands enhanced, up to 9 extra actions per selection.
  
Final 1.7 (All Beta features mentioned above).

=======================================================
=======================================================

This Program is tested and should work correctly.
Yet should anyone have problems, please mail them to me, so that I can try to solve them.

Look out for future versions of Custom CD Menu as plan to :
- Allow text to be immediately stored in the Clipboard
- Allow use of different tabs
- Make resizable.
- Take .ini file for size and customisation.
- Provide (32 bit) UnRar and UnAce functionality (Lowest Priority since Unzip functionality is already present)

- Create a Custom CD Menu CREATOR (together with CCDM v 2.0)

Have fun !
Greetings,
Smart Projects

CUSTOM CD Menu,
Program Formely known as "Easy CD Menu" :
--------------------------------------------------------------------------------------------
I'm surprised you are not aware of our Easy CD products and long standing use of that name. Regardless, I caution you that this is a legally protected mark of Adaptec and we vigorously protect our trademarks. Please immediately discontinue your use of the Easy CD name and retract any messages which refer to same.
Thank you for your prompt attention to this serious matter.

-- Dave Ulmer
 Adaptec Software Products
--------------------------------------------------------------------------------------------
This Program is for free ...
Yet, should you make a bundle of money (or if you are just a rich bastard  ;-)  ) ...
You may always subscribe some money to (Belgian bank) financial account : 853-8676506-82 (Peter)
(I need a new PC, but don't have the money)
If you want a customised version, ... it will cost you A LOT !  ;-)