History.txt
ZipTV component suite

Carl Bunton
TwoJags@cris.com
www.concentric.net/~twojags

Version 1.42
    -Added new search component: TTurboSearch
    -TUnTAR: revised directory storage extraction
    -TUnARC: included dir storage scheme by System Enhancements
    -TUnSFX: conflicted with applications containing a resource that
    included non-numeric strins. Fixed.
    -TZipTV, TUnARJ, TZipSearch, TZipCheck: added OnNextVolume event
    to better support ARJ multi-volume archives.
    -TZipSearch: renamed property 'SearchKind' to 'SearchType'.  The
    prefixes of TztvSearchType changed from 'sk' to 'st' to reflect
    this renaming.
    -TZipSearch: renamed the following 'set types':
       1. TSearchCase now TztvSearchCase
       2. TSearchFind now TztvSearchFind
       3. TSearchMode now TztvSearchMode
       4. TSearchKind now TztvSearchType: prefixes of this sets member
          names was changed from 'sk' to 'st'.  Example: skRawData is
          now stRawData.

Version 1.41
    -TUnLHA: Added support for header levels.
    -TUnLHA: the TLha component contained a variable that was in conflict
    with variables in the TUnLHA component which caused some files to
    fail crc validation on extraction. Conflict existed only in 1.40.
    -TUnRAR: now extracts files from RAR-SFX archives.
	  -TUnRAR: Added support for use with the TZipSearch component.
	  -TUnRAR: Added support for use with the TZipCheck component.
    -TUnRAR: Added Password property.	 	( encrypted archives untested )
	  -TUnRAR: Added OnGetPassword event. 	( encrypted archives untested )
    -TUnRAR: Added ProgressNotify property.
    -TUnRAR: Added OnProgress event.		( minimal support - large buffers )
    -TUnRAR: Connected the OnFileExists event.
    -TUnRAR: Now extracts to stored directories when boolean property
    'UseStoredDirs' is true.

Version 1.40
    -ZipTV: Arj archives now displays the compressed files attribute as it
    appeared on disk prior to compression.
    -Extensive update to all compression components.
    -Compression components: changed property "FileType" to FileAttribute.
    -Finished TUnRAR.  This component is not included in the ZipTV component
     package, but is downloadable from our web-site.
    -Removed TZipKey from package.

Version 1.35
    -Added new compression component: TLHA.

Version 1.34
    -Decompression components: Added FileDate (type TDateTime) parameter
     to the OnFileExists event.
    -Compression (beta) components: previous version were not able to
     create these components in code.

Version 1.33
    -All decompression components: fixed problem when extracting archives
     containing multiple same filenames in multiple directories.  Relative
     as well as absolute stored directories are supported.

Version 1.32
    -All compression components: Added FileType property so developers
     can select the file attributes of the files they wish to include in
     an archive.
    -Added StringExists (boolean) boolean method.  This will allow faster
     searches of entire directories of archives and normal files.

Version 1.30
	  -TZipSearch: added OffsetBegin/OffsetEnd properties.
    -TZip: corrected bug in regard to file comments.

Version 1.29
    -TZipTV: now handles blank dirs for archives that support this feature.
	  -TZipTV, TUnZip, TUnARJ: In previous versions, an archive containing the
     same compressed filenames (but in different directories), both occurances
     of the filename would match FileSpec and both would be extracted. Fixed.
    -TZipSearch: fixed bug found with searches in hexadecimal.  

Version 1.28
    -Added TZipCheck (beta) component.

Version 1.27
    -Added TZip (beta) component.
    -Because of the restructuring of the object hierarchy for compression
     components, this version TBlakHole will be considered as beta.
    -New demos for TZipSearch and compression/decompression components.

Version 1.26
    -Err_Msgs.PAS: rem'd the following string constants: E_ONGETFILEINFO,
     E_ONREADEVENT, E_ONGETPWEVENT, E_ONNEXTVOLUME.  E_REQUIREDEVENT serves
     in their place when trapping a 'event not assigned' error.
    -TZipSearch: Fixed the passwords property.
    -TZipSearch: Added CaseSearch property for case sensitive/insensitive
     searches.
    -TZipSearch now searches archives for Ascii, Binary, Hexadecimal, Octal,
     and decimal data.
    -TZipSearch: added RawData mode to search any type of file (no longer
     limited to just archives).
    -Added several more properties/events to TZipSearch.

Version 1.25
    -Added TZipSearch (beta) component.

Version 1.24
    -TZipTV: now recognizes Zip multi-volume archives.
    -The ARC method of the TCanvas component created a conflict with ARC
     in TArcType. All values of TArcType changed from TArcType = ( Arc, Bh,
     Arj, Zip... etc ) to TArcType = ( atArc, atBh, atArj, atZip... etc ).

Version 1.23
    -TZipTV: Moved several events from protected to public. This provides
     compatibility with the ZipExplorer components and console type
     applications like PibArv which makes use of pointers to ZipTV events.

Version 1.22
    -TUn??? components:  fixed bug resulting from the addition of multiple
     extraction methods.
    -TBlakHole:  component now stores relative paths rather than absolute.
    -Released source code for purchase.

