| /* | |
| IMPORTANT NOTE: IF THIS FILE IS CHANGED, WININST-6.EXE MUST BE RECOMPILED | |
| WITH THE MSVC6 WININST.DSW WORKSPACE FILE MANUALLY, AND WININST-7.1.EXE MUST | |
| BE RECOMPILED WITH THE MSVC 2003.NET WININST-7.1.VCPROJ FILE MANUALLY. | |
| IF CHANGES TO THIS FILE ARE CHECKED INTO PYTHON CVS, THE RECOMPILED BINARIES | |
| MUST BE CHECKED IN AS WELL! | |
| */ | |
| #pragma pack(1) | |
| /* zip-archive headers | |
| * See: http://www.pkware.com/appnote.html | |
| */ | |
| struct eof_cdir { | |
| long tag; /* must be 0x06054b50 */ | |
| short disknum; | |
| short firstdisk; | |
| short nTotalCDirThis; | |
| short nTotalCDir; | |
| long nBytesCDir; | |
| long ofsCDir; | |
| short commentlen; | |
| }; | |
| struct cdir { | |
| long tag; /* must be 0x02014b50 */ | |
| short version_made; | |
| short version_extract; | |
| short gp_bitflag; | |
| short comp_method; | |
| short last_mod_file_time; | |
| short last_mod_file_date; | |
| long crc32; | |
| long comp_size; | |
| long uncomp_size; | |
| short fname_length; | |
| short extra_length; | |
| short comment_length; | |
| short disknum_start; | |
| short int_file_attr; | |
| long ext_file_attr; | |
| long ofs_local_header; | |
| }; | |
| struct fhdr { | |
| long tag; /* must be 0x04034b50 */ | |
| short version_needed; | |
| short flags; | |
| short method; | |
| short last_mod_file_time; | |
| short last_mod_file_date; | |
| long crc32; | |
| long comp_size; | |
| long uncomp_size; | |
| short fname_length; | |
| short extra_length; | |
| }; | |
| struct meta_data_hdr { | |
| int tag; | |
| int uncomp_size; | |
| int bitmap_size; | |
| }; | |
| #pragma pack() | |
| /* installation scheme */ | |
| typedef struct tagSCHEME { | |
| char *name; | |
| char *prefix; | |
| } SCHEME; | |
| typedef int (*NOTIFYPROC)(int code, LPSTR text, ...); | |
| extern BOOL | |
| extract_file(char *dst, char *src, int method, int comp_size, | |
| int uncomp_size, NOTIFYPROC notify); | |
| extern BOOL | |
| unzip_archive(SCHEME *scheme, char *dirname, char *data, | |
| DWORD size, NOTIFYPROC notify); | |
| extern char * | |
| map_new_file(DWORD flags, char *filename, char | |
| *pathname_part, int size, | |
| WORD wFatDate, WORD wFatTime, | |
| NOTIFYPROC callback); | |
| extern BOOL | |
| ensure_directory (char *pathname, char *new_part, | |
| NOTIFYPROC callback); | |
| /* codes for NOITIFYPROC */ | |
| #define DIR_CREATED 1 | |
| #define CAN_OVERWRITE 2 | |
| #define FILE_CREATED 3 | |
| #define ZLIB_ERROR 4 | |
| #define SYSTEM_ERROR 5 | |
| #define NUM_FILES 6 | |
| #define FILE_OVERWRITTEN 7 | |