www.pudn.com > 18900_netwall_lite.rar > DisplayRuleView.cpp
// DisplayRuleView.cpp : implementation file
//
#include "stdafx.h"
#include "netwall.h"
#include "DisplayRuleView.h"
#include "MainFrm.h"
#include "RuleUtil.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDisplayRuleView
IMPLEMENT_DYNCREATE(CDisplayRuleView, CFormView)
CDisplayRuleView::CDisplayRuleView()
: CFormView(CDisplayRuleView::IDD)
{
//{{AFX_DATA_INIT(CDisplayRuleView)
m_strAction = _T("");
m_strDirection = _T("");
m_strProtocol = _T("");
m_strUse = _T("");
m_strSrcStartIP = _T("");
m_strSrcEndIP = _T("");
m_strSrcStartPort = _T("");
m_strSrcEndPort = _T("");
m_strDstStartIP = _T("");
m_strDstEndIP = _T("");
m_strDstStartPort = _T("");
m_strDstEndPort = _T("");
m_strMemo = _T("");
m_strAdapterName = _T("");
//}}AFX_DATA_INIT
}
CDisplayRuleView::~CDisplayRuleView()
{
}
void CDisplayRuleView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDisplayRuleView)
DDX_Text(pDX, IDC_VIEW_RULE_ACTION, m_strAction);
DDX_Text(pDX, IDC_VIEW_RULE_DIRECTION, m_strDirection);
DDX_Text(pDX, IDC_VIEW_RULE_PROTOCOL, m_strProtocol);
DDX_Text(pDX, IDC_VIEW_RULE_USE, m_strUse);
DDX_Text(pDX, IDC_VIEW_RULE_SRCSTARTIP, m_strSrcStartIP);
DDX_Text(pDX, IDC_VIEW_RULE_SRCENDIP, m_strSrcEndIP);
DDX_Text(pDX, IDC_VIEW_RULE_SRCSTARTPORT, m_strSrcStartPort);
DDX_Text(pDX, IDC_VIEW_RULE_SRCENDPORT, m_strSrcEndPort);
DDX_Text(pDX, IDC_VIEW_RULE_DSTSTARTIP, m_strDstStartIP);
DDX_Text(pDX, IDC_VIEW_RULE_DSTENDIP, m_strDstEndIP);
DDX_Text(pDX, IDC_VIEW_RULE_DSTSTARTPORT, m_strDstStartPort);
DDX_Text(pDX, IDC_VIEW_RULE_DSTENDPORT, m_strDstEndPort);
DDX_Text(pDX, IDC_VIEW_RULE_MEMO, m_strMemo);
DDX_Text(pDX, IDC_ADAPTER, m_strAdapterName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDisplayRuleView, CFormView)
//{{AFX_MSG_MAP(CDisplayRuleView)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDisplayRuleView diagnostics
#ifdef _DEBUG
void CDisplayRuleView::AssertValid() const
{
CFormView::AssertValid();
}
void CDisplayRuleView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CDisplayRuleView message handlers
void CDisplayRuleView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
// TODO: Add your specialized code here and/or call the base class
UINT nType = (UINT)lHint;
switch (nType)
{
case RULEITEM:
RefreshRuleItem((PRULE_ITEM)pHint);
break;
default:
break;
}
((CMainFrame *)AfxGetMainWnd())->SendMessage(WM_SIZE);
}
BOOL CDisplayRuleView::RefreshRuleItem(RULE_ITEM *pItem)
{
ASSERT(pItem);
// Protocol
char * pTemp = CRuleUtil::GetProtocolDescById(pItem->iProto);
m_strProtocol = _T(pTemp);
// Direction
pTemp = CRuleUtil::GetDescByDirectionId(pItem->ucDirection);
m_strDirection = _T(pTemp);
// Action
pTemp = CRuleUtil::GetDescByActionId(pItem->ucAction);
m_strAction = _T(pTemp);
// Use
pTemp = pItem->bUse == 1 ? "ʹÓÃ" : "½ûÓÃ";
m_strUse = _T(pTemp);
// Source Start IP
DWORD dwStartIP = pItem->ulSrcStartIp;
TCHAR szBuf[40];
RtlZeroMemory(szBuf, 40);
_stprintf(szBuf, "%d.%d.%d.%d",
(dwStartIP >> 24) & 0xFF, (dwStartIP >> 16) & 0xFF, (dwStartIP >> 8) & 0xFF, dwStartIP & 0xFF);
m_strSrcStartIP = _T(szBuf);
// Source End IP
DWORD dwEndIP = pItem->ulSrcEndIp;
RtlZeroMemory(szBuf, 40);
_stprintf(szBuf, "%d.%d.%d.%d",
(dwEndIP >> 24) & 0xFF, (dwEndIP >> 16) & 0xFF, (dwEndIP >> 8) & 0xFF, dwEndIP & 0xFF);
m_strSrcEndIP = _T(szBuf);
// Source StartPort
RtlZeroMemory(szBuf, 40);
_stprintf(szBuf, "%d", pItem->usSrcStartPort);
m_strSrcStartPort = _T(szBuf);
// Source End Port
RtlZeroMemory(szBuf, 40);
_stprintf(szBuf, "%d", pItem->usSrcEndPort);
m_strSrcEndPort = _T(szBuf);
// Destination Start IP
dwStartIP = pItem->ulDestStartIp;
RtlZeroMemory(szBuf, 40);
_stprintf(szBuf, "%d.%d.%d.%d",
(dwStartIP >> 24) & 0xFF, (dwStartIP >> 16) & 0xFF, (dwStartIP >> 8) & 0xFF, dwStartIP & 0xFF);
m_strDstStartIP = _T(szBuf);
// Destination End IP
dwEndIP = pItem->ulDestEndIp;
RtlZeroMemory(szBuf, 40);
_stprintf(szBuf, "%d.%d.%d.%d",
(dwEndIP >> 24) & 0xFF, (dwEndIP >> 16) & 0xFF, (dwEndIP >> 8) & 0xFF, dwEndIP & 0xFF);
m_strDstEndIP = _T(szBuf);
// Destination Start Port
RtlZeroMemory(szBuf, 40);
_stprintf(szBuf, "%d", pItem->usDestStartPort);
m_strDstStartPort = _T(szBuf);
// Destination End Port
RtlZeroMemory(szBuf, 40);
_stprintf(szBuf, "%d", pItem->usDestEndPort);
m_strDstEndPort = _T(szBuf);
// Description
m_strMemo = _T(pItem->chMsg);
// Adapter Name
m_strAdapterName = ((CMainFrame *)AfxGetMainWnd())->m_strFriendlyAdapterName;
UpdateData(FALSE);
return TRUE;
}