Notes for users upgrading from VCLZip Lite to VCLZip Pro
******** Upgrading existing applications that currently use VCLZip 2.X **********
For the most part, existing applications will work as-is. Just install VCLZip 3.X and recompile your code. Here are some things to be aware of though...
1) If your app currently creates mmBlock archives (spanned directly to hard drive) and you define your own OnGetNextDisk in VCLZip 2.X, you should move your code from this event that handles mmBlock events to the new event OnFileNameForSplitPart. However, if you simply rely on VCLZip's default OnGetNextDisk then you don't have to worry about this.
2) If your app creates mmBlock archives, the default naming convention has changed to match the PKZip/WinZip standard. If you wish to keep the same naming convention then set BlockMode := mbClassic.
3) OnGetNextDisk and OnPrepareNextDisk events are called for the 1st disk now. VCLZip 2.X only calls these events starting with the 2nd disk.
4) properties CompressedSize[Index], UncompressedSize[Index], ZipSize are now Int64 types.
5) Delphi 4, Delphi 5, BCB 4, and BCB5 are all capable of using the Zip64 format. However they use the TkpHugeStream decendants which act just like TStreams except they handle files/stream sizes larger than 2gig. Normally you will never need to be aware of this, unless you use the ZipFromStream, UnZipToStream, or ArchiveStream features.
ZipFromStream and UnZipToStream as well as UnZipToStreamByIndex have overloaded versions for D4, D5, BCB4, and BCB5 that take normal TStreams as parameters so that even if you do use these methods, you normally won't have to worry about any of this. However, keep in mind that you should not unzip to a TStream in these versions of Delphi/BCB if the flle you are unzipping might be larger than 2 gig in size as TStream in these versions cannot handle files that large.
If you currently work with the ArchiveStream property
There is a TkpHugeFileStream and a TkpHugeMemoryStream defined in KPHSRMS.PAS which should handle 99% of all necessary actions. If you currently work with VCLZip 2.X with TBlobStreams or some other type of streams, you can either define your own TkpBlobStream for instance which inherits from TkpHugeStream, or use the TkpHugeStream.CopyFrom(TStream, Count) and the TkpHugeStream.GetStream: TStream methods to give VCLZip your stream and get it back. Ofcourse when using regular TStream decendants in D4,4,BCB4,and 5, you cannot create Zip64 archives. If you use Delphi 6, 7, or BCB 6, you don't have to worry about any of this as the normal TStream is used (TkpHugeStream = TStream) by VCLZip and handles large file/stream sizes.
6) RelativePathList is a new property that is used to handle creating archives with relative path information. This property allows you to create an archive with multiple relative path anchor directories. In past versions of VCLZip, this required multiple calls to the zip process while setting a new value for the RootDir property which meant you were adding files to an existing archive with each subsequent call. You should not have to change your current VClZip applications if they currently use the RootDir property for the relative path anchor directory because setting RootDir also adds the same value to RelativePathList[0].