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 )