#ifndef __TCP_h__
#define __TCP_h__
/**************************************************************************

   File:          icw.h
   
   Description:   

**************************************************************************/
// === Structures Required by the ICMP.DLL ====================================

typedef struct {
   unsigned char Ttl;                                           // Time To Live
   unsigned char Tos;                                        // Type Of Service
   unsigned char Flags;                                      // IP header flags
   unsigned char OptionsSize;                  // Size in bytes of options data
   unsigned char *OptionsData;                       // Pointer to options data
} IP_OPTION_INFORMATION, * PIP_OPTION_INFORMATION;


typedef struct {
   DWORD Address;                                           // Replying address
   unsigned long  Status;                                       // Reply status
   unsigned long  RoundTripTime;                         // RTT in milliseconds
   unsigned short DataSize;                                   // Echo data size
   unsigned short Reserved;                          // Reserved for system use
   void *Data;                                      // Pointer to the echo data
   IP_OPTION_INFORMATION Options;                              // Reply options
} IP_ECHO_REPLY, * PIP_ECHO_REPLY;


typedef	HANDLE (WINAPI *ICMPCREATEFILE)(VOID);
typedef	BOOL   (WINAPI *ICMPCLOSEHANDLE)(HANDLE);
typedef	DWORD  (WINAPI *ICMPSENDECHO )( 
									HANDLE, DWORD, LPVOID, WORD,
                                    PIP_OPTION_INFORMATION, LPVOID, 
                                    DWORD, DWORD 
									   );

#ifdef __cplusplus
extern "C" 
{
#endif
	DWORD  PingHost();
	BOOL Ping(LPSTR szIPAddress);
	BOOL CheckHostName(LPSTR szIISServer);

#ifdef __cplusplus
}
#endif	

#endif	// __TCP_H__