cf62424b92
cguid.h, commctrl.h, commdlg.h, cpl.h, cplext.h, custcntl.h, dbt.h, dde.h, ddeml.h, dlgs.h, excpt.h, httpext.h, imagehlp.h, imm.h, initguid.h, intshcut.h, ipexport.h, iphlpapi.h, ipifcons.h, iprtrmib.h, iptypes.h, isguids.h, largeint.h, lm.h, lmaccess.h, lmalert.h, lmapibuf.h, lmat.h, lmaudit.h, lmbrowsr.h, lmchdev.h, lmconfig.h, lmcons.h, lmerr.h, lmerrlog.h, lmmsg.h, lmremutl.h, lmrepl.h, lmserver.h, lmshare.h, lmsname.h, lmstats.h, lmsvc.h, lmuse.h, lmuseflg.h, lmwksta.h, lzexpand.h, mapi.h, mciavi.h, mcx.h, mmsystem.h, mswsock.h, nb30.h, nddeapi.h, nspapi.h, ntdef.h, ntsecapi.h, ntsecpkg.h, oaidl.h, objbase.h, objfwd.h, objidl.h, odbcinst.h, ole.h, ole2.h, ole2ver.h, oleauto.h, olectl.h, olectlid.h, oledlg.h, oleidl.h, pbt.h, prsht.h, psapi.h, rapi.h, ras.h, raserror.h, rassapi.h, regstr.h, richedit.h, richole.h, rpc.h, rpcdce.h, rpcdce2.h, rpcdcep.h, rpcndr.h, rpcnsi.h, rpcnsip.h, rpcnterr.h, rpcproxy.h, schannel.h, schnlsp.h, scrnsave.h, security.h, setupapi.h, shellapi.h, shlguid.h, shlobj.h, sql.h, sqlext.h, sqltypes.h, sqlucode.h, sspi.h, subauth.h, tlhelp32.h, unknwn.h, userenv.h, w32api.h, winbase.h, wincon.h, wincrypt.h, windef.h, windows.h, windowsx.h, winerror.h, wingdi.h, wininet.h, winioctl.h, winnetwk.h, winnls.h, winnt.h, winperf.h, winreg.h, winresrc.h, winsock.h, winsock2.h, winspool.h, winsvc.h, winuser.h, winver.h, ws2tcpip.h, wsnetbs.h, wtypes.h, zmouse.h: Add #pragma GCC system_header if __GNUC__ >= 3. * include/mapi.h: Change header guard name to _MAPI_H for consistency.
530 lines
16 KiB
C
530 lines
16 KiB
C
/*
|
|
|
|
Definitions for winsock 1.1
|
|
|
|
Portions Copyright (c) 1980, 1983, 1988, 1993
|
|
The Regents of the University of California. All rights reserved.
|
|
|
|
Portions Copyright (c) 1993 by Digital Equipment Corporation.
|
|
*/
|
|
|
|
#ifndef _WINSOCK_H
|
|
#define _WINSOCK_H
|
|
#if __GNUC__ >=3
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#define _GNU_H_WINDOWS32_SOCKETS
|
|
#include <windows.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if !defined ( _BSDTYPES_DEFINED )
|
|
/* also defined in gmon.h and in cygwin's sys/types */
|
|
typedef unsigned char u_char;
|
|
typedef unsigned short u_short;
|
|
typedef unsigned int u_int;
|
|
typedef unsigned long u_long;
|
|
#define _BSDTYPES_DEFINED
|
|
#endif /* !defined _BSDTYPES_DEFINED */
|
|
typedef u_int SOCKET;
|
|
#ifndef FD_SETSIZE
|
|
#define FD_SETSIZE 64
|
|
#endif
|
|
|
|
/* shutdown() how types */
|
|
#define SD_RECEIVE 0x00
|
|
#define SD_SEND 0x01
|
|
#define SD_BOTH 0x02
|
|
|
|
#ifndef _SYS_TYPES_FD_SET
|
|
/* fd_set may have be defined by the newlib <sys/types.h>
|
|
* if __USE_W32_SOCKETS not defined.
|
|
*/
|
|
#ifdef fd_set
|
|
#undef fd_set
|
|
#endif
|
|
typedef struct fd_set {
|
|
u_int fd_count;
|
|
SOCKET fd_array[FD_SETSIZE];
|
|
} fd_set;
|
|
int PASCAL __WSAFDIsSet(SOCKET,fd_set*);
|
|
#ifndef FD_CLR
|
|
#define FD_CLR(fd,set) do { u_int __i;\
|
|
for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\
|
|
if (((fd_set *)(set))->fd_array[__i] == (fd)) {\
|
|
while (__i < ((fd_set *)(set))->fd_count-1) {\
|
|
((fd_set*)(set))->fd_array[__i] = ((fd_set*)(set))->fd_array[__i+1];\
|
|
__i++;\
|
|
}\
|
|
((fd_set*)(set))->fd_count--;\
|
|
break;\
|
|
}\
|
|
}\
|
|
} while (0)
|
|
#endif
|
|
#ifndef FD_SET
|
|
#define FD_SET(fd, set) do { \
|
|
if (((fd_set *)(set))->fd_count < FD_SETSIZE) \
|
|
((fd_set *)(set))->fd_array[((fd_set *)(set))->fd_count++]=(fd);\
|
|
}while (0)
|
|
#endif
|
|
#ifndef FD_ZERO
|
|
#define FD_ZERO(set) (((fd_set *)(set))->fd_count=0)
|
|
#endif
|
|
#ifndef FD_ISSET
|
|
#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set))
|
|
#endif
|
|
#elif !defined(USE_SYS_TYPES_FD_SET)
|
|
#warning "fd_set and associated macros have been defined in sys/types. \
|
|
This can cause runtime problems with W32 sockets"
|
|
#endif /* ndef _SYS_TYPES_FD_SET */
|
|
|
|
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
|
|
struct timeval {
|
|
long tv_sec;
|
|
long tv_usec;
|
|
};
|
|
struct hostent {
|
|
char *h_name;
|
|
char **h_aliases;
|
|
short h_addrtype;
|
|
short h_length;
|
|
char **h_addr_list;
|
|
#define h_addr h_addr_list[0]
|
|
};
|
|
struct linger {
|
|
u_short l_onoff;
|
|
u_short l_linger;
|
|
};
|
|
#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
|
|
#define timercmp(tvp, uvp, cmp) \
|
|
(((tvp)->tv_sec != (uvp)->tv_sec) ? \
|
|
((tvp)->tv_sec cmp (uvp)->tv_sec) : \
|
|
((tvp)->tv_usec cmp (uvp)->tv_usec))
|
|
#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
|
|
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
|
|
#define IOCPARM_MASK 0x7f
|
|
#define IOC_VOID 0x20000000
|
|
#define IOC_OUT 0x40000000
|
|
#define IOC_IN 0x80000000
|
|
#define IOC_INOUT (IOC_IN|IOC_OUT)
|
|
|
|
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
|
|
#define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
|
|
#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
|
|
#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
|
|
#define FIONBIO _IOW('f', 126, u_long)
|
|
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
|
|
|
|
#define FIONREAD _IOR('f', 127, u_long)
|
|
#define FIOASYNC _IOW('f', 125, u_long)
|
|
#define SIOCSHIWAT _IOW('s', 0, u_long)
|
|
#define SIOCGHIWAT _IOR('s', 1, u_long)
|
|
#define SIOCSLOWAT _IOW('s', 2, u_long)
|
|
#define SIOCGLOWAT _IOR('s', 3, u_long)
|
|
#define SIOCATMARK _IOR('s', 7, u_long)
|
|
|
|
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
|
|
struct netent {
|
|
char * n_name;
|
|
char **n_aliases;
|
|
short n_addrtype;
|
|
u_long n_net;
|
|
};
|
|
struct servent {
|
|
char *s_name;
|
|
char **s_aliases;
|
|
short s_port;
|
|
char *s_proto;
|
|
};
|
|
struct protoent {
|
|
char *p_name;
|
|
char **p_aliases;
|
|
short p_proto;
|
|
};
|
|
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
|
|
|
|
#define IPPROTO_IP 0
|
|
#define IPPROTO_ICMP 1
|
|
#define IPPROTO_IGMP 2
|
|
#define IPPROTO_GGP 3
|
|
#define IPPROTO_TCP 6
|
|
#define IPPROTO_PUP 12
|
|
#define IPPROTO_UDP 17
|
|
#define IPPROTO_IDP 22
|
|
#define IPPROTO_ND 77
|
|
#define IPPROTO_RAW 255
|
|
#define IPPROTO_MAX 256
|
|
#define IPPORT_ECHO 7
|
|
#define IPPORT_DISCARD 9
|
|
#define IPPORT_SYSTAT 11
|
|
#define IPPORT_DAYTIME 13
|
|
#define IPPORT_NETSTAT 15
|
|
#define IPPORT_FTP 21
|
|
#define IPPORT_TELNET 23
|
|
#define IPPORT_SMTP 25
|
|
#define IPPORT_TIMESERVER 37
|
|
#define IPPORT_NAMESERVER 42
|
|
#define IPPORT_WHOIS 43
|
|
#define IPPORT_MTP 57
|
|
#define IPPORT_TFTP 69
|
|
#define IPPORT_RJE 77
|
|
#define IPPORT_FINGER 79
|
|
#define IPPORT_TTYLINK 87
|
|
#define IPPORT_SUPDUP 95
|
|
#define IPPORT_EXECSERVER 512
|
|
#define IPPORT_LOGINSERVER 513
|
|
#define IPPORT_CMDSERVER 514
|
|
#define IPPORT_EFSSERVER 520
|
|
#define IPPORT_BIFFUDP 512
|
|
#define IPPORT_WHOSERVER 513
|
|
#define IPPORT_ROUTESERVER 520
|
|
#define IPPORT_RESERVED 1024
|
|
#define IMPLINK_IP 155
|
|
#define IMPLINK_LOWEXPER 156
|
|
#define IMPLINK_HIGHEXPER 158
|
|
struct in_addr {
|
|
union {
|
|
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
|
|
struct { u_short s_w1,s_w2; } S_un_w;
|
|
u_long S_addr;
|
|
} S_un;
|
|
#define s_addr S_un.S_addr
|
|
#define s_host S_un.S_un_b.s_b2
|
|
#define s_net S_un.S_un_b.s_b1
|
|
#define s_imp S_un.S_un_w.s_w2
|
|
#define s_impno S_un.S_un_b.s_b4
|
|
#define s_lh S_un.S_un_b.s_b3
|
|
};
|
|
#define IN_CLASSA(i) ((long)(i)&0x80000000)
|
|
#define IN_CLASSA_NET 0xff000000
|
|
#define IN_CLASSA_NSHIFT 24
|
|
#define IN_CLASSA_HOST 0x00ffffff
|
|
#define IN_CLASSA_MAX 128
|
|
#define IN_CLASSB(i) (((long)(i)&0xc0000000)==0x80000000)
|
|
#define IN_CLASSB_NET 0xffff0000
|
|
#define IN_CLASSB_NSHIFT 16
|
|
#define IN_CLASSB_HOST 0x0000ffff
|
|
#define IN_CLASSB_MAX 65536
|
|
#define IN_CLASSC(i) (((long)(i)&0xe0000000)==0xc0000000)
|
|
#define IN_CLASSC_NET 0xffffff00
|
|
#define IN_CLASSC_NSHIFT 8
|
|
#define IN_CLASSC_HOST 0xff
|
|
#define INADDR_ANY (u_long)0
|
|
#define INADDR_LOOPBACK 0x7f000001
|
|
#define INADDR_BROADCAST (u_long)0xffffffff
|
|
#define INADDR_NONE 0xffffffff
|
|
struct sockaddr_in {
|
|
short sin_family;
|
|
u_short sin_port;
|
|
struct in_addr sin_addr;
|
|
char sin_zero[8];
|
|
};
|
|
#define WSADESCRIPTION_LEN 256
|
|
#define WSASYS_STATUS_LEN 128
|
|
typedef struct WSAData {
|
|
WORD wVersion;
|
|
WORD wHighVersion;
|
|
char szDescription[WSADESCRIPTION_LEN+1];
|
|
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
|
unsigned short iMaxSockets;
|
|
unsigned short iMaxUdpDg;
|
|
char * lpVendorInfo;
|
|
} WSADATA;
|
|
typedef WSADATA *LPWSADATA;
|
|
|
|
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
|
|
#define IP_OPTIONS 1
|
|
#define SO_DEBUG 1
|
|
#define SO_ACCEPTCONN 2
|
|
#define SO_REUSEADDR 4
|
|
#define SO_KEEPALIVE 8
|
|
#define SO_DONTROUTE 16
|
|
#define SO_BROADCAST 32
|
|
#define SO_USELOOPBACK 64
|
|
#define SO_LINGER 128
|
|
#define SO_OOBINLINE 256
|
|
#define SO_DONTLINGER (u_int)(~SO_LINGER)
|
|
#define SO_SNDBUF 0x1001
|
|
#define SO_RCVBUF 0x1002
|
|
#define SO_SNDLOWAT 0x1003
|
|
#define SO_RCVLOWAT 0x1004
|
|
#define SO_SNDTIMEO 0x1005
|
|
#define SO_RCVTIMEO 0x1006
|
|
#define SO_ERROR 0x1007
|
|
#define SO_TYPE 0x1008
|
|
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
|
|
/*
|
|
* Note that the next 5 IP defines are specific to WinSock 1.1 (wsock32.dll).
|
|
* They will cause errors or unexpected results if used with the
|
|
* (gs)etsockopts exported from the WinSock 2 lib, ws2_32.dll. Refer ws2tcpip.h.
|
|
*/
|
|
#define IP_MULTICAST_IF 2
|
|
#define IP_MULTICAST_TTL 3
|
|
#define IP_MULTICAST_LOOP 4
|
|
#define IP_ADD_MEMBERSHIP 5
|
|
#define IP_DROP_MEMBERSHIP 6
|
|
|
|
#define IP_DEFAULT_MULTICAST_TTL 1
|
|
#define IP_DEFAULT_MULTICAST_LOOP 1
|
|
#define IP_MAX_MEMBERSHIPS 20
|
|
struct ip_mreq {
|
|
struct in_addr imr_multiaddr;
|
|
struct in_addr imr_interface;
|
|
};
|
|
#define INVALID_SOCKET (SOCKET)(~0)
|
|
#define SOCKET_ERROR (-1)
|
|
#define SOCK_STREAM 1
|
|
#define SOCK_DGRAM 2
|
|
#define SOCK_RAW 3
|
|
#define SOCK_RDM 4
|
|
#define SOCK_SEQPACKET 5
|
|
#define TCP_NODELAY 0x0001
|
|
#define AF_UNSPEC 0
|
|
#define AF_UNIX 1
|
|
#define AF_INET 2
|
|
#define AF_IMPLINK 3
|
|
#define AF_PUP 4
|
|
#define AF_CHAOS 5
|
|
#define AF_IPX 6
|
|
#define AF_NS 6
|
|
#define AF_ISO 7
|
|
#define AF_OSI AF_ISO
|
|
#define AF_ECMA 8
|
|
#define AF_DATAKIT 9
|
|
#define AF_CCITT 10
|
|
#define AF_SNA 11
|
|
#define AF_DECnet 12
|
|
#define AF_DLI 13
|
|
#define AF_LAT 14
|
|
#define AF_HYLINK 15
|
|
#define AF_APPLETALK 16
|
|
#define AF_NETBIOS 17
|
|
#define AF_VOICEVIEW 18
|
|
#define AF_FIREFOX 19
|
|
#define AF_UNKNOWN1 20
|
|
#define AF_BAN 21
|
|
#define AF_ATM 22
|
|
#define AF_INET6 23
|
|
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
|
|
#define AF_MAX 24
|
|
struct sockaddr {
|
|
u_short sa_family;
|
|
char sa_data[14];
|
|
};
|
|
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
|
|
|
|
struct sockproto {
|
|
u_short sp_family;
|
|
u_short sp_protocol;
|
|
};
|
|
#define PF_UNSPEC AF_UNSPEC
|
|
#define PF_UNIX AF_UNIX
|
|
#define PF_INET AF_INET
|
|
#define PF_IMPLINK AF_IMPLINK
|
|
#define PF_PUP AF_PUP
|
|
#define PF_CHAOS AF_CHAOS
|
|
#define PF_NS AF_NS
|
|
#define PF_IPX AF_IPX
|
|
#define PF_ISO AF_ISO
|
|
#define PF_OSI AF_OSI
|
|
#define PF_ECMA AF_ECMA
|
|
#define PF_DATAKIT AF_DATAKIT
|
|
#define PF_CCITT AF_CCITT
|
|
#define PF_SNA AF_SNA
|
|
#define PF_DECnet AF_DECnet
|
|
#define PF_DLI AF_DLI
|
|
#define PF_LAT AF_LAT
|
|
#define PF_HYLINK AF_HYLINK
|
|
#define PF_APPLETALK AF_APPLETALK
|
|
#define PF_VOICEVIEW AF_VOICEVIEW
|
|
#define PF_FIREFOX AF_FIREFOX
|
|
#define PF_UNKNOWN1 AF_UNKNOWN1
|
|
#define PF_BAN AF_BAN
|
|
#define PF_ATM AF_ATM
|
|
#define PF_INET6 AF_INET6
|
|
#define PF_MAX AF_MAX
|
|
#define SOL_SOCKET 0xffff
|
|
#define SOMAXCONN 5
|
|
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
|
|
#define MSG_OOB 1
|
|
#define MSG_PEEK 2
|
|
#define MSG_DONTROUTE 4
|
|
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
|
|
#define MSG_MAXIOVLEN 16
|
|
#define MSG_PARTIAL 0x8000
|
|
#define MAXGETHOSTSTRUCT 1024
|
|
#define FD_READ 1
|
|
#define FD_WRITE 2
|
|
#define FD_OOB 4
|
|
#define FD_ACCEPT 8
|
|
#define FD_CONNECT 16
|
|
#define FD_CLOSE 32
|
|
#define WSABASEERR 10000
|
|
#define WSAEINTR (WSABASEERR+4)
|
|
#define WSAEBADF (WSABASEERR+9)
|
|
#define WSAEACCES (WSABASEERR+13)
|
|
#define WSAEFAULT (WSABASEERR+14)
|
|
#define WSAEINVAL (WSABASEERR+22)
|
|
#define WSAEMFILE (WSABASEERR+24)
|
|
#define WSAEWOULDBLOCK (WSABASEERR+35)
|
|
#define WSAEINPROGRESS (WSABASEERR+36)
|
|
#define WSAEALREADY (WSABASEERR+37)
|
|
#define WSAENOTSOCK (WSABASEERR+38)
|
|
#define WSAEDESTADDRREQ (WSABASEERR+39)
|
|
#define WSAEMSGSIZE (WSABASEERR+40)
|
|
#define WSAEPROTOTYPE (WSABASEERR+41)
|
|
#define WSAENOPROTOOPT (WSABASEERR+42)
|
|
#define WSAEPROTONOSUPPORT (WSABASEERR+43)
|
|
#define WSAESOCKTNOSUPPORT (WSABASEERR+44)
|
|
#define WSAEOPNOTSUPP (WSABASEERR+45)
|
|
#define WSAEPFNOSUPPORT (WSABASEERR+46)
|
|
#define WSAEAFNOSUPPORT (WSABASEERR+47)
|
|
#define WSAEADDRINUSE (WSABASEERR+48)
|
|
#define WSAEADDRNOTAVAIL (WSABASEERR+49)
|
|
#define WSAENETDOWN (WSABASEERR+50)
|
|
#define WSAENETUNREACH (WSABASEERR+51)
|
|
#define WSAENETRESET (WSABASEERR+52)
|
|
#define WSAECONNABORTED (WSABASEERR+53)
|
|
#define WSAECONNRESET (WSABASEERR+54)
|
|
#define WSAENOBUFS (WSABASEERR+55)
|
|
#define WSAEISCONN (WSABASEERR+56)
|
|
#define WSAENOTCONN (WSABASEERR+57)
|
|
#define WSAESHUTDOWN (WSABASEERR+58)
|
|
#define WSAETOOMANYREFS (WSABASEERR+59)
|
|
#define WSAETIMEDOUT (WSABASEERR+60)
|
|
#define WSAECONNREFUSED (WSABASEERR+61)
|
|
#define WSAELOOP (WSABASEERR+62)
|
|
#define WSAENAMETOOLONG (WSABASEERR+63)
|
|
#define WSAEHOSTDOWN (WSABASEERR+64)
|
|
#define WSAEHOSTUNREACH (WSABASEERR+65)
|
|
#define WSAENOTEMPTY (WSABASEERR+66)
|
|
#define WSAEPROCLIM (WSABASEERR+67)
|
|
#define WSAEUSERS (WSABASEERR+68)
|
|
#define WSAEDQUOT (WSABASEERR+69)
|
|
#define WSAESTALE (WSABASEERR+70)
|
|
#define WSAEREMOTE (WSABASEERR+71)
|
|
#define WSAEDISCON (WSABASEERR+101)
|
|
#define WSASYSNOTREADY (WSABASEERR+91)
|
|
#define WSAVERNOTSUPPORTED (WSABASEERR+92)
|
|
#define WSANOTINITIALISED (WSABASEERR+93)
|
|
#define WSAHOST_NOT_FOUND (WSABASEERR+1001)
|
|
#define WSATRY_AGAIN (WSABASEERR+1002)
|
|
#define WSANO_RECOVERY (WSABASEERR+1003)
|
|
#define WSANO_DATA (WSABASEERR+1004)
|
|
#define WSANO_ADDRESS WSANO_DATA
|
|
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
|
|
#define h_errno WSAGetLastError()
|
|
#define HOST_NOT_FOUND WSAHOST_NOT_FOUND
|
|
#define TRY_AGAIN WSATRY_AGAIN
|
|
#define NO_RECOVERY WSANO_RECOVERY
|
|
#define NO_DATA WSANO_DATA
|
|
#define NO_ADDRESS WSANO_ADDRESS
|
|
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
|
|
SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*);
|
|
int PASCAL bind(SOCKET,const struct sockaddr*,int);
|
|
int PASCAL closesocket(SOCKET);
|
|
int PASCAL connect(SOCKET,const struct sockaddr*,int);
|
|
int PASCAL ioctlsocket(SOCKET,long,u_long *);
|
|
int PASCAL getpeername(SOCKET,struct sockaddr*,int*);
|
|
int PASCAL getsockname(SOCKET,struct sockaddr*,int*);
|
|
int PASCAL getsockopt(SOCKET,int,int,char*,int*);
|
|
unsigned long PASCAL inet_addr(const char*);
|
|
DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);
|
|
int PASCAL listen(SOCKET,int);
|
|
int PASCAL recv(SOCKET,char*,int,int);
|
|
int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);
|
|
int PASCAL send(SOCKET,const char*,int,int);
|
|
int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);
|
|
int PASCAL setsockopt(SOCKET,int,int,const char*,int);
|
|
int PASCAL shutdown(SOCKET,int);
|
|
SOCKET PASCAL socket(int,int,int);
|
|
DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int);
|
|
DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*);
|
|
DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*);
|
|
DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*);
|
|
DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int);
|
|
DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*);
|
|
int PASCAL WSAStartup(WORD,LPWSADATA);
|
|
int PASCAL WSACleanup(void);
|
|
void PASCAL WSASetLastError(int);
|
|
int PASCAL WSAGetLastError(void);
|
|
BOOL PASCAL WSAIsBlocking(void);
|
|
int PASCAL WSAUnhookBlockingHook(void);
|
|
FARPROC PASCAL WSASetBlockingHook(FARPROC);
|
|
int PASCAL WSACancelBlockingCall(void);
|
|
HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int);
|
|
HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int);
|
|
HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int);
|
|
HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int);
|
|
HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int);
|
|
HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int);
|
|
int PASCAL WSACancelAsyncRequest(HANDLE);
|
|
int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long);
|
|
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
|
|
u_long PASCAL htonl(u_long);
|
|
u_long PASCAL ntohl(u_long);
|
|
u_short PASCAL htons(u_short);
|
|
u_short PASCAL ntohs(u_short);
|
|
int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*);
|
|
int PASCAL gethostname(char*,int);
|
|
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
|
|
|
|
#define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e)
|
|
#define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error)
|
|
#define WSAGETASYNCBUFLEN(l) LOWORD(l)
|
|
#define WSAGETASYNCERROR(l) HIWORD(l)
|
|
#define WSAGETSELECTEVENT(l) LOWORD(l)
|
|
#define WSAGETSELECTERROR(l) HIWORD(l)
|
|
|
|
typedef struct sockaddr SOCKADDR;
|
|
typedef struct sockaddr *PSOCKADDR;
|
|
typedef struct sockaddr *LPSOCKADDR;
|
|
typedef struct sockaddr_in SOCKADDR_IN;
|
|
typedef struct sockaddr_in *PSOCKADDR_IN;
|
|
typedef struct sockaddr_in *LPSOCKADDR_IN;
|
|
typedef struct linger LINGER;
|
|
typedef struct linger *PLINGER;
|
|
typedef struct linger *LPLINGER;
|
|
typedef struct in_addr IN_ADDR;
|
|
typedef struct in_addr *PIN_ADDR;
|
|
typedef struct in_addr *LPIN_ADDR;
|
|
typedef struct fd_set FD_SET;
|
|
typedef struct fd_set *PFD_SET;
|
|
typedef struct fd_set *LPFD_SET;
|
|
typedef struct hostent HOSTENT;
|
|
typedef struct hostent *PHOSTENT;
|
|
typedef struct hostent *LPHOSTENT;
|
|
typedef struct servent SERVENT;
|
|
typedef struct servent *PSERVENT;
|
|
typedef struct servent *LPSERVENT;
|
|
typedef struct protoent PROTOENT;
|
|
typedef struct protoent *PPROTOENT;
|
|
typedef struct protoent *LPPROTOENT;
|
|
typedef struct timeval TIMEVAL;
|
|
typedef struct timeval *PTIMEVAL;
|
|
typedef struct timeval *LPTIMEVAL;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
/*
|
|
* Recent MSDN docs indicate that the MS-specific extensions exported from
|
|
* mswsock.dll (AcceptEx, TransmitFile. WSARecEx and GetAcceptExSockaddrs) are
|
|
* declared in mswsock.h. These extensions are not supported on W9x or WinCE.
|
|
* However, code using WinSock 1.1 API may expect the declarations and
|
|
* associated defines to be in this header. Thus we include mswsock.h here.
|
|
*
|
|
* When linking against the WinSock 1.1 lib, wsock32.dll, the mswsock functions
|
|
* are automatically routed to mswsock.dll (on platforms with support).
|
|
* The WinSock 2 lib, ws2_32.dll, does not contain any references to
|
|
* the mswsock extensions.
|
|
*/
|
|
|
|
#include <mswsock.h>
|
|
|
|
#endif
|