www.pudn.com > ElectronicAlbums.rar > ZipDLL.h


#ifndef ZIPDLL_H 
 
#define ZIPDLL_H 
 
#include "windows.h" 
#include "..\stdafx.h" 
#include "ZCallBck.h" 
 
struct CZipParams 
{ 
	HWND m_hwndHandle; 
			/* "self" referance of the Delphi form */ 
			/* This is passed back to us in the callback function 
			   so we can direct the info to the proper form instance 
			   - thanks to Dennis Passmore for this idea. */ 
	void *m_pCaller; 
	long int m_liVersion;   /* version of DLL we expect to see */ 
	ZFunctionPtrType m_pfCallbackFunction; /* type def in ZCallBck.PAS */ 
	BOOL m_bTraceEnabled; 
 
         /*============== Begin Zip Flag section ============== */ 
	char *m_pszZipPassword; /* password pointer */ 
	BOOL m_bSuffix;   /* not used yet */ 
	BOOL m_bEncrypt;  /* Encrypt files to be added? */ 
 
	/* include system and hidden files */ 
	BOOL m_bSystem; 
 
	/* Include volume label */ 
	BOOL m_bVolume; 
 
	/* Include extra file attributes (read-only, unix timestamps, etc) */ 
	BOOL m_bExtra; 
 
	/* Do not add directory names to .ZIP archive */ 
	/* see also: fJunkDir */ 
	BOOL m_bNoDirEntries; 
 
	/* Only add files newer a specified date */ 
	/* See the "Date" array below if you set this to TRUE */ 
	BOOL m_bDate; 
 
	/* Give a little more information to the user via message boxes */ 
	BOOL m_bVerboseEnabled; 
 
	/* Quiet operation - the DLL won't issue any messages at all. */ 
	/* Delphi program MUST handle ALL errors via it's callback function. */ 
	BOOL m_bQuiet; 
 
	/* Compression level (0 - 9; 9=max, 0=none) */ 
	/* All of these levels are variations of deflate. */ 
	/* I strongly recommend you use one of 3 values here: 
	          0 = no compression, just store file 
              3 = "fast" compression 
              9 = "best" compression */ 
	long int m_bLevel; 
 
	/* Try to compress files that appear to be already compressed 
	   based on their extension: .zip, .arc, .gif, ... */ 
	BOOL m_bComprSpecial; 
 
	/* translate text file end-of-lines */ 
	BOOL m_bCRLF_LF; 
 
	/* junk the directory names */ 
	/* If true, this says not to save dirnames as separate entries, 
	   in addition to being save with filenames. */ 
	/* see also: fNoDirEntries */ 
	BOOL m_bJunkDir; 
 
	/* Recurse into subdirectories */ 
	BOOL m_bRecurse; 
 
	/* Allow appending to a zip file */ 
	BOOL m_bGrow; 
 
	/* Convert filenames to DOS 8x3 names - for compatibility 
	   with PKUNZIP v2.04g, which doesn't understand long filenames */ 
	BOOL m_bForce; 
 
	/* Delete orig files that were added or updated in zip file */ 
	/* This is a variation of Add */ 
	BOOL m_bMove; 
 
	/* Delete specified files from zip file */ 
	BOOL m_bDeleteEntries; 
 
	/* Update zip -- if true, rezip changed, and add new files in fspec */ 
	/* This is a variation of Add */ 
	BOOL m_bUpdate; 
 
	/* Freshen zip -- if true, rezip all changed files in fspec */ 
	/* This is a variation of Add */ 
	BOOL m_bFreshen; 
 
	/* junk the SFX prefix on the self-extracing .EXE archives */ 
	BOOL m_bJunkSFX; 
 
	/* Set zip file time to time of newest file in it */ 
	BOOL m_bLatestTime; 
 
	/*============== End Zip Flag section ============== */ 
 
	/* Cutoff Date for Add-by-date; add files newer than this day */ 
	/* This is only used if the "fDate" option is TRUE */ 
	/* format = MMDDYY plus a trailing null */ 
	char m_cDate[8]; 
 
	/* Count of files to add or delete - don't forget to set this! */ 
	long int m_liFileCount; 
	/* ptr to name of zip file */ 
	char *m_pszArchiveFileName; 
	long int m_liSeven; /* pass a 7 here to validate struct size */ 
 
	/* Array of filenames contained in the ZIP archive */ 
	char* m_pszFileNames[MAX_FILES]; 
}; 
 
/* 
	Main call to execute a ZIP add or Delete.  This call returns the 
	number of files that were sucessfully operated on. 
*/ 
typedef DWORD (__stdcall *CZipDllExec)(CZipParams *pParams); 
typedef DWORD (__stdcall *CGetZipDllVersion)(); 
 
#endif  //  ZIPDLL_H