123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- /*
- api.h - Zip 3
- Copyright (c) 1990-2007 Info-ZIP. All rights reserved.
- See the accompanying file LICENSE, version 2007-Mar-4 or later
- (the contents of which are also included in zip.h) for terms of use.
- If, for some reason, all these files are missing, the Info-ZIP license
- also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
- */
- /* Only the Windows DLL is currently supported */
- #ifndef _ZIPAPI_H
- #define _ZIPAPI_H
- #include "zip.h"
- #ifdef WIN32
- # ifndef PATH_MAX
- # define PATH_MAX 260
- # endif
- #else
- # ifndef PATH_MAX
- # define PATH_MAX 128
- # endif
- #endif
- #if defined(WINDLL) || defined(API)
- #include <windows.h>
- /* Porting definations between Win 3.1x and Win32 */
- #ifdef WIN32
- # define far
- # define _far
- # define __far
- # define near
- # define _near
- # define __near
- #endif
- /*---------------------------------------------------------------------------
- Prototypes for public Zip API (DLL) functions.
- ---------------------------------------------------------------------------*/
- #define ZPVER_LEN sizeof(ZpVer)
- /* These defines are set to zero for now, until OS/2 comes out
- with a dll.
- */
- #define D2_MAJORVER 0
- #define D2_MINORVER 0
- #define D2_PATCHLEVEL 0
- /* intended to be a private struct: */
- typedef struct _zip_ver {
- uch major; /* e.g., integer 5 */
- uch minor; /* e.g., 2 */
- uch patchlevel; /* e.g., 0 */
- uch not_used;
- } _zip_version_type;
- typedef struct _ZpVer {
- 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., "4 Sep 95" (beta) or "4 September 1995" */
- char zlib_version[10]; /* e.g., "0.95" or NULL */
- BOOL fEncryption; /* TRUE if encryption enabled, FALSE otherwise */
- _zip_version_type zip;
- _zip_version_type os2dll;
- _zip_version_type windll;
- } ZpVer;
- # ifndef EXPENTRY
- # define EXPENTRY WINAPI
- # endif
- #ifndef DEFINED_ONCE
- #define DEFINED_ONCE
- typedef int (WINAPI DLLPRNT) (LPSTR, unsigned long);
- typedef int (WINAPI DLLPASSWORD) (LPSTR, int, LPCSTR, LPCSTR);
- #endif
- #ifdef ZIP64_SUPPORT
- typedef int (WINAPI DLLSERVICE) (LPCSTR, unsigned __int64);
- typedef int (WINAPI DLLSERVICE_NO_INT64) (LPCSTR, unsigned long, unsigned long);
- #else
- typedef int (WINAPI DLLSERVICE) (LPCSTR, unsigned long);
- #endif
- typedef int (WINAPI DLLSPLIT) (LPSTR);
- typedef int (WINAPI DLLCOMMENT)(LPSTR);
- /* Structures */
- typedef struct { /* zip options */
- LPSTR Date; /* Date to include after */
- LPSTR szRootDir; /* Directory to use as base for zipping */
- LPSTR szTempDir; /* Temporary directory used during zipping */
- BOOL fTemp; /* Use temporary directory '-b' during zipping */
- BOOL fSuffix; /* include suffixes (not implemented) */
- BOOL fEncrypt; /* encrypt files */
- BOOL fSystem; /* include system and hidden files */
- BOOL fVolume; /* Include volume label */
- BOOL fExtra; /* Exclude extra attributes */
- BOOL fNoDirEntries; /* Do not add directory entries */
- BOOL fExcludeDate; /* Exclude files newer than specified date */
- BOOL fIncludeDate; /* Include only files newer than specified date */
- BOOL fVerbose; /* Mention oddities in zip file structure */
- BOOL fQuiet; /* Quiet operation */
- BOOL fCRLF_LF; /* Translate CR/LF to LF */
- BOOL fLF_CRLF; /* Translate LF to CR/LF */
- BOOL fJunkDir; /* Junk directory names */
- BOOL fGrow; /* Allow appending to a zip file */
- BOOL fForce; /* Make entries using DOS names (k for Katz) */
- BOOL fMove; /* Delete files added or updated in zip file */
- BOOL fDeleteEntries; /* Delete files from zip file */
- BOOL fUpdate; /* Update zip file--overwrite only if newer */
- BOOL fFreshen; /* Freshen zip file--overwrite only */
- BOOL fJunkSFX; /* Junk SFX prefix */
- BOOL fLatestTime; /* Set zip file time to time of latest file in it */
- BOOL fComment; /* Put comment in zip file */
- BOOL fOffsets; /* Update archive offsets for SFX files */
- BOOL fPrivilege; /* Use privileges (WIN32 only) */
- BOOL fEncryption; /* TRUE if encryption supported, else FALSE.
- this is a read only flag */
- LPSTR szSplitSize; /* This string contains the size that you want to
- split the archive into. i.e. 100 for 100 bytes,
- 2K for 2 k bytes, where K is 1024, m for meg
- and g for gig. If this string is not NULL it
- will automatically be assumed that you wish to
- split an archive. */
- LPSTR szIncludeList; /* Pointer to include file list string (for VB) */
- long IncludeListCount; /* Count of file names in the include list array */
- char **IncludeList; /* Pointer to include file list array. Note that the last
- entry in the array must be NULL */
- LPSTR szExcludeList; /* Pointer to exclude file list (for VB) */
- long ExcludeListCount; /* Count of file names in the include list array */
- char **ExcludeList; /* Pointer to exclude file list array. Note that the last
- entry in the array must be NULL */
- int fRecurse; /* Recurse into subdirectories. 1 => -r, 2 => -R */
- int fRepair; /* Repair archive. 1 => -F, 2 => -FF */
- char fLevel; /* Compression level (0 - 9) */
- } ZPOPT, _far *LPZPOPT;
- typedef struct {
- int argc; /* Count of files to zip */
- LPSTR lpszZipFN; /* name of archive to create/update */
- char **FNV; /* array of file names to zip up */
- LPSTR lpszAltFNL; /* pointer to a string containing a list of file
- names to zip up, separated by whitespace. Intended
- for use only by VB users, all others should set this
- to NULL. */
- } ZCL, _far *LPZCL;
- typedef struct {
- DLLPRNT *print;
- DLLCOMMENT *comment;
- DLLPASSWORD *password;
- DLLSPLIT *split; /* This MUST be set to NULL unless you want to be queried
- for a destination for each split archive. */
- #ifdef ZIP64_SUPPORT
- DLLSERVICE *ServiceApplication64;
- DLLSERVICE_NO_INT64 *ServiceApplication64_No_Int64;
- #else
- DLLSERVICE *ServiceApplication;
- #endif
- } ZIPUSERFUNCTIONS, far * LPZIPUSERFUNCTIONS;
- extern LPZIPUSERFUNCTIONS lpZipUserFunctions;
- void EXPENTRY ZpVersion(ZpVer far *);
- int EXPENTRY ZpInit(LPZIPUSERFUNCTIONS lpZipUserFunc);
- int EXPENTRY ZpArchive(ZCL C, LPZPOPT Opts);
- #if defined(ZIPLIB) || defined(COM_OBJECT)
- # define ydays zp_ydays
- #endif
- /* Functions not yet supported */
- #if 0
- int EXPENTRY ZpMain (int argc, char **argv);
- int EXPENTRY ZpAltMain (int argc, char **argv, ZpInit *init);
- #endif
- #endif /* WINDLL? || API? */
- #endif /* _ZIPAPI_H */
|