123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- #ifndef _UNRAR_DLL_
- #define _UNRAR_DLL_
- #pragma pack(push, 1)
- #define ERAR_SUCCESS 0
- #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 ERAR_MISSING_PASSWORD 22
- #define ERAR_EREFERENCE 23
- #define ERAR_BAD_PASSWORD 24
- #define RAR_OM_LIST 0
- #define RAR_OM_EXTRACT 1
- #define RAR_OM_LIST_INCSPLIT 2
- #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 8
- #define RAR_HASH_NONE 0
- #define RAR_HASH_CRC32 1
- #define RAR_HASH_BLAKE2 2
- #ifdef _UNIX
- #define CALLBACK
- #define PASCAL
- #define LONG long
- #define HANDLE void *
- #define LPARAM long
- #define UINT unsigned int
- #endif
- #define RHDF_SPLITBEFORE 0x01
- #define RHDF_SPLITAFTER 0x02
- #define RHDF_ENCRYPTED 0x04
- #define RHDF_SOLID 0x10
- #define RHDF_DIRECTORY 0x20
- 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 DictSize;
- unsigned int HashType;
- char Hash[32];
- unsigned int RedirType;
- wchar_t *RedirName;
- unsigned int RedirNameSize;
- unsigned int DirTarget;
- unsigned int MtimeLow;
- unsigned int MtimeHigh;
- unsigned int CtimeLow;
- unsigned int CtimeHigh;
- unsigned int AtimeLow;
- unsigned int AtimeHigh;
- unsigned int Reserved[988];
- };
- struct RAROpenArchiveData
- {
- char *ArcName;
- unsigned int OpenMode;
- unsigned int OpenResult;
- char *CmtBuf;
- unsigned int CmtBufSize;
- unsigned int CmtSize;
- unsigned int CmtState;
- };
- typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LPARAM UserData,LPARAM P1,LPARAM P2);
- #define ROADF_VOLUME 0x0001
- #define ROADF_COMMENT 0x0002
- #define ROADF_LOCK 0x0004
- #define ROADF_SOLID 0x0008
- #define ROADF_NEWNUMBERING 0x0010
- #define ROADF_SIGNED 0x0020
- #define ROADF_RECOVERY 0x0040
- #define ROADF_ENCHEADERS 0x0080
- #define ROADF_FIRSTVOLUME 0x0100
- #define ROADOF_KEEPBROKEN 0x0001
- 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;
- UNRARCALLBACK Callback;
- LPARAM UserData;
- unsigned int OpFlags;
- wchar_t *CmtBufW;
- unsigned int Reserved[25];
- };
- enum UNRARCALLBACK_MESSAGES {
- UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD,UCM_CHANGEVOLUMEW,
- UCM_NEEDPASSWORDW
- };
- typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode);
- typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size);
- #ifdef __cplusplus
- extern "C" {
- #endif
- HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData);
- HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData);
- int PASCAL RARCloseArchive(HANDLE hArcData);
- int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData);
- int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData);
- int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
- int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName);
- void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData);
- void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc);
- void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc);
- void PASCAL RARSetPassword(HANDLE hArcData,char *Password);
- int PASCAL RARGetDllVersion();
- #ifdef __cplusplus
- }
- #endif
- #pragma pack(pop)
- #endif
|