void SetListCheckedAll(CListViewCtrlEx &listCtrl,bool bCheck) { for(int i=0; i<listCtrl.GetItemCount(); ++i) { listCtrl.SetCheckState(i, bCheck); } }
void ListDeleteItems(CListViewCtrlEx &listCtrl, CSimpleArray<int> &arr) { for(int i=listCtrl.GetItemCount()-1; i>=0; --i) { T_VulListItemData *pItem = (T_VulListItemData*)listCtrl.GetItemData(i); if(pItem && arr.Find(pItem->nID)!=-1) { listCtrl.DeleteItem( i ); } } }
bool GetListCheckedItems(CListViewCtrlEx &listCtrl, CSimpleArray<int> &arr, BOOL *pIsRadio) { if(pIsRadio) *pIsRadio = FALSE; for(int i=0; i<listCtrl.GetItemCount(); ++i) { if( listCtrl.GetCheckState(i, pIsRadio) ) { T_VulListItemData *pItem = (T_VulListItemData*) listCtrl.GetItemData( i ); if(pItem) arr.Add( pItem->nID ); } } return arr.GetSize()>0; }
bool GetListCheckedItems(CListViewCtrlEx &listCtrl, CSimpleArray<int> &arr) { for(int i=0; i<listCtrl.GetItemCount(); ++i) { if( listCtrl.GetCheckState(i) ) { T_VulListItemData *pItem = (T_VulListItemData*) listCtrl.GetItemData( i ); if(pItem) arr.Add( pItem->nID ); } } if(arr.GetSize()==0) { ::MessageBox(NULL, _T("没有选择内容"), NULL, MB_OK); } return arr.GetSize()>0; }
int RepairCOMVul(CListViewCtrlEx &listCtrl, bool bRepairAll) { int count = 0; for(int i=0; i<listCtrl.GetItemCount(); ++i) { if(bRepairAll || listCtrl.GetCheckState(i)) { T_VulListItemData *pItem = (T_VulListItemData*) listCtrl.GetItemData( i ); ATLASSERT(pItem); if(pItem && pItem->nType==VTYPE_SOFTLEAK) { int state = GetSoftItemState( pItem ); if(state==VUL_DISABLE_COM) { ++count; theEngine->m_pSoftVulScan->EnableVulCOM( pItem->nID, FALSE ); } } } } return count; }
static int AppendItemIgnoredList( CListViewCtrlEx &listCtrl, T_VulListItemData * pVulItem ) { CString strTitle; strTitle.Format(_T("KB%d"), pVulItem->nID); int nItem = listCtrl.Append( GetLevelDesc(pVulItem->nWarnLevel), true ); listCtrl.AppendSubItem(nItem, pVulItem->strPubDate); listCtrl.AppendSubItem(nItem, strTitle); listCtrl.AppendSubItem(nItem, pVulItem->strName); listCtrl.AppendSubItem(nItem, _T("更多信息"), SUBITEM_LINK); listCtrl.SetItemData(nItem, (DWORD_PTR)pVulItem); return nItem; }
int AppendItem2List( CListViewCtrlEx &listCtrl, T_VulListItemData * pVulItem ) { CString strTitle; strTitle.Format(_T("KB%d"), pVulItem->nID); LPCTSTR lpszWarnDesc = GetLevelDesc(pVulItem->nWarnLevel); int nItem = listCtrl.Append(lpszWarnDesc, pVulItem->nWarnLevel>=0); listCtrl.AppendSubItem(nItem, strTitle); listCtrl.AppendSubItem(nItem, pVulItem->strName); listCtrl.AppendSubItem(nItem, pVulItem->strPubDate); listCtrl.AppendSubItem(nItem, pVulItem->nWarnLevel==-1 ? _T("无需修复") : (pVulItem->nWarnLevel>0 ? _T("未修复") : _T("可不修复")) ); if(pVulItem->nWarnLevel>3) listCtrl.SetSubItemColor(nItem, 0, red, false); listCtrl.SetItemData(nItem, (DWORD_PTR)pVulItem); return nItem; }
int AppendItem2List( CListViewCtrlEx &listCtrl, T_VulListItemData * pVulItem ) { CString strTitle; FormatKBString(pVulItem->nID, strTitle); LPCTSTR lpszWarnDesc = GetLevelDesc(pVulItem->nWarnLevel); int nItem = listCtrl.Append(lpszWarnDesc, pVulItem->nWarnLevel>=0 ? LISTITEM_CHECKBOX:0); listCtrl.AppendSubItem(nItem, strTitle); listCtrl.AppendSubItem(nItem, pVulItem->strName); listCtrl.AppendSubItem(nItem, pVulItem->strPubDate); listCtrl.AppendSubItem( nItem, pVulItem->nWarnLevel == -1 ? BkString::Get(IDS_VULFIX_5106) : (pVulItem->nWarnLevel > 0 ? BkString::Get(IDS_VULFIX_5107) : BkString::Get(IDS_VULFIX_5108)) ); if(pVulItem->nWarnLevel>3) listCtrl.SetSubItemColor(nItem, 0, red, false); /*listCtrl.SetItemData(nItem, (DWORD_PTR)pVulItem);*/ listCtrl.SetItemData(nItem, (DWORD)pVulItem); return nItem; }