175 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| compile insert msWin_WinSock_Equates
 | |
| /*
 | |
|    ** Copyright (C) 2012-2022 Revelation Software Inc. All Rights Reserved **
 | |
|    
 | |
|    Author   Mr C
 | |
|    Date     Feb 2022
 | |
|    Purpose  Equates for use with Windows WinSock functions
 | |
|    
 | |
|    Comments
 | |
|    ========
 | |
|    
 | |
|    Amended  Date       Reason
 | |
|    =======  ====       ======
 | |
|    
 | |
| */
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| #ifndef _MSWIN_WINSOCK_EQUATES_
 | |
| #define _MSWIN_WINSOCK_EQUATES_
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|    declare function msWin_WSAStartup, msWin_WSACleanUp, msWin_GetLastError
 | |
|    declare function msWin_GetHostByName, msWin_IcmpCreateFile
 | |
|    declare function msWin_IcmpCloseHandle, msWin_IcmpSendEcho
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
|    
 | |
|    $uses @APPID*DLLSTRUCT**MSWIN_WSADATA
 | |
|    $uses @APPID*DLLSTRUCT**MSWIN_HOSTENT
 | |
|    $uses @APPID*DLLSTRUCT**MSWIN_ICMP_ECHO_REPLY
 | |
|    $uses @APPID*DLLSTRUCT**MSWIN_IP_OPTION_INFORMATION
 | |
|    
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|    // Address families.
 | |
|    
 | |
|    equ AF_UNSPEC$                to 0        ; // unspecified
 | |
|    equ AF_UNIX$                  to 1        ; // local to host (pipes, portals)
 | |
|    equ AF_INET$                  to 2        ; // internetwork: UDP, TCP, etc.
 | |
|    equ AF_IMPLINK$               to 3        ; // arpanet imp addresses
 | |
|    equ AF_PUP$                   to 4        ; // pup protocols: e.g. BSP
 | |
|    equ AF_CHAOS$                 to 5        ; // mit CHAOS protocols
 | |
|    equ AF_IPX$                   to 6        ; // IPX and SPX
 | |
|    equ AF_NS$                    to 6        ; // XEROX NS protocols
 | |
|    equ AF_ISO$                   to 7        ; // ISO protocols
 | |
|    equ AF_OSI$                   to AF_ISO$  ; // OSI is ISO
 | |
|    equ AF_ECMA$                  to 8        ; // european computer manufacturers
 | |
|    equ AF_DATAKIT$               to 9        ; // datakit protocols
 | |
|    equ AF_CCITT$                 to 10       ; // CCITT protocols, X.25 etc
 | |
|    equ AF_SNA$                   to 11       ; // IBM SNA
 | |
|    equ AF_DECnet$                to 12       ; // DECnet
 | |
|    equ AF_DLI$                   to 13       ; // Direct data link interface
 | |
|    equ AF_LAT$                   to 14       ; // LAT
 | |
|    equ AF_HYLINK$                to 15       ; // NSC Hyperchannel
 | |
|    equ AF_APPLETALK$             to 16       ; // AppleTalk
 | |
|    equ AF_NETBIOS$               to 17       ; // NetBios-style addresses
 | |
|    equ AF_VOICEVIEW$             to 18       ; // VoiceView
 | |
|    equ AF_FIREFOX$               to 19       ; // FireFox
 | |
|    equ AF_UNKNOWN1$              to 20       ; // Somebody is using this!
 | |
|    equ AF_BAN$                   to 21       ; // Banyan
 | |
| 
 | |
|    equ AF_MAX$                   to 22
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|    equ WSADESCRIPTION_LEN$      to 256
 | |
|    equ WSASYS_STATUS_LEN$       to 128
 | |
|    
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|    // WSADATA Structure equates - this structure is defined in the Windows
 | |
|    // API as:
 | |
|    //
 | |
|    // typedef struct WSAData {
 | |
|    //     WORD                    wVersion;
 | |
|    //     WORD                    wHighVersion;
 | |
|    //     unsigned short          iMaxSockets;
 | |
|    //     unsigned short          iMaxUdpDg;
 | |
|    //     char FAR *              lpVendorInfo;
 | |
