diff options
Diffstat (limited to 'PC/bdist_wininst/archive.h')
-rw-r--r-- | PC/bdist_wininst/archive.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/PC/bdist_wininst/archive.h b/PC/bdist_wininst/archive.h new file mode 100644 index 0000000..977898c --- /dev/null +++ b/PC/bdist_wininst/archive.h @@ -0,0 +1,96 @@ +#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 + |