home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / NETTOOLS.ZIP / PingThread.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-12-17  |  2.7 KB  |  105 lines

  1. // PingThread.h : header file
  2. //
  3. #define ICMP_ERRMSG_SIZE 8
  4. #ifdef _DEBUG
  5. #define PNGINBUFSIZE 512+ICMP_ERRMSG_SIZE+ECHO_REPLY_LEN 
  6. #define PNGOUTBUFSIZE 512
  7. #else
  8. #define PNGINBUFSIZE 8192+ICMP_ERRMSG_SIZE+ECHO_REPLY_LEN
  9. #define PNGOUTBUFSIZE 8192
  10. #endif
  11. #define LBLINESIZE 132    // list box line size
  12.  
  13. #define MAXHOSTSIZE 128
  14. // DLL entries
  15. typedef HANDLE (*ICMPCREATEFILE)(void);
  16. typedef BOOL (*ICMPCLOSEHANDLE)(HANDLE);
  17. typedef DWORD  (*ICMPSENDECHO)(HANDLE,ULONG,LPVOID,WORD,
  18.                               LPVOID,
  19.                               LPVOID,DWORD,DWORD);
  20.  
  21.  
  22.  
  23. UINT CPingThreadProc(LPVOID);
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CPingThread thread
  26.  
  27. class CPingThread : public CWinThread
  28. {
  29.     DECLARE_DYNCREATE(CPingThread)
  30. protected:
  31.     CPingThread();           // protected constructor used by dynamic creation
  32.  
  33. // Attributes
  34. public:
  35.     CStringArray m_PingOutPut;
  36.     HINSTANCE Icmpdll;
  37.     HANDLE PingSocket;
  38.     ICMPCREATEFILE IcmpCreateFile;
  39.     ICMPCLOSEHANDLE IcmpCloseHandle;
  40.     ICMPSENDECHO IcmpSendEcho;
  41.     void CleanUp();
  42.     BOOL RunTracert(CPingThreadParmList *lppingvars);
  43.     CPingThread(CPingThreadParmList *lpPingvars);
  44.     BOOL Running();
  45.     BOOL Start();
  46.     void Kill();
  47.     BOOL RunPing(CPingThreadParmList *lppingvars);
  48.  
  49. // Operations
  50. public:
  51.  
  52. // Overrides
  53.     // ClassWizard generated virtual function overrides
  54.     //{{AFX_VIRTUAL(CPingThread)
  55.     public:
  56.     virtual BOOL InitInstance();
  57.     //}}AFX_VIRTUAL
  58.  
  59. // Implementation
  60. //protected:
  61. public:
  62.     virtual ~CPingThread();
  63.  
  64.     // Generated message map functions
  65.     //{{AFX_MSG(CPingThread)
  66.         // NOTE - the ClassWizard will add and remove member functions here.
  67.     //}}AFX_MSG
  68.  
  69.     DECLARE_MESSAGE_MAP()
  70. private:
  71.     BOOL TracertReply(CPingThreadParmList *lppingvars,
  72.                         struct icmp_reply *lpReply,
  73.                         UINT ttl,
  74.                         UINT probe,
  75.                         ULONG Timestamp);
  76.     void PrintLine(LPSTR szMsg,CPingThreadParmList *lppingvars);
  77.     //CPingThreadParmList *lpPingParms;
  78.     //CPingThreadParmList PingThreadParms;
  79.     BOOL ProcessReply(CPingThreadParmList *lppingvars,
  80.                         struct icmp_reply *lpReply);
  81.     ULONG GetAddr(LPCTSTR szHost,struct in_addr *inaddr = NULL);
  82.     BOOL Icmp_SetOpts(CPingThreadParmList *lppingvars,
  83.                         struct ipopt_info *lpIpopt,
  84.                         UCHAR *optdata,
  85.                         INT optsize);
  86.     BOOL Icmp_Sendto(CPingThreadParmList *lppingvars,
  87.                               CHAR *OUTBuf,
  88.                               CHAR *INBuf,
  89.                               struct ipopt_info *lpIpopt,
  90.                               ULONG sendaddr,
  91.                               INT maxoutbuffsize,
  92.                               INT maxinbuffsize);
  93.     BOOL Icmp_Close(HANDLE h);
  94.     HANDLE Icmp_Open();
  95.     //
  96.     // Ping thread private data
  97.     //
  98.     BOOL bKill;
  99.     DWORD NumberOfEchoReplies;
  100.     
  101.     
  102. };
  103.  
  104. /////////////////////////////////////////////////////////////////////////////
  105.