⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pingthread.h

📁 你想看自己的 IP及其内容吗? 现在有一个能查看IP网络状态(连接
💻 H
字号:
// PingThread.h : header file
//
#define ICMP_ERRMSG_SIZE 8
#ifdef _DEBUG
#define PNGINBUFSIZE 512+ICMP_ERRMSG_SIZE+ECHO_REPLY_LEN 
#define PNGOUTBUFSIZE 512
#else
#define PNGINBUFSIZE 8192+ICMP_ERRMSG_SIZE+ECHO_REPLY_LEN
#define PNGOUTBUFSIZE 8192
#endif
#define LBLINESIZE 132    // list box line size

#define MAXHOSTSIZE 128
// DLL entries
typedef HANDLE (*ICMPCREATEFILE)(void);
typedef BOOL (*ICMPCLOSEHANDLE)(HANDLE);
typedef DWORD  (*ICMPSENDECHO)(HANDLE,ULONG,LPVOID,WORD,
							  LPVOID,
							  LPVOID,DWORD,DWORD);



UINT CPingThreadProc(LPVOID);
/////////////////////////////////////////////////////////////////////////////
// CPingThread thread

class CPingThread : public CWinThread
{
	DECLARE_DYNCREATE(CPingThread)
protected:
	CPingThread();           // protected constructor used by dynamic creation

// Attributes
public:
	CStringArray m_PingOutPut;
	HINSTANCE Icmpdll;
	HANDLE PingSocket;
	ICMPCREATEFILE IcmpCreateFile;
	ICMPCLOSEHANDLE IcmpCloseHandle;
	ICMPSENDECHO IcmpSendEcho;
	void CleanUp();
	BOOL RunTracert(CPingThreadParmList *lppingvars);
	CPingThread(CPingThreadParmList *lpPingvars);
	BOOL Running();
	BOOL Start();
	void Kill();
	BOOL RunPing(CPingThreadParmList *lppingvars);

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CPingThread)
	public:
	virtual BOOL InitInstance();
	//}}AFX_VIRTUAL

// Implementation
//protected:
public:
	virtual ~CPingThread();

	// Generated message map functions
	//{{AFX_MSG(CPingThread)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
private:
	BOOL TracertReply(CPingThreadParmList *lppingvars,
						struct icmp_reply *lpReply,
						UINT ttl,
						UINT probe,
						ULONG Timestamp);
	void PrintLine(LPSTR szMsg,CPingThreadParmList *lppingvars);
	//CPingThreadParmList *lpPingParms;
	//CPingThreadParmList PingThreadParms;
	BOOL ProcessReply(CPingThreadParmList *lppingvars,
						struct icmp_reply *lpReply);
	ULONG GetAddr(LPCTSTR szHost,struct in_addr *inaddr = NULL);
	BOOL Icmp_SetOpts(CPingThreadParmList *lppingvars,
						struct ipopt_info *lpIpopt,
						UCHAR *optdata,
						INT optsize);
	BOOL Icmp_Sendto(CPingThreadParmList *lppingvars,
							  CHAR *OUTBuf,
							  CHAR *INBuf,
							  struct ipopt_info *lpIpopt,
							  ULONG sendaddr,
							  INT maxoutbuffsize,
							  INT maxinbuffsize);
	BOOL Icmp_Close(HANDLE h);
	HANDLE Icmp_Open();
	//
	// Ping thread private data
	//
	BOOL bKill;
	DWORD NumberOfEchoReplies;
	
	
};

/////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -