You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
1.8 KiB
96 lines
1.8 KiB
#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 |
|
|
|
|