4 #define ERAR_END_ARCHIVE 10
5 #define ERAR_NO_MEMORY 11
6 #define ERAR_BAD_DATA 12
7 #define ERAR_BAD_ARCHIVE 13
8 #define ERAR_UNKNOWN_FORMAT 14
10 #define ERAR_ECREATE 16
11 #define ERAR_ECLOSE 17
13 #define ERAR_EWRITE 19
14 #define ERAR_SMALL_BUF 20
15 #define ERAR_UNKNOWN 21
18 #define RAR_OM_EXTRACT 1
25 #define RAR_VOL_NOTIFY 1
27 #define RAR_DLL_VERSION 4
34 unsigned int PackSize;
38 unsigned int FileTime;
41 unsigned int FileAttr;
43 unsigned int CmtBufSize;
45 unsigned int CmtState;
49 struct RARHeaderDataEx
52 wchar_t ArcNameW[1024];
54 wchar_t FileNameW[1024];
56 unsigned int PackSize;
57 unsigned int PackSizeHigh;
59 unsigned int UnpSizeHigh;
62 unsigned int FileTime;
65 unsigned int FileAttr;
67 unsigned int CmtBufSize;
69 unsigned int CmtState;
70 unsigned int Reserved[1024];
74 struct RAROpenArchiveData
77 unsigned int OpenMode;
78 unsigned int OpenResult;
80 unsigned int CmtBufSize;
82 unsigned int CmtState;
85 struct RAROpenArchiveDataEx
89 unsigned int OpenMode;
90 unsigned int OpenResult;
92 unsigned int CmtBufSize;
94 unsigned int CmtState;
96 unsigned int Reserved[32];
99 enum UNRARCALLBACK_MESSAGES {
100 UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD
103 typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LONG UserData,LONG P1,LONG P2);
105 typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode);
106 typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size);
112 HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData);
113 HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
114 int PASCAL RARCloseArchive(HANDLE hArcData);
115 int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData);
116 int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
117 int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
118 int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName);
119 void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LONG UserData);
120 void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc);
121 void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc);
122 void PASCAL RARSetPassword(HANDLE hArcData,char *Password);
123 int PASCAL RARGetDllVersion();