MainFrm.h
上传用户:hbytqc8
上传日期:2014-07-31
资源大小:527k
文件大小:4k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. // MainFrm.h : interface of the CMainFrame class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_MAINFRM_H__E6C940E7_31C3_4826_8A9D_B01184F08820__INCLUDED_)
  5. #define AFX_MAINFRM_H__E6C940E7_31C3_4826_8A9D_B01184F08820__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "MyStringArray.h"
  10. #include "MapView.h"
  11. #include "NetMapView.h"
  12. #include "VlanView.h"
  13. #include "MyImage.h"
  14. #include <AfxTempl.h>
  15. class CMainFrame : public CFrameWnd
  16. {
  17. protected: // create from serialization only
  18. CMainFrame();
  19. DECLARE_DYNCREATE(CMainFrame)
  20. // Attributes
  21. public:
  22. HTREEITEM HRoot;
  23. HTREEITEM HCurrent;
  24. HTREEITEM HSelect;
  25. CArray <HTREEITEM,HTREEITEM> NodeArray;
  26. //为简化树的遍历,维护一个树中所有节点句柄组成的动态数组;
  27. CSplitterWnd h,v;
  28. //分割主窗口;
  29. CMapView *pListView;
  30. CNetMapView *pNetMapView;
  31. CVlanView *pVlanView;
  32. //保存指向三个视图的指针;
  33. MyStringArray m_snmp,m_temp; 
  34. struct neighbor
  35. {
  36.    HTREEITEM Id;
  37.    //邻居节点的句柄;
  38.    CString localport;
  39.    CString remoteport;
  40. };
  41. //保存连接信息的结构,一个节点的每个物理连接对应这样的一个结构。
  42. //由于一个节点的连接数目不确定,因此下面的结构中将这个结构作为
  43. //一个动态数组中的元素定义;
  44. struct NodeData
  45. {
  46. CString ip;
  47. CString sysDescr;
  48. bool scan;
  49. int level;
  50. int position;
  51. bool router;
  52.     CMyImage *pImage;
  53.     CArray <neighbor,neighbor&> m_neighbor; 
  54. };
  55. //用来存放节点信息的结构;
  56. NodeData *pNodeData;
  57. //指向该结构的指针;
  58. ///////////Valn Added Data//////////////////////
  59. int SeletedIndex;
  60. CMapStringToString M2I,Name2Id,TempMap;
  61. //保存主机物理地址与IP地址的影射表;
  62. struct port
  63. {
  64. CString PortName;
  65. CString PortIndex;
  66. };
  67. //保存每个VLAN中的端口信息;
  68. struct Vlan
  69. {
  70. CString Id;
  71. CString Name;
  72. CString State;
  73.     CArray <port,port&> PortArray;
  74.  };
  75. Vlan *pVlanData;
  76. struct AddMap
  77. {
  78. CString hIp;
  79. CString hAdd;
  80. };
  81. //保存交换机每个端口连接主机的物理,IP地址,可能有多个;
  82. struct SwitchPort
  83. {
  84.    bool trunk;
  85.    CString SwitchIP;
  86.    CString Vlans;
  87.    CString PortName;
  88.    CString PortIndex;
  89.    CString PortVlan;
  90.    CString PortStatus;
  91.    CMyImage * pPortImage;
  92.    CMyImage * pHostImage;
  93.    CArray <AddMap,AddMap&> HostAdd;
  94. };
  95. SwitchPort *pSP;
  96. CTypedPtrArray <CPtrArray,SwitchPort *> SwitchPortArray;
  97. //端口数据结构组成的动态数组;
  98. // Operations
  99. public:
  100. CString FindVlan(int index);
  101. CString HexTo01(CString &s);
  102. HTREEITEM FindNode(HTREEITEM hSubRoot,const CString &text);
  103. bool Findport(CString &port,NodeData *p);
  104. CString HtoIP(CString Hex);
  105. //将16进制的IP地址转化为正常格式的函数;
  106. void ScanNode(CString &add,CString &community,HTREEITEM hparent);
  107. //扫描一个节点,并处理所得到的CDP条目的函数;
  108. BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
  109. //分割窗口需要的函数;
  110. // Overrides
  111. // ClassWizard generated virtual function overrides
  112. //{{AFX_VIRTUAL(CMainFrame)
  113. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  114. //}}AFX_VIRTUAL
  115. // Implementation
  116. public:
  117. virtual ~CMainFrame();
  118. #ifdef _DEBUG
  119. virtual void AssertValid() const;
  120. virtual void Dump(CDumpContext& dc) const;
  121. #endif
  122. protected:  // control bar embedded members
  123. CStatusBar  m_wndStatusBar;
  124. CToolBar    m_wndToolBar;
  125.    // Generated message map functions
  126. protected:
  127. //{{AFX_MSG(CMainFrame)
  128. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  129. afx_msg void OnScan();
  130. afx_msg void OnGraph();
  131. afx_msg void OnShowinformation();
  132. afx_msg void OnNodeModify();
  133. afx_msg void OnVlan();
  134. afx_msg void OnPort();
  135. afx_msg void OnAddMap();
  136. afx_msg void OnValnTopo();
  137. afx_msg void OnAddVlan();
  138. afx_msg void OnDeleteVlan();
  139. afx_msg void OnPortMore();
  140. afx_msg void OnToVlan();
  141. //}}AFX_MSG
  142. DECLARE_MESSAGE_MAP()
  143. };
  144. /////////////////////////////////////////////////////////////////////////////
  145. //{{AFX_INSERT_LOCATION}}
  146. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  147. #endif // !defined(AFX_MAINFRM_H__E6C940E7_31C3_4826_8A9D_B01184F08820__INCLUDED_)