UNRAR.H
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

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