📄 myarpdlg.h
字号:
// MyARPDlg.h : header file
//
#pragma comment(lib,"ws2_32")
#if !defined(AFX_MYARPDLG_H__B82FCF18_986D_4897_A314_96F036284577__INCLUDED_)
#define AFX_MYARPDLG_H__B82FCF18_986D_4897_A314_96F036284577__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "winsock2.h"
#include "..\common\common.h"
#include "winioctl.h"
// DLC Header
typedef struct tagDLCHeader
{
unsigned char DesMAC[6]; /* destination HW addrress */
unsigned char SrcMAC[6]; /* source HW addresss */
unsigned char H_frame_type;
unsigned char L_frame_type;
} DLCHEADER, *PDLCHEADER;
// ARP Frame
typedef struct tagARPFrame
{
unsigned short HW_Type; /* hardware type */
unsigned short Prot_Type; /* protocol type */
unsigned char HW_Addr_Len; /* length of hardware address */
unsigned char Prot_Addr_Len; /* length of protocol address */
unsigned short Opcode; /* ARP/RARP */
unsigned char Send_HW_Addr[6]; /* sender hardware address */
unsigned long Send_Prot_Addr; /* sender protocol address */
unsigned char Targ_HW_Addr[6]; /* target hardware address */
unsigned long Targ_Prot_Addr; /* target protocol address */
unsigned char padding[18];
} ARPFRAME, *PARPFRAME;
// ARP Packet = DLC header + ARP Frame
typedef struct tagARPPacket
{
DLCHEADER dlcHeader;
ARPFRAME arpFrame;
} ARPPACKET, *PARPPACKET;
/////////////////////////////////////////////////////////////////////////////
// CMyARPDlg dialog
class CMyARPDlg : public CDialog
{
// Construction
public:
CMyARPDlg(CWnd* pParent = NULL); // standard constructor
void InitList(void); // 初始化列表控件
void AddRow(char *src_Op, char *src_SendMAC, char *src_SendIP, char *src_TargMAC, char *src_TargIP);
static unsigned long __stdcall MyThreadEntry(LPVOID lpParam); // 监视线程入口
void CreateMyThread();
void WINAPI MyGetLastError(void);
HANDLE m_hDevice; // 设备句柄
HANDLE m_hEvent; // 与驱动通信的事件对象
PVOID psharememory; // 共享内存地址
int list_count; // 列表控件当前行数
bool Monitor_flag; // 监视标志
// Dialog Data
//{{AFX_DATA(CMyARPDlg)
enum { IDD = IDD_MYARP_DIALOG };
CButton m_stop;
CButton m_start;
CListCtrl m_ListCtl;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMyARPDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CMyARPDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnCancelMode();
afx_msg void OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult);
virtual void OnOK();
afx_msg void OnBUTTONSend();
afx_msg void OnButtonScan();
afx_msg void OnButtonStop();
afx_msg void OnClose();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MYARPDLG_H__B82FCF18_986D_4897_A314_96F036284577__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -