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 )