which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			141 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| //******************************************************************************
 | |
| //
 | |
| // File:        INTRFACE.H
 | |
| //
 | |
| // Description: This module acts as the interface between the Info-ZIP code and
 | |
| //              our Windows code in WINMAIN.CPP.  See INTRFACE.CPP for a more
 | |
| //              detailed description and the actual implementation.
 | |
| //
 | |
| // Copyright:   All the source files for Pocket UnZip, except for components
 | |
| //              written by the Info-ZIP group, are copyrighted 1997 by Steve P.
 | |
| //              Miller.  The product "Pocket UnZip" itself is property of the
 | |
| //              author and cannot be altered in any way without written consent
 | |
| //              from Steve P. Miller.
 | |
| //
 | |
| // Disclaimer:  All project files are provided "as is" with no guarantee of
 | |
| //              their correctness.  The authors are not liable for any outcome
 | |
| //              that is the result of using this source.  The source for Pocket
 | |
| //              UnZip has been placed in the public domain to help provide an
 | |
| //              understanding of its implementation.  You are hereby granted
 | |
| //              full permission to use this source in any way you wish, except
 | |
| //              to alter Pocket UnZip itself.  For comments, suggestions, and
 | |
| //              bug reports, please write to stevemil@pobox.com.
 | |
| //
 | |
| //
 | |
| // Date      Name          History
 | |
| // --------  ------------  -----------------------------------------------------
 | |
| // 02/01/97  Steve Miller  Created (Version 1.0 using Info-ZIP UnZip 5.30)
 | |
| //
 | |
| //******************************************************************************
 | |
| 
 | |
| #ifndef __INTRFACE_H__
 | |
| #define __INTRFACE_H__
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| //******************************************************************************
 | |
| //***** Types and Structures
 | |
| //******************************************************************************
 | |
| 
 | |
| typedef void (WINAPI DLLMESSAGE)(ulg, ulg, int, int, int, int, int, int,
 | |
|                                  int, char*, char*, ulg);
 | |
| 
 | |
| typedef struct _USERFUNCTIONS {
 | |
|    DLLMESSAGE    *SendApplicationMessage;
 | |
|    WORD           cchComment;
 | |
|    unsigned long  TotalSizeComp;
 | |
|    unsigned long  TotalSize;
 | |
|    int            CompFactor;
 | |
|    unsigned int   NumMembers;
 | |
| } USERFUNCTIONS, *LPUSERFUNCTIONS;
 | |
| 
 | |
| typedef struct _DCL {
 | |
|    int PromptToOverwrite;
 | |
| } DCL, *LPDCL;
 | |
| 
 | |
| typedef enum _OVERWRITE_MODE {
 | |
|    OM_PROMPT = 0,
 | |
|    OM_NEWER,
 | |
|    OM_ALWAYS,
 | |
|    OM_NEVER
 | |
| } OVERWRITE_MODE, *LPOVERWRITE_MODE;
 | |
| 
 | |
| typedef struct _EXTRACT_INFO {
 | |
|    BOOL            fExtract;      // TRUE for extract, FALSE for test
 | |
|    DWORD           dwFileCount;   // Number of files to extract/test.
 | |
|    DWORD           dwByteCount;   // Total bytes to extract/test
 | |
|    LPSTR          *szFileList;    // ARGV list of files, NULL for all files.
 | |
|    BOOL            fRestorePaths; // TRUE to restore paths, FALSE to junk them.
 | |
|    OVERWRITE_MODE  overwriteMode; // How to handle file overwrites.
 | |
|    LPSTR           szMappedPath;  // Used to store mapped name. May be NULL.
 | |
|    BOOL            fAbort;        // Set during operation by UI to abort.
 | |
|    int             result;        // Result code from extraction/test.
 | |
| 
 | |
|    // Window handles for the various controls in our progress dialogs.
 | |
|    HWND            hWndEditFile;
 | |
|    HWND            hWndProgFile;
 | |
|    HWND            hWndProgTotal;
 | |
|    HWND            hWndPercentage;
 | |
|    HWND            hWndFilesProcessed;
 | |
|    HWND            hWndBytesProcessed;
 | |
| 
 | |
|    // Values used to keep track of our progress.
 | |
|    DWORD           dwFileOffset;
 | |
|    DWORD           dwFile;
 | |
|    DWORD           dwBytesTotalThisFile;
 | |
|    DWORD           dwBytesWrittenThisFile;
 | |
|    DWORD           dwBytesWrittenPreviousFiles;
 | |
|    LPCSTR          szFile;
 | |
|    BOOL            fNewLineOfText;
 | |
| 
 | |
| } EXTRACT_INFO, *LPEXTRACT_INFO;
 | |
| 
 | |
| typedef struct _DECRYPT_INFO {
 | |
|    int    retry;
 | |
|    LPSTR  szPassword;
 | |
|    DWORD  nSize;
 | |
|    LPCSTR szFile;
 | |
| } DECRYPT_INFO, *LPDECRYPT_INFO;
 | |
| 
 | |
| //******************************************************************************
 | |
| //***** Function Prototypes
 | |
| //******************************************************************************
 | |
| 
 | |
| int  DoListFiles(LPCSTR szZipFile);
 | |
| BOOL DoExtractOrTestFiles(LPCSTR szZipFile, EXTRACT_INFO *pei);
 | |
| int  DoGetComment(LPCSTR szZipFile);
 | |
| BOOL SetExtractToDirectory(LPTSTR szDirectory);
 | |
| 
 | |
| int  win_fprintf(FILE *file, unsigned int dwCount, char far *buffer);
 | |
| 
 | |
| 
 | |
| //******************************************************************************
 | |
| //***** Global Variables
 | |
| //******************************************************************************
 | |
| 
 | |
| #ifdef GLOBAL_DECLARE
 | |
| #undef GLOBAL_DECLARE
 | |
| #undef GLOBAL_INIT
 | |
| #endif
 | |
| 
 | |
| #ifdef __INTRFACE_CPP__
 | |
|    #define GLOBAL_DECLARE
 | |
|    #define GLOBAL_INIT(value) =value
 | |
| #else
 | |
|    #define GLOBAL_DECLARE extern
 | |
|    #define GLOBAL_INIT(value)
 | |
| #endif
 | |
| 
 | |
| GLOBAL_DECLARE jmp_buf         dll_error_return;
 | |
| GLOBAL_DECLARE LPDCL           lpDCL           GLOBAL_INIT(NULL);
 | |
| GLOBAL_DECLARE LPUSERFUNCTIONS lpUserFunctions GLOBAL_INIT(NULL);
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| } // extern "C"
 | |
| #endif
 | |
| 
 | |
| #endif // __INTRFACE_H__
 |