| 121 |
cycrow |
1 |
#ifndef _UNRAR_DLL_
|
|
|
2 |
#define _UNRAR_DLL_
|
|
|
3 |
|
| 244 |
cycrow |
4 |
#pragma pack(push, 1)
|
| 121 |
cycrow |
5 |
|
|
|
6 |
#define ERAR_SUCCESS 0
|
|
|
7 |
#define ERAR_END_ARCHIVE 10
|
|
|
8 |
#define ERAR_NO_MEMORY 11
|
|
|
9 |
#define ERAR_BAD_DATA 12
|
|
|
10 |
#define ERAR_BAD_ARCHIVE 13
|
|
|
11 |
#define ERAR_UNKNOWN_FORMAT 14
|
|
|
12 |
#define ERAR_EOPEN 15
|
|
|
13 |
#define ERAR_ECREATE 16
|
|
|
14 |
#define ERAR_ECLOSE 17
|
|
|
15 |
#define ERAR_EREAD 18
|
|
|
16 |
#define ERAR_EWRITE 19
|
|
|
17 |
#define ERAR_SMALL_BUF 20
|
|
|
18 |
#define ERAR_UNKNOWN 21
|
|
|
19 |
#define ERAR_MISSING_PASSWORD 22
|
|
|
20 |
#define ERAR_EREFERENCE 23
|
|
|
21 |
#define ERAR_BAD_PASSWORD 24
|
|
|
22 |
|
|
|
23 |
#define RAR_OM_LIST 0
|
|
|
24 |
#define RAR_OM_EXTRACT 1
|
|
|
25 |
#define RAR_OM_LIST_INCSPLIT 2
|
|
|
26 |
|
|
|
27 |
#define RAR_SKIP 0
|
|
|
28 |
#define RAR_TEST 1
|
|
|
29 |
#define RAR_EXTRACT 2
|
|
|
30 |
|
|
|
31 |
#define RAR_VOL_ASK 0
|
|
|
32 |
#define RAR_VOL_NOTIFY 1
|
|
|
33 |
|
|
|
34 |
#define RAR_DLL_VERSION 8
|
|
|
35 |
|
|
|
36 |
#define RAR_HASH_NONE 0
|
|
|
37 |
#define RAR_HASH_CRC32 1
|
|
|
38 |
#define RAR_HASH_BLAKE2 2
|
|
|
39 |
|
|
|
40 |
|
|
|
41 |
#ifdef _UNIX
|
|
|
42 |
#define CALLBACK
|
|
|
43 |
#define PASCAL
|
|
|
44 |
#define LONG long
|
|
|
45 |
#define HANDLE void *
|
|
|
46 |
#define LPARAM long
|
|
|
47 |
#define UINT unsigned int
|
|
|
48 |
#endif
|
|
|
49 |
|
|
|
50 |
#define RHDF_SPLITBEFORE 0x01
|
|
|
51 |
#define RHDF_SPLITAFTER 0x02
|
|
|
52 |
#define RHDF_ENCRYPTED 0x04
|
|
|
53 |
#define RHDF_SOLID 0x10
|
|
|
54 |
#define RHDF_DIRECTORY 0x20
|
|
|
55 |
|
|
|
56 |
|
|
|
57 |
struct RARHeaderData
|
|
|
58 |
{
|
|
|
59 |
char ArcName[260];
|
|
|
60 |
char FileName[260];
|
|
|
61 |
unsigned int Flags;
|
|
|
62 |
unsigned int PackSize;
|
|
|
63 |
unsigned int UnpSize;
|
|
|
64 |
unsigned int HostOS;
|
|
|
65 |
unsigned int FileCRC;
|
|
|
66 |
unsigned int FileTime;
|
|
|
67 |
unsigned int UnpVer;
|
|
|
68 |
unsigned int Method;
|
|
|
69 |
unsigned int FileAttr;
|
|
|
70 |
char *CmtBuf;
|
|
|
71 |
unsigned int CmtBufSize;
|
|
|
72 |
unsigned int CmtSize;
|
|
|
73 |
unsigned int CmtState;
|
|
|
74 |
};
|
|
|
75 |
|
|
|
76 |
|
|
|
77 |
struct RARHeaderDataEx
|
|
|
78 |
{
|
|
|
79 |
char ArcName[1024];
|
|
|
80 |
wchar_t ArcNameW[1024];
|
|
|
81 |
char FileName[1024];
|
|
|
82 |
wchar_t FileNameW[1024];
|
|
|
83 |
unsigned int Flags;
|
|
|
84 |
unsigned int PackSize;
|
|
|
85 |
unsigned int PackSizeHigh;
|
|
|
86 |
unsigned int UnpSize;
|
|
|
87 |
unsigned int UnpSizeHigh;
|
|
|
88 |
unsigned int HostOS;
|
|
|
89 |
unsigned int FileCRC;
|
|
|
90 |
unsigned int FileTime;
|
|
|
91 |
unsigned int UnpVer;
|
|
|
92 |
unsigned int Method;
|
|
|
93 |
unsigned int FileAttr;
|
|
|
94 |
char *CmtBuf;
|
|
|
95 |
unsigned int CmtBufSize;
|
|
|
96 |
unsigned int CmtSize;
|
|
|
97 |
unsigned int CmtState;
|
|
|
98 |
unsigned int DictSize;
|
|
|
99 |
unsigned int HashType;
|
|
|
100 |
char Hash[32];
|
|
|
101 |
unsigned int RedirType;
|
|
|
102 |
wchar_t *RedirName;
|
|
|
103 |
unsigned int RedirNameSize;
|
|
|
104 |
unsigned int DirTarget;
|
|
|
105 |
unsigned int MtimeLow;
|
|
|
106 |
unsigned int MtimeHigh;
|
|
|
107 |
unsigned int CtimeLow;
|
|
|
108 |
unsigned int CtimeHigh;
|
|
|
109 |
unsigned int AtimeLow;
|
|
|
110 |
unsigned int AtimeHigh;
|
|
|
111 |
unsigned int Reserved[988];
|
|
|
112 |
};
|
|
|
113 |
|
|
|
114 |
|
|
|
115 |
struct RAROpenArchiveData
|
|
|
116 |
{
|
|
|
117 |
char *ArcName;
|
|
|
118 |
unsigned int OpenMode;
|
|
|
119 |
unsigned int OpenResult;
|
|
|
120 |
char *CmtBuf;
|
|
|
121 |
unsigned int CmtBufSize;
|
|
|
122 |
unsigned int CmtSize;
|
|
|
123 |
unsigned int CmtState;
|
|
|
124 |
};
|
|
|
125 |
|
|
|
126 |
typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LPARAM UserData,LPARAM P1,LPARAM P2);
|
|
|
127 |
|
|
|
128 |
#define ROADF_VOLUME 0x0001
|
|
|
129 |
#define ROADF_COMMENT 0x0002
|
|
|
130 |
#define ROADF_LOCK 0x0004
|
|
|
131 |
#define ROADF_SOLID 0x0008
|
|
|
132 |
#define ROADF_NEWNUMBERING 0x0010
|
|
|
133 |
#define ROADF_SIGNED 0x0020
|
|
|
134 |
#define ROADF_RECOVERY 0x0040
|
|
|
135 |
#define ROADF_ENCHEADERS 0x0080
|
|
|
136 |
#define ROADF_FIRSTVOLUME 0x0100
|
|
|
137 |
|
| 244 |
cycrow |
138 |
#define ROADOF_KEEPBROKEN 0x0001
|
|
|
139 |
|
| 121 |
cycrow |
140 |
struct RAROpenArchiveDataEx
|
|
|
141 |
{
|
|
|
142 |
char *ArcName;
|
|
|
143 |
wchar_t *ArcNameW;
|
|
|
144 |
unsigned int OpenMode;
|
|
|
145 |
unsigned int OpenResult;
|
|
|
146 |
char *CmtBuf;
|
|
|
147 |
unsigned int CmtBufSize;
|
|
|
148 |
unsigned int CmtSize;
|
|
|
149 |
unsigned int CmtState;
|
|
|
150 |
unsigned int Flags;
|
|
|
151 |
UNRARCALLBACK Callback;
|
|
|
152 |
LPARAM UserData;
|
| 244 |
cycrow |
153 |
unsigned int OpFlags;
|
|
|
154 |
wchar_t *CmtBufW;
|
|
|
155 |
unsigned int Reserved[25];
|
| 121 |
cycrow |
156 |
};
|
|
|
157 |
|
|
|
158 |
enum UNRARCALLBACK_MESSAGES {
|
|
|
159 |
UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD,UCM_CHANGEVOLUMEW,
|
|
|
160 |
UCM_NEEDPASSWORDW
|
|
|
161 |
};
|
|
|
162 |
|
|
|
163 |
typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode);
|
|
|
164 |
typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size);
|
|
|
165 |
|
|
|
166 |
#ifdef __cplusplus
|
|
|
167 |
extern "C" {
|
|
|
168 |
#endif
|
|
|
169 |
|
|
|
170 |
HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData);
|
|
|
171 |
HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
|
|
|
172 |
int PASCAL RARCloseArchive(HANDLE hArcData);
|
|
|
173 |
int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData);
|
|
|
174 |
int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
|
|
|
175 |
int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
|
|
|
176 |
int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName);
|
|
|
177 |
void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData);
|
|
|
178 |
void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc);
|
|
|
179 |
void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc);
|
|
|
180 |
void PASCAL RARSetPassword(HANDLE hArcData,char *Password);
|
|
|
181 |
int PASCAL RARGetDllVersion();
|
|
|
182 |
|
|
|
183 |
#ifdef __cplusplus
|
|
|
184 |
}
|
|
|
185 |
#endif
|
|
|
186 |
|
| 244 |
cycrow |
187 |
#pragma pack(pop)
|
| 121 |
cycrow |
188 |
|
|
|
189 |
#endif
|