1fb4f58ff2
Originally committed to SVN as r1399.
130 lines
3.3 KiB
C
130 lines
3.3 KiB
C
#ifndef _UNRAR_DLL_
|
|
#define _UNRAR_DLL_
|
|
|
|
#define ERAR_END_ARCHIVE 10
|
|
#define ERAR_NO_MEMORY 11
|
|
#define ERAR_BAD_DATA 12
|
|
#define ERAR_BAD_ARCHIVE 13
|
|
#define ERAR_UNKNOWN_FORMAT 14
|
|
#define ERAR_EOPEN 15
|
|
#define ERAR_ECREATE 16
|
|
#define ERAR_ECLOSE 17
|
|
#define ERAR_EREAD 18
|
|
#define ERAR_EWRITE 19
|
|
#define ERAR_SMALL_BUF 20
|
|
#define ERAR_UNKNOWN 21
|
|
|
|
#define RAR_OM_LIST 0
|
|
#define RAR_OM_EXTRACT 1
|
|
|
|
#define RAR_SKIP 0
|
|
#define RAR_TEST 1
|
|
#define RAR_EXTRACT 2
|
|
|
|
#define RAR_VOL_ASK 0
|
|
#define RAR_VOL_NOTIFY 1
|
|
|
|
#define RAR_DLL_VERSION 3
|
|
|
|
struct RARHeaderData
|
|
{
|
|
char ArcName[260];
|
|
char FileName[260];
|
|
unsigned int Flags;
|
|
unsigned int PackSize;
|
|
unsigned int UnpSize;
|
|
unsigned int HostOS;
|
|
unsigned int FileCRC;
|
|
unsigned int FileTime;
|
|
unsigned int UnpVer;
|
|
unsigned int Method;
|
|
unsigned int FileAttr;
|
|
char *CmtBuf;
|
|
unsigned int CmtBufSize;
|
|
unsigned int CmtSize;
|
|
unsigned int CmtState;
|
|
};
|
|
|
|
|
|
struct RARHeaderDataEx
|
|
{
|
|
char ArcName[1024];
|
|
wchar_t ArcNameW[1024];
|
|
char FileName[1024];
|
|
wchar_t FileNameW[1024];
|
|
unsigned int Flags;
|
|
unsigned int PackSize;
|
|
unsigned int PackSizeHigh;
|
|
unsigned int UnpSize;
|
|
unsigned int UnpSizeHigh;
|
|
unsigned int HostOS;
|
|
unsigned int FileCRC;
|
|
unsigned int FileTime;
|
|
unsigned int UnpVer;
|
|
unsigned int Method;
|
|
unsigned int FileAttr;
|
|
char *CmtBuf;
|
|
unsigned int CmtBufSize;
|
|
unsigned int CmtSize;
|
|
unsigned int CmtState;
|
|
unsigned int Reserved[1024];
|
|
};
|
|
|
|
|
|
struct RAROpenArchiveData
|
|
{
|
|
char *ArcName;
|
|
unsigned int OpenMode;
|
|
unsigned int OpenResult;
|
|
char *CmtBuf;
|
|
unsigned int CmtBufSize;
|
|
unsigned int CmtSize;
|
|
unsigned int CmtState;
|
|
};
|
|
|
|
struct RAROpenArchiveDataEx
|
|
{
|
|
char *ArcName;
|
|
wchar_t *ArcNameW;
|
|
unsigned int OpenMode;
|
|
unsigned int OpenResult;
|
|
char *CmtBuf;
|
|
unsigned int CmtBufSize;
|
|
unsigned int CmtSize;
|
|
unsigned int CmtState;
|
|
unsigned int Flags;
|
|
unsigned int Reserved[32];
|
|
};
|
|
|
|
enum UNRARCALLBACK_MESSAGES {
|
|
UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD
|
|
};
|
|
|
|
typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LONG UserData,LONG P1,LONG P2);
|
|
|
|
typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode);
|
|
typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef HANDLE (PASCAL * RAROpenArchive)(struct RAROpenArchiveData *ArchiveData);
|
|
typedef HANDLE (PASCAL * RAROpenArchiveEx)(struct RAROpenArchiveDataEx *ArchiveData);
|
|
typedef int (PASCAL * RARCloseArchive)(HANDLE hArcData);
|
|
typedef int (PASCAL * RARReadHeader)(HANDLE hArcData,struct RARHeaderData *HeaderData);
|
|
typedef int (PASCAL * RARReadHeaderEx)(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
|
|
typedef int (PASCAL * RARProcessFile)(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
|
|
typedef void (PASCAL * RARSetCallback)(HANDLE hArcData,UNRARCALLBACK Callback,LONG UserData);
|
|
typedef void (PASCAL * RARSetChangeVolProc)(HANDLE hArcData, CHANGEVOLPROC);
|
|
typedef void (PASCAL * RARSetProcessDataProc)(HANDLE hArcData, PROCESSDATAPROC);
|
|
typedef void (PASCAL * RARSetPassword)(HANDLE hArcData,char *Password);
|
|
typedef int (PASCAL * RARGetDllVersion)();
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|