www.pudn.com > rbScanner.rar > CPing.h


// CPing.h: interface for the CPing class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_CPING_H__1B8CDD4B_095E_4770_A516_FB3855FFA4BF__INCLUDED_) 
#define AFX_CPING_H__1B8CDD4B_095E_4770_A516_FB3855FFA4BF__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
//#ifndef CPING_H 
//#define CPING_H 
 
 
 
typedef struct tagIPINFO 
{ 
	u_char Ttl;				// Time To Live 
	u_char Tos;				// Type Of Service 
	u_char IPFlags;			// IP flags 
	u_char OptSize;			// Size of options data 
	u_char FAR *Options;	// Options data buffer 
}IPINFO; 
 
typedef IPINFO* PIPINFO; 
 
typedef struct tagICMPECHO 
{ 
	u_long Address;			// Source address 
	u_long Status;			// IP status 
	u_long RTTime;			// Round trip time in milliseconds 
	u_short DataSize;		// Reply data size 
	u_short Reserved;		// Unknown 
	void FAR *pData;		// Reply data buffer 
	IPINFO	ipInfo;			// Reply options 
}ICMPECHO; 
 
typedef ICMPECHO* PICMPECHO; 
 
 
class CPing : public CObject   
{ 
public: 
	CPing(); 
	virtual ~CPing(); 
	BOOL Ping(char* strHost); 
	BOOL bValid; 
public: 
	// ICMP.DLL Export Function Pointers 
	HANDLE (WINAPI *pIcmpCreateFile)(VOID); 
	BOOL (WINAPI *pIcmpCloseHandle)(HANDLE); 
	DWORD (WINAPI *pIcmpSendEcho)(HANDLE,DWORD,LPVOID,WORD,LPVOID,LPVOID,DWORD,DWORD); 
	HANDLE hndlIcmp;			// LoadLibrary() handle to ICMP.DLL 
 // if it doesn't construct properly, it won't be valid 
 
}; 
 
#endif // !defined(AFX_CPING_H__1B8CDD4B_095E_4770_A516_FB3855FFA4BF__INCLUDED_)