Version 1.20
    -TZipTV:  added type LhaEXE to the ArcType property.
    -TZipTV:  added 'Offset: integer' parameter to the ONREAD Event.  This
     parameter returns the beginning offset of the compressed files within
     an archive.
    -All TUn??? components now have the ability to extract to a file,
     MemoryStream, FileStream, or an untyped pointer.
    -TUnGZIP: Component was attempting to extract when file contained a
     directory-only file attribute.  Now the directory is created and
     extraction is not attempted.  Fixed.
    -TZipTV & TUnTAR: detection of TAR archives failed if a 'Volume Name'
     was included in the archive.  Fixed.
    -All Componets: Added method GetFileType. (returns windows associated
     file-type)
    -TZipTV: Added methods GetFileInfo, GetFileDate, GetFilePackedSize,
     GetFileUnpackedSize, GetFileCRC.
    -TZipTV: Added property ZipCmntBufSize.  In previous versions, TZipTV
     automatically determined ZIP executables (SFXs) containing an archive
     comment to be a regular EXE file.  This was done because a ZIP archive
     comment is appended to the end of the archive and can be range from 1
     byte...32k in size, thus drastically reducing the speed of archive
     detection if we forced reading a 32k block on every EXE file to determine
     if it is a ZIP SFX. ZipCmntBufSize was added to give the developer the
     option of how deep into an EXE file (up to 32k) to search for the ZIP
     header signature.  Regular ZIP archives are handled differently,
     therefore this property does not apply.

Version 1.14
    -TZipTV: The OnRead event Sender parameter that was changed from type
     TObject to TZipTV, was reported to reduce the speed of the component
     in environments were heavy demand was placed on the component.  It
     has been changed back to type TObject and reported to have regained
     its speed.

Version 1.13
    -TZipTV: added ImageIndex property.
    -TZipTV & TUnTAR:   the method of detection of TAR files changed to detect
     a wider variety of true TAR archiving programs.
    -Delphis date conversion functions were found to fail when the date of an
     archive stored on an NTFS partition is less than 1980.  In turn,
     components using these functions also failed.   Under these conditions,
     the minimum date that can now be returned is 1/1/80.
    -Changed TZipTV OnRead event Sender parameter from type TObject to
     TZipTV.
    -TZipTV: Added OnActivate & OnDeactivate events.
    -TUnGZIP supporting gzip deflate & stored methods added to package.
    -Changed TZipTV OnRead event Sender parameter from type TObject to TZipTV.
    -TZipTV: added support for UNIX GZIP.  (archive extensions of gz & z)
    -TZipTV: 32 bit CRC value is now returned for both RAR & RAR SFX archives.
    -Added ZipSFX.EXE, ArjSFX.EXE, LhaSFX.EXE to the TZipTV package.
    -TZipTV: RAR SFX terminating header flag was found to differ from
     regular RAR archives.  When displaying compressed file data from
     SFX, the TZipTV component attempted to read one more compressed
     file before terminating. This resulted in this last read returning
     a garble record to the developer.  Fixed.
    -TZipTV: bug found with ARJ multi-volume archives when the dir
     containing the archive included a period '.'.  Example: the archive
     is in directory "C:\Windows 3.1\MyArc.arj".  The next volume name was
     returned as "C:\Windows 3.A01" instead of the correct name of
     "C:\Windows 3.1\MyArc.A01".  Fixed.

Version 1.12
    -TUnARJ: decomression method FASTEST (compressed using ARJs -m4 switch)
     added.  TUnARJ now supports decompression of all ARJs current methods.

Version 1.11
    -TBlakHole: renamed OnGetFiles event to OnRead.
    -TBlakHole: renamed GetFiles method to ReadFileInfo.
    -Completed ExcludeSpec property in TBlakHole component.
    -Upgraded demonstration programs.
    -Added OnActivate & OnDeactivate events to all TUn??? components.
    -Added Cancel method to all TUn??? & TBlakHole components.
    -Minor fixes to BhSFX.EXE self extracting program.
    -TZipTV now supports BlakHole executable archives.
    -TUnSFX now supports BlakHole executable archives.
    -TUnBH now supports extraction of files from executable archives.
    -Converted "Extract" method for all Un??? components into a virtual
     method.  Now all Un??? objects can be assigned as objects of type
     TUnBase, which all Un??? components are derived.  This should condense
     a considerable amount of coding.

VERSION 1.10
    -Included TBlakHole SFX (self extractable) Pro Edition to the TZipTV
     package.  Requires TBlakHole archives compressed with version 1.1+.
    -Fixed TZipTV bug that caused only the first file of an RAR archive
     to be returned to the developer.  All files are now properly returned.
    -TZipTV now returns the stored CRC values of all archived LZH/LHA files.
    -Renamed Globals.Pas/Dcu to AwkGbls.Pas/Dcu.
    -Added Unix TAR capabilities to TZipTV component
    -Added Unix TUnTAR component to the TZipTV package.
    -TZipTV component: some code used to return the contents of an RAR
     archive was rem'd for debugging purposes, breaking out of a loop
     after the info on the first file was sent to the developer via the
     OnRead event.  Corrected.
    -Added DEC level password encryption option for TBlakHole compression.
    -Renamed GLOBALS.PAS as AWKGBLS.PAS

Version 1.04c
    -TBlakHole component fix: CRC validation failure on files where
     compressed size >= uncompressed size. If the size of a compressed
     data stream is "greater than" or "equal to" the size of the original
     data, the compressed data is determined to be uncompressable.  It now
     correctly rewinds within the compressed stream stores the file.

Version 1.04b
    -Rem'ed SelectDir function in GLOBALS.PAS.  (SHLOBJ missing is several
     vers of Delphi)
    -Added globals source (GLOBALS.PAS) to registered version.
    -Added DecryptPW component.  (undocumented, unsupported, no demo. Not
     registered in RegPack.Pas)
    -Complete rewrite of Freeze-1 method in the TUnLHA component.
    -Removed "cfhdrRESERVE_PRESENT flag" in TUnCAB message that was used
     in debugging.

Version 1.04
    -Bug fix: passwords for archives compressed with PkZip pre 2.0.

Version 1.03
    -Added TUnCAB component to package ( unsupported ).
    -Added TBlakHole (beta) component to package.


