-
Notifications
You must be signed in to change notification settings - Fork 0
/
wcxhead.h
82 lines (74 loc) · 3.38 KB
/
wcxhead.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#ifndef __wcxhead__
/* Error codes returned to calling application */
#define E_END_ARCHIVE 10 /* No more files in archive */
#define E_NO_MEMORY 11 /* Not enough memory */
#define E_BAD_DATA 12 /* Data is bad */
#define E_BAD_ARCHIVE 13 /* CRC error in archive data */
#define E_UNKNOWN_FORMAT 14 /* Archive format unknown */
#define E_EOPEN 15 /* Cannot open existing file */
#define E_ECREATE 16 /* Cannot create file */
#define E_ECLOSE 17 /* Error closing file */
#define E_EREAD 18 /* Error reading from file */
#define E_EWRITE 19 /* Error writing to file */
#define E_SMALL_BUF 20 /* Buffer too small */
#define E_EABORTED 21 /* Function aborted by user */
#define E_NO_FILES 22 /* No files found */
#define E_TOO_MANY_FILES 23 /* Too many files to pack */
#define E_NOT_SUPPORTED 24 /* Function not supported */
/* flags for unpacking */
#define PK_OM_LIST 0
#define PK_OM_EXTRACT 1
/* flags for ProcessFile */
#define PK_SKIP 0 /* Skip this file */
#define PK_TEST 1 /* Test file integrity */
#define PK_EXTRACT 2 /* Extract to disk */
/* Flags passed through ChangeVolProc */
#define PK_VOL_ASK 0 /* Ask user for location of next volume */
#define PK_VOL_NOTIFY 1 /* Notify app that next volume will be unpacked */
/* Flags for packing */
/* For PackFiles */
#define PK_PACK_MOVE_FILES 1 /* Delete original after packing */
#define PK_PACK_SAVE_PATHS 2 /* Save path names of files */
/* Returned by GetPackCaps */
#define PK_CAPS_NEW 1 /* Can create new archives */
#define PK_CAPS_MODIFY 2 /* Can modify exisiting archives */
#define PK_CAPS_MULTIPLE 4 /* Archive can contain multiple files */
#define PK_CAPS_DELETE 8 /* Can delete files */
#define PK_CAPS_OPTIONS 16 /* Has options dialog */
#define PK_CAPS_MEMPACK 32 /* Supports packing in memory */
#define PK_CAPS_BY_CONTENT 64 /* Detect archive type by content */
#define PK_CAPS_SEARCHTEXT 128 /* Allow searching for text in archives created with this plugin */
#define PK_CAPS_HIDE 256 /* Don't show packer icon, don't open with Enter but with Ctrl + PgDn */
#define PK_CAPS_ENCRYPT 512 /* Plugin supports encryption. */
typedef struct {
char ArcName[260];
char FileName[260];
int Flags;
int PackSize;
int UnpSize;
int HostOS;
int FileCRC;
int FileTime;
int UnpVer;
int Method;
int FileAttr;
char* CmtBuf;
int CmtBufSize;
int CmtSize;
int CmtState;
} tHeaderData;
typedef struct {
char* ArcName;
int OpenMode;
int OpenResult;
char* CmtBuf;
int CmtBufSize;
int CmtSize;
int CmtState;
} tOpenArchiveData;
/* Definition of callback functions called by the DLL
Ask to swap disk for multi-volume archive */
typedef int (__stdcall *tChangeVolProc)(char *ArcName,int Mode);
/* Notify that data is processed - used for progress dialog */
typedef int (__stdcall *tProcessDataProc)(char *FileName,int Size);
#endif