|    //     char                    szDescription[WSADESCRIPTION_LEN+1];
 | |
|    //     char                    szSystemStatus[WSASYS_STATUS_LEN+1];
 | |
|    // } WSADATA;
 | |
|       
 | |
|    equ WSADATA$            to "MSWIN_WSADATA" 
 | |
|      
 | |
|    equ WSADATA_POS_VERSION$         to 1
 | |
|    equ WSADATA_POS_WHIGHVERSION$    to 2
 | |
|    equ WSADATA_POS_IMAXSOCKETS$     to 3
 | |
|    equ WSADATA_POS_IMAXUDPDG$       to 4
 | |
|    equ WSADATA_POS_LPVENDORINFO$    to 5
 | |
|    equ WSADATA_POS_SZDESCRIPTION$   to 6
 | |
|    equ WSADATA_POS_SZSYSTEMSTATUS$  to 7   
 | |
|    
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////   
 | |
|    
 | |
|    // HOSTENT Structure equates:
 | |
|    // 
 | |
|    // typedef struct hostent {
 | |
|    //   char  *h_name;
 | |
|    //   char  **h_aliases;
 | |
|    //  short h_addrtype;
 | |
|    //  short h_length;
 | |
|    //  char  **h_addr_list;
 | |
|    // } HOSTENT, *PHOSTENT, *LPHOSTENT;
 | |
|    
 | |
|    equ HOSTENT$                     to "MSWIN_HOSTENT" 
 | |
|    
 | |
|    equ HOSTENT_POS_H_HAME$          to 1
 | |
|    equ HOSTENT_POS_H_ALIASES$       to 2
 | |
|    equ HOSTENT_POS_H_ADDRTYPE$      to 3
 | |
|    equ HOSTENT_POS_H_LENGTH$        to 4
 | |
|    equ HOSTENT_POS_H_ADDR_LIST$     to 5
 | |
|    
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|    equ ICMP_INVALID_HANDLE_VALUE$   to -1
 | |
| 
 | |
|    // IP_OPTION_INFORMATION is defined as:
 | |
|    // 
 | |
|    // typedef struct ip_option_information {
 | |
|    //  UCHAR  Ttl;
 | |
|    //  UCHAR  Tos;
 | |
|    //  UCHAR  Flags;
 | |
|    //  UCHAR  OptionsSize;
 | |
|    //  PUCHAR OptionsData;
 | |
|    // } IP_OPTION_INFORMATION, *PIP_OPTION_INFORMATION;
 | |
|    
 | |
|    equ IP_OPTION_INFORMATION$      to "MSWIN_IP_OPTION_INFORMATION"
 | |
|    
 | |
|    equ IPOI_POS_TTL$               to 1
 | |
|    equ IPOI_POS_TOS$               to 2
 | |
|    equ IPOI_POS_FLAGS$             to 3
 | |
|    equ IPOI_POS_OPTIONSSIZE$       to 4
 | |
|    equ IPOI_POS_OPTIONSDATA$       to 5
 | |
|    
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|    // ICMP_ECHO_REPLY is defined as:
 | |
|    // 
 | |
|    // typedef struct icmp_echo_reply {
 | |
|    //  IPAddr                       Address;
 | |
|    //  ULONG                        Status;
 | |
|    //  ULONG                        RoundTripTime;
 | |
|    //  USHORT                       DataSize;
 | |
|    //  USHORT                       Reserved;
 | |
|    //  PVOID                        Data;
 | |
|    //  struct ip_option_information Options;
 | |
|    // } ICMP_ECHO_REPLY, *PICMP_ECHO_REPLY;
 | |
|    
 | |
|    equ ICMP_ECHO_REPLY$             to "MSWIN_ICMP_ECHO_REPLY"
 | |
|    
 | |
|    equ ICMPER_POS_ADDRESS$          to 1
 | |
|    equ ICMPER_POS_STATUS$           to 2
 | |
|    equ ICMPER_POS_ROUNDTRIPTIME$    to 3
 | |
|    equ ICMPER_POS_DATASIZE$         to 4
 | |
|    equ ICMPER_POS_RESERVED$         to 5
 | |
|    equ ICMPER_POS_DATA$             to 6
 | |
|    
 | |
|    
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| #endif
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 |