Пример #1
0
void KStatListDlg::_SetShowInfo( void )
{
	int nTime = _time32(NULL);
	CString strCurTime;
	strCurTime.Format(_T("%ld"), nTime);
	if (m_nMode == 1)//每日模式
	{
		CString str;
		str.Format(_T("您今日的网络总流量已经超过%dMB"), m_nSetSize);
		SetItemText(DEFINFOTEXT, str);
		SetItemVisible(DEFCHECKDAY, TRUE);
		SetItemVisible(DEFCHECKMONTH, FALSE);

		_SetConfigInfo(FLOATWND_CONFIG_SECTION_NAME, FLOATWND_CONFIG_REMAID_DAY_DATA_NAME, strCurTime);
		KOperMemFile::Instance().SetDayLastData(nTime);
	}
	else if (m_nMode == 2)//每月模式
	{
		CString str;
		str.Format(_T("您本月的网络总流量已经超过%dMB"), m_nSetSize);
		SetItemText(DEFINFOTEXT, str);
		SetItemVisible(DEFCHECKDAY, FALSE);
		SetItemVisible(DEFCHECKMONTH, TRUE);

		_SetConfigInfo(FLOATWND_CONFIG_SECTION_NAME, FLOATWND_CONFIG_REMAID_MONTH_DATA_NAME, strCurTime);
		KOperMemFile::Instance().SetMonthLastData(nTime);
	}
}
Пример #2
0
UINT_PTR CBkSafeMsgBox::ShowMsg(
    LPCWSTR lpszText, 
    LPCWSTR lpszCaption     /*= NULL*/, 
    UINT uType              /*= MB_OK*/, 
    BOOL *pbNoNotifyLater   /*= NULL*/, 
    HWND hWndParent         /*= ::GetActiveWindow()*/)
{
    if (!Load(IDR_BK_MESSAGEBOX))
        return -1;

	m_isTextXml = FALSE;
	m_strText = lpszText;
	m_uType = uType;
	SetItemVisible(60016, FALSE);
	SetItemVisible(IDC_LBL_MSGBOX_TEXT, TRUE);
	SetItemText(IDC_LBL_MSGBOX_TEXT, lpszText);
    if (lpszCaption)
    {
        m_strCaption    = lpszCaption;
        SetWindowCaption(m_strCaption);

        SetItemText(IDC_LBL_MSGBOX_TITLE, lpszCaption);
    }
	_InitLayout(pbNoNotifyLater);
	
    UINT_PTR nRet = DoModal(hWndParent);
    if (pbNoNotifyLater)
        *pbNoNotifyLater = m_bNoNotifyLater;

    return nRet;
}
Пример #3
0
UINT_PTR CBkSafeMsgBox::ShowPanelMsg( LPCWSTR lpszXml, LPCRECT lpRect
									 , LPCWSTR lpszCaption /*= NULL*/, UINT uType /*= MB_OK*/, BOOL *pbNoNotifyLater /*= NULL*/, HWND hWndParent /*= NULL */ )
{
	ATLASSERT(lpRect);
	if (!lpRect || !Load(IDR_BK_MESSAGEBOX))
		return -1;
	
	m_isTextXml = TRUE;
	m_rcXml = *lpRect;
	m_uType = uType;
	SetItemVisible(60016, TRUE);
	SetItemVisible(IDC_LBL_MSGBOX_TEXT, FALSE);
	SetPanelXml(60016, CT2CA(lpszXml, CP_UTF8));
	if (lpszCaption)
	{
		m_strCaption    = lpszCaption;
		SetWindowCaption(m_strCaption);
		SetItemText(IDC_LBL_MSGBOX_TITLE, lpszCaption);
	}
	_InitLayout(pbNoNotifyLater);

	UINT_PTR nRet = DoModal(hWndParent);
	if (pbNoNotifyLater)
		*pbNoNotifyLater = m_bNoNotifyLater;

	return nRet;
}
Пример #4
0
void CMainDlg::OnNavigateComplete(int id)
{
	if (id == IDC_CTL_IE)
	{
		KillTimer( TIMER_LOADINFO_BIGBTN );

		SetItemVisible(IDC_LOADING_TIP, FALSE);
		SetItemVisible(IDC_CTL_IE, TRUE);
	}
}
Пример #5
0
void CInformationPanel::OnCommand(HWND hwnd,int id,HWND hwndCtl,UINT codeNotify)
{
	switch (id) {
	case CM_PROGRAMINFOPREV:
	case CM_PROGRAMINFONEXT:
		{
			bool fNext=id==CM_PROGRAMINFONEXT;
			CProgramInfoItem *pItem=
				static_cast<CProgramInfoItem*>(GetItem(ITEM_PROGRAMINFO));

			if (fNext!=pItem->IsNext()) {
				pItem->SetNext(fNext);
				RedrawButton(BUTTON_PROGRAMINFOPREV);
				RedrawButton(BUTTON_PROGRAMINFONEXT);
			}
		}
		return;

	default:
		if (id>=CM_INFORMATIONPANEL_ITEM_FIRST
				&& id<CM_INFORMATIONPANEL_ITEM_FIRST+NUM_ITEMS) {
			int Item=id-CM_INFORMATIONPANEL_ITEM_FIRST;

			SetItemVisible(Item,!IsItemVisible(Item));
			return;
		}
	}
}
Пример #6
0
// 设置tab页的可见性(根据tab名字)
void CDuiTabCtrl::SetItemVisible(CString strTabName, BOOL bVisible)
{
	int nItem = GetItemIndex(strTabName);
	if(nItem != -1)
	{
		SetItemVisible(nItem, bVisible);
	}
}
Пример #7
0
void CBeikeSoftMgrPowerSweepDlg::OnDelSelected()
{
	//显示进度
	SetItemVisible(IDC_TEXT_TIP_POWERSWEEP, FALSE);
	SetItemVisible(IDC_PROG_POWERSWEEP, TRUE);

	HTREEITEM	hRoot = m_Tree.GetRootItem();

	m_nCheckNum			= GetTreeCheckedCount( hRoot, TRUE );
	m_nSweepedNumber	= 0;

	if ( m_nCheckNum > 0 )
	{
		KillTimer( 1 );
		EnableItem( IDC_BTN_DEL_SELECTED, FALSE );
		EnableItem( IDCANCEL, FALSE);
		m_Tree.EnableWindow(FALSE);

		m_bSweeping = TRUE;

		//强力清扫行为统计
		int nReportFlag = 0;
		if ( m_bDeleteReg && m_bDeleteFile )
		{
			nReportFlag = 3;
		}
		else if ( m_bDeleteFile && !m_bDeleteReg )
		{
			nReportFlag = 1;
		}
		else if ( !m_bDeleteFile && m_bDeleteReg )
		{
			nReportFlag = 2;
		}


		_PowerSweepThread();

		m_bDeleteReg = FALSE;
		m_bDeleteFile = FALSE;
		m_bHasClearAction = TRUE;
	}

}
Пример #8
0
void CInformationPanel::OnCommand(HWND hwnd,int id,HWND hwndCtl,UINT codeNotify)
{
	if (id>=CM_INFORMATIONPANEL_ITEM_FIRST
			&& id<CM_INFORMATIONPANEL_ITEM_FIRST+NUM_ITEMS) {
		int Item=id-CM_INFORMATIONPANEL_ITEM_FIRST;

		SetItemVisible(Item,!IsItemVisible(Item));
		return;
	}
}
Пример #9
0
LRESULT CDlgIgnoredVuls::OnDoneScan( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
	SetItemVisible(201, FALSE);
	SetItemVisible(300, TRUE);
	
	int count = 0;
	const CSimpleArray<LPTUpdateItem>& arr = theEngine->m_pVulScanIgnored->GetResults();
	ResetListCtrl(m_wndListCtrlVul);
	for(int i=0; i<arr.GetSize(); ++i)
	{
		LPTUpdateItem pItem = arr[i];
		if(pItem->isIgnored)
		{
			++count;
			AppendItemIgnoredList( m_wndListCtrlVul, CreateListItem(pItem) );
		}
	}
	
	_UpdateTitle();

	return 0;
}
Пример #10
0
UINT_PTR CBkSafeMsgBox3::ShowMsg( LPCWSTR lpszText, LPCWSTR lpszCaption /*= NULL*/, LPCWSTR lpszCheckCaption /*= NULL*/, UINT uType /*= MB_OK*/, BOOL *pbNoNotifyLater /*= NULL*/, HWND hWndParent /*= NULL*/ )
{
	if (!Load(IDR_BK_MESSAGEBOX3))
		return -1;

	m_isTextXml = FALSE;
	m_strText = lpszText;
	m_uType = uType;

	SetItemVisible(60016, FALSE);
	SetItemVisible(IDC_LBL_MSGBOX_TEXT, TRUE);
	SetItemText(IDC_LBL_MSGBOX_TEXT, lpszText);
	if (lpszCaption)
	{
		m_strCaption    = lpszCaption;
		SetWindowCaption(m_strCaption);

		SetItemText(IDC_LBL_MSGBOX_TITLE, lpszCaption);
	}

	if ( pbNoNotifyLater != NULL )
	{
		SetItemCheck(IDC_CHK_MSGBOX_NONOTIFYLATER, *pbNoNotifyLater);
		if ( lpszCheckCaption != NULL )
		{
			SetItemText(IDC_CHK_MSGBOX_NONOTIFYLATER, lpszCheckCaption);
		}
	}

	_InitLayout(pbNoNotifyLater);

	UINT_PTR nRet = DoModal(hWndParent);
	if (pbNoNotifyLater)
	{
		*pbNoNotifyLater = m_bNoNotifyLater;
	}

	return nRet;
}
Пример #11
0
void KEditDialogImpl::_RedrawAttrute()
{
    CStringA    strNowXml("<text></text>");
    BOOL        bBtnVisible = FALSE;

    if (m_pNowComp != NULL)
    {
        m_pNowComp->DrawAttrute(strNowXml);

        SetPanelXml(ATTR_OPERATE, strNowXml.GetString());

        m_pNowComp->InitAttrute(m_kEdit);

        bBtnVisible = TRUE;
    }
    else
    {
        SetPanelXml(ATTR_OPERATE, strNowXml.GetString());
    }

    SetItemVisible(SUBMIT_BUTTION, bBtnVisible);
    SetItemVisible(DELETE_BUTTION, bBtnVisible);
}
Пример #12
0
BOOL CBkPlugInfoDlg::OnInitDialog(CWindow wndFocus, LPARAM lInitParam)
{
	m_IconDlg.Create(this->GetViewHWND(), NULL, NULL, WS_CHILD | WS_TABSTOP, NULL, IDC_DOWN_POINT_OUT_ICON);
	m_IconDlg.SetDataRes(m_pData->m_pImage);
	m_IconDlg.SetSmall(TRUE);

	this->FormatRichText(
		IDC_DOWN_POINT_OUT_TITLE, 
		BkString::Get(IDC_DOWN_POINT_OUT_TITLE_FORMAT), 
		m_pData->m_strName );

	int nPos = 50;
	CStringA strPos;
	if (m_pData->m_bCharge == TRUE)
	{
		SetItemVisible(IDC_DOWN_POINT_OUT_IS_CHARGE, TRUE);
		strPos.Format("12,%d,-12,%d", nPos,nPos+12);
		this->SetItemAttribute( IDC_DOWN_POINT_OUT_IS_CHARGE, "pos",strPos );
		nPos += 22;
	}
	else
		SetItemVisible(IDC_DOWN_POINT_OUT_IS_CHARGE, FALSE);

	if (m_pData->m_bPlug == TRUE)
	{
		SetItemVisible(IDC_DOWN_POINT_OUT_WITH_PLUG, TRUE);
		strPos.Format("12,%d,-12,%d", nPos,nPos+12);
		this->SetItemAttribute( IDC_DOWN_POINT_OUT_WITH_PLUG, "pos",strPos );
		nPos += 22;
	}
	else
		SetItemVisible(IDC_DOWN_POINT_OUT_WITH_PLUG, FALSE);

	if ((m_pData->m_attri&SA_Beta) == SA_Beta)
	{
		SetItemVisible(IDC_DOWN_POINT_OUT_IS_BETA, TRUE);
		strPos.Format("12,%d,-12,%d", nPos,nPos+12);
		this->SetItemAttribute( IDC_DOWN_POINT_OUT_IS_BETA, "pos",strPos );
	}
	else
		SetItemVisible(IDC_DOWN_POINT_OUT_IS_BETA, FALSE);

	return TRUE;
}
Пример #13
0
void CBkSafeMsgBox::_InitLayout( BOOL * pbNoNotifyLater )
{
	CString strButtonXmlFormat, strButtons, strButtonDiv;

	_MakeButtons();

	strButtonXmlFormat = BkString::Get(IDS_MSGBOX_BUTTON_XML);

#   define BUTTON_SPACING 20
	UINT uWidth = 0, uLeft = 0;
	POSITION pos = m_lstButton.GetHeadPosition();


	while (pos)
	{
		const __BKMBButton &btn = m_lstButton.GetNext(pos);

		uWidth += btn.uWidth;
		if (pos)
			uWidth += BUTTON_SPACING;
	}

	pos = m_lstButton.GetHeadPosition();

	while (pos)
	{
		const __BKMBButton &btn = m_lstButton.GetNext(pos);

		strButtons.AppendFormat(strButtonXmlFormat, btn.uCmdID, uLeft, uLeft + btn.uWidth, btn.strText);

		uLeft += btn.uWidth + BUTTON_SPACING;
	}

	strButtonDiv.Format(BkString::Get(IDS_MSGBOX_BUTTON_DIV), uWidth / 2, uWidth / 2, strButtons);
	SetPanelXml(IDC_DIV_MSGBOX_BUTTONS, CT2A(strButtonDiv, CP_UTF8));

	DWORD dwIconID = 0;

	if (0 != (MB_ICONMASK & m_uType))
	{
		switch (MB_ICONMASK & m_uType)
		{
		case MB_ICONHAND:
			dwIconID = (DWORD)(DWORD_PTR)IDI_HAND;
			break;
		case MB_ICONQUESTION:
			dwIconID = (DWORD)(DWORD_PTR)IDI_QUESTION;
			break;
		case MB_ICONEXCLAMATION:
			dwIconID = (DWORD)(DWORD_PTR)IDI_EXCLAMATION;
			break;
		case MB_ICONASTERISK:
			dwIconID = (DWORD)(DWORD_PTR)IDI_ASTERISK;
			break;
		default:
            SetItemDWordAttribute(IDC_ICON_MSGBOX_ICON, "src", dwIconID);
            SetItemDWordAttribute(IDC_ICON_MSGBOX_ICON, "oem", 0);
		}

		if (0 != dwIconID)
			SetItemDWordAttribute(IDC_ICON_MSGBOX_ICON, "src", dwIconID);
	}

	if (0 == dwIconID)
		SetItemVisible(IDC_ICON_MSGBOX_ICON, FALSE);

	if (NULL == pbNoNotifyLater)
		SetItemVisible(IDC_CHK_MSGBOX_NONOTIFYLATER, FALSE);
	else
		m_bShowNoNotifyLater = TRUE;
}
Пример #14
0
void CKuiMsgBox::_InitLayout( BOOL * pbNoNotifyLater )
{
	CString strButtonXmlFormat, strButtons, strButtonDiv;
    CString strButtonEx = "<dlg pos=\"0,0,-0,-0\">";
    KAppRes& appRes = KAppRes::Instance();
    BOOL fUseButtonEx = FALSE;

	_MakeButtons();

	strButtonXmlFormat = appRes.GetString("IDS_MSGBOX_BUTTON_XML");

    POSITION pos = m_lstButtonEx.GetHeadPosition();
    while (pos)
    {
        const __BKMBButtonEx &btn = m_lstButtonEx.GetNext(pos);
        CString strBtn;
        strBtn.Format(
            _T("<button id=%d pos=\"%s\" class=normalbtn>%s</button>"),
            btn.uCmdID,
            btn.strPos,
            btn.strText
            );
        strButtonEx += strBtn;
        fUseButtonEx = TRUE;
    }

#   define BUTTON_SPACING 20
	UINT uWidth = 0, uLeft = 0;
	pos = m_lstButton.GetHeadPosition();


	while (pos)
	{
		const __BKMBButton &btn = m_lstButton.GetNext(pos);

		uWidth += btn.uWidth;
		if (pos)
			uWidth += BUTTON_SPACING;
	}

	pos = m_lstButton.GetHeadPosition();

	while (pos)
	{
		const __BKMBButton &btn = m_lstButton.GetNext(pos);

		strButtons.AppendFormat(strButtonXmlFormat, btn.uCmdID, uLeft, uLeft + btn.uWidth, btn.strText);

		uLeft += btn.uWidth + BUTTON_SPACING;
	}

    if (!fUseButtonEx)
    {
        strButtonDiv.Format(appRes.GetString("IDS_MSGBOX_BUTTON_DIV"), uWidth / 2, uWidth / 2, strButtons);
        SetPanelXml(IDC_DIV_MSGBOX_BUTTONS, CT2A(strButtonDiv, CP_UTF8));
        SetItemVisible(IDC_DIV_MSGBOX_BUTTONS+1, FALSE);
    }
    else
    {
        strButtonEx += "</dlg>";
        SetPanelXml(IDC_DIV_MSGBOX_BUTTONS+1, CT2A(strButtonEx, CP_UTF8));
        SetItemVisible(IDC_DIV_MSGBOX_BUTTONS, FALSE);
    }

	CString strIconID;

	if (0 != (MB_ICONMASK & m_uType))
	{
		switch (MB_ICONMASK & m_uType)
		{
		case MB_ICONHAND:
			strIconID = _T("IDI_HAND");
			break;
		case MB_ICONQUESTION:
			strIconID = _T("IDI_QUESTION");
			break;
		case MB_ICONEXCLAMATION:
			strIconID = _T("IDI_EXCLAMATION");
			break;
		case MB_ICONASTERISK:
			strIconID = _T("IDI_ASTERISK");
			break;
		default:
            SetItemStringAttribute(IDC_ICON_MSGBOX_ICON, "src", strIconID);
            SetItemDWordAttribute(IDC_ICON_MSGBOX_ICON, "oem", 0);
		}

		if (strIconID.GetLength())
			SetItemStringAttribute(IDC_ICON_MSGBOX_ICON, "src", strIconID);
	}

	if (0 == strIconID.GetLength())
		SetItemVisible(IDC_ICON_MSGBOX_ICON, FALSE);

	if (NULL == pbNoNotifyLater)
		SetItemVisible(IDC_CHK_MSGBOX_NONOTIFYLATER, FALSE);
	else
		m_bShowNoNotifyLater = TRUE;
}
Пример #15
0
LRESULT CBkSafeMsgBox::OnInitDialog(HWND hWnd, LPARAM lParam)
{
    CWindowDC dc(m_hWnd);
    CRect rcClient, rcCaption, rcText;

    if (m_strCaption.IsEmpty())
        GetWindowText(m_strCaption);

    HMONITOR hMonitor = ::MonitorFromWindow(GetParent(), MONITOR_DEFAULTTONULL/* MONITOR_DEFAULTTONEAREST*/);

    if (hMonitor)
    {
        MONITORINFO mi = {sizeof(MONITORINFO)};
        ::GetMonitorInfo(hMonitor, &mi);

        rcClient = mi.rcWork;
    }
    else
        GetClientRect(rcClient);


	const BkStyle& titleStyle = BkStyle::GetStyle("dlgtitle");
	HFONT hftOld = dc.SelectFont(titleStyle.m_ftText);

	rcCaption = rcClient;
	rcCaption.MoveToXY(0, 0);
	dc.DrawText(m_strCaption, m_strCaption.GetLength(), rcCaption, DT_CALCRECT);
	rcCaption.right += 100;
	
	if(m_isTextXml)
	{
		rcText = m_rcXml;
	}
	else
	{
		rcText = rcClient;
		rcText.MoveToXY(0, 0);

		const BkStyle& textStyle = BkStyle::GetStyle("msgtext");

		dc.SelectFont(textStyle.m_ftText);

		dc.DrawText(m_strText, m_strText.GetLength(), rcText, textStyle.m_nTextAlign | DT_CALCRECT);
	}
	rcText.right += 100;
	rcText.bottom += 120;

    if (m_bShowNoNotifyLater)
	{
        rcText.bottom += 20;
	}

	if ( m_nFuckMode == 1 )
	{
		SetItemVisible(10001, FALSE);
		SetItemVisible(10002, TRUE);
	}
	
    dc.SelectFont(hftOld);

	rcClient.right = rcClient.left + max(max(rcCaption.right, rcText.right), 320);
    rcClient.bottom = rcClient.top + max(rcText.bottom, 160);

    MoveWindow(rcClient, FALSE);

	

    return TRUE;
}
Пример #16
0
void CDlgIgnoredVuls::OnBkBtnScan()
{
	theEngine->ScanIgnored( m_hWnd );
	SetItemVisible(201, TRUE);
	SetItemVisible(300, FALSE);
}
Пример #17
0
void CDlgIgnoredVuls::OnBkBtnCancelScan()
{
	theEngine->CancelScanIgnored();
	SetItemVisible(201, FALSE);
	SetItemVisible(300, TRUE);
}
LRESULT CBeikeSafeInstallKavEngineDlg::OnAppInstallProgress(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    int nProgress = 0;

    BOOL bStepChanged = (wParam != m_nCurrentStep);

    switch (wParam)
    {
    case StepDownload:
        nProgress = lParam * 4 / 10;
    	break;
    case StepInstall:
        nProgress = 40 + lParam / 20;
        if (bStepChanged)
        {
            SetItemText(IDC_LBL_PROGRESS, BkString::Get(IDS_VIRSCAN_2577));
        }
        break;
    case StepCheckUpdate:
        nProgress = 45;
        if (bStepChanged)
        {
            m_wndListProgress.AddItem(m_wndListProgress.GetItemCount(), 0, BkString::Get(IDS_VIRSCAN_2578), 2);
            m_wndListProgress.AddItem(m_wndListProgress.GetItemCount(), 0, BkString::Get(IDS_VIRSCAN_2579), 4);
            SetItemText(IDC_LBL_PROGRESS, BkString::Get(IDS_VIRSCAN_2580));
        }
        break;
    case StepUpdate:
        nProgress = 50 + lParam / 2;
        if (bStepChanged)
        {
            m_wndListProgress.DeleteItem(m_wndListProgress.GetItemCount() - 1);
            m_wndListProgress.AddItem(m_wndListProgress.GetItemCount(), 0, BkString::Get(IDS_VIRSCAN_2581), 4);
            SetItemText(IDC_LBL_PROGRESS, BkString::Get(IDS_VIRSCAN_2582));
        }
        if (-1 == lParam)
        {
            m_wndListProgress.DeleteItem(m_wndListProgress.GetItemCount() - 1);
            m_wndListProgress.AddItem(m_wndListProgress.GetItemCount(), 0, BkString::Get(IDS_VIRSCAN_2583), 2);
        }
        else if (100 == lParam)
        {
            m_wndListProgress.DeleteItem(2);
            m_wndListProgress.AddItem(2, 0, BkString::Get(IDS_VIRSCAN_2584), 2);
        }
        break;
    case StepFinish:
        if (bStepChanged)
        {
            int nItem = 0;
            BOOL bFailed = FALSE;

            switch (lParam)
            {
            case 1:
                if (0 == m_nUpdatingFileItem)
                {
                    if (StepDownload == m_nCurrentStep)
                    {
                        m_wndListProgress.SetItemText(0, 0, BkString::Get(IDS_VIRSCAN_2585));
                        m_wndListProgress.SetItemText(0, 1, BkString::Get(IDS_VIRSCAN_2586));
                        m_wndListProgress.SetItem(0, 0, LVIF_IMAGE, NULL, 0, 0, 0, 0);
                    }
                }
                else
                {
                    while (m_nUpdatingFileItem < m_wndListProgress.GetItemCount())
                    {
                        m_wndListProgress.SetItemText(m_nUpdatingFileItem, 1, BkString::Get(IDS_VIRSCAN_2586));
                        m_wndListProgress.SetItem(m_nUpdatingFileItem, 0, LVIF_IMAGE, NULL, 0, 0, 0, 0);
                        m_nUpdatingFileItem ++;
                    }
                }
                nItem = m_wndListProgress.AddItem(m_wndListProgress.GetItemCount(), 0, BkString::Get(IDS_VIRSCAN_2587), 0);
                SetItemText(IDC_LBL_PROGRESS, BkString::Get(IDS_VIRSCAN_2587));
                break;

            case 2: // ÏÂÔØʧ°Ü
                m_wndListProgress.SetItemText(0, 0, BkString::Get(IDS_VIRSCAN_2588));
                m_wndListProgress.SetItemText(0, 1, L"");
                m_wndListProgress.SetItem(0, 0, LVIF_IMAGE, NULL, 9, 0, 0, 0);
                bFailed = TRUE;
                break;
            case 3: // °²×°Ê§°Ü
                m_wndListProgress.SetItemText(1, 0, BkString::Get(IDS_VIRSCAN_2589));
                m_wndListProgress.SetItemText(1, 1, L"");
                m_wndListProgress.SetItem(0, 0, LVIF_IMAGE, NULL, 9, 0, 0, 0);
                bFailed = TRUE;
                break;
            case 4: // Éý¼¶Ê§°Ü
                m_wndListProgress.SetItemText(2, 0, BkString::Get(IDS_VIRSCAN_2590));
                m_wndListProgress.SetItemText(2, 1, L"");
                m_wndListProgress.SetItem(2, 0, LVIF_IMAGE, NULL, 9, 0, 0, 0);

                if (0 != m_nUpdatingFileItem)
                {
                    for (; m_nUpdatingFileItem < m_wndListProgress.GetItemCount(); m_nUpdatingFileItem ++)
                    {
                        m_wndListProgress.SetItemText(m_nUpdatingFileItem, 1, BkString::Get(IDS_VIRSCAN_2591));
                        m_wndListProgress.SetItem(m_nUpdatingFileItem, 0, LVIF_IMAGE, NULL, 9, 0, 0, 0);
                    }
                }
            case 0: // ³É¹¦
                KavEngine::Enable(TRUE);

                nItem = m_wndListProgress.AddItem(m_wndListProgress.GetItemCount(), 0, BkString::Get(IDS_VIRSCAN_2592), 2);
                SetItemText(IDC_LBL_PROGRESS, BkString::Get(IDS_VIRSCAN_2592));
                break;
            }

            if (bFailed)
            {
                nItem = m_wndListProgress.AddItem(m_wndListProgress.GetItemCount(), 0, BkString::Get(IDS_VIRSCAN_2593), 9);
                SetItemText(IDC_LBL_PROGRESS, BkString::Get(IDS_VIRSCAN_2593));
            }

            nProgress = 100;

            {
                KavEngine::UnregisterInstalling(m_hMutex);
                BeikeSafe::Navigate(BKSFNS_MAKE(BKSFNS_UI, BKSFNS_AVE_INSTALL_FINISH));
            }

            m_wndListProgress.EnsureVisible(nItem, TRUE);

            SetItemVisible(IDC_DIV_INSAVE_WORKING, FALSE);
            SetItemVisible(IDC_DIV_INSAVE_FINISH, TRUE);

            if (NULL == ::GetActiveWindow())
                FlashWindow(TRUE);
        }
        break;
    }

    m_nCurrentStep = wParam;

    if (m_nProgress < nProgress)
    {
        m_nProgress = nProgress;
        SetItemIntAttribute(IDC_PROGRESS_INSTALL, "value", nProgress);
    }

    return 0;
}