www.pudn.com > TCPIPAnalyse1.rar > IrisAnalyseViewR.cpp
// IrisAnalyseViewR.cpp : implementation file
//
#include "stdafx.h"
#include "irisanalyse.h"
#include "IrisAnalyseViewR.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CIrisAnalyseViewR
IMPLEMENT_DYNCREATE(CIrisAnalyseViewR, CListView)
CIrisAnalyseViewR::CIrisAnalyseViewR()
{
m_nFileLength = 0;
}
CIrisAnalyseViewR::~CIrisAnalyseViewR()
{
}
BEGIN_MESSAGE_MAP(CIrisAnalyseViewR, CListView)
//{{AFX_MSG_MAP(CIrisAnalyseViewR)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIrisAnalyseViewR drawing
void CIrisAnalyseViewR::OnDraw(CDC* pDC)
{
CIrisAnalyseDoc * pDoc = GetDocument();
// TODO: add draw code here
pDC->MoveTo(20,20);
pDC->LineTo(100,100);
AfxMessageBox("OnDraw");
m_nFileLength = pDoc->GetDataLen();
}
/////////////////////////////////////////////////////////////////////////////
// CIrisAnalyseViewR diagnostics
#ifdef _DEBUG
void CIrisAnalyseViewR::AssertValid() const
{
CListView::AssertValid();
}
void CIrisAnalyseViewR::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
CIrisAnalyseDoc* CIrisAnalyseViewR::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CIrisAnalyseDoc)));
return (CIrisAnalyseDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CIrisAnalyseViewR message handlers
void CIrisAnalyseViewR::OnInitialUpdate()
{
//CListView::OnInitialUpdate();
CIrisAnalyseDoc* pDoc = GetDocument();
// TODO: Add your specialized code here and/or call the base class
CListCtrl& lc = GetListCtrl();
::SendMessage(lc.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
// Add a couple of columns
int i;
static LV_COLUMN cols[5] =
{
{ LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH, 0,50, "NO"},
{ LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH, 0,250, "DATA"},
{ LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH, 0,70, "TCP" },
{ LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH, 0,100, "IP" },
{ LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH, 0,100, "MAC" },
};
const int NUMCOLS = sizeof(cols)/sizeof(cols[0]);
for(i = 0; iSetWindowText("hello");
CIrisAnalyseDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CListCtrl& lcr = GetListCtrl();
/////////////////////////////////
char temp2[20];
strcpy(temp2,(char *)pDoc->m_sHead.buff);
TCPIPPKG *pr,*p;
pr=pDoc->m_pRightDataHead;
p=pDoc->m_pLeftDataHead;
//////////////////////////////////////////
int i;
// int NoRight = 0;
CString s;
for(i=0;pr!=NULL;i++)
{
unsigned char temp[100][48];
//display left no
s.Format("[%d]",pr->Num);//NoRight);
lcr.InsertItem(i,s);
//if data without above of two clu
if( (pr->nLine==0) ||( pr->nLine==1) )
{
if(pr->DataLen!=0)
{
int nRetData=pDoc->HexToAscll(&temp[0][0],
pr->databuff,
pr->DataLen);
lcr.SetItemText(i,1,(char*)temp);
}
else
{
if (pr->tcppkg.SrcPort == 0)
{
lcr.SetItemText(i,1,"[-----]");//ARP---add by chenjw
}
else
{
lcr.SetItemText(i,1,"[NULL]");//no data
}
}
//display left tcp srcport
if (pr->tcppkg.SrcPort == 0)
{
lcr.SetItemText(i,2,"[-----]");//ARP---add by chenjw
}
else
{
CString tcptemp;
tcptemp.Format(TEXT("%d"),pr->tcppkg.SrcPort);
lcr.SetItemText(i,2,tcptemp);
}
//display left ip srcip
CString iptemp;
iptemp.Format(TEXT(" %d.%d.%d.%d"),
pr->ippkg.srcIP[0],
pr->ippkg.srcIP[1],
pr->ippkg.srcIP[2],
pr->ippkg.srcIP[3]);
lcr.SetItemText(i,3,iptemp);
//display left mac srcaddr
int nRetMac=pDoc->HexToAscll(&temp[0][0],
pr->macpkg.SrcAddr,6);
lcr.SetItemText(i,4,(char*)temp);
}
else //have many clu data
{
int j;
int nRetData=pDoc->HexToAscll(&temp[0][0],
pr->databuff,
pr->DataLen);
lcr.SetItemText(i,1,(char*)&temp[0][0]);
CString tcptemp;
tcptemp.Format(TEXT("%d"),pr->tcppkg.SrcPort);
lcr.SetItemText(i,2,tcptemp);
CString iptemp;
iptemp.Format(TEXT(" %d.%d.%d.%d"),
pr->ippkg.srcIP[0],
pr->ippkg.srcIP[1],
pr->ippkg.srcIP[2],
pr->ippkg.srcIP[3]);
lcr.SetItemText(i,3,iptemp);
int nRetMac=pDoc->HexToAscll(&temp[0][0],
pr->macpkg.SrcAddr,6);
lcr.SetItemText(i,4,(char*)temp);
for(j=1;jHexToAscll(&temp[0][0],
pr->databuff,
pr->DataLen);
lcr.SetItemText(i+j,1,(char*)&temp[j][0]);
lcr.SetItemText(i+j,2," ");
lcr.SetItemText(i+j,3," ");
lcr.SetItemText(i+j,4," ");
}
//return i value
i+=pr->nLine-1;
}
pr=pr->next;
}//for(;;)
return 0;
}
///////////////////////////////////////////////////