EnglishРусский  

   ..

   unrar.h

   unrardll.txt

The project is closed! You can look at a new scripting language. It is available on GitHub.
Also, try our open source cross-platform automation software.

Ads

Installer and installation software
Commercial and Freeware installers.

  1 #ifndef _UNRAR_DLL_
  2 #define _UNRAR_DLL_
  3 
  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
  9 #define ERAR_EOPEN              15
 10 #define ERAR_ECREATE            16
 11 #define ERAR_ECLOSE             17
 12 #define ERAR_EREAD              18
 13 #define ERAR_EWRITE             19
 14 #define ERAR_SMALL_BUF          20
 15 #define ERAR_UNKNOWN            21
 16 #define ERAR_MISSING_PASSWORD   22
 17 
 18 #define RAR_OM_LIST              0
 19 #define RAR_OM_EXTRACT           1
 20 #define RAR_OM_LIST_INCSPLIT     2
 21 
 22 #define RAR_SKIP              0
 23 #define RAR_TEST              1
 24 #define RAR_EXTRACT           2
 25 
 26 #define RAR_VOL_ASK           0
 27 #define RAR_VOL_NOTIFY        1
 28 
 29 #define RAR_DLL_VERSION       4
 30 
 31 #ifdef _UNIX
 32 #define CALLBACK
 33 #define PASCAL
 34 #define LONG long
 35 #define HANDLE void *
 36 #define UINT unsigned int
 37 #endif
 38 
 39 struct RARHeaderData
 40 {
 41   char         ArcName[260];
 42   char         FileName[260];
 43   unsigned int Flags;
 44   unsigned int PackSize;
 45   unsigned int UnpSize;
 46   unsigned int HostOS;
 47   unsigned int FileCRC;
 48   unsigned int FileTime;
 49   unsigned int UnpVer;
 50   unsigned int Method;
 51   unsigned int FileAttr;
 52   char         *CmtBuf;
 53   unsigned int CmtBufSize;
 54   unsigned int CmtSize;
 55   unsigned int CmtState;
 56 };
 57 
 58 
 59 struct RARHeaderDataEx
 60 {
 61   char         ArcName[1024];
 62   wchar_t      ArcNameW[1024];
 63   char         FileName[1024];
 64   wchar_t      FileNameW[1024];
 65   unsigned int Flags;
 66   unsigned int PackSize;
 67   unsigned int PackSizeHigh;
 68   unsigned int UnpSize;
 69   unsigned int UnpSizeHigh;
 70   unsigned int HostOS;
 71   unsigned int FileCRC;
 72   unsigned int FileTime;
 73   unsigned int UnpVer;
 74   unsigned int Method;
 75   unsigned int FileAttr;
 76   char         *CmtBuf;
 77   unsigned int CmtBufSize;
 78   unsigned int CmtSize;
 79   unsigned int CmtState;
 80   unsigned int Reserved[1024];
 81 };
 82 
 83 
 84 struct RAROpenArchiveData
 85 {
 86   char         *ArcName;
 87   unsigned int OpenMode;
 88   unsigned int OpenResult;
 89   char         *CmtBuf;
 90   unsigned int CmtBufSize;
 91   unsigned int CmtSize;
 92   unsigned int CmtState;
 93 };
 94 
 95 struct RAROpenArchiveDataEx
 96 {
 97   char         *ArcName;
 98   wchar_t      *ArcNameW;
 99   unsigned int OpenMode;
100   unsigned int OpenResult;
101   char         *CmtBuf;
102   unsigned int CmtBufSize;
103   unsigned int CmtSize;
104   unsigned int CmtState;
105   unsigned int Flags;
106   unsigned int Reserved[32];
107 };
108 
109 enum UNRARCALLBACK_MESSAGES {
110   UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD
111 };
112 
113 typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LPARAM UserData,LPARAM P1,LPARAM P2);
114 
115 typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode);
116 typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size);
117 
118 #ifdef __cplusplus
119 extern "C" {
120 #endif
121 
122 HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData);
123 HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
124 int    PASCAL RARCloseArchive(HANDLE hArcData);
125 int    PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData);
126 int    PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
127 int    PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
128 int    PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName);
129 void   PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData);
130 void   PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc);
131 void   PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc);
132 void   PASCAL RARSetPassword(HANDLE hArcData,char *Password);
133 int    PASCAL RARGetDllVersion();
134 
135 #ifdef __cplusplus
136 }
137 #endif
138 
139 #endif
140