Unified · Split
| @@ -0,0 +1,1290 @@ | |||
| 1 | /** | ||
| 2 | * @file winsock2.h | ||
| 3 | * Copyright 2012, 2013 MinGW.org project | ||
| 4 | * | ||
| 5 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
| 6 | * copy of this software and associated documentation files (the "Software"), | ||
| 7 | * to deal in the Software without restriction, including without limitation | ||
| 8 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
| 9 | * and/or sell copies of the Software, and to permit persons to whom the | ||
| 10 | * Software is furnished to do so, subject to the following conditions: | ||
| 11 | * | ||
| 12 | * The above copyright notice and this permission notice (including the next | ||
| 13 | * paragraph) shall be included in all copies or substantial portions of the | ||
| 14 | * Software. | ||
| 15 | * | ||
| 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
| 21 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
| 22 | * DEALINGS IN THE SOFTWARE. | ||
| 23 | */ | ||
| 24 | /* | ||
| 25 | * Definitions for winsock 2 | ||
| 26 | * | ||
| 27 | * Portions Copyright (c) 1980, 1983, 1988, 1993 | ||
| 28 | * The Regents of the University of California. All rights reserved. | ||
| 29 | * | ||
| 30 | * Portions Copyright (c) 1993 by Digital Equipment Corporation. | ||
| 31 | */ | ||
| 32 | #if !(defined _WINSOCK2_H || defined _WINSOCK_H) | ||
| 33 | #define _WINSOCK2_H | ||
| 34 | #define _WINSOCK_H /* to prevent later inclusion of winsock.h */ | ||
| 35 | #pragma GCC system_header | ||
| 36 | #include <_mingw.h> | ||
| 37 | |||
| 38 | #define _GNU_H_WINDOWS32_SOCKETS | ||
| 39 | |||
| 40 | #include <windows.h> | ||
| 41 | |||
| 42 | #ifndef WINSOCK_API_LINKAGE | ||
| 43 | #ifdef __W32API_USE_DLLIMPORT__ | ||
| 44 | #define WINSOCK_API_LINKAGE DECLSPEC_IMPORT | ||
| 45 | #else | ||
| 46 | #define WINSOCK_API_LINKAGE | ||
| 47 | #endif | ||
| 48 | #endif | ||
| 49 | |||
| 50 | #ifdef __cplusplus | ||
| 51 | extern "C" { | ||
| 52 | #endif | ||
| 53 | |||
| 54 | /* Names common to Winsock1.1 and Winsock2 */ | ||
| 55 | #if !defined ( _BSDTYPES_DEFINED ) | ||
| 56 | /* also defined in gmon.h and in cygwin's sys/types */ | ||
| 57 | typedef unsigned char u_char; | ||
| 58 | typedef unsigned short u_short; | ||
| 59 | typedef unsigned int u_int; | ||
| 60 | typedef unsigned long u_long; | ||
| 61 | #define _BSDTYPES_DEFINED | ||
| 62 | #endif /* ! def _BSDTYPES_DEFINED */ | ||
| 63 | |||
| 64 | typedef u_int SOCKET; | ||
| 65 | |||
| 66 | #ifndef FD_SETSIZE | ||
| 67 | #define FD_SETSIZE 64 | ||
| 68 | #endif | ||
| 69 | |||
| 70 | /* shutdown() how types */ | ||
| 71 | #define SD_RECEIVE 0x00 | ||
| 72 | #define SD_SEND 0x01 | ||
| 73 | #define SD_BOTH 0x02 | ||
| 74 | |||
| 75 | #ifndef _SYS_TYPES_FD_SET | ||
| 76 | /* fd_set may be defined by the newlib <sys/types.h> | ||
| 77 | * if __USE_W32_SOCKETS not defined. | ||
| 78 | */ | ||
| 79 | |||
| 80 | #ifdef fd_set | ||
| 81 | #undef fd_set | ||
| 82 | #endif | ||
| 83 | |||
| 84 | typedef struct fd_set { | ||
| 85 | u_int fd_count; | ||
| 86 | SOCKET fd_array[FD_SETSIZE]; | ||
| 87 | } fd_set; | ||
| 88 | int PASCAL __WSAFDIsSet(SOCKET,fd_set*); | ||
| 89 | |||
| 90 | #ifndef FD_CLR | ||
| 91 | #define FD_CLR(fd,set) do { u_int __i;\ | ||
| 92 | for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\ | ||
| 93 | if (((fd_set *)(set))->fd_array[__i] == (fd)) {\ | ||
| 94 | while (__i < ((fd_set *)(set))->fd_count-1) {\ | ||
| 95 | ((fd_set*)(set))->fd_array[__i] = ((fd_set*)(set))->fd_array[__i+1];\ | ||
| 96 | __i++;\ | ||
| 97 | }\ | ||
| 98 | ((fd_set*)(set))->fd_count--;\ | ||
| 99 | break;\ | ||
| 100 | }\ | ||
| 101 | }\ | ||
| 102 | } while (0) | ||
| 103 | #endif | ||
| 104 | |||
| 105 | #ifndef FD_SET | ||
| 106 | /* this differs from the define in winsock.h and in cygwin sys/types.h */ | ||
| 107 | #define FD_SET(fd, set) do { u_int __i;\ | ||
| 108 | for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\ | ||
| 109 | if (((fd_set *)(set))->fd_array[__i] == (fd)) {\ | ||
| 110 | break;\ | ||
| 111 | }\ | ||
| 112 | }\ | ||
| 113 | if (__i == ((fd_set *)(set))->fd_count) {\ | ||
| 114 | if (((fd_set *)(set))->fd_count < FD_SETSIZE) {\ | ||
| 115 | ((fd_set *)(set))->fd_array[__i] = (fd);\ | ||
| 116 | ((fd_set *)(set))->fd_count++;\ | ||
| 117 | }\ | ||
| 118 | }\ | ||
| 119 | } while(0) | ||
| 120 | #endif | ||
| 121 | |||
| 122 | #ifndef FD_ZERO | ||
| 123 | #define FD_ZERO(set) (((fd_set *)(set))->fd_count=0) | ||
| 124 | #endif | ||
| 125 | |||
| 126 | #ifndef FD_ISSET | ||
| 127 | #define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set)) | ||
| 128 | #endif | ||
| 129 | |||
| 130 | #elif !defined (USE_SYS_TYPES_FD_SET) | ||
| 131 | |||
| 132 | #warning "fd_set and associated macros have been defined in sys/types. \ | ||
| 133 | This may cause runtime problems with W32 sockets" | ||
| 134 | #endif /* ndef _SYS_TYPES_FD_SET */ | ||
| 135 | |||
| 136 | #if !(defined (__INSIDE_CYGWIN__) || (__INSIDE_MSYS__)) | ||
| 137 | |||
| 138 | #ifndef _TIMEVAL_DEFINED /* also in sys/time.h */ | ||
| 139 | #define _TIMEVAL_DEFINED | ||
| 140 | struct timeval { | ||
| 141 | long tv_sec; | ||
| 142 | long tv_usec; | ||
| 143 | }; | ||
| 144 | #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) | ||
| 145 | #define timercmp(tvp, uvp, cmp) \ | ||
| 146 | (((tvp)->tv_sec != (uvp)->tv_sec) ? \ | ||
| 147 | ((tvp)->tv_sec cmp (uvp)->tv_sec) : \ | ||
| 148 | ((tvp)->tv_usec cmp (uvp)->tv_usec)) | ||
| 149 | #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 | ||
| 150 | #endif /* _TIMEVAL_DEFINED */ | ||
| 151 | |||
| 152 | struct hostent { | ||
| 153 | char *h_name; | ||
| 154 | char **h_aliases; | ||
| 155 | short h_addrtype; | ||
| 156 | short h_length; | ||
| 157 | char **h_addr_list; | ||
| 158 | #define h_addr h_addr_list[0] | ||
| 159 | }; | ||
| 160 | struct linger { | ||
| 161 | u_short l_onoff; | ||
| 162 | u_short l_linger; | ||
| 163 | }; | ||
| 164 | #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ | ||
| 165 | |||
| 166 | #define IOCPARM_MASK 0x7f | ||
| 167 | #define IOC_VOID 0x20000000 | ||
| 168 | #define IOC_OUT 0x40000000 | ||
| 169 | #define IOC_IN 0x80000000 | ||
| 170 | #define IOC_INOUT (IOC_IN|IOC_OUT) | ||
| 171 | |||
| 172 | #if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) | ||
| 173 | #define _IO(x,y) (IOC_VOID|((x)<<8)|(y)) | ||
| 174 | #define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) | ||
| 175 | #define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) | ||
| 176 | #define FIONBIO _IOW('f', 126, u_long) | ||
| 177 | #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ | ||
| 178 | |||
| 179 | #define FIONREAD _IOR('f', 127, u_long) | ||
| 180 | #define FIOASYNC _IOW('f', 125, u_long) | ||
| 181 | #define SIOCSHIWAT _IOW('s', 0, u_long) | ||
| 182 | #define SIOCGHIWAT _IOR('s', 1, u_long) | ||
| 183 | #define SIOCSLOWAT _IOW('s', 2, u_long) | ||
| 184 | #define SIOCGLOWAT _IOR('s', 3, u_long) | ||
| 185 | #define SIOCATMARK _IOR('s', 7, u_long) | ||
| 186 | |||
| 187 | #if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) | ||
| 188 | struct netent { | ||
| 189 | char * n_name; | ||
| 190 | char **n_aliases; | ||
| 191 | short n_addrtype; | ||
| 192 | u_long n_net; | ||
| 193 | }; | ||
| 194 | struct servent { | ||
| 195 | char *s_name; | ||
| 196 | char **s_aliases; | ||
| 197 | short s_port; | ||
| 198 | char *s_proto; | ||
| 199 | }; | ||
| 200 | struct protoent { | ||
| 201 | char *p_name; | ||
| 202 | char **p_aliases; | ||
| 203 | short p_proto; | ||
| 204 | }; | ||
| 205 | #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ | ||
| 206 | |||
| 207 | #define IPPROTO_IP 0 | ||
| 208 | #define IPPROTO_ICMP 1 | ||
| 209 | #define IPPROTO_IGMP 2 | ||
| 210 | #define IPPROTO_GGP 3 | ||
| 211 | #define IPPROTO_TCP 6 | ||
| 212 | #define IPPROTO_PUP 12 | ||
| 213 | #define IPPROTO_UDP 17 | ||
| 214 | #define IPPROTO_IDP 22 | ||
| 215 | #define IPPROTO_ND 77 | ||
| 216 | #define IPPROTO_RAW 255 | ||
| 217 | #define IPPROTO_MAX 256 | ||
| 218 | /* IPv6 options */ | ||
| 219 | #define IPPROTO_HOPOPTS 0 /* IPv6 Hop-by-Hop options */ | ||
| 220 | #define IPPROTO_IPV6 41 /* IPv6 header */ | ||
| 221 | #define IPPROTO_ROUTING 43 /* IPv6 Routing header */ | ||
| 222 | #define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */ | ||
| 223 | #define IPPROTO_ESP 50 /* encapsulating security payload */ | ||
| 224 | #define IPPROTO_AH 51 /* authentication header */ | ||
| 225 | #define IPPROTO_ICMPV6 58 /* ICMPv6 */ | ||
| 226 | #define IPPROTO_NONE 59 /* IPv6 no next header */ | ||
| 227 | #define IPPROTO_DSTOPTS 60 /* IPv6 Destination options */ | ||
| 228 | #define IPPORT_ECHO 7 | ||
| 229 | #define IPPORT_DISCARD 9 | ||
| 230 | #define IPPORT_SYSTAT 11 | ||
| 231 | #define IPPORT_DAYTIME 13 | ||
| 232 | #define IPPORT_NETSTAT 15 | ||
| 233 | #define IPPORT_FTP 21 | ||
| 234 | #define IPPORT_TELNET 23 | ||
| 235 | #define IPPORT_SMTP 25 | ||
| 236 | #define IPPORT_TIMESERVER 37 | ||
| 237 | #define IPPORT_NAMESERVER 42 | ||
| 238 | #define IPPORT_WHOIS 43 | ||
| 239 | #define IPPORT_MTP 57 | ||
| 240 | #define IPPORT_TFTP 69 | ||
| 241 | #define IPPORT_RJE 77 | ||
| 242 | #define IPPORT_FINGER 79 | ||
| 243 | #define IPPORT_TTYLINK 87 | ||
| 244 | #define IPPORT_SUPDUP 95 | ||
| 245 | #define IPPORT_EXECSERVER 512 | ||
| 246 | #define IPPORT_LOGINSERVER 513 | ||
| 247 | #define IPPORT_CMDSERVER 514 | ||
| 248 | #define IPPORT_EFSSERVER 520 | ||
| 249 | #define IPPORT_BIFFUDP 512 | ||
| 250 | #define IPPORT_WHOSERVER 513 | ||
| 251 | #define IPPORT_ROUTESERVER 520 | ||
| 252 | #define IPPORT_RESERVED 1024 | ||
| 253 | #define IMPLINK_IP 155 | ||
| 254 | #define IMPLINK_LOWEXPER 156 | ||
| 255 | #define IMPLINK_HIGHEXPER 158 | ||
| 256 | struct in_addr { | ||
| 257 | union { | ||
| 258 | struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; | ||
| 259 | struct { u_short s_w1,s_w2; } S_un_w; | ||
| 260 | u_long S_addr; | ||
| 261 | } S_un; | ||
| 262 | #define s_addr S_un.S_addr | ||
| 263 | #define s_host S_un.S_un_b.s_b2 | ||
| 264 | #define s_net S_un.S_un_b.s_b1 | ||
| 265 | #define s_imp S_un.S_un_w.s_w2 | ||
| 266 | #define s_impno S_un.S_un_b.s_b4 | ||
| 267 | #define s_lh S_un.S_un_b.s_b3 | ||
| 268 | }; | ||
| 269 | #define IN_CLASSA(i) (((long)(i)&0x80000000) == 0) | ||
| 270 | #define IN_CLASSA_NET 0xff000000 | ||
| 271 | #define IN_CLASSA_NSHIFT 24 | ||
| 272 | #define IN_CLASSA_HOST 0x00ffffff | ||
| 273 | #define IN_CLASSA_MAX 128 | ||
| 274 | #define IN_CLASSB(i) (((long)(i)&0xc0000000)==0x80000000) | ||
| 275 | #define IN_CLASSB_NET 0xffff0000 | ||
| 276 | #define IN_CLASSB_NSHIFT 16 | ||
| 277 | #define IN_CLASSB_HOST 0x0000ffff | ||
| 278 | #define IN_CLASSB_MAX 65536 | ||
| 279 | #define IN_CLASSC(i) (((long)(i)&0xe0000000)==0xc0000000) | ||
| 280 | #define IN_CLASSC_NET 0xffffff00 | ||
| 281 | #define IN_CLASSC_NSHIFT 8 | ||
| 282 | #define IN_CLASSC_HOST 0xff | ||
| 283 | #define INADDR_ANY (u_long)0 | ||
| 284 | #define INADDR_LOOPBACK 0x7f000001 | ||
| 285 | #define INADDR_BROADCAST (u_long)0xffffffff | ||
| 286 | #define INADDR_NONE 0xffffffff | ||
| 287 | struct sockaddr_in { | ||
| 288 | short sin_family; | ||
| 289 | u_short sin_port; | ||
| 290 | struct in_addr sin_addr; | ||
| 291 | char sin_zero[8]; | ||
| 292 | }; | ||
| 293 | #define WSADESCRIPTION_LEN 256 | ||
| 294 | #define WSASYS_STATUS_LEN 128 | ||
| 295 | typedef struct WSAData { | ||
| 296 | WORD wVersion; | ||
| 297 | WORD wHighVersion; | ||
| 298 | char szDescription[WSADESCRIPTION_LEN+1]; | ||
| 299 | char szSystemStatus[WSASYS_STATUS_LEN+1]; | ||
| 300 | unsigned short iMaxSockets; | ||
| 301 | unsigned short iMaxUdpDg; | ||
| 302 | char * lpVendorInfo; | ||
| 303 | } WSADATA; | ||
| 304 | typedef WSADATA *LPWSADATA; | ||
| 305 | |||
| 306 | #if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) | ||
| 307 | #define IP_OPTIONS 1 | ||
| 308 | #define SO_DEBUG 1 | ||
| 309 | #define SO_ACCEPTCONN 2 | ||
| 310 | #define SO_REUSEADDR 4 | ||
| 311 | #define SO_KEEPALIVE 8 | ||
| 312 | #define SO_DONTROUTE 16 | ||
| 313 | #define SO_BROADCAST 32 | ||
| 314 | #define SO_USELOOPBACK 64 | ||
| 315 | #define SO_LINGER 128 | ||
| 316 | #define SO_OOBINLINE 256 | ||
| 317 | #define SO_DONTLINGER (u_int)(~SO_LINGER) | ||
| 318 | #define SO_EXCLUSIVEADDRUSE ((u_int)(~SO_REUSEADDR)) | ||
| 319 | #define SO_SNDBUF 0x1001 | ||
| 320 | #define SO_RCVBUF 0x1002 | ||
| 321 | #define SO_SNDLOWAT 0x1003 | ||
| 322 | #define SO_RCVLOWAT 0x1004 | ||
| 323 | #define SO_SNDTIMEO 0x1005 | ||
| 324 | #define SO_RCVTIMEO 0x1006 | ||
| 325 | #define SO_ERROR 0x1007 | ||
| 326 | #define SO_TYPE 0x1008 | ||
| 327 | #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ | ||
| 328 | |||
| 329 | #define INVALID_SOCKET (SOCKET)(~0) | ||
| 330 | #define SOCKET_ERROR (-1) | ||
| 331 | #define SOCK_STREAM 1 | ||
| 332 | #define SOCK_DGRAM 2 | ||
| 333 | #define SOCK_RAW 3 | ||
| 334 | #define SOCK_RDM 4 | ||
| 335 | #define SOCK_SEQPACKET 5 | ||
| 336 | #define TCP_NODELAY 0x0001 | ||
| 337 | #define AF_UNSPEC 0 | ||
| 338 | #define AF_UNIX 1 | ||
| 339 | #define AF_INET 2 | ||
| 340 | #define AF_IMPLINK 3 | ||
| 341 | #define AF_PUP 4 | ||
| 342 | #define AF_CHAOS 5 | ||
| 343 | #define AF_IPX 6 | ||
| 344 | #define AF_NS 6 | ||
| 345 | #define AF_ISO 7 | ||
| 346 | #define AF_OSI AF_ISO | ||
| 347 | #define AF_ECMA 8 | ||
| 348 | #define AF_DATAKIT 9 | ||
| 349 | #define AF_CCITT 10 | ||
| 350 | #define AF_SNA 11 | ||
| 351 | #define AF_DECnet 12 | ||
| 352 | #define AF_DLI 13 | ||
| 353 | #define AF_LAT 14 | ||
| 354 | #define AF_HYLINK 15 | ||
| 355 | #define AF_APPLETALK 16 | ||
| 356 | #define AF_NETBIOS 17 | ||
| 357 | #define AF_VOICEVIEW 18 | ||
| 358 | #define AF_FIREFOX 19 | ||
| 359 | #define AF_UNKNOWN1 20 | ||
| 360 | #define AF_BAN 21 | ||
| 361 | #define AF_ATM 22 | ||
| 362 | #define AF_INET6 23 | ||
| 363 | #define AF_CLUSTER 24 | ||
| 364 | #define AF_12844 25 | ||
| 365 | #define AF_IRDA 26 | ||
| 366 | #define AF_NETDES 28 | ||
| 367 | |||
| 368 | #ifndef __INSIDE_MSYS__ | ||
| 369 | #define AF_MAX 29 | ||
| 370 | struct sockaddr { | ||
| 371 | u_short sa_family; | ||
| 372 | char sa_data[14]; | ||
| 373 | }; | ||
| 374 | |||
| 375 | /* Portable IPv6/IPv4 version of sockaddr. Based on RFC 2553. | ||
| 376 | Pad to force 8 byte alignment and maximum size of 128 bytes. */ | ||
| 377 | |||
| 378 | /* | ||
| 379 | * Desired design of maximum size and alignment | ||
| 380 | */ | ||
| 381 | #define _SS_MAXSIZE 128 | ||
| 382 | #define _SS_ALIGNSIZE (sizeof (__int64)) | ||
| 383 | /* | ||
| 384 | * Definitions used for sockaddr_storage structure paddings design. | ||
| 385 | */ | ||
| 386 | #define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof (short)) | ||
| 387 | #define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof (short) \ | ||
| 388 | + _SS_PAD1SIZE \ | ||
| 389 | + _SS_ALIGNSIZE)) | ||
| 390 | struct sockaddr_storage { | ||
| 391 | short ss_family; | ||
| 392 | char __ss_pad1[_SS_PAD1SIZE]; /* pad to 8 */ | ||
| 393 | __int64 __ss_align; /* force alignment */ | ||
| 394 | char __ss_pad2[_SS_PAD2SIZE]; /* pad to 128 */ | ||
| 395 | }; | ||
| 396 | #endif /* !__INSIDE_MSYS__ */ | ||
| 397 | |||
| 398 | struct sockproto { | ||
| 399 | u_short sp_family; | ||
| 400 | u_short sp_protocol; | ||
| 401 | }; | ||
| 402 | #define PF_UNSPEC AF_UNSPEC | ||
| 403 | #define PF_UNIX AF_UNIX | ||
| 404 | #define PF_INET AF_INET | ||
| 405 | #define PF_IMPLINK AF_IMPLINK | ||
| 406 | #define PF_PUP AF_PUP | ||
| 407 | #define PF_CHAOS AF_CHAOS | ||
| 408 | #define PF_NS AF_NS | ||
| 409 | #define PF_IPX AF_IPX | ||
| 410 | #define PF_ISO AF_ISO | ||
| 411 | #define PF_OSI AF_OSI | ||
| 412 | #define PF_ECMA AF_ECMA | ||
| 413 | #define PF_DATAKIT AF_DATAKIT | ||
| 414 | #define PF_CCITT AF_CCITT | ||
| 415 | #define PF_SNA AF_SNA | ||
| 416 | #define PF_DECnet AF_DECnet | ||
| 417 | #define PF_DLI AF_DLI | ||
| 418 | #define PF_LAT AF_LAT | ||
| 419 | #define PF_HYLINK AF_HYLINK | ||
| 420 | #define PF_APPLETALK AF_APPLETALK | ||
| 421 | #define PF_VOICEVIEW AF_VOICEVIEW | ||
| 422 | #define PF_FIREFOX AF_FIREFOX | ||
| 423 | #define PF_UNKNOWN1 AF_UNKNOWN1 | ||
| 424 | #define PF_BAN AF_BAN | ||
| 425 | #define PF_ATM AF_ATM | ||
| 426 | #define PF_INET6 AF_INET6 | ||
| 427 | #define PF_MAX AF_MAX | ||
| 428 | #define SOL_SOCKET 0xffff | ||
| 429 | |||
| 430 | #if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) | ||
| 431 | #define SOMAXCONN 0x7fffffff /* (5) in WinSock1.1 */ | ||
| 432 | #define MSG_OOB 1 | ||
| 433 | #define MSG_PEEK 2 | ||
| 434 | #define MSG_DONTROUTE 4 | ||
| 435 | #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ | ||
| 436 | |||
| 437 | #define MSG_MAXIOVLEN 16 | ||
| 438 | #define MSG_PARTIAL 0x8000 | ||
| 439 | #define MAXGETHOSTSTRUCT 1024 | ||
| 440 | |||
| 441 | #define FD_READ_BIT 0 | ||
| 442 | #define FD_READ (1 << FD_READ_BIT) | ||
| 443 | #define FD_WRITE_BIT 1 | ||
| 444 | #define FD_WRITE (1 << FD_WRITE_BIT) | ||
| 445 | #define FD_OOB_BIT 2 | ||
| 446 | #define FD_OOB (1 << FD_OOB_BIT) | ||
| 447 | #define FD_ACCEPT_BIT 3 | ||
| 448 | #define FD_ACCEPT (1 << FD_ACCEPT_BIT) | ||
| 449 | #define FD_CONNECT_BIT 4 | ||
| 450 | #define FD_CONNECT (1 << FD_CONNECT_BIT) | ||
| 451 | #define FD_CLOSE_BIT 5 | ||
| 452 | #define FD_CLOSE (1 << FD_CLOSE_BIT) | ||
| 453 | /* winsock1.1 defines stop at FD_CLOSE (32) */ | ||
| 454 | #define FD_QOS_BIT 6 | ||
| 455 | #define FD_QOS (1 << FD_QOS_BIT) | ||
| 456 | #define FD_GROUP_QOS_BIT 7 | ||
| 457 | #define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT) | ||
| 458 | #define FD_ROUTING_INTERFACE_CHANGE_BIT 8 | ||
| 459 | #define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT) | ||
| 460 | #define FD_ADDRESS_LIST_CHANGE_BIT 9 | ||
| 461 | #define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT) | ||
| 462 | #define FD_MAX_EVENTS 10 | ||
| 463 | #define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1) | ||
| 464 | |||
| 465 | #ifndef WSABASEERR | ||
| 466 | #define WSABASEERR 10000 | ||
| 467 | #define WSAEINTR (WSABASEERR+4) | ||
| 468 | #define WSAEBADF (WSABASEERR+9) | ||
| 469 | #define WSAEACCES (WSABASEERR+13) | ||
| 470 | #define WSAEFAULT (WSABASEERR+14) | ||
| 471 | #define WSAEINVAL (WSABASEERR+22) | ||
| 472 | #define WSAEMFILE (WSABASEERR+24) | ||
| 473 | #define WSAEWOULDBLOCK (WSABASEERR+35) | ||
| 474 | #define WSAEINPROGRESS (WSABASEERR+36) /* deprecated on WinSock2 */ | ||
| 475 | #define WSAEALREADY (WSABASEERR+37) | ||
| 476 | #define WSAENOTSOCK (WSABASEERR+38) | ||
| 477 | #define WSAEDESTADDRREQ (WSABASEERR+39) | ||
| 478 | #define WSAEMSGSIZE (WSABASEERR+40) | ||
| 479 | #define WSAEPROTOTYPE (WSABASEERR+41) | ||
| 480 | #define WSAENOPROTOOPT (WSABASEERR+42) | ||
| 481 | #define WSAEPROTONOSUPPORT (WSABASEERR+43) | ||
| 482 | #define WSAESOCKTNOSUPPORT (WSABASEERR+44) | ||
| 483 | #define WSAEOPNOTSUPP (WSABASEERR+45) | ||
| 484 | #define WSAEPFNOSUPPORT (WSABASEERR+46) | ||
| 485 | #define WSAEAFNOSUPPORT (WSABASEERR+47) | ||
| 486 | #define WSAEADDRINUSE (WSABASEERR+48) | ||
| 487 | #define WSAEADDRNOTAVAIL (WSABASEERR+49) | ||
| 488 | #define WSAENETDOWN (WSABASEERR+50) | ||
| 489 | #define WSAENETUNREACH (WSABASEERR+51) | ||
| 490 | #define WSAENETRESET (WSABASEERR+52) | ||
| 491 | #define WSAECONNABORTED (WSABASEERR+53) | ||
| 492 | #define WSAECONNRESET (WSABASEERR+54) | ||
| 493 | #define WSAENOBUFS (WSABASEERR+55) | ||
| 494 | #define WSAEISCONN (WSABASEERR+56) | ||
| 495 | #define WSAENOTCONN (WSABASEERR+57) | ||
| 496 | #define WSAESHUTDOWN (WSABASEERR+58) | ||
| 497 | #define WSAETOOMANYREFS (WSABASEERR+59) | ||
| 498 | #define WSAETIMEDOUT (WSABASEERR+60) | ||
| 499 | #define WSAECONNREFUSED (WSABASEERR+61) | ||
| 500 | #define WSAELOOP (WSABASEERR+62) | ||
| 501 | #define WSAENAMETOOLONG (WSABASEERR+63) | ||
| 502 | #define WSAEHOSTDOWN (WSABASEERR+64) | ||
| 503 | #define WSAEHOSTUNREACH (WSABASEERR+65) | ||
| 504 | #define WSAENOTEMPTY (WSABASEERR+66) | ||
| 505 | #define WSAEPROCLIM (WSABASEERR+67) | ||
| 506 | #define WSAEUSERS (WSABASEERR+68) | ||
| 507 | #define WSAEDQUOT (WSABASEERR+69) | ||
| 508 | #define WSAESTALE (WSABASEERR+70) | ||
| 509 | #define WSAEREMOTE (WSABASEERR+71) | ||
| 510 | #define WSAEDISCON (WSABASEERR+101) | ||
| 511 | #define WSASYSNOTREADY (WSABASEERR+91) | ||
| 512 | #define WSAVERNOTSUPPORTED (WSABASEERR+92) | ||
| 513 | #define WSANOTINITIALISED (WSABASEERR+93) | ||
| 514 | #define WSAHOST_NOT_FOUND (WSABASEERR+1001) | ||
| 515 | #define WSATRY_AGAIN (WSABASEERR+1002) | ||
| 516 | #define WSANO_RECOVERY (WSABASEERR+1003) | ||
| 517 | #define WSANO_DATA (WSABASEERR+1004) | ||
| 518 | |||
| 519 | /* WinSock2 specific error codes */ | ||
| 520 | #define WSAENOMORE (WSABASEERR+102) | ||
| 521 | #define WSAECANCELLED (WSABASEERR+103) | ||
| 522 | #define WSAEINVALIDPROCTABLE (WSABASEERR+104) | ||
| 523 | #define WSAEINVALIDPROVIDER (WSABASEERR+105) | ||
| 524 | #define WSAEPROVIDERFAILEDINIT (WSABASEERR+106) | ||
| 525 | #define WSASYSCALLFAILURE (WSABASEERR+107) | ||
| 526 | #define WSASERVICE_NOT_FOUND (WSABASEERR+108) | ||
| 527 | #define WSATYPE_NOT_FOUND (WSABASEERR+109) | ||
| 528 | #define WSA_E_NO_MORE (WSABASEERR+110) | ||
| 529 | #define WSA_E_CANCELLED (WSABASEERR+111) | ||
| 530 | #define WSAEREFUSED (WSABASEERR+112) | ||
| 531 | |||
| 532 | /* WS QualityofService errors */ | ||
| 533 | #define WSA_QOS_RECEIVERS (WSABASEERR + 1005) | ||
| 534 | #define WSA_QOS_SENDERS (WSABASEERR + 1006) | ||
| 535 | #define WSA_QOS_NO_SENDERS (WSABASEERR + 1007) | ||
| 536 | #define WSA_QOS_NO_RECEIVERS (WSABASEERR + 1008) | ||
| 537 | #define WSA_QOS_REQUEST_CONFIRMED (WSABASEERR + 1009) | ||
| 538 | #define WSA_QOS_ADMISSION_FAILURE (WSABASEERR + 1010) | ||
| 539 | #define WSA_QOS_POLICY_FAILURE (WSABASEERR + 1011) | ||
| 540 | #define WSA_QOS_BAD_STYLE (WSABASEERR + 1012) | ||
| 541 | #define WSA_QOS_BAD_OBJECT (WSABASEERR + 1013) | ||
| 542 | #define WSA_QOS_TRAFFIC_CTRL_ERROR (WSABASEERR + 1014) | ||
| 543 | #define WSA_QOS_GENERIC_ERROR (WSABASEERR + 1015) | ||
| 544 | #define WSA_QOS_ESERVICETYPE (WSABASEERR + 1016) | ||
| 545 | #define WSA_QOS_EFLOWSPEC (WSABASEERR + 1017) | ||
| 546 | #define WSA_QOS_EPROVSPECBUF (WSABASEERR + 1018) | ||
| 547 | #define WSA_QOS_EFILTERSTYLE (WSABASEERR + 1019) | ||
| 548 | #define WSA_QOS_EFILTERTYPE (WSABASEERR + 1020) | ||
| 549 | #define WSA_QOS_EFILTERCOUNT (WSABASEERR + 1021) | ||
| 550 | #define WSA_QOS_EOBJLENGTH (WSABASEERR + 1022) | ||
| 551 | #define WSA_QOS_EFLOWCOUNT (WSABASEERR + 1023) | ||
| 552 | #define WSA_QOS_EUNKOWNPSOBJ (WSABASEERR + 1024) | ||
| 553 | #define WSA_QOS_EPOLICYOBJ (WSABASEERR + 1025) | ||
| 554 | #define WSA_QOS_EFLOWDESC (WSABASEERR + 1026) | ||
| 555 | #define WSA_QOS_EPSFLOWSPEC (WSABASEERR + 1027) | ||
| 556 | #define WSA_QOS_EPSFILTERSPEC (WSABASEERR + 1028) | ||
| 557 | #define WSA_QOS_ESDMODEOBJ (WSABASEERR + 1029) | ||
| 558 | #define WSA_QOS_ESHAPERATEOBJ (WSABASEERR + 1030) | ||
| 559 | #define WSA_QOS_RESERVED_PETYPE (WSABASEERR + 1031) | ||
| 560 | |||
| 561 | #endif /* !WSABASEERR */ | ||
| 562 | |||
| 563 | #define WSANO_ADDRESS WSANO_DATA | ||
| 564 | |||
| 565 | #if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) | ||
| 566 | #define h_errno WSAGetLastError() | ||
| 567 | #define HOST_NOT_FOUND WSAHOST_NOT_FOUND | ||
| 568 | #define TRY_AGAIN WSATRY_AGAIN | ||
| 569 | #define NO_RECOVERY WSANO_RECOVERY | ||
| 570 | #define NO_DATA WSANO_DATA | ||
| 571 | #define NO_ADDRESS WSANO_ADDRESS | ||
| 572 | #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ | ||
| 573 | |||
| 574 | WINSOCK_API_LINKAGE SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*); | ||
| 575 | WINSOCK_API_LINKAGE int PASCAL bind(SOCKET,const struct sockaddr*,int); | ||
| 576 | WINSOCK_API_LINKAGE int PASCAL closesocket(SOCKET); | ||
| 577 | WINSOCK_API_LINKAGE int PASCAL connect(SOCKET,const struct sockaddr*,int); | ||
| 578 | WINSOCK_API_LINKAGE int PASCAL ioctlsocket(SOCKET,long,u_long *); | ||
| 579 | WINSOCK_API_LINKAGE int PASCAL getpeername(SOCKET,struct sockaddr*,int*); | ||
| 580 | WINSOCK_API_LINKAGE int PASCAL getsockname(SOCKET,struct sockaddr*,int*); | ||
| 581 | WINSOCK_API_LINKAGE int PASCAL getsockopt(SOCKET,int,int,char*,int*); | ||
| 582 | WINSOCK_API_LINKAGE unsigned long PASCAL inet_addr(const char*); | ||
| 583 | WINSOCK_API_LINKAGE DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr); | ||
| 584 | WINSOCK_API_LINKAGE int PASCAL listen(SOCKET,int); | ||
| 585 | WINSOCK_API_LINKAGE int PASCAL recv(SOCKET,char*,int,int); | ||
| 586 | WINSOCK_API_LINKAGE int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*); | ||
| 587 | WINSOCK_API_LINKAGE int PASCAL send(SOCKET,const char*,int,int); | ||
| 588 | WINSOCK_API_LINKAGE int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int); | ||
| 589 | WINSOCK_API_LINKAGE int PASCAL setsockopt(SOCKET,int,int,const char*,int); | ||
| 590 | WINSOCK_API_LINKAGE int PASCAL shutdown(SOCKET,int); | ||
| 591 | WINSOCK_API_LINKAGE SOCKET PASCAL socket(int,int,int); | ||
| 592 | WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int); | ||
| 593 | WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*); | ||
| 594 | WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*); | ||
| 595 | WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*); | ||
| 596 | WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int); | ||
| 597 | WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*); | ||
| 598 | typedef SOCKET (PASCAL * LPFN_ACCEPT)(SOCKET, struct sockaddr*,int *); | ||
| 599 | typedef int (PASCAL * LPFN_BIND)(SOCKET, const struct sockaddr*,int); | ||
| 600 | typedef int (PASCAL * LPFN_CLOSESOCKET)(SOCKET); | ||
| 601 | typedef int (PASCAL * LPFN_CONNECT)(SOCKET, const struct sockaddr*,int); | ||
| 602 | typedef int (PASCAL * LPFN_IOCTLSOCKET)(SOCKET, long, u_long*); | ||
| 603 | typedef int (PASCAL * LPFN_GETPEERNAME)(SOCKET, struct sockaddr*, int*); | ||
| 604 | typedef int(PASCAL * LPFN_GETSOCKNAME)(SOCKET, struct sockaddr*, int*); | ||
| 605 | typedef int(PASCAL * LPFN_GETSOCKOPT)(SOCKET, int, int, char*, int*); | ||
| 606 | typedef u_long(PASCAL * LPFN_HTONL)(u_long); | ||
| 607 | typedef u_short(PASCAL * LPFN_HTONS)(u_short); | ||
| 608 | typedef unsigned long(PASCAL * LPFN_INET_ADDR)(const char*); | ||
| 609 | typedef char*(PASCAL * LPFN_INET_NTOA)(struct in_addr); | ||
| 610 | typedef int(PASCAL * LPFN_LISTEN)(SOCKET, int); | ||
| 611 | typedef u_long(PASCAL * LPFN_NTOHL)(u_long); | ||
| 612 | typedef u_short(PASCAL * LPFN_NTOHS)(u_short); | ||
| 613 | typedef int(PASCAL * LPFN_RECV)(SOCKET, char*, int, int); | ||
| 614 | typedef int(PASCAL * LPFN_RECVFROM)(SOCKET, char*, int, int, struct sockaddr*, int*); | ||
| 615 | typedef int(PASCAL * LPFN_SELECT)(int, fd_set*, fd_set*, fd_set*, const struct timeval*); | ||
| 616 | typedef int(PASCAL * LPFN_SEND)(SOCKET, const char*, int, int); | ||
| 617 | typedef int(PASCAL * LPFN_SENDTO)(SOCKET, const char*, int, int, const struct sockaddr*, int); | ||
| 618 | typedef int(PASCAL * LPFN_SETSOCKOPT)(SOCKET, int, int, const char*, int); | ||
| 619 | typedef int(PASCAL * LPFN_SHUTDOWN)(SOCKET, int); | ||
| 620 | typedef SOCKET(PASCAL * LPFN_SOCKET)(int, int, int); | ||
| 621 | typedef struct hostent*(PASCAL * LPFN_GETHOSTBYADDR)( const char*, int, int); | ||
| 622 | typedef struct hostent*(PASCAL * LPFN_GETHOSTBYNAME)( const char*); | ||
| 623 | typedef int(PASCAL * LPFN_GETHOSTNAME)(char*, int); | ||
| 624 | typedef struct servent*(PASCAL * LPFN_GETSERVBYPORT)(int, const char*); | ||
| 625 | typedef struct servent*(PASCAL * LPFN_GETSERVBYNAME)(const char*, const char*); | ||
| 626 | typedef struct protoent*(PASCAL * LPFN_GETPROTOBYNUMBER)(int); | ||
| 627 | typedef struct protoent*(PASCAL * LPFN_GETPROTOBYNAME)(const char*); | ||
| 628 | |||
| 629 | WINSOCK_API_LINKAGE int PASCAL WSAStartup(WORD,LPWSADATA); | ||
| 630 | WINSOCK_API_LINKAGE int PASCAL WSACleanup(void); | ||
| 631 | WINSOCK_API_LINKAGE void PASCAL WSASetLastError(int); | ||
| 632 | WINSOCK_API_LINKAGE int PASCAL WSAGetLastError(void); | ||
| 633 | WINSOCK_API_LINKAGE typedef int(PASCAL * LPFN_WSASTARTUP)(WORD, LPWSADATA); | ||
| 634 | typedef int(PASCAL * LPFN_WSACLEANUP)(void); | ||
| 635 | typedef void(PASCAL * LPFN_WSASETLASTERROR)(int); | ||
| 636 | typedef int(PASCAL * LPFN_WSAGETLASTERROR)(void); | ||
| 637 | /* | ||
| 638 | * Pseudo-blocking functions are deprecated in WinSock2 | ||
| 639 | * spec. Use threads instead. | ||
| 640 | */ | ||
| 641 | WINSOCK_API_LINKAGE BOOL PASCAL WSAIsBlocking(void); | ||
| 642 | WINSOCK_API_LINKAGE int PASCAL WSAUnhookBlockingHook(void); | ||
| 643 | WINSOCK_API_LINKAGE FARPROC PASCAL WSASetBlockingHook(FARPROC); | ||
| 644 | WINSOCK_API_LINKAGE int PASCAL WSACancelBlockingCall(void); | ||
| 645 | typedef BOOL(PASCAL * LPFN_WSAISBLOCKING)(void); | ||
| 646 | typedef int(PASCAL * LPFN_WSAUNHOOKBLOCKINGHOOK)(void); | ||
| 647 | typedef FARPROC (PASCAL * LPFN_WSASETBLOCKINGHOOK)(FARPROC); | ||
| 648 | typedef int(PASCAL * LPFN_WSACANCELBLOCKINGCALL)(void); | ||
| 649 | |||
| 650 | WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int); | ||
| 651 | WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int); | ||
| 652 | WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int); | ||
| 653 | WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int); | ||
| 654 | WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int); | ||
| 655 | WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int); | ||
| 656 | WINSOCK_API_LINKAGE int PASCAL WSACancelAsyncRequest(HANDLE); | ||
| 657 | WINSOCK_API_LINKAGE int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long); | ||
| 658 | typedef HANDLE(PASCAL * LPFN_WSAASYNCGETSERVBYNAME)(HWND, u_int, const char *, const char *, char *, int); | ||
| 659 | typedef HANDLE(PASCAL * LPFN_WSAASYNCGETSERVBYPORT)(HWND, u_int, int, const char *, char *, int); | ||
| 660 | typedef HANDLE(PASCAL * LPFN_WSAASYNCGETPROTOBYNAME)(HWND, u_int, const char*, char*, int); | ||
| 661 | typedef HANDLE(PASCAL * LPFN_WSAASYNCGETPROTOBYNUMBER)(HWND, u_int, int, char*, int); | ||
| 662 | typedef HANDLE(PASCAL * LPFN_WSAASYNCGETHOSTBYADDR)(HWND, u_int, const char*, int, int, char*, int); | ||
| 663 | typedef int(PASCAL * LPFN_WSACANCELASYNCREQUEST)(HANDLE); | ||
| 664 | typedef int(PASCAL * LPFN_WSAASYNCSELECT)(SOCKET, HWND, u_int, long); | ||
| 665 | |||
| 666 | #if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) | ||
| 667 | WINSOCK_API_LINKAGE u_long PASCAL htonl(u_long); | ||
| 668 | WINSOCK_API_LINKAGE u_long PASCAL ntohl(u_long); | ||
| 669 | WINSOCK_API_LINKAGE u_short PASCAL htons(u_short); | ||
| 670 | WINSOCK_API_LINKAGE u_short PASCAL ntohs(u_short); | ||
| 671 | WINSOCK_API_LINKAGE int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*); | ||
| 672 | #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ | ||
| 673 | |||
| 674 | int PASCAL gethostname(char*,int); | ||
| 675 | |||
| 676 | #define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e) | ||
| 677 | #define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error) | ||
| 678 | #define WSAGETASYNCBUFLEN(l) LOWORD(l) | ||
| 679 | #define WSAGETASYNCERROR(l) HIWORD(l) | ||
| 680 | #define WSAGETSELECTEVENT(l) LOWORD(l) | ||
| 681 | #define WSAGETSELECTERROR(l) HIWORD(l) | ||
| 682 | |||
| 683 | typedef struct sockaddr SOCKADDR; | ||
| 684 | typedef struct sockaddr *PSOCKADDR; | ||
| 685 | typedef struct sockaddr *LPSOCKADDR; | ||
| 686 | typedef struct sockaddr_storage SOCKADDR_STORAGE, *PSOCKADDR_STORAGE; | ||
| 687 | typedef struct sockaddr_in SOCKADDR_IN; | ||
| 688 | typedef struct sockaddr_in *PSOCKADDR_IN; | ||
| 689 | typedef struct sockaddr_in *LPSOCKADDR_IN; | ||
| 690 | typedef struct linger LINGER; | ||
| 691 | typedef struct linger *PLINGER; | ||
| 692 | typedef struct linger *LPLINGER; | ||
| 693 | typedef struct in_addr IN_ADDR; | ||
| 694 | typedef struct in_addr *PIN_ADDR; | ||
| 695 | typedef struct in_addr *LPIN_ADDR; | ||
| 696 | typedef struct fd_set FD_SET; | ||
| 697 | typedef struct fd_set *PFD_SET; | ||
| 698 | typedef struct fd_set *LPFD_SET; | ||
| 699 | typedef struct hostent HOSTENT; | ||
| 700 | typedef struct hostent *PHOSTENT; | ||
| 701 | typedef struct hostent *LPHOSTENT; | ||
| 702 | typedef struct servent SERVENT; | ||
| 703 | typedef struct servent *PSERVENT; | ||
| 704 | typedef struct servent *LPSERVENT; | ||
| 705 | typedef struct protoent PROTOENT; | ||
| 706 | typedef struct protoent *PPROTOENT; | ||
| 707 | typedef struct protoent *LPPROTOENT; | ||
| 708 | typedef struct timeval TIMEVAL; | ||
| 709 | typedef struct timeval *PTIMEVAL; | ||
| 710 | typedef struct timeval *LPTIMEVAL; | ||
| 711 | |||
| 712 | /* winsock2 additions */ | ||
| 713 | #define ADDR_ANY INADDR_ANY | ||
| 714 | |||
| 715 | #define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000) | ||
| 716 | #define IN_CLASSD_NET 0xf0000000 | ||
| 717 | #define IN_CLASSD_NSHIFT 28 | ||
| 718 | #define IN_CLASSD_HOST 0x0fffffff | ||
| 719 | #define IN_MULTICAST(i) IN_CLASSD(i) | ||
| 720 | |||
| 721 | #define FROM_PROTOCOL_INFO (-1) | ||
| 722 | |||
| 723 | #define SO_DONTLINGER (u_int)(~SO_LINGER) | ||
| 724 | #define SO_GROUP_ID 0x2001 | ||
| 725 | #define SO_GROUP_PRIORITY 0x2002 | ||
| 726 | #define SO_MAX_MSG_SIZE 0x2003 | ||
| 727 | #define SO_PROTOCOL_INFOA 0x2004 | ||
| 728 | #define SO_PROTOCOL_INFOW 0x2005 | ||
| 729 | |||
| 730 | #define SO_PROTOCOL_INFO __AW(SO_PROTOCOL_INFO) | ||
| 731 | |||
| 732 | #define PVD_CONFIG 0x3001 | ||
| 733 | |||
| 734 | #define MSG_INTERRUPT 0x10 | ||
| 735 | #define MSG_MAXIOVLEN 16 | ||
| 736 | |||
| 737 | #define WSAAPI WINAPI | ||
| 738 | #define WSAEVENT HANDLE | ||
| 739 | #define LPWSAEVENT LPHANDLE | ||
| 740 | #define WSAOVERLAPPED OVERLAPPED | ||
| 741 | typedef struct _OVERLAPPED *LPWSAOVERLAPPED; | ||
| 742 | |||
| 743 | #define WSA_IO_PENDING (ERROR_IO_PENDING) | ||
| 744 | #define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE) | ||
| 745 | #define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE) | ||
| 746 | #define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER) | ||
| 747 | #define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY) | ||
| 748 | #define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED) | ||
| 749 | |||
| 750 | #define WSA_INVALID_EVENT ((WSAEVENT)NULL) | ||
| 751 | #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS) | ||
| 752 | #define WSA_WAIT_FAILED ((DWORD)-1L) | ||
| 753 | #define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0) | ||
| 754 | #define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION) | ||
| 755 | #define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT) | ||
| 756 | #define WSA_INFINITE (INFINITE) | ||
| 757 | |||
| 758 | typedef struct _WSABUF { | ||
| 759 | unsigned long len; | ||
| 760 | char *buf; | ||
| 761 | } WSABUF, *LPWSABUF; | ||
| 762 | |||
| 763 | typedef enum | ||
| 764 | { | ||
| 765 | BestEffortService, | ||
| 766 | ControlledLoadService, | ||
| 767 | PredictiveService, | ||
| 768 | GuaranteedDelayService, | ||
| 769 | GuaranteedService | ||
| 770 | } GUARANTEE; | ||
| 771 | |||
| 772 | /* TODO: FLOWSPEC and related definitions belong in qos.h */ | ||
| 773 | |||
| 774 | /* | ||
| 775 | Windows Sockets 2 Application Programming Interface, | ||
| 776 | revision 2.2.2 (1997) uses the type uint32 for SERVICETYPE | ||
| 777 | and the elements of _flowspec, but the type uint32 is not defined | ||
| 778 | or used anywhere else in the w32api. For now, just use | ||
| 779 | unsigned int, which is 32 bits on _WIN32 and _WIN64. | ||
| 780 | */ | ||
| 781 | |||
| 782 | typedef unsigned int SERVICETYPE; | ||
| 783 | typedef struct _flowspec | ||
| 784 | { | ||
| 785 | unsigned int TokenRate; | ||
| 786 | unsigned int TokenBucketSize; | ||
| 787 | unsigned int PeakBandwidth; | ||
| 788 | unsigned int Latency; | ||
| 789 | unsigned int DelayVariation; | ||
| 790 | SERVICETYPE ServiceType; | ||
| 791 | unsigned int MaxSduSize; | ||
| 792 | unsigned int MinimumPolicedSize; | ||
| 793 | } FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC; | ||
| 794 | |||
| 795 | typedef struct _QualityOfService | ||
| 796 | { | ||
| 797 | FLOWSPEC SendingFlowspec; | ||
| 798 | FLOWSPEC ReceivingFlowspec; | ||
| 799 | WSABUF ProviderSpecific; | ||
| 800 | } QOS, *LPQOS; | ||
| 801 | |||
| 802 | #define CF_ACCEPT 0x0000 | ||
| 803 | #define CF_REJECT 0x0001 | ||
| 804 | #define CF_DEFER 0x0002 | ||
| 805 | #define SD_RECEIVE 0x00 | ||
| 806 | #define SD_SEND 0x01 | ||
| 807 | #define SD_BOTH 0x02 | ||
| 808 | typedef unsigned int GROUP; | ||
| 809 | |||
| 810 | #define SG_UNCONSTRAINED_GROUP 0x01 | ||
| 811 | #define SG_CONSTRAINED_GROUP 0x02 | ||
| 812 | typedef struct _WSANETWORKEVENTS { | ||
| 813 | long lNetworkEvents; | ||
| 814 | int iErrorCode[FD_MAX_EVENTS]; | ||
| 815 | } WSANETWORKEVENTS, *LPWSANETWORKEVENTS; | ||
| 816 | |||
| 817 | #define MAX_PROTOCOL_CHAIN 7 | ||
| 818 | |||
| 819 | #define BASE_PROTOCOL 1 | ||
| 820 | #define LAYERED_PROTOCOL 0 | ||
| 821 | |||
| 822 | typedef enum _WSAESETSERVICEOP | ||
| 823 | { | ||
| 824 | RNRSERVICE_REGISTER=0, | ||
| 825 | RNRSERVICE_DEREGISTER, | ||
| 826 | RNRSERVICE_DELETE | ||
| 827 | } WSAESETSERVICEOP, *PWSAESETSERVICEOP, *LPWSAESETSERVICEOP; | ||
| 828 | |||
| 829 | typedef struct _AFPROTOCOLS { | ||
| 830 | INT iAddressFamily; | ||
| 831 | INT iProtocol; | ||
| 832 | } AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS; | ||
| 833 | |||
| 834 | typedef enum _WSAEcomparator | ||
| 835 | { | ||
| 836 | COMP_EQUAL = 0, | ||
| 837 | COMP_NOTLESS | ||
| 838 | } WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR; | ||
| 839 | |||
| 840 | typedef struct _WSAVersion | ||
| 841 | { | ||
| 842 | DWORD dwVersion; | ||
| 843 | WSAECOMPARATOR ecHow; | ||
| 844 | } WSAVERSION, *PWSAVERSION, *LPWSAVERSION; | ||
| 845 | |||
| 846 | #ifndef __CSADDR_T_DEFINED /* also in nspapi.h */ | ||
| 847 | #define __CSADDR_T_DEFINED | ||
| 848 | typedef struct _SOCKET_ADDRESS { | ||
| 849 | LPSOCKADDR lpSockaddr; | ||
| 850 | INT iSockaddrLength; | ||
| 851 | } SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS; | ||
| 852 | typedef struct _CSADDR_INFO { | ||
| 853 | SOCKET_ADDRESS LocalAddr; | ||
| 854 | SOCKET_ADDRESS RemoteAddr; | ||
| 855 | INT iSocketType; | ||
| 856 | INT iProtocol; | ||
| 857 | } CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO; | ||
| 858 | #endif | ||
| 859 | |||
| 860 | typedef struct _SOCKET_ADDRESS_LIST { | ||
| 861 | INT iAddressCount; | ||
| 862 | SOCKET_ADDRESS Address[1]; | ||
| 863 | } SOCKET_ADDRESS_LIST, * LPSOCKET_ADDRESS_LIST; | ||
| 864 | |||
| 865 | #ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */ | ||
| 866 | #define __BLOB_T_DEFINED | ||
| 867 | typedef struct _BLOB { | ||
| 868 | ULONG cbSize; | ||
| 869 | BYTE *pBlobData; | ||
| 870 | } BLOB,*PBLOB,*LPBLOB; | ||
| 871 | #endif | ||
| 872 | |||
| 873 | typedef struct _WSAQuerySetA | ||
| 874 | { | ||
| 875 | DWORD dwSize; | ||
| 876 | LPSTR lpszServiceInstanceName; | ||
| 877 | LPGUID lpServiceClassId; | ||
| 878 | LPWSAVERSION lpVersion; | ||
| 879 | LPSTR lpszComment; | ||
| 880 | DWORD dwNameSpace; | ||
| 881 | LPGUID lpNSProviderId; | ||
| 882 | LPSTR lpszContext; | ||
| 883 | DWORD dwNumberOfProtocols; | ||
| 884 | LPAFPROTOCOLS lpafpProtocols; | ||
| 885 | LPSTR lpszQueryString; | ||
| 886 | DWORD dwNumberOfCsAddrs; | ||
| 887 | LPCSADDR_INFO lpcsaBuffer; | ||
| 888 | DWORD dwOutputFlags; | ||
| 889 | LPBLOB lpBlob; | ||
| 890 | } WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA; | ||
| 891 | |||
| 892 | typedef struct _WSAQuerySetW | ||
| 893 | { | ||
| 894 | DWORD dwSize; | ||
| 895 | LPWSTR lpszServiceInstanceName; | ||
| 896 | LPGUID lpServiceClassId; | ||
| 897 | LPWSAVERSION lpVersion; | ||
| 898 | LPWSTR lpszComment; | ||
| 899 | DWORD dwNameSpace; | ||
| 900 | LPGUID lpNSProviderId; | ||
| 901 | LPWSTR lpszContext; | ||
| 902 | DWORD dwNumberOfProtocols; | ||
| 903 | LPAFPROTOCOLS lpafpProtocols; | ||
| 904 | LPWSTR lpszQueryString; | ||
| 905 | DWORD dwNumberOfCsAddrs; | ||
| 906 | LPCSADDR_INFO lpcsaBuffer; | ||
| 907 | DWORD dwOutputFlags; | ||
| 908 | LPBLOB lpBlob; | ||
| 909 | } WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW; | ||
| 910 | |||
| 911 | //!! | ||
| 912 | #define __AW__(AW, AW_) AW ## AW_ | ||
| 913 | #define __AW(AW) __AW__(AW, W) | ||
| 914 | #define __STR(AW) __AW__(L, AW) | ||
| 915 | |||
| 916 | typedef __AW(WSAQUERYSET) WSAQUERYSET; | ||
| 917 | typedef __AW(PWSAQUERYSET) PWSAQUERYSET; | ||
| 918 | typedef __AW(LPWSAQUERYSET) LPWSAQUERYSET; | ||
| 919 | |||
| 920 | #define LUP_DEEP 0x0001 | ||
| 921 | #define LUP_CONTAINERS 0x0002 | ||
| 922 | #define LUP_NOCONTAINERS 0x0004 | ||
| 923 | #define LUP_NEAREST 0x0008 | ||
| 924 | #define LUP_RETURN_NAME 0x0010 | ||
| 925 | #define LUP_RETURN_TYPE 0x0020 | ||
| 926 | #define LUP_RETURN_VERSION 0x0040 | ||
| 927 | #define LUP_RETURN_COMMENT 0x0080 | ||
| 928 | #define LUP_RETURN_ADDR 0x0100 | ||
| 929 | #define LUP_RETURN_BLOB 0x0200 | ||
| 930 | #define LUP_RETURN_ALIASES 0x0400 | ||
| 931 | #define LUP_RETURN_QUERY_STRING 0x0800 | ||
| 932 | #define LUP_RETURN_ALL 0x0FF0 | ||
| 933 | #define LUP_RES_SERVICE 0x8000 | ||
| 934 | #define LUP_FLUSHCACHE 0x1000 | ||
| 935 | #define LUP_FLUSHPREVIOUS 0x2000 | ||
| 936 | |||
| 937 | typedef struct _WSANSClassInfoA | ||
| 938 | { | ||
| 939 | LPSTR lpszName; | ||
| 940 | DWORD dwNameSpace; | ||
| 941 | DWORD dwValueType; | ||
| 942 | DWORD dwValueSize; | ||
| 943 | LPVOID lpValue; | ||
| 944 | } WSANSCLASSINFOA, *PWSANSCLASSINFOA, *LPWSANSCLASSINFOA; | ||
| 945 | |||
| 946 | typedef struct _WSANSClassInfoW | ||
| 947 | { | ||
| 948 | LPWSTR lpszName; | ||
| 949 | DWORD dwNameSpace; | ||
| 950 | DWORD dwValueType; | ||
| 951 | DWORD dwValueSize; | ||
| 952 | LPVOID lpValue; | ||
| 953 | } WSANSCLASSINFOW, *PWSANSCLASSINFOW, *LPWSANSCLASSINFOW; | ||
| 954 | |||
| 955 | typedef __AW(WSANSCLASSINFO) WSANSCLASSINFO; | ||
| 956 | typedef __AW(PWSANSCLASSINFO) PWSANSCLASSINFO; | ||
| 957 | typedef __AW(LPWSANSCLASSINFO) LPWSANSCLASSINFO; | ||
| 958 | |||
| 959 | typedef struct _WSAServiceClassInfoA | ||
| 960 | { | ||
| 961 | LPGUID lpServiceClassId; | ||
| 962 | LPSTR lpszServiceClassName; | ||
| 963 | DWORD dwCount; | ||
| 964 | LPWSANSCLASSINFOA lpClassInfos; | ||
| 965 | } WSASERVICECLASSINFOA, *PWSASERVICECLASSINFOA, *LPWSASERVICECLASSINFOA; | ||
| 966 | |||
| 967 | typedef struct _WSAServiceClassInfoW | ||
| 968 | { | ||
| 969 | LPGUID lpServiceClassId; | ||
| 970 | LPWSTR lpszServiceClassName; | ||
| 971 | DWORD dwCount; | ||
| 972 | LPWSANSCLASSINFOW lpClassInfos; | ||
| 973 | } WSASERVICECLASSINFOW, *PWSASERVICECLASSINFOW, *LPWSASERVICECLASSINFOW; | ||
| 974 | |||
| 975 | typedef __AW(WSASERVICECLASSINFO) WSASERVICECLASSINFO; | ||
| 976 | typedef __AW(PWSASERVICECLASSINFO) PWSASERVICECLASSINFO; | ||
| 977 | typedef __AW(LPWSASERVICECLASSINFO) LPWSASERVICECLASSINFO; | ||
| 978 | |||
| 979 | typedef struct _WSANAMESPACE_INFOA { | ||
| 980 | GUID NSProviderId; | ||
| 981 | DWORD dwNameSpace; | ||
| 982 | BOOL fActive; | ||
| 983 | DWORD dwVersion; | ||
| 984 | LPSTR lpszIdentifier; | ||
| 985 | } WSANAMESPACE_INFOA, *PWSANAMESPACE_INFOA, *LPWSANAMESPACE_INFOA; | ||
| 986 | |||
| 987 | typedef struct _WSANAMESPACE_INFOW { | ||
| 988 | GUID NSProviderId; | ||
| 989 | DWORD dwNameSpace; | ||
| 990 | BOOL fActive; | ||
| 991 | DWORD dwVersion; | ||
| 992 | LPWSTR lpszIdentifier; | ||
| 993 | } WSANAMESPACE_INFOW, *PWSANAMESPACE_INFOW, *LPWSANAMESPACE_INFOW; | ||
| 994 | |||
| 995 | typedef __AW(WSANAMESPACE_INFO) WSANAMESPACE_INFO; | ||
| 996 | typedef __AW(PWSANAMESPACE_INFO) PWSANAMESPACE_INFO; | ||
| 997 | typedef __AW(LPWSANAMESPACE_INFO) LPWSANAMESPACE_INFO; | ||
| 998 | |||
| 999 | typedef struct _WSAPROTOCOLCHAIN { | ||
| 1000 | int ChainLen; | ||
| 1001 | DWORD ChainEntries[MAX_PROTOCOL_CHAIN]; | ||
| 1002 | } WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN; | ||
| 1003 | |||
| 1004 | #define WSAPROTOCOL_LEN 255 | ||
| 1005 | |||
| 1006 | typedef struct _WSAPROTOCOL_INFOA { | ||
| 1007 | DWORD dwServiceFlags1; | ||
| 1008 | DWORD dwServiceFlags2; | ||
| 1009 | DWORD dwServiceFlags3; | ||
| 1010 | DWORD dwServiceFlags4; | ||
| 1011 | DWORD dwProviderFlags; | ||
| 1012 | GUID ProviderId; | ||
| 1013 | DWORD dwCatalogEntryId; | ||
| 1014 | WSAPROTOCOLCHAIN ProtocolChain; | ||
| 1015 | int iVersion; | ||
| 1016 | int iAddressFamily; | ||
| 1017 | int iMaxSockAddr; | ||
| 1018 | int iMinSockAddr; | ||
| 1019 | int iSocketType; | ||
| 1020 | int iProtocol; | ||
| 1021 | int iProtocolMaxOffset; | ||
| 1022 | int iNetworkByteOrder; | ||
| 1023 | int iSecurityScheme; | ||
| 1024 | DWORD dwMessageSize; | ||
| 1025 | DWORD dwProviderReserved; | ||
| 1026 | CHAR szProtocol[WSAPROTOCOL_LEN+1]; | ||
| 1027 | } WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA; | ||
| 1028 | |||
| 1029 | typedef struct _WSAPROTOCOL_INFOW { | ||
| 1030 | DWORD dwServiceFlags1; | ||
| 1031 | DWORD dwServiceFlags2; | ||
| 1032 | DWORD dwServiceFlags3; | ||
| 1033 | DWORD dwServiceFlags4; | ||
| 1034 | DWORD dwProviderFlags; | ||
| 1035 | GUID ProviderId; | ||
| 1036 | DWORD dwCatalogEntryId; | ||
| 1037 | WSAPROTOCOLCHAIN ProtocolChain; | ||
| 1038 | int iVersion; | ||
| 1039 | int iAddressFamily; | ||
| 1040 | int iMaxSockAddr; | ||
| 1041 | int iMinSockAddr; | ||
| 1042 | int iSocketType; | ||
| 1043 | int iProtocol; | ||
| 1044 | int iProtocolMaxOffset; | ||
| 1045 | int iNetworkByteOrder; | ||
| 1046 | int iSecurityScheme; | ||
| 1047 | DWORD dwMessageSize; | ||
| 1048 | DWORD dwProviderReserved; | ||
| 1049 | WCHAR szProtocol[WSAPROTOCOL_LEN+1]; | ||
| 1050 | } WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW; | ||
| 1051 | |||
| 1052 | typedef int (CALLBACK *LPCONDITIONPROC)(LPWSABUF, LPWSABUF, LPQOS, LPQOS, LPWSABUF, LPWSABUF, GROUP *, DWORD); | ||
| 1053 | typedef void (WINAPI *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(DWORD, DWORD, LPWSAOVERLAPPED, DWORD); | ||
| 1054 | |||
| 1055 | typedef __AW(WSAPROTOCOL_INFO) WSAPROTOCOL_INFO; | ||
| 1056 | typedef __AW(LPWSAPROTOCOL_INFO) LPWSAPROTOCOL_INFO; | ||
| 1057 | |||
| 1058 | /* Needed for XP & .NET Server function WSANSPIoctl. */ | ||
| 1059 | typedef enum _WSACOMPLETIONTYPE { | ||
| 1060 | NSP_NOTIFY_IMMEDIATELY = 0, | ||
| 1061 | NSP_NOTIFY_HWND, | ||
| 1062 | NSP_NOTIFY_EVENT, | ||
| 1063 | NSP_NOTIFY_PORT, | ||
| 1064 | NSP_NOTIFY_APC | ||
| 1065 | } WSACOMPLETIONTYPE, * PWSACOMPLETIONTYPE, * LPWSACOMPLETIONTYPE; | ||
| 1066 | typedef struct _WSACOMPLETION { | ||
| 1067 | WSACOMPLETIONTYPE Type; | ||
| 1068 | union { | ||
| 1069 | struct { | ||
| 1070 | HWND hWnd; | ||
| 1071 | UINT uMsg; | ||
| 1072 | WPARAM context; | ||
| 1073 | } WindowMessage; | ||
| 1074 | struct { | ||
| 1075 | LPWSAOVERLAPPED lpOverlapped; | ||
| 1076 | } Event; | ||
| 1077 | struct { | ||
| 1078 | LPWSAOVERLAPPED lpOverlapped; | ||
| 1079 | LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc; | ||
| 1080 | } Apc; | ||
| 1081 | struct { | ||
| 1082 | LPWSAOVERLAPPED lpOverlapped; | ||
| 1083 | HANDLE hPort; | ||
| 1084 | ULONG_PTR Key; | ||
| 1085 | } Port; | ||
| 1086 | } Parameters; | ||
| 1087 | } WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION; | ||
| 1088 | |||
| 1089 | #define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001 | ||
| 1090 | #define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002 | ||
| 1091 | #define PFL_HIDDEN 0x00000004 | ||
| 1092 | #define PFL_MATCHES_PROTOCOL_ZERO 0x00000008 | ||
| 1093 | #define XP1_CONNECTIONLESS 0x00000001 | ||
| 1094 | #define XP1_GUARANTEED_DELIVERY 0x00000002 | ||
| 1095 | #define XP1_GUARANTEED_ORDER 0x00000004 | ||
| 1096 | #define XP1_MESSAGE_ORIENTED 0x00000008 | ||
| 1097 | #define XP1_PSEUDO_STREAM 0x00000010 | ||
| 1098 | #define XP1_GRACEFUL_CLOSE 0x00000020 | ||
| 1099 | #define XP1_EXPEDITED_DATA 0x00000040 | ||
| 1100 | #define XP1_CONNECT_DATA 0x00000080 | ||
| 1101 | #define XP1_DISCONNECT_DATA 0x00000100 | ||
| 1102 | #define XP1_SUPPORT_BROADCAST 0x00000200 | ||
| 1103 | #define XP1_SUPPORT_MULTIPOINT 0x00000400 | ||
| 1104 | #define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800 | ||
| 1105 | #define XP1_MULTIPOINT_DATA_PLANE 0x00001000 | ||
| 1106 | #define XP1_QOS_SUPPORTED 0x00002000 | ||
| 1107 | #define XP1_INTERRUPT 0x00004000 | ||
| 1108 | #define XP1_UNI_SEND 0x00008000 | ||
| 1109 | #define XP1_UNI_RECV 0x00010000 | ||
| 1110 | #define XP1_IFS_HANDLES 0x00020000 | ||
| 1111 | #define XP1_PARTIAL_MESSAGE 0x00040000 | ||
| 1112 | |||
| 1113 | #define BIGENDIAN 0x0000 | ||
| 1114 | #define LITTLEENDIAN 0x0001 | ||
| 1115 | |||
| 1116 | #define SECURITY_PROTOCOL_NONE 0x0000 | ||
| 1117 | #define JL_SENDER_ONLY 0x01 | ||
| 1118 | #define JL_RECEIVER_ONLY 0x02 | ||
| 1119 | #define JL_BOTH 0x04 | ||
| 1120 | #define WSA_FLAG_OVERLAPPED 0x01 | ||
| 1121 | #define WSA_FLAG_MULTIPOINT_C_ROOT 0x02 | ||
| 1122 | #define WSA_FLAG_MULTIPOINT_C_LEAF 0x04 | ||
| 1123 | #define WSA_FLAG_MULTIPOINT_D_ROOT 0x08 | ||
| 1124 | #define WSA_FLAG_MULTIPOINT_D_LEAF 0x10 | ||
| 1125 | #define IOC_UNIX 0x00000000 | ||
| 1126 | #define IOC_WS2 0x08000000 | ||
| 1127 | #define IOC_PROTOCOL 0x10000000 | ||
| 1128 | #define IOC_VENDOR 0x18000000 | ||
| 1129 | |||
| 1130 | #define _WSAIO(x,y) (IOC_VOID|(x)|(y)) | ||
| 1131 | #define _WSAIOR(x,y) (IOC_OUT|(x)|(y)) | ||
| 1132 | #define _WSAIOW(x,y) (IOC_IN|(x)|(y)) | ||
| 1133 | #define _WSAIORW(x,y) (IOC_INOUT|(x)|(y)) | ||
| 1134 | |||
| 1135 | #define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1) | ||
| 1136 | #define SIO_ENABLE_CIRCULAR_QUEUEING _WSAIO(IOC_WS2,2) | ||
| 1137 | #define SIO_FIND_ROUTE _WSAIOR(IOC_WS2,3) | ||
| 1138 | #define SIO_FLUSH _WSAIO(IOC_WS2,4) | ||
| 1139 | #define SIO_GET_BROADCAST_ADDRESS _WSAIOR(IOC_WS2,5) | ||
| 1140 | #define SIO_GET_EXTENSION_FUNCTION_POINTER _WSAIORW(IOC_WS2,6) | ||
| 1141 | #define SIO_GET_QOS _WSAIORW(IOC_WS2,7) | ||
| 1142 | #define SIO_GET_GROUP_QOS _WSAIORW(IOC_WS2,8) | ||
| 1143 | #define SIO_MULTIPOINT_LOOPBACK _WSAIOW(IOC_WS2,9) | ||
| 1144 | #define SIO_MULTICAST_SCOPE _WSAIOW(IOC_WS2,10) | ||
| 1145 | #define SIO_SET_QOS _WSAIOW(IOC_WS2,11) | ||
| 1146 | #define SIO_SET_GROUP_QOS _WSAIOW(IOC_WS2,12) | ||
| 1147 | #define SIO_TRANSLATE_HANDLE _WSAIORW(IOC_WS2,13) | ||
| 1148 | #define SIO_ROUTING_INTERFACE_QUERY _WSAIORW(IOC_WS2,20) | ||
| 1149 | #define SIO_ROUTING_INTERFACE_CHANGE _WSAIOW(IOC_WS2,21) | ||
| 1150 | #define SIO_ADDRESS_LIST_QUERY _WSAIOR(IOC_WS2,22) | ||
| 1151 | #define SIO_ADDRESS_LIST_CHANGE _WSAIO(IOC_WS2,23) | ||
| 1152 | #define SIO_QUERY_TARGET_PNP_HANDLE _WSAIOR(IOC_WS2,24) | ||
| 1153 | #define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25) | ||
| 1154 | #define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12) | ||
| 1155 | |||
| 1156 | #define TH_NETDEV 0x00000001 | ||
| 1157 | #define TH_TAPI 0x00000002 | ||
| 1158 | |||
| 1159 | WINSOCK_API_LINKAGE SOCKET WINAPI WSAAccept(SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD); | ||
| 1160 | WINSOCK_API_LINKAGE INT WINAPI WSAAddressToStringA(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD); | ||
| 1161 | WINSOCK_API_LINKAGE INT WINAPI WSAAddressToStringW(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD); | ||
| 1162 | WINSOCK_API_LINKAGE BOOL WINAPI WSACloseEvent(WSAEVENT); | ||
| 1163 | WINSOCK_API_LINKAGE int WINAPI WSAConnect(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS); | ||
| 1164 | WINSOCK_API_LINKAGE WSAEVENT WINAPI WSACreateEvent(void); | ||
| 1165 | WINSOCK_API_LINKAGE int WINAPI WSADuplicateSocketA(SOCKET, DWORD, LPWSAPROTOCOL_INFOA); | ||
| 1166 | WINSOCK_API_LINKAGE int WINAPI WSADuplicateSocketW(SOCKET, DWORD, LPWSAPROTOCOL_INFOW); | ||
| 1167 | WINSOCK_API_LINKAGE INT WINAPI WSAEnumNameSpaceProvidersA(LPDWORD, LPWSANAMESPACE_INFOA); | ||
| 1168 | WINSOCK_API_LINKAGE INT WINAPI WSAEnumNameSpaceProvidersW(LPDWORD, LPWSANAMESPACE_INFOW); | ||
| 1169 | WINSOCK_API_LINKAGE int WINAPI WSAEnumNetworkEvents(SOCKET, WSAEVENT, LPWSANETWORKEVENTS); | ||
| 1170 | WINSOCK_API_LINKAGE int WINAPI WSAEnumProtocolsA(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD); | ||
| 1171 | WINSOCK_API_LINKAGE int WINAPI WSAEnumProtocolsW(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD); | ||
| 1172 | WINSOCK_API_LINKAGE int WINAPI WSAEventSelect(SOCKET, WSAEVENT, long); | ||
| 1173 | WINSOCK_API_LINKAGE BOOL WINAPI WSAGetOverlappedResult(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD); | ||
| 1174 | WINSOCK_API_LINKAGE BOOL WINAPI WSAGetQOSByName(SOCKET, LPWSABUF, LPQOS); | ||
| 1175 | WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassInfoA(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA); | ||
| 1176 | WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassInfoW(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW); | ||
| 1177 | WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassNameByClassIdA(LPGUID, LPSTR, LPDWORD); | ||
| 1178 | WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassNameByClassIdW(LPGUID, LPWSTR, LPDWORD); | ||
| 1179 | WINSOCK_API_LINKAGE int WINAPI WSAHtonl(SOCKET, unsigned long, unsigned long *); | ||
| 1180 | WINSOCK_API_LINKAGE int WINAPI WSAHtons(SOCKET, unsigned short, unsigned short *); | ||
| 1181 | WINSOCK_API_LINKAGE INT WINAPI WSAInstallServiceClassA(LPWSASERVICECLASSINFOA); | ||
| 1182 | WINSOCK_API_LINKAGE INT WINAPI WSAInstallServiceClassW(LPWSASERVICECLASSINFOW); | ||
| 1183 | WINSOCK_API_LINKAGE int WINAPI WSAIoctl(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1184 | WINSOCK_API_LINKAGE SOCKET WINAPI WSAJoinLeaf(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD); | ||
| 1185 | WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceBeginA(LPWSAQUERYSETA, DWORD, LPHANDLE); | ||
| 1186 | WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions, DWORD, LPHANDLE); | ||
| 1187 | WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceNextA(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA); | ||
| 1188 | WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceNextW(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW); | ||
| 1189 | WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceEnd(HANDLE); | ||
| 1190 | WINSOCK_API_LINKAGE int WINAPI WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); /* XP or .NET Server */ | ||
| 1191 | WINSOCK_API_LINKAGE int WINAPI WSANtohl(SOCKET, unsigned long, unsigned long *); | ||
| 1192 | WINSOCK_API_LINKAGE int WINAPI WSANtohs(SOCKET, unsigned short, unsigned short *); | ||
| 1193 | WINSOCK_API_LINKAGE int WINAPI WSARecv(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1194 | WINSOCK_API_LINKAGE int WINAPI WSARecvDisconnect(SOCKET, LPWSABUF); | ||
| 1195 | WINSOCK_API_LINKAGE int WINAPI WSARecvFrom(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, struct sockaddr *, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1196 | WINSOCK_API_LINKAGE INT WINAPI WSARemoveServiceClass(LPGUID); | ||
| 1197 | WINSOCK_API_LINKAGE BOOL WINAPI WSAResetEvent(WSAEVENT); | ||
| 1198 | WINSOCK_API_LINKAGE int WINAPI WSASend(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1199 | WINSOCK_API_LINKAGE int WINAPI WSASendDisconnect(SOCKET, LPWSABUF); | ||
| 1200 | WINSOCK_API_LINKAGE int WINAPI WSASendTo(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const struct sockaddr *, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1201 | WINSOCK_API_LINKAGE BOOL WINAPI WSASetEvent(WSAEVENT); | ||
| 1202 | WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceA(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD); | ||
| 1203 | WINSOCK_API_LINKAGE INT WINAPI WSASetServiceW(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD); | ||
| 1204 | WINSOCK_API_LINKAGE SOCKET WINAPI WSASocketA(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD); | ||
| 1205 | WINSOCK_API_LINKAGE SOCKET WINAPI WSASocketW(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD); | ||
| 1206 | WINSOCK_API_LINKAGE INT WINAPI WSAStringToAddressA(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT); | ||
| 1207 | WINSOCK_API_LINKAGE INT WINAPI WSAStringToAddressW(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT); | ||
| 1208 | WINSOCK_API_LINKAGE DWORD WINAPI WSAWaitForMultipleEvents(DWORD, const WSAEVENT *, BOOL, DWORD, BOOL); | ||
| 1209 | |||
| 1210 | typedef SOCKET (WINAPI *LPFN_WSAACCEPT)(SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD); | ||
| 1211 | typedef INT (WINAPI *LPFN_WSAADDRESSTOSTRINGA)(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD); | ||
| 1212 | typedef INT (WINAPI *LPFN_WSAADDRESSTOSTRINGW)(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD); | ||
| 1213 | typedef BOOL (WINAPI *LPFN_WSACLOSEEVENT)(WSAEVENT); | ||
| 1214 | typedef int (WINAPI *LPFN_WSACONNECT)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS); | ||
| 1215 | typedef WSAEVENT (WINAPI *LPFN_WSACREATEEVENT)(void); | ||
| 1216 | typedef int (WINAPI *LPFN_WSADUPLICATESOCKETA)(SOCKET, DWORD, LPWSAPROTOCOL_INFOA); | ||
| 1217 | typedef int (WINAPI *LPFN_WSADUPLICATESOCKETW)(SOCKET, DWORD, LPWSAPROTOCOL_INFOW); | ||
| 1218 | typedef INT (WINAPI *LPFN_WSAENUMNAMESPACEPROVIDERSA)(LPDWORD, LPWSANAMESPACE_INFOA); | ||
| 1219 | typedef INT (WINAPI *LPFN_WSAENUMNAMESPACEPROVIDERSW)(LPDWORD, LPWSANAMESPACE_INFOW); | ||
| 1220 | typedef int (WINAPI *LPFN_WSAENUMNETWORKEVENTS)(SOCKET, WSAEVENT, LPWSANETWORKEVENTS); | ||
| 1221 | typedef int (WINAPI *LPFN_WSAENUMPROTOCOLSA)(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD); | ||
| 1222 | typedef int (WINAPI *LPFN_WSAENUMPROTOCOLSW)(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD); | ||
| 1223 | typedef int (WINAPI *LPFN_WSAEVENTSELECT)(SOCKET, WSAEVENT, long); | ||
| 1224 | typedef BOOL (WINAPI *LPFN_WSAGETOVERLAPPEDRESULT)(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD); | ||
| 1225 | typedef BOOL (WINAPI *LPFN_WSAGETQOSBYNAME)(SOCKET, LPWSABUF, LPQOS); | ||
| 1226 | typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSINFOA)(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA); | ||
| 1227 | typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSINFOW)(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW); | ||
| 1228 | typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA)(LPGUID, LPSTR, LPDWORD); | ||
| 1229 | typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW)(LPGUID, LPWSTR, LPDWORD); | ||
| 1230 | typedef int (WINAPI *LPFN_WSAHTONL)(SOCKET, unsigned long, unsigned long *); | ||
| 1231 | typedef int (WINAPI *LPFN_WSAHTONS)(SOCKET, unsigned short, unsigned short *); | ||
| 1232 | typedef INT (WINAPI *LPFN_WSAINSTALLSERVICECLASSA)(LPWSASERVICECLASSINFOA); | ||
| 1233 | typedef INT (WINAPI *LPFN_WSAINSTALLSERVICECLASSW)(LPWSASERVICECLASSINFOW); | ||
| 1234 | typedef int (WINAPI *LPFN_WSAIOCTL)(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1235 | typedef SOCKET (WINAPI *LPFN_WSAJOINLEAF)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD); | ||
| 1236 | typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEBEGINA)(LPWSAQUERYSETA, DWORD, LPHANDLE); | ||
| 1237 | typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEBEGINW)(LPWSAQUERYSETW, DWORD, LPHANDLE); | ||
| 1238 | typedef INT (WINAPI *LPFN_WSALOOKUPSERVICENEXTA)(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA); | ||
| 1239 | typedef INT (WINAPI *LPFN_WSALOOKUPSERVICENEXTW)(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW); | ||
| 1240 | typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEEND)(HANDLE); | ||
| 1241 | typedef int (WINAPI *LPFN_WSANSPIoctl)(HANDLE, DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); | ||
| 1242 | typedef int (WINAPI *LPFN_WSANTOHL)(SOCKET, unsigned long, unsigned long *); | ||
| 1243 | typedef int (WINAPI *LPFN_WSANTOHS)(SOCKET, unsigned short, unsigned short *); | ||
| 1244 | typedef int (WINAPI *LPFN_WSARECV)(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1245 | typedef int (WINAPI *LPFN_WSARECVDISCONNECT)(SOCKET, LPWSABUF); | ||
| 1246 | typedef int (WINAPI *LPFN_WSARECVFROM)(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, struct sockaddr *, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1247 | typedef INT (WINAPI *LPFN_WSAREMOVESERVICECLASS)(LPGUID); | ||
| 1248 | typedef BOOL (WINAPI *LPFN_WSARESETEVENT)(WSAEVENT); | ||
| 1249 | typedef int (WINAPI *LPFN_WSASEND)(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1250 | typedef int (WINAPI *LPFN_WSASENDDISCONNECT)(SOCKET, LPWSABUF); | ||
| 1251 | typedef int (WINAPI *LPFN_WSASENDTO)(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const struct sockaddr *, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); | ||
| 1252 | typedef BOOL (WINAPI *LPFN_WSASETEVENT)(WSAEVENT); | ||
| 1253 | typedef INT (WINAPI *LPFN_WSASETSERVICEA)(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD); | ||
| 1254 | typedef INT (WINAPI *LPFN_WSASETSERVICEW)(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD); | ||
| 1255 | typedef SOCKET (WINAPI *LPFN_WSASOCKETA)(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD); | ||
| 1256 | typedef SOCKET (WINAPI *LPFN_WSASOCKETW)(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD); | ||
| 1257 | typedef INT (WINAPI *LPFN_WSASTRINGTOADDRESSA)(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT); | ||
| 1258 | typedef INT (WINAPI *LPFN_WSASTRINGTOADDRESSW)(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT); | ||
| 1259 | typedef DWORD (WINAPI *LPFN_WSAWAITFORMULTIPLEEVENTS)(DWORD, const WSAEVENT *, BOOL, DWORD, BOOL); | ||
| 1260 | |||
| 1261 | #define LPFN_WSAADDRESSTOSTRING __AW(LPFN_WSAADDRESSTOSTRING) | ||
| 1262 | #define LPFN_WSADUPLICATESOCKET __AW(LPFN_WSADUPLICATESOCKET) | ||
| 1263 | #define LPFN_WSAENUMNAMESPACEPROVIDERS __AW(LPFN_WSAENUMNAMESPACEPROVIDERS) | ||
| 1264 | #define LPFN_WSAENUMPROTOCOLS __AW(LPFN_WSAENUMPROTOCOLS) | ||
| 1265 | #define LPFN_WSAGETSERVICECLASSINFO __AW(LPFN_WSAGETSERVICECLASSINFO) | ||
| 1266 | #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID __AW(LPFN_WSAGETSERVICECLASSNAMEBYCLASSID) | ||
| 1267 | #define LPFN_WSAINSTALLSERVICECLASS __AW(LPFN_WSAINSTALLSERVICECLASS) | ||
| 1268 | #define LPFN_WSALOOKUPSERVICEBEGIN __AW(LPFN_WSALOOKUPSERVICEBEGIN) | ||
| 1269 | #define LPFN_WSALOOKUPSERVICENEXT __AW(LPFN_WSALOOKUPSERVICENEXT) | ||
| 1270 | #define LPFN_WSASETSERVICE __AW(LPFN_WSASETSERVICE) | ||
| 1271 | #define LPFN_WSASOCKET __AW(LPFN_WSASOCKET) | ||
| 1272 | #define LPFN_WSASTRINGTOADDRESS __AW(LPFN_WSASTRINGTOADDRESS) | ||
| 1273 | #define WSAAddressToString __AW(WSAAddressToString) | ||
| 1274 | #define WSADuplicateSocket __AW(WSADuplicateSocket) | ||
| 1275 | #define WSAEnumNameSpaceProviders __AW(WSAEnumNameSpaceProviders) | ||
| 1276 | #define WSAEnumProtocols __AW(WSAEnumProtocols) | ||
| 1277 | #define WSAGetServiceClassInfo __AW(WSAGetServiceClassInfo) | ||
| 1278 | #define WSAGetServiceClassNameByClassId __AW(WSAGetServiceClassNameByClassId) | ||
| 1279 | #define WSASetService __AW(WSASetService) | ||
| 1280 | #define WSASocket __AW(WSASocket) | ||
| 1281 | #define WSAStringToAddress __AW(WSAStringToAddress) | ||
| 1282 | #define WSALookupServiceBegin __AW(WSALookupServiceBegin) | ||
| 1283 | #define WSALookupServiceNext __AW(WSALookupServiceNext) | ||
| 1284 | #define WSAInstallServiceClass __AW(WSAInstallServiceClass) | ||
| 1285 | |||
| 1286 | #ifdef __cplusplus | ||
| 1287 | } | ||
| 1288 | #endif | ||
| 1289 | |||
| 1290 | #endif | ||