www.pudn.com > IPFlood.rar > AddTaskDlg.cpp
// AddTaskDlg.cpp : implementation file
//
#include "stdafx.h"
#include "IPFlood.h"
#include "AddTaskDlg.h"
#include "IPFloodDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAddTaskDlg dialog
CAddTaskDlg::CAddTaskDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAddTaskDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAddTaskDlg)
//}}AFX_DATA_INIT
}
void CAddTaskDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAddTaskDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAddTaskDlg, CDialog)
//{{AFX_MSG_MAP(CAddTaskDlg)
ON_BN_CLICKED(IDC_IPRANDOM, OnIprandom)
ON_BN_CLICKED(IDC_LOCALIP, OnLocalip)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAddTaskDlg message handlers
void CAddTaskDlg::OnIprandom()
{
// TODO: Add your control notification handler code here
m_IpRandom=!m_IpRandom;
if(m_IpRandom)
{
m_CIpSrcIp.EnableWindow(false);
m_LocalIp=false;
}else
{
m_CIpSrcIp.EnableWindow(true);
m_LocalIp=true;
}
UpdateData(false);
}
void CAddTaskDlg::OnLocalip()
{
// TODO: Add your control notification handler code here
m_LocalIp=!m_LocalIp;
if(m_LocalIp)
{
m_CIpSrcIp.EnableWindow(true);
m_IpRandom=false;
}else
{
m_CIpSrcIp.EnableWindow(false);
m_IpRandom=true;
}
UpdateData(false);
}
void CAddTaskDlg::OnOK()
{
// TODO: Add extra validation here
int ret=UpdateData(true);
if(ret==0)
return;
CIPFloodDlg *pMainDlg=(CIPFloodDlg *)this->GetParent ();
pTaskItem pItem,tmp;
pItem= new TaskItem;
tmp=pMainDlg->pTaskList;
UINT i=0;
while(tmp)
if(i==tmp->m_TaskID )
{i++;tmp=pMainDlg->pTaskList;continue;}
else tmp=tmp->next ;
pItem->m_TaskID =i;
pItem->m_IpProtocol =m_IpProtocol;
pItem->m_IpTos=m_IpTos;
pItem->m_IpTtl=m_IpTtl;
pItem->m_IpLen=m_IpLen;
pItem->m_IpFragOffset=m_IpFragOffset;
pItem->m_IpId=m_IpId;
pItem->m_IcmpCode=m_IcmpCode;
pItem->m_IcmpType=m_IcmpType;
pItem->m_UdpDestPort=m_UdpDestPort;
pItem->m_UdpSrcPort=m_UdpSrcPort;
pItem->m_IpPps=m_IpPps;
pItem->m_IpNumber=m_IpNumber;
pItem->m_LocalIp=m_LocalIp;
pItem->m_IpFrag=m_IpFrag;
pItem->m_State =false;
pItem->m_IpSrcIp=(char *)malloc(m_IpSrcIp.GetLength ()+1);
strcpy((char *)(pItem->m_IpSrcIp),m_IpSrcIp.operator LPCTSTR ());
pItem->m_IpDestIp=(char *)malloc(m_IpDestIp.GetLength ()+1);
strcpy((char *)(pItem->m_IpDestIp),m_IpDestIp.operator LPCTSTR ());
pItem->next =NULL;
if(!pMainDlg->pTaskList )
pMainDlg->pTaskList=pItem;
else
{
tmp=pMainDlg->pTaskList;
while(tmp->next )
tmp=tmp->next ;
tmp->next =pItem;
}
char sz[16];
LVITEM li;
li.iItem=255;
sprintf(sz,"%d",i);
li.pszText=sz;
li.mask=LVIF_TEXT;
li.iSubItem=0;
int iItem=ListView_InsertItem(pMainDlg->m_TaskList .m_hWnd ,&li);
ListView_SetItemText(pMainDlg->m_TaskList .m_hWnd,iItem,1,(char *)(pItem->m_IpSrcIp));
sprintf(sz,"%d",m_IpProtocol);
ListView_SetItemText(pMainDlg->m_TaskList .m_hWnd,iItem,2,sz);
sprintf(sz,"%d",m_IpPps);
ListView_SetItemText(pMainDlg->m_TaskList .m_hWnd,iItem,3,sz);
sprintf(sz,"%d",m_IpNumber);
ListView_SetItemText(pMainDlg->m_TaskList .m_hWnd,iItem,5,sz);
sprintf(sz,"%s",m_LocalIp?"固定":"可变/指定");
ListView_SetItemText(pMainDlg->m_TaskList .m_hWnd,iItem,6,sz);
CDialog::OnOK();
}