Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6725 siemargl 1
/*
2
  Copyright (c) 1990-2002 Info-ZIP.  All rights reserved.
3
 
4
  See the accompanying file LICENSE, version 2000-Apr-09 or later
5
  (the contents of which are also included in unzip.h) for terms of use.
6
  If, for some reason, all these files are missing, the Info-ZIP license
7
  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
8
*/
9
//******************************************************************************
10
//
11
// File:        INTRFACE.H
12
//
13
// Description: This module acts as the interface between the Info-ZIP code and
14
//              our Windows code in WINMAIN.CPP.  See INTRFACE.CPP for a more
15
//              detailed description and the actual implementation.
16
//
17
// Copyright:   All the source files for Pocket UnZip, except for components
18
//              written by the Info-ZIP group, are copyrighted 1997 by Steve P.
19
//              Miller.  The product "Pocket UnZip" itself is property of the
20
//              author and cannot be altered in any way without written consent
21
//              from Steve P. Miller.
22
//
23
// Disclaimer:  All project files are provided "as is" with no guarantee of
24
//              their correctness.  The authors are not liable for any outcome
25
//              that is the result of using this source.  The source for Pocket
26
//              UnZip has been placed in the public domain to help provide an
27
//              understanding of its implementation.  You are hereby granted
28
//              full permission to use this source in any way you wish, except
29
//              to alter Pocket UnZip itself.  For comments, suggestions, and
30
//              bug reports, please write to stevemil@pobox.com.
31
//
32
//
33
// Date      Name          History
34
// --------  ------------  -----------------------------------------------------
35
// 02/01/97  Steve Miller  Created (Version 1.0 using Info-ZIP UnZip 5.30)
36
//
37
//******************************************************************************
38
 
39
#ifndef __INTRFACE_H__
40
#define __INTRFACE_H__
41
 
42
#ifdef __cplusplus
43
extern "C" {
44
#endif
45
 
46
#ifdef POCKET_UNZIP
47
//******************************************************************************
48
//***** Types and Structures
49
//******************************************************************************
50
 
51
typedef enum _OVERWRITE_MODE {
52
   OM_PROMPT = 0,
53
   OM_NEWER,
54
   OM_ALWAYS,
55
   OM_NEVER
56
} OVERWRITE_MODE, *LPOVERWRITE_MODE;
57
 
58
typedef struct _EXTRACT_INFO {
59
   zusz_t          uzByteCount;   // Total bytes to extract/test
60
   DWORD           dwFileCount;   // Number of files to extract/test.
61
   LPSTR          *szFileList;    // ARGV list of files, NULL for all files.
62
   LPSTR           szMappedPath;  // Used to store mapped name. May be NULL.
63
   OVERWRITE_MODE  overwriteMode; // How to handle file overwrites.
64
   BOOL            fExtract;      // TRUE for extract, FALSE for test
65
   BOOL            fRestorePaths; // TRUE to restore paths, FALSE to junk them.
66
   BOOL            fAbort;        // Set during operation by UI to abort.
67
   int             result;        // Result code from extraction/test.
68
 
69
   // Window handles for the various controls in our progress dialogs.
70
   HWND            hWndEditFile;
71
   HWND            hWndProgFile;
72
   HWND            hWndProgTotal;
73
   HWND            hWndPercentage;
74
   HWND            hWndFilesProcessed;
75
   HWND            hWndBytesProcessed;
76
 
77
   // Values used to keep track of our progress.
78
   zusz_t          uzBytesTotalThisFile;
79
   zusz_t          uzBytesWrittenThisFile;
80
   zusz_t          uzBytesWrittenPreviousFiles;
81
   zusz_t          uzFileOffset;
82
   DWORD           dwFile;
83
   LPCSTR          szFile;
84
   BOOL            fNewLineOfText;
85
 
86
} EXTRACT_INFO, *LPEXTRACT_INFO;
87
 
88
typedef struct _DECRYPT_INFO {
89
   int    retry;
90
   LPSTR  szPassword;
91
   DWORD  nSize;
92
   LPCSTR szFile;
93
} DECRYPT_INFO, *LPDECRYPT_INFO;
94
 
95
//******************************************************************************
96
//***** Function Prototypes
97
//******************************************************************************
98
 
99
// Our exposed interface functions to the Info-ZIP core.
100
int  DoListFiles(LPCSTR szZipFile);
101
BOOL DoExtractOrTestFiles(LPCSTR szZipFile, EXTRACT_INFO *pei);
102
int  DoGetComment(LPCSTR szZipFile);
103
BOOL SetExtractToDirectory(LPTSTR szDirectory);
104
 
105
// "Internal" callbacks from Info-ZIP code.
106
// (The "official" callback functions are declared in the UnZip DLL headers,
107
// see "unzip.h".)
108
void WINAPI Wiz_NoPrinting(int f);
109
int  win_fprintf(zvoid *pG, FILE *file, unsigned int dwCount, char far *buffer);
110
 
111
 
112
//******************************************************************************
113
//***** Global Variables
114
//******************************************************************************
115
 
116
#ifdef GLOBAL_DECLARE
117
#undef GLOBAL_DECLARE
118
#undef GLOBAL_INIT
119
#endif
120
 
121
#ifdef __INTRFACE_CPP__
122
   #define GLOBAL_DECLARE
123
   #define GLOBAL_INIT(value) =value
124
#else
125
   #define GLOBAL_DECLARE extern
126
   #define GLOBAL_INIT(value)
127
#endif
128
 
129
GLOBAL_DECLARE jmp_buf         dll_error_return;
130
GLOBAL_DECLARE LPDCL           lpDCL           GLOBAL_INIT(NULL);
131
GLOBAL_DECLARE LPUSERFUNCTIONS lpUserFunctions GLOBAL_INIT(NULL);
132
 
133
#endif // POCKET_UNZIP
134
 
135
#ifdef __cplusplus
136
} // extern "C"
137
#endif
138
 
139
#endif // __INTRFACE_H__