Archive-Unzip-Burst
view release on metacpan or search on metacpan
unzip-6.0/windll/windll.txt view on Meta::CPAN
for environments that do not support 64-bit integers.
[NOTE: The _i32 variants of the SendApplicationMessage and ServCallBk callback
functions are only called when the corresponding "regular" callback
function pointers are set to NULL. For the i386 architecture, the
"..._i32" calling interfaces are binary identical with the
corresponding regular __int64-aware interfaces.]
[NOTE: The values below are filled in only when listing the contents of an
archive.]
z_uint8 TotalSizeComp = value to be filled in by the dll for the
compressed total size of the archive. Note this
value does not include the size of the archive
header and central directory list.
z_uint8 TotalSize = value to be filled in by the dll for the total
size of all files in the archive.
z_uint8 NumMembers = total number of files in the archive.
unsigned CompFactor = value to be filled in by the dll for the overall
compression factor. This could actually be computed
from the other values, but it is available.
WORD cchComment = flag to be set if archive has a comment
} USERFUNCTIONS, far * LPUSERFUNCTIONS;
Wiz_SingleEntryUnzip() returns a PKWARE compatible error code (0 if no
error or warning). For an explanation of the supported error codes see
the UnZip user documentation (the UnZip man page).
For examples of how the actual calls to the dll are set up in WiZ, look in
the files action.c and wizmain.c in the WiZ source directory. For a trival
example of how to load and call the dll, look in uzexampl.c and uzexampl.h.
For examples of how the actual loading and unloading of the dll's themselves
was done, look in wizmain.c in the WiZ source directory. Note that WiZ looks
specifically for a particular version number of the dll, and also expects to
find the company name to be Info-ZIP. This is to protect from getting
different versions of the dll loaded, with resulting unknown behavior.
Additional entry points:
const UzpVer * WINAPI UzpVersion(void);
where UzpVer is defined as:
typedef struct _UzpVer {
ulg structlen; /* length of the struct being passed */
ulg flag; /* bit 0: is_beta bit 1: uses_zlib */
LPCSTR betalevel; /* e.g. "g BETA" or "" */
LPCSTR date; /* e.g. "9 Oct 08" (beta) or "9 October 2008" */
LPCSTR zlib_version; /* e.g. "1.2.3" or NULL */
_version_type unzip; /* current UnZip version */
_version_type zipinfo; /* current ZipInfo version */
_version_type os2dll; /* OS2DLL version (retained for compatibility) */
_version_type windll; /* WinDLL version (retained for compatibility) */
_version_type dllapimin; /* last incompatible change of library API */
} UzpVer;
and _version_type is defined as:
typedef struct _ver {
uch major; /* e.g., integer 5 */
uch minor; /* e.g., 2 */
uch patchlevel; /* e.g., 0 */
uch not_used;
} _version_type;
See api.c for exactly what UzpVersion does, but the short description is
"UzpVersion() returns a pointer to a dll-internal static structure
containing the unzip32.dll version information".
For usage with languages that do not support function which return pointers
to structures, the variant UzpVersion2() allows to retrieve the version info
into a memory area supplied by the caller:
unsigned WINAPI UzpVersion2(UzpVer2 far *);
where UzpVer2 is defined as:
typedef struct _UzpVer2 {
ulg structlen; /* length of the struct being passed */
ulg flag; /* bit 0: is_beta bit 1: uses_zlib */
char betalevel[10]; /* e.g. "g BETA" or "" */
char date[20]; /* e.g. "9 Oct 08" (beta) or "9 October 2008" */
char zlib_version[10]; /* e.g. "1.2.3" or NULL */
_version_type unzip; /* current UnZip version */
_version_type zipinfo; /* current ZipInfo version */
_version_type os2dll; /* OS2DLL version (retained for compatibility) */
_version_type windll; /* WinDLL version (retained for compatibility) */
_version_type dllapimin; /* last incompatible change of library API */
} UzpVer2;
See api.c for the exact function of UzpVersion2, but the short description
is "fill in the version information in the UzpVer2 structure".
void WINAPI Wiz_NoPrinting(int flag)
This entry point simply turns off all messages to the calling application if
flag is true, and turns them on if flag is false.
int WINAPI Wiz_Validate(LPSTR archive, int AllCodes)
If AllCodes is FALSE, then Unz_Validate returns TRUE if archive points to a
valid archive, and FALSE otherwise. If AllCodes is TRUE, then Unz_Validate
returns whatever error code process_zipfiles returns, without evaluating it.
int WINAPI Wiz_UnzipToMemory(LPSTR zip, LPSTR file, LPUSERFUNCTIONS lpUserFunc,
UzpBuffer *retstr)
Where UzpBuffer is defined as:
typedef struct _UzpBuffer {
ulg strlength; /* length of string */
char * strptr; /* pointer to string */
} UzpBuffer
Pass the name of the zip file in zip and the name of the file you wish to
extract in file. UzpUnzipToMemory will create a buffer and return it in
*retstr. 0 on return indicates failure.
void WINAPI UzpFreeMemBuffer(UzpBuffer *retstr)
Use this routine to release the return data space allocated by the function
Wiz_UnzipToMemory().
int WINAPI Wiz_Grep(LPSTR archive, LPSTR file, LPSTR pattern, int cmd,
( run in 1.192 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )