Home › Forums › ActiveX components › Xceed Zip for ActiveX & x64 › Unzipping to memory only gives blocks of 1024 bytes
-
AuthorPosts
-
#42485 |
Greetings,
I am new to the Xceed compression library and not able to figure out why unZipping to memory only gives 1024 bytes per callback event.
In the XM_UNZIPPREPROCESSINGFILE event I set xDestination to xudMemory and according to the docs the complete data should be passed on the first XM_UNZIPPINGMEMORYFILE event.
The docs at http://doc.xceedsoft.com/products/XceedZip/UnzipPreprocessingFile_event.html states:
“Setting this parameter to xudMemory (1) will cause the file to be unzipped to memory via the UnzippingMemoryFile event. The entire file’s uncompressed data will be provided through a single occurrence of the UnzipPreprocessingFile event in this case.”
I must have overlooked or misunderstood something but not able to circle in what. Any suggestions where to look?
Thanks in advance!
Kind regards
ViggoImported from legacy forums. Posted by Viggo (had 850 views)
Found the cause; the documentation for the structure is incorrect! I had based my structure on the documentation and not the *.h file.
The SizeHigh longs are the issue.I am using the DLL API whilst programming this in the Clarion languange and use cut’n paste and then adapt as needed. The *.h file is correct and it works fine now.
This is not correct: http://doc.xceedsoft.com/products/XceedZip/#xcdUnzipPreprocessingFileParams_structure.html
typedef struct _xcdUnzipPreprocessingFileParams
{
const WORD wStructSize;
const HXCEEDZIP hZip;
const TCHAR szFilename[ MAX_PATH ];
const TCHAR szComment[ 1024 ];
TCHAR szDestFilename[ MAX_PATH ];
const LONG lSize;
const LONG lSizeHigh;
const LONG lCompressedSize;
const LONG lCompressedSizeHigh;
xcdFileAttributes xAttributes;
const LONG lCRC;
SYSTEMTIME stModified;
SYSTEMTIME stAccessed;
SYSTEMTIME stCreated;
const xcdCompressionMethod xMethod;
const BOOL bEncrypted;
TCHAR szPassword[ MAX_PATH ];
const LONG lDiskNumber;
BOOL bExcluded;
const xcdSkippingReason xReason;
const BOOL bExisting;
xcdUnzipDestination xDestination;} xcdUnzipPreprocessingFileParams;
This is correct (from the XceedZipAPI.h )// UnzipPreprocessingFile event parameters
typedef struct _xcdUnzipPreprocessingFileParamsA
{
/* IN */ WORD wStructSize;
/* IN */ HXCEEDZIP hZip;
/* IN */ char szFilename[ XCD_MAX_PATH ];
/* IN */ char szComment[ 1024 ];
/* OUT */ char szDestFilename[ XCD_MAX_PATH ];
/* IN */ LONG lSize;
/* IN */ LONG lCompressedSize;
/* OUT */ xcdFileAttributes xAttributes;
/* IN */ LONG lCRC;
/* OUT */ SYSTEMTIME stModified;
/* OUT */ SYSTEMTIME stAccessed;
/* OUT */ SYSTEMTIME stCreated;
/* IN */ xcdCompressionMethod xMethod;
/* IN */ BOOL bEncrypted;
/* OUT */ char szPassword[ XCD_MAX_PATH ];
/* IN */ LONG lDiskNumber;
/* OUT */ BOOL bExcluded;
/* IN */ xcdSkippingReason xReason;
/* IN */ BOOL bExisting;
/* OUT */ xcdUnzipDestination xDestination;
/* IN */ LONG lSizeHigh;
/* IN */ LONG lCompressedSizeHigh;
} xcdUnzipPreprocessingFileParamsA;Regards
ViggoImported from legacy forums. Posted by Viggo (had 237 views)
Hi Viggo,
Thank you for bringing this to our attention. The lead developer submitted a request to the documentation team with the correct information.
Imported from legacy forums. Posted by Diane [Xceed] (had 1294 views)
-
AuthorPosts
- You must be logged in to reply to this topic.