void CVulEngine::_RepairVul(HWND hWnd) { ATLASSERT(m_pVulScan); CWindowVulfixObserver observer(hWnd); if(!m_pRepairVul) m_pRepairVul = CreateRepairVul(); HRESULT hr = E_POINTER; if(m_pRepairVul) { m_pRepairVul->SetObserver( &observer ); m_pRepairVul->Reset(); m_pRepairVul->AddSoftVul(m_pVulScan, m_arrRepairVulSoftIds); m_pRepairVul->AddVul(m_pVulScan, m_arrRepairVulIds); CString strPath, strImportPath; GetDownloadPath( strPath ); BKSafeConfig::Get_Vulfix_Download_LocalPath( strImportPath ); BOOL bImportLocal = BKSafeConfig::Get_Vulfix_Download_UseLocal(); BOOL bDownloadIfImportError = BKSafeConfig::Get_Vulfix_Download_DownloadIfNotExists(); DWORD dwFlags = 0; if(bImportLocal && !strImportPath.IsEmpty()) { dwFlags |= VULFLAG_REPAIR_IMPORT_LOCAL; if(bDownloadIfImportError) dwFlags |= VULFLAG_REPAIR_DOWNLOAD_IF_FAIL_IMPORT; } hr = m_pRepairVul->Repair(strPath, strImportPath, dwFlags); m_pRepairVul->WaitForRepairDone(); m_pVulScan->SetObserver(NULL); } m_isRepairing = FALSE; _RelayMessage( hWnd, WMH_REPAIR_DONE, m_bRepairCanceled, hr); }
void CVulEngine::_RepairVul(HWND hWnd) { ATLASSERT(m_pVulScan && m_pSoftVulScan); CWindowVulfixObserver observer(m_MainDlg, hWnd); if(!m_pRepairVul) m_pRepairVul = CreateRepairVul(); m_pRepairVul->SetObserver( &observer ); m_pRepairVul->AddVul(m_pVulScan, m_arrRepairVulIds); m_pRepairVul->AddSoftVul(m_pSoftVulScan, m_arrRepairVulSoftIds); CString strPath; GetDownloadPath( strPath ); m_pRepairVul->Repair(strPath, 0); m_pRepairVul->WaitForRepairDone(); _RelayMessage( hWnd, WMH_REPAIR_DONE, m_bRepairCanceled, 0); m_pVulScan->SetObserver(NULL); m_pSoftVulScan->SetObserver(NULL); }