Archive-Unzip-Burst

 view release on metacpan or  search on metacpan

unzip-6.0/windll/windll.txt  view on Meta::CPAN

             of all the parameters.

This calling wrapper for Wiz_SingleEntryUnzip() provides a method to pass
file lists as plain strings instead of the usual string arrays.
For VB Users only...:

int WINAPI Wiz_SingleEntryUnzpList(unsigned int ifnc, LPCSTR ExtList,
                                   unsigned int xfnc, LPCSTR ExcList,
                                   LPDCL lpDCL, LPUSERFUNCTIONS lpUserFunc)

ifnc       = number of file names being passed. If all files are to be
             extracted, then this can be zero.
ExtList    = Pointer to a list of file names to be extracted, separated by
             white space. If all files are to be extracted, then this should
             be NULL. Parameter ifnc should have an accurate count of the
             number of filenames being passed in.
xfnc       = number of "file names to be excluded from processing" being
             passed. If all files are to be extracted, set this to zero.
ExcList    = Pointer to a list of file names to be excluded from processing.
             Parameter xfnc should have an accurate count of the number of
             the number of filenames being passed in.
lpDCL      = pointer to a structure with the flags for setting the
             various options, as well as the zip file name.
lpUserFunc = pointer to a structure that contains pointers to functions
             in the calling application, as well as sizes passed back to
             the calling application etc.


The DCL structure collects the set of option flags supported by the WinDLL
interface to control the operation of the main function calls.
The first member of this structure is now a version identifier that should
be used to check structural compatibility of a passed option struct with
the expected structure layout. The C header file containing the reference
definition of the DCL structure also provides a symbol denoting the currently
valid StructVersID:

#define UZ_DCL_STRUCTVER        0x600

The layout of the DCL structure is shown below:

typedef struct {
 unsigned StructVersID  = struct version id (= UZ_DCL_STRUCTVER)
 int ExtractOnlyNewer   = TRUE for "update" without interaction
                          (extract only newer/new files, without queries)
 int SpaceToUnderscore  = TRUE if convert space to underscore
 int PromptToOverwrite  = TRUE if prompt to overwrite is wanted
 int fQuiet             = quiet flag:
                           0 = all messages, 1 = few messages, 2 = no messages
 int ncflag             = write to stdout if TRUE
 int ntflag             = test zip file
 int nvflag             = verbose listing
 int nfflag             = "freshen" (replace existing files by newer versions)
 int nzflag             = display zip file comment
 int ndflag             = controls (sub)directory recreation during extraction
                          0 = junk paths from filenames
                          1 = "safe" usage of paths in filenames (skip "../")
                          2 = allow also unsafe path components (dir traversal)
 int noflag             = always overwriting existing files if TRUE
 int naflag             = do end-of-line translation
 int nZIflag            = get ZipInfo if TRUE
 int B_flag             = backup existing files if TRUE
 int C_flag             = be case insensitive if TRUE
 int D_flag             = controls restoration of timestamps
                          0 = restore all timestamps (default)
                          1 = skip restoration of timestamps for folders
                              created on behalf of directory entries in the
                              Zip archive
                          2 = do not restore any timestamps; extracted files
                              and directories get stamped with the current time
 int U_flag             = controls UTF-8 filename coding support
                          0 = automatic UTF-8 translation enabled (default)
                          1 = recognize UTF-8 coded names, but all non-ASCII
                              characters are "escaped" into "#Uxxxx"
                          2 = UTF-8 support is disabled, filename handling
                              works exactly as in previous UnZip versions
 int fPrivilege         = 1 => restore ACLs in user mode,
                          2 => try to use privileges for restoring ACLs
 LPSTR lpszZipFN        = zip file name
 LPSTR lpszExtractDir   = directory to extract to. This should be NULL if you
                          are extracting to the current directory.
} DCL, far * LPDCL;

REMARKS:
The four extract-mode flags ExtractOnlyNewer, nfflag, PromptToOverwrite, and
noflag control which of the selected archive entries are actually processed.
They are mapped to UnZip's command line qualifiers "-u", "-f", "-o", "-n"
according to the following decision matrix:
 _____________________________________________________________________
 | UnZip 1)|| Extract-  | nfflag | noflag | PrompTo-  | lpUserFunc   |
 | options || OnlyNewer |        |        | Overwrite | ->replape()  |
 =====================================================================
 | none 2) ||   false   |  false |  false |   true    |queryfunc() 5)|
 | -o      ||   false   |  false |  true  |   false   |     N/A      |
 | -n      ||   false   |  false |  false |   false   |     N/A      |
 |---------||-----------|--------|--------|-----------|--------------|
 | -u      ||   true    |  false |  false |   true    |queryfunc() 5)|
 | -uo     ||   true    |  false |  true  |   false   |     N/A      |
 | -un  3) ||   true    |  false |  false |   false   |     N/A      |
 |---------||-----------|--------|--------|-----------|--------------|
 | -f      ||    N/A    |  true  |  false |   true    |queryfunc() 5)|
 | -fo     ||    N/A    |  true  |  true  |   false   |     N/A      |
 | -fn  4) ||    N/A    |  true  |  false |   false   |     N/A      |
 ---------------------------------------------------------------------
 Legend: true:  integer number <> 0
         false: integer number 0
         N/A:   not applicable, could be set to any value
 NOTES:
 1) The UnZip options are explained in the generic UnZip manual, see
    "unzip.txt" or "man/unzip.1".
 2) no options from the set "ufno" are specified.
 3) -un is functionally equivalent to -n
 4) -fn is functionally equivalent to "do nothing", so this combination
    does not make sense.
 5) queryfunc() is a callback function provided by the caller of the
    unzip dll that may return one of the following result keys:
     IDM_REPLACE_NO, IDM_REPLACE_YES,
     IDM_REPLACE_ALL, IDM_REPLACE_NONE,
     IDM_REPLACE_RENAME
     (IDM_REPLACE_TEXT, IDM_REPLACE_HELP are defined but not used)
    UnZip's internal code treats a "NULL" lpUserFunc->replace() function
    pointer as "{return IDM_REPLACE_NONE}". However, currently, the windll



( run in 0.399 second using v1.01-cache-2.11-cpan-4ef0a570458 )