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 #define UINT unsigned int
42 unsigned int PackSize;
46 unsigned int FileTime;
49 unsigned int FileAttr;
51 unsigned int CmtBufSize;
53 unsigned int CmtState;
57 struct RARHeaderDataEx
60 wchar_t ArcNameW[1024];
62 wchar_t FileNameW[1024];
64 unsigned int PackSize;
65 unsigned int PackSizeHigh;
67 unsigned int UnpSizeHigh;
70 unsigned int FileTime;
73 unsigned int FileAttr;
75 unsigned int CmtBufSize;
77 unsigned int CmtState;
78 unsigned int Reserved[1024];
82 struct RAROpenArchiveData
85 unsigned int OpenMode;
86 unsigned int OpenResult;
88 unsigned int CmtBufSize;
90 unsigned int CmtState;
93 struct RAROpenArchiveDataEx
97 unsigned int OpenMode;
98 unsigned int OpenResult;
100 unsigned int CmtBufSize;
101 unsigned int CmtSize;
102 unsigned int CmtState;
104 unsigned int Reserved[32];
107 enum UNRARCALLBACK_MESSAGES {
108 UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD
111 typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LONG UserData,LONG P1,LONG P2);
113 typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode);
114 typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size);
120 HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData);
121 HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
122 int PASCAL RARCloseArchive(HANDLE hArcData);
123 int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData);
124 int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
125 int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
126 int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName);
127 void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LONG UserData);
128 void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc);
129 void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc);
130 void PASCAL RARSetPassword(HANDLE hArcData,char *Password);
131 int PASCAL RARGetDllVersion();