
                Fixes/Changes in Delphi Zip v1.10


Bugs that were fixed in v1.10:

  * A serious error in the stack usage of the DLL call/returns
    has been fixed.  This is a critical matter, and this is why
    you must upgrade to this new version immediately.  These are
    some of the symptoms that hinted of this bug in v1.00:

    - Unreported (no dialog box from Windows) memory corruption that
    would change some variables in your program without any warning
  
    - Occasional crazy "SuccessCnt" values returned from DLLs

    - Occasional FATAL Windows errors upon checking the DLL version 
    numbers

    - This bug caused the problem in v1.00's demo2 program. You had 
    to compile demo2 without Delphi's optimization to get it
    to work.  Now, you can use optimization "accross the board" 
    without any trouble.

    This bug was traced to a VC++ bug in the "dllexport" keyword 
    that Microsoft has been telling everyone to use.  I'm now using
    the older syntax (WINAPI and .DEF file), and the bug is gone.

  * Spaces in filenames were changed to underscores on extraction.
    This was intentional due to a problem the original InfoZip 
    team had, but the problem doesn't apply in this project. Spaces
    are now preserved, and will be re-created verbatim on extraction.

  * Callback messages (TZipMaster's OnMessage event) that inform you 
    of "file not found" now come with an error code of 100 (instead
    of 0).  Thanks to Ken Baily for the bug report.

  * A register procedure was left out of the TZipDir VCL in v1.00.
    It has been added.

=====================================================================
  
                     Enhancements for v1.10

New TZipMaster Properties added:

AddCompLevel - integer - range 0 to 9
                      9 = most compression, but also slowest
                      2 or 3 = trade-off of speed vs. compression
                      1 = fastest compression
                      0 = no compression

New options in the AddOptions property:

   AddZipTime  - if true, set timestamp of ZIP file to that of newest
                 file inside the archive.

   AddForceDOS - if true, force all filenames that go into the archive
                 to meet the MS-DOS 8x3 restrictions.
                 WARNING: A filename conflict can occur that will go
                 unreported.  Example:
                            test me now 1.dat
                            test me now 2.dat
                 These files get converted to the same 8x3 
                 filename, so if you add them both with this 
                 property set to "true", you'll only get one of
                 them in your zip file!



These changes were made to "clean things up":

TZipMaster's inheritance tree was simplified.  
  In version 1.00, I inherited from TWinControl because I wanted the 
  "Handle" property.  This caused a lot of "visual" properties to come 
  along that have no business in this VCL.  For example, the height and 
  width were only used at design time to track the size of the icon!
  This time around, I'm inheriting directly from TComponent, and
  just adding my own handle property to it.  Now, it's much nicer!
  This also allowed me to remove my Paint procedure for the icon.

                           IMPORTANT!

  After installing the new TZipMaster VCL, and then opening a 
  project you made with version 1.00, YOU'LL GET AN ERROR ON THE
  WIDTH AND HEIGHT PROPERTIES.  They are no longer used, or needed,
  so just tell Delphi to ignore them and they'll go away!

  You may get errors on some other visual properties if you
  set them to non-default values before.  Just ignore them.
  Remember - TZipMaster is really a non-visual VCL.


These names were changed to avoid name conflicts in standard 
Delphi units, and to become more consistant with the Delphi 
naming conventions (prefix is now a hint of datatype).  Thanks
to Fred Oentrich for this suggestion.

in AddOptions:
   "Move" changed to "AddMove"
   "RecurseDirs" changed to "AddRecurseDirs"

in ExtrOptions:
   "Overwrite" changed to "ExtrOverwrite"

An "under the hood" change:
in ZipOptions:
   "Add" is now "ZipAdd"
   "Delete" is now "ZipDelete"


                 CHANGES IN VERSION PROPERTIES

The version property names were changed to use a single
version number for each DLL.  The last 2 digits are the
minor version number.  There is no explicit decimal point -
you have to use your imagination!
  version 110 = 1.10

TZipMaster property name changes:

  "MajZipVers", "MinZipVers"  combined into "ZipVers"
  "MajUnzVers", "MinUnzVers"  combined into "UnzVers"


Version changes under the hood:

GetDllVersion(@arg1, @arg2)
    changed to:
vers:=GetZipDllVersion;
       

GetDllVersionU(@arg1, @arg2)
    changed to:
vers:=GetUnzDllVersion;


                   CHANGES IN DLL ENTRY POINTS

The "under the hood" names of the main DLL entry points
were changed so they make more sense:

cnt:=DllZipUpFiles(arg)
    changed to
cnt:=ZipDllExec(arg)


cnt:=DllProcessZipFiles(arg)
    changed to
cnt:=UnzDllExec(arg)

