void CuDlgMain::DisplayDifference(UINT nMask) { CuDlgPageDifference* pDlgPageOtherHost = NULL; CuDlgPageDifference* pDlgPageVNode = NULL; TCITEM item; memset (&item, 0, sizeof (item)); item.mask = TCIF_PARAM; m_cTab1.GetItem(0, &item); CuDlgPageDifference* pDlgPageConfig = (CuDlgPageDifference*)item.lParam; m_cTab1.GetItem(1, &item); CuDlgPageDifference* pDlgPageEnvSystem = (CuDlgPageDifference*)item.lParam; m_cTab1.GetItem(2, &item); CuDlgPageDifference* pDlgPageEnvUser = (CuDlgPageDifference*)item.lParam; #if defined (_VIRTUAL_NODE_AVAILABLE) m_cTab1.GetItem(3, &item); pDlgPageVNode = (CuDlgPageDifference*)item.lParam; #endif if (m_cTab1.GetItem(OTHER_HOST_INDEX, &item)) pDlgPageOtherHost = (CuDlgPageDifference*)item.lParam; if (nMask & PARAM_GENERAL) m_compareParam.CleanIgnore(); CString strValue1; CString strValue2; CaCdaDifference* pObj = NULL; POSITION pos = m_listDifference.GetHeadPosition(); while (pos != NULL) { int nImage = -1; CaCdaDifference* pObj = m_listDifference.GetNext(pos); strValue1 = pObj->GetValue1(); strValue2 = pObj->GetValue2(); TCHAR& c = pObj->GetDifference(); switch (c) { case _T('+'): nImage = 0; strValue2 = _T("n/a"); break; case _T('-'): nImage = 1; strValue1 = _T("n/a"); break; case _T('!'): nImage = 2; break; case _T('='): nImage = 3; break; default: break; } if (nMask & PARAM_GENERAL) { if (c != _T('=') && pObj->GetType() == CDA_GENERAL) { int nIdx = 0; int nCount = m_listMainParam.GetItemCount(); nIdx = m_listMainParam.InsertItem (nCount, pObj->GetName(), nImage); m_listMainParam.SetItemText (nIdx, 1, strValue1); m_listMainParam.SetItemText (nIdx, 2, strValue2); if (PrecheckIgnore(pObj->GetName())) { m_listMainParam.SetCheck(nIdx, 3, TRUE); m_compareParam.AddIgnore(pObj->GetName()); } m_listMainParam.SetItemData(nCount, (LPARAM)pObj); } } if (nMask & PARAM_CONFIGxENV) { switch (pObj->GetType()) { case CDA_CONFIG: if (pDlgPageConfig) { if (!pObj->GetHost().IsEmpty()) { if (pObj->GetHost().CompareNoCase(m_compareParam.GetHost1()) != 0 && pObj->GetHost().CompareNoCase(m_compareParam.GetHost2()) != 0 ) break; } CListCtrl* pListCtrl = pDlgPageConfig->GetListCtrl(); int nIdx = 0; int nCount = pListCtrl->GetItemCount(); nIdx = pListCtrl->InsertItem (nCount, pObj->GetName(), nImage); pListCtrl->SetItemText (nIdx, 1, strValue1); pListCtrl->SetItemText (nIdx, 2, strValue2); } break; case CDA_ENVSYSTEM: if (pDlgPageEnvSystem) { CListCtrl* pListCtrl = pDlgPageEnvSystem->GetListCtrl(); int nIdx = 0; int nCount = pListCtrl->GetItemCount(); nIdx = pListCtrl->InsertItem (nCount, pObj->GetName(), nImage); pListCtrl->SetItemText (nIdx, 1, strValue1); pListCtrl->SetItemText (nIdx, 2, strValue2); } break; case CDA_ENVUSER: if (pDlgPageEnvUser) { CListCtrl* pListCtrl = pDlgPageEnvUser->GetListCtrl(); int nIdx = 0; int nCount = pListCtrl->GetItemCount(); nIdx = pListCtrl->InsertItem (nCount, pObj->GetName(), nImage); pListCtrl->SetItemText (nIdx, 1, strValue1); pListCtrl->SetItemText (nIdx, 2, strValue2); } break; case CDA_VNODE: #if defined (_VIRTUAL_NODE_AVAILABLE) if (pDlgPageVNode) { CListCtrl* pListCtrl = pDlgPageVNode->GetListCtrl(); int nIdx = 0; int nCount = pListCtrl->GetItemCount(); nIdx = pListCtrl->InsertItem (nCount, pObj->GetName(), nImage); pListCtrl->SetItemText (nIdx, 1, strValue1); pListCtrl->SetItemText (nIdx, 2, strValue2); } #endif break; default: break; } } } // // Other configured host names: if (nMask && PARAM_OTHERHOST) { pos = m_listDifferenceOtherHost.GetHeadPosition(); while (pos != NULL) { CaCdaDifference* pObj = m_listDifferenceOtherHost.GetNext(pos); strValue1 = pObj->GetValue1(); strValue2 = pObj->GetValue2(); TCHAR& c = pObj->GetDifference(); int nImage = GetImageIndex(c); switch (c) { case _T('+'): strValue2 = _T("n/a"); break; case _T('-'): strValue1 = _T("n/a"); break; default: break; } switch (pObj->GetType()) { case CDA_CONFIG: if (pDlgPageOtherHost) { CListCtrl* pListCtrl = pDlgPageOtherHost->GetListCtrl(); int nIdx = 0; int nCount = pListCtrl->GetItemCount(); nIdx = pListCtrl->InsertItem (nCount, pObj->GetName(), nImage); pListCtrl->SetItemText (nIdx, 1, strValue1); pListCtrl->SetItemText (nIdx, 2, strValue2); } break; default: break; } } } }