|
1 /* |
|
2 IMPORTANT NOTE: IF THIS FILE IS CHANGED, WININST-6.EXE MUST BE RECOMPILED |
|
3 WITH THE MSVC6 WININST.DSW WORKSPACE FILE MANUALLY, AND WININST-7.1.EXE MUST |
|
4 BE RECOMPILED WITH THE MSVC 2003.NET WININST-7.1.VCPROJ FILE MANUALLY. |
|
5 |
|
6 IF CHANGES TO THIS FILE ARE CHECKED INTO PYTHON CVS, THE RECOMPILED BINARIES |
|
7 MUST BE CHECKED IN AS WELL! |
|
8 */ |
|
9 |
|
10 #pragma pack(1) |
|
11 |
|
12 /* zip-archive headers |
|
13 * See: http://www.pkware.com/appnote.html |
|
14 */ |
|
15 |
|
16 struct eof_cdir { |
|
17 long tag; /* must be 0x06054b50 */ |
|
18 short disknum; |
|
19 short firstdisk; |
|
20 short nTotalCDirThis; |
|
21 short nTotalCDir; |
|
22 long nBytesCDir; |
|
23 long ofsCDir; |
|
24 short commentlen; |
|
25 }; |
|
26 |
|
27 struct cdir { |
|
28 long tag; /* must be 0x02014b50 */ |
|
29 short version_made; |
|
30 short version_extract; |
|
31 short gp_bitflag; |
|
32 short comp_method; |
|
33 short last_mod_file_time; |
|
34 short last_mod_file_date; |
|
35 long crc32; |
|
36 long comp_size; |
|
37 long uncomp_size; |
|
38 short fname_length; |
|
39 short extra_length; |
|
40 short comment_length; |
|
41 short disknum_start; |
|
42 short int_file_attr; |
|
43 long ext_file_attr; |
|
44 long ofs_local_header; |
|
45 }; |
|
46 |
|
47 struct fhdr { |
|
48 long tag; /* must be 0x04034b50 */ |
|
49 short version_needed; |
|
50 short flags; |
|
51 short method; |
|
52 short last_mod_file_time; |
|
53 short last_mod_file_date; |
|
54 long crc32; |
|
55 long comp_size; |
|
56 long uncomp_size; |
|
57 short fname_length; |
|
58 short extra_length; |
|
59 }; |
|
60 |
|
61 |
|
62 struct meta_data_hdr { |
|
63 int tag; |
|
64 int uncomp_size; |
|
65 int bitmap_size; |
|
66 }; |
|
67 |
|
68 #pragma pack() |
|
69 |
|
70 /* installation scheme */ |
|
71 |
|
72 typedef struct tagSCHEME { |
|
73 char *name; |
|
74 char *prefix; |
|
75 } SCHEME; |
|
76 |
|
77 typedef int (*NOTIFYPROC)(int code, LPSTR text, ...); |
|
78 |
|
79 extern BOOL |
|
80 extract_file(char *dst, char *src, int method, int comp_size, |
|
81 int uncomp_size, NOTIFYPROC notify); |
|
82 |
|
83 extern BOOL |
|
84 unzip_archive(SCHEME *scheme, char *dirname, char *data, |
|
85 DWORD size, NOTIFYPROC notify); |
|
86 |
|
87 extern char * |
|
88 map_new_file(DWORD flags, char *filename, char |
|
89 *pathname_part, int size, |
|
90 WORD wFatDate, WORD wFatTime, |
|
91 NOTIFYPROC callback); |
|
92 |
|
93 extern BOOL |
|
94 ensure_directory (char *pathname, char *new_part, |
|
95 NOTIFYPROC callback); |
|
96 |
|
97 /* codes for NOITIFYPROC */ |
|
98 #define DIR_CREATED 1 |
|
99 #define CAN_OVERWRITE 2 |
|
100 #define FILE_CREATED 3 |
|
101 #define ZLIB_ERROR 4 |
|
102 #define SYSTEM_ERROR 5 |
|
103 #define NUM_FILES 6 |
|
104 #define FILE_OVERWRITTEN 7 |
|
105 |