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(); 
}