コード例 #1
0
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);
}
コード例 #2
0
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);
}