00001
00002
00003
00004
00005
00006 #if !defined(AFX_VMSUNRARDLL_H__3C62C56A_FEA7_4A2A_A83A_D6F5809CB142__INCLUDED_)
00007 #define AFX_VMSUNRARDLL_H__3C62C56A_FEA7_4A2A_A83A_D6F5809CB142__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif
00012
00013 #include "vmsDLL.h"
00014 #include <archive\unrar.h>
00015
00016 class vmsUnRARDLL : public vmsDLL
00017 {
00018 public:
00019 int RARCloseArchive (HANDLE hArcData);
00020 int RARProcessFile (HANDLE hArcData,int Operation,char *DestPath,char *DestName);
00021 int RARReadHeader (HANDLE hArcData,struct RARHeaderData *HeaderData);
00022 void RARSetCallback (HANDLE hArcData,UNRARCALLBACK Callback,LONG UserData);
00023 HANDLE RAROpenArchiveEx (struct RAROpenArchiveDataEx *ArchiveData);
00024
00025 virtual bool Load (LPCSTR pszDll);
00026 virtual void Free();
00027
00028 vmsUnRARDLL(LPCSTR pszDll = NULL);
00029 virtual ~vmsUnRARDLL();
00030
00031 protected:
00032 typedef HANDLE (PASCAL *FNRAROAEX)(struct RAROpenArchiveDataEx *ArchiveData);
00033 typedef void (PASCAL *FNRARSC)(HANDLE hArcData,UNRARCALLBACK Callback,LONG UserData);
00034 typedef int (PASCAL *FNRARRH)(HANDLE hArcData,struct RARHeaderData *HeaderData);
00035 typedef int (PASCAL *FNRARPF)(HANDLE hArcData,int Operation,char *DestPath,char *DestName);
00036 typedef int (PASCAL *FNRARCA)(HANDLE hArcData);
00037 FNRAROAEX m_pfnRAROpenArchiveEx;
00038 FNRARSC m_pfnRARSetCallback;
00039 FNRARRH m_pfnRARReadHeader;
00040 FNRARPF m_pfnRARProcessFile;
00041 FNRARCA m_pfnRARCloseArchive;
00042 };
00043
00044 #endif