home *** CD-ROM | disk | FTP | other *** search
/ ftp.rarlab.com / 2014.05.ftp.rarlab.com.tar / ftp.rarlab.com / rar / unrar343.zip / unrar.h < prev    next >
C/C++ Source or Header  |  2003-02-02  |  4KB  |  153 lines

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