UNRAR.H
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
- #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