00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 Open Download Manager Copyright (c) 2008-2010 OpenDownloadManager.ORG 00004 */ 00005 00006 #include "stdafx.h" 00007 #include "FdmApp.h" 00008 #include "vmsArchiveMgr.h" 00009 00010 #ifdef _DEBUG 00011 #undef THIS_FILE 00012 static char THIS_FILE[]=__FILE__; 00013 #define new DEBUG_NEW 00014 #endif 00015 00016 vmsArchiveMgr::vmsArchiveMgr() 00017 { 00018 m_pUsedArchive = NULL; 00019 } 00020 00021 vmsArchiveMgr::~vmsArchiveMgr() 00022 { 00023 00024 } 00025 00026 bool vmsArchiveMgr::Extract(LPCSTR pszArchive, LPCSTR pszOutFolder) 00027 { 00028 m_pUsedArchive = &m_7zip; 00029 00030 LPCSTR pszExt; 00031 pszExt = strrchr (pszArchive, '.'); 00032 if (pszExt) 00033 { 00034 pszExt++; 00035 if (lstrcmpi (pszExt, "rar") == 0) 00036 m_pUsedArchive = &m_rar; 00037 } 00038 00039 while (false == m_pUsedArchive->Extract (pszArchive, pszOutFolder)) 00040 { 00041 if (m_pUsedArchive->get_LastExtractError () == AEE_ABORTED_BY_USER || 00042 m_pUsedArchive == &m_7zip) 00043 return false; 00044 m_pUsedArchive = &m_7zip; 00045 } 00046 00047 return true; 00048 } 00049 00050 void vmsArchiveMgr::set_ArchiveCallback(vmsArchiveCallback *pAC) 00051 { 00052 m_rar.set_ArchiveCallback (pAC); 00053 m_7zip.set_ArchiveCallback (pAC); 00054 } 00055 00056 vmsArchiveExtractError vmsArchiveMgr::get_LastExtractError() 00057 { 00058 return m_pUsedArchive ? m_pUsedArchive->get_LastExtractError () : AEE_NO_ERROR; 00059 }
1.5.6