1 | #ifndef _WINSOCK2API_
|
---|
2 | #define _WINSOCK2API_
|
---|
3 | #define _WINSOCKAPI_
|
---|
4 |
|
---|
5 | Const WINSOCK_VERSION = MAKEWORD(2, 2)
|
---|
6 |
|
---|
7 | TypeDef SOCKET = ULONG_PTR
|
---|
8 |
|
---|
9 | Const FD_SETSIZE = 64
|
---|
10 |
|
---|
11 | Type fd_set
|
---|
12 | fd_count As DWord
|
---|
13 | fd_array[ELM(FD_SETSIZE)] As SOCKET
|
---|
14 | End Type
|
---|
15 |
|
---|
16 | Declare Function __WSAFDIsSet Lib "ws2_32" (fd As SOCKET, ByRef set As fd_set) As Long
|
---|
17 |
|
---|
18 | Sub FD_CLR(fd As SOCKET, ByRef set As fd_set)
|
---|
19 | Dim i As DWord
|
---|
20 | With set
|
---|
21 | For i = 0 To .fd_count
|
---|
22 | If .fd_array[i] = fd Then
|
---|
23 | While i < .fd_count - 1
|
---|
24 | .fd_array[i] = .fd_array[i + 1]
|
---|
25 | WEnd
|
---|
26 | .fd_count--
|
---|
27 | Exit For
|
---|
28 | End If
|
---|
29 | Next
|
---|
30 | End With
|
---|
31 | End Sub
|
---|
32 |
|
---|
33 | Sub FD_SET(fd As SOCKET, ByRef set As fd_set)
|
---|
34 | Dim i As Long
|
---|
35 | With set
|
---|
36 | For i = 0 To ELM(.fd_count)
|
---|
37 | If .fd_array[i] = fd Then
|
---|
38 | Exit Sub
|
---|
39 | End If
|
---|
40 | Next
|
---|
41 | If i = .fd_count Then
|
---|
42 | If .fd_count < FD_SETSIZE Then
|
---|
43 | .fd_array[i] = fd
|
---|
44 | .fd_count++
|
---|
45 | End If
|
---|
46 | End If
|
---|
47 | End With
|
---|
48 | End Sub
|
---|
49 |
|
---|
50 | Sub FD_ZERO(ByRef set As fd_set)
|
---|
51 | set.fd_count = 0
|
---|
52 | End Sub
|
---|
53 |
|
---|
54 | Const FD_ISSET(fd, set) = __WSAFDIsSet(fd, set)
|
---|
55 |
|
---|
56 | Type timeval
|
---|
57 | tv_sec As Long
|
---|
58 | tv_usec As Long
|
---|
59 | End Type
|
---|
60 |
|
---|
61 | ' Operations on timevals.
|
---|
62 | Function timerisset(ByRef tvp As timeval) As BOOL
|
---|
63 | Return tvp.tv_sec Or tvp.tv_usec
|
---|
64 | End Function
|
---|
65 |
|
---|
66 | /*
|
---|
67 | #define timercmp(tvp, uvp, cmp) \
|
---|
68 | ((tvp)->tv_sec cmp (uvp)->tv_sec || \
|
---|
69 | (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec)
|
---|
70 | */
|
---|
71 |
|
---|
72 | Sub timerclear(ByRef tvp As timeval)
|
---|
73 | tvp.tv_sec = 0
|
---|
74 | tvp.tv_usec = 0
|
---|
75 | End Sub
|
---|
76 |
|
---|
77 | ' Commands for ioctlsocket(), taken from the BSD file fcntl.h.
|
---|
78 | Const IOCPARM_MASK = &h7f
|
---|
79 | Const IOC_VOID = &h20000000
|
---|
80 | Const IOC_OUT = &h40000000
|
---|
81 | Const IOC_IN = &h80000000
|
---|
82 | Const IOC_INOUT= (IOC_IN Or IOC_OUT)
|
---|
83 |
|
---|
84 | Const _IO(x ,y) = (IOC_VOID Or (x << 8) Or y)
|
---|
85 |
|
---|
86 | Const _IOR(x, y, size) = (IOC_OUT Or ((size And IOCPARM_MASK) << 16) Or ((x) << 8) Or (y))
|
---|
87 |
|
---|
88 | Const _IOW(x, y, size) = (IOC_IN Or ((size And IOCPARM_MASK) << 16) Or ((x) << 8) Or (y))
|
---|
89 |
|
---|
90 | Const FIONREAD = _IOR(&h66,127, SizeOf (DWord)) As Long '&h66は'f'
|
---|
91 | Const FIONBIO = _IOW(&h66,126, SizeOf (DWord)) As Long
|
---|
92 | Const FIOASYNC = _IOW(&h66,125, SizeOf (DWord)) As Long
|
---|
93 |
|
---|
94 | ' Socket I/O Controls
|
---|
95 | Const SIOCSHIWAT = _IOW(&h73, 0, SizeOf (DWord)) '&h73は's'
|
---|
96 | Const SIOCGHIWAT = _IOR(&h73, 1, SizeOf (DWord))
|
---|
97 | Const SIOCSLOWAT = _IOW(&h73, 2, SizeOf (DWord))
|
---|
98 | Const SIOCGLOWAT = _IOR(&h73, 3, SizeOf (DWord))
|
---|
99 | Const SIOCATMARK = _IOR(&h73, 7, SizeOf (DWord))
|
---|
100 |
|
---|
101 |
|
---|
102 | Type /*Class*/ hostent
|
---|
103 | 'Public
|
---|
104 | h_name As *Byte
|
---|
105 | h_aliases As **Byte
|
---|
106 | h_addrtype As Integer
|
---|
107 | h_lengt As Integer
|
---|
108 | h_addr_list As **Byte
|
---|
109 | /*
|
---|
110 | Function h_addr() As *Byte
|
---|
111 | Return h_addr_list[0]
|
---|
112 | End Function
|
---|
113 |
|
---|
114 | Sub h_addr(l As *Byte)
|
---|
115 | h_addr_list[0] = i
|
---|
116 | End Sub
|
---|
117 | */
|
---|
118 | End Type 'Class
|
---|
119 |
|
---|
120 | Type netent
|
---|
121 | n_name As *Byte
|
---|
122 | n_aliases As **Byte
|
---|
123 | n_addrtyp As Integer
|
---|
124 | n_net As DWord
|
---|
125 | End Type
|
---|
126 |
|
---|
127 | Type servent
|
---|
128 | s_name As *Byte
|
---|
129 | s_aliases As **Byte
|
---|
130 | #ifdef _WIN64
|
---|
131 | s_proto As *Byte
|
---|
132 | s_port As Integer
|
---|
133 | #else
|
---|
134 | s_port As Integer
|
---|
135 | s_proto As *Byte
|
---|
136 | #endif
|
---|
137 | End Type
|
---|
138 |
|
---|
139 | Type protoent
|
---|
140 | p_name As *Byte
|
---|
141 | p_aliases As **Byte
|
---|
142 | p_proto As Integer
|
---|
143 | End Type
|
---|
144 |
|
---|
145 | ' Protocols
|
---|
146 | Const IPPROTO_IP = 0
|
---|
147 | Const IPPROTO_HOPOPTS = 0
|
---|
148 | Const IPPROTO_ICMP = 1
|
---|
149 | Const IPPROTO_IGMP = 2
|
---|
150 | Const IPPROTO_GGP = 3
|
---|
151 | Const IPPROTO_IPV4 = 4
|
---|
152 | Const IPPROTO_TCP = 6
|
---|
153 | Const IPPROTO_PUP = 12
|
---|
154 | Const IPPROTO_UDP = 17
|
---|
155 | Const IPPROTO_IDP = 22
|
---|
156 | Const IPPROTO_IPV6 = 41
|
---|
157 | Const IPPROTO_ROUTING = 43
|
---|
158 | Const IPPROTO_FRAGMENT = 44
|
---|
159 | Const IPPROTO_ESP = 50
|
---|
160 | Const IPPROTO_AH = 51
|
---|
161 | Const IPPROTO_ICMPV6 = 58
|
---|
162 | Const IPPROTO_NONE = 59
|
---|
163 | Const IPPROTO_DSTOPTS = 60
|
---|
164 | Const IPPROTO_ND = 77
|
---|
165 | Const IPPROTO_ICLFXBM = 78
|
---|
166 |
|
---|
167 | Const IPPROTO_RAW = 255
|
---|
168 | Const IPPROTO_MAX = 256
|
---|
169 |
|
---|
170 | ' Port/socket numbers: network standard functions
|
---|
171 | Const IPPORT_ECHO = 7
|
---|
172 | Const IPPORT_DISCARD = 9
|
---|
173 | Const IPPORT_SYSTAT = 11
|
---|
174 | Const IPPORT_DAYTIME = 13
|
---|
175 | Const IPPORT_NETSTAT = 15
|
---|
176 | Const IPPORT_FTP = 21
|
---|
177 | Const IPPORT_TELNET = 23
|
---|
178 | Const IPPORT_SMTP = 25
|
---|
179 | Const IPPORT_TIMESERVER = 37
|
---|
180 | Const IPPORT_NAMESERVER = 42
|
---|
181 | Const IPPORT_WHOIS = 43
|
---|
182 | Const IPPORT_MTP = 57
|
---|
183 |
|
---|
184 | ' Port/socket numbers: host specific functions
|
---|
185 | Const IPPORT_TFTP = 69
|
---|
186 | Const IPPORT_RJE = 77
|
---|
187 | Const IPPORT_FINGER = 79
|
---|
188 | Const IPPORT_TTYLINK = 87
|
---|
189 | Const IPPORT_SUPDUP = 95
|
---|
190 |
|
---|
191 | ' UNIX TCP sockets
|
---|
192 | Const IPPORT_EXECSERVER = 512
|
---|
193 | Const IPPORT_LOGINSERVER = 513
|
---|
194 | Const IPPORT_CMDSERVER = 514
|
---|
195 | Const IPPORT_EFSSERVER = 520
|
---|
196 |
|
---|
197 | ' UNIX UDP sockets
|
---|
198 | Const IPPORT_BIFFUDP = 512
|
---|
199 | Const IPPORT_WHOSERVER = 513
|
---|
200 | Const IPPORT_ROUTESERVER = 520
|
---|
201 | ' 520+1 also used
|
---|
202 |
|
---|
203 | ' Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root).
|
---|
204 | Const IPPORT_RESERVED = 1024
|
---|
205 |
|
---|
206 | ' Link numbers
|
---|
207 | Const IMPLINK_IP = 155
|
---|
208 | Const IMPLINK_LOWEXPER = 156
|
---|
209 | Const IMPLINK_HIGHEXPER = 158
|
---|
210 |
|
---|
211 | ' Internet address (old style... should be updated)
|
---|
212 | Type /*Class*/ in_addr
|
---|
213 | 'Public
|
---|
214 | /*
|
---|
215 | Union S_un
|
---|
216 | S_un_b As Type
|
---|
217 | s_b1 As Byte
|
---|
218 | s_b2 As Byte
|
---|
219 | s_b3 As Byte
|
---|
220 | s_b4 As Byte
|
---|
221 | End Type
|
---|
222 | S_un_w As Type
|
---|
223 | s_w1 As Word
|
---|
224 | s_w2 As Word
|
---|
225 | End Type
|
---|
226 | S_addr As DWord
|
---|
227 | End Union
|
---|
228 | */
|
---|
229 | s_addr As DWord
|
---|
230 | /*
|
---|
231 | Function s_host() As Byte
|
---|
232 | Return GetByte(VarPtr(s_addr) + 1)
|
---|
233 | End Function
|
---|
234 |
|
---|
235 | Sub s_host(h As Byte)
|
---|
236 | Return SetByte(VarPtr(s_addr) + 2, h)
|
---|
237 | End Sub
|
---|
238 |
|
---|
239 | Function s_net() As Byte
|
---|
240 | Return GetByte(VarPtr(s_addr) + 0)
|
---|
241 | End Function
|
---|
242 |
|
---|
243 | Sub s_net(n As Byte)
|
---|
244 | Return SetByte(VarPtr(s_addr) + 0, n)
|
---|
245 | End Sub
|
---|
246 |
|
---|
247 | Function s_imp() As Word
|
---|
248 | Return GetWord(VarPtr(s_addr) + 1)
|
---|
249 | End Function
|
---|
250 |
|
---|
251 | Sub s_imp(i As Word)
|
---|
252 | Return SetWord(VarPtr(s_addr) + 1, i)
|
---|
253 | End Sub
|
---|
254 |
|
---|
255 | Function s_impno() As Byte
|
---|
256 | Return GetByte(VarPtr(s_addr) + 3)
|
---|
257 | End Function
|
---|
258 |
|
---|
259 | Sub s_impno(i As Byte)
|
---|
260 | Return SetByte(VarPtr(s_addr) + 3, i)
|
---|
261 | End Sub
|
---|
262 |
|
---|
263 | Function s_lh() As Byte
|
---|
264 | Return GetByte(VarPtr(s_addr) + 2)
|
---|
265 | End Function
|
---|
266 |
|
---|
267 | Sub s_lh(l As Byte)
|
---|
268 | Return SetByte(VarPtr(s_addr) + 2, l)
|
---|
269 | End Sub
|
---|
270 | */
|
---|
271 | End Type 'Class
|
---|
272 |
|
---|
273 | Type in6_addr
|
---|
274 | s6_addr[ELM(16)] As Byte
|
---|
275 | End Type
|
---|
276 |
|
---|
277 | Const IN_CLASSA(i) = (((i) As DWord And &h80000000) = 0)
|
---|
278 | Const IN_CLASSA_NET = &hff000000
|
---|
279 | Const IN_CLASSA_NSHIFT = 24
|
---|
280 | Const IN_CLASSA_HOST = &h00ffffff
|
---|
281 | Const IN_CLASSA_MAX = 128
|
---|
282 |
|
---|
283 | Const IN_CLASSB(i) = (((i) As DWord & &hc0000000) = &h80000000)
|
---|
284 | Const IN_CLASSB_NET= &hffff0000
|
---|
285 | Const IN_CLASSB_NSHIFT = 16
|
---|
286 | Const IN_CLASSB_HOST = &h0000ffff
|
---|
287 | Const IN_CLASSB_MAX = 65536
|
---|
288 |
|
---|
289 | Const IN_CLASSC(i) = (((i) As DWord And &he0000000) = &hc0000000)
|
---|
290 | Const IN_CLASSC_NET = &hffffff00
|
---|
291 | Const IN_CLASSC_NSHIFT = 8
|
---|
292 | Const IN_CLASSC_HOST = &h000000ff
|
---|
293 |
|
---|
294 | Const IN_CLASSD(i) = (((i) As DWord And &hf0000000) = &he0000000)
|
---|
295 | Const IN_CLASSD_NET = &hf0000000
|
---|
296 | Const IN_CLASSD_NSHIFT = 28
|
---|
297 | Const IN_CLASSD_HOST = &h0fffffff
|
---|
298 | Const IN_MULTICAST(i) = IN_CLASSD(i)
|
---|
299 |
|
---|
300 | Const INADDR_ANY = &h00000000 As DWord
|
---|
301 | Const INADDR_LOOPBACK = &h7f000001
|
---|
302 | Const INADDR_BROADCAST = &hffffffff As DWord
|
---|
303 | Const INADDR_NONE = &hffffffff
|
---|
304 |
|
---|
305 | Const ADDR_ANY = INADDR_ANY
|
---|
306 |
|
---|
307 | ' Socket address, internet style.
|
---|
308 | Type sockaddr_in
|
---|
309 | sin_family As Integer
|
---|
310 | sin_port As Word
|
---|
311 | sin_addr As in_addr
|
---|
312 | sin_zero[ELM(8)] As Byte
|
---|
313 | End Type
|
---|
314 |
|
---|
315 | Type sockaddr_in6
|
---|
316 | sin6_family As Word
|
---|
317 | sin6_port As Word
|
---|
318 | sin6_flowinfo As DWord
|
---|
319 | sin6_addr As in6_addr
|
---|
320 | sin6_scope_id As DWord
|
---|
321 | End Type
|
---|
322 |
|
---|
323 | Const WSADESCRIPTION_LEN = 256
|
---|
324 | Const WSASYS_STATUS_LEN = 128
|
---|
325 |
|
---|
326 | Type WSADATA
|
---|
327 | wVersion As Word
|
---|
328 | wHighVersion As Word
|
---|
329 | #ifdef _WIN64
|
---|
330 | iMaxSockets As Word
|
---|
331 | iMaxUdpDg As Word
|
---|
332 | lpVendorInfo As *Byte
|
---|
333 | szDescription[WSADESCRIPTION_LEN] As Byte
|
---|
334 | szSystemStatus[WSASYS_STATUS_LEN] As Byte
|
---|
335 | #else
|
---|
336 | szDescription[WSADESCRIPTION_LEN] As Byte
|
---|
337 | szSystemStatus[WSASYS_STATUS_LEN] As Byte
|
---|
338 | iMaxSockets As Word
|
---|
339 | iMaxUdpDg As Word
|
---|
340 | lpVendorInfo As *Byte
|
---|
341 | #endif
|
---|
342 | End Type
|
---|
343 |
|
---|
344 | TypeDef LPWSADATA = *WSADATA
|
---|
345 |
|
---|
346 | ' Definitions related to sockets: types, address families, options, taken from the BSD file sys/socket.h.
|
---|
347 |
|
---|
348 | Const INVALID_SOCKET = (Not 0) As ULONG_PTR
|
---|
349 | Const SOCKET_ERROR = (-1)
|
---|
350 |
|
---|
351 | Const FROM_PROTOCOL_INFO = (-1)
|
---|
352 |
|
---|
353 | ' Types
|
---|
354 | Const SOCK_STREAM = 1
|
---|
355 | Const SOCK_DGRAM = 2
|
---|
356 | Const SOCK_RAW = 3
|
---|
357 | Const SOCK_RDM = 4
|
---|
358 | Const SOCK_SEQPACKET = 5
|
---|
359 |
|
---|
360 | ' Option flags per-socket.
|
---|
361 | Const SO_DEBUG = &h0001
|
---|
362 | Const SO_ACCEPTCONN = &h0002
|
---|
363 | Const SO_REUSEADDR = &h0004
|
---|
364 | Const SO_KEEPALIVE = &h0008
|
---|
365 | Const SO_DONTROUTE = &h0010
|
---|
366 | Const SO_BROADCAST = &h0020
|
---|
367 | Const SO_USELOOPBACK = &h0040
|
---|
368 | Const SO_LINGER = &h0080
|
---|
369 | Const SO_OOBINLINE = &h0100
|
---|
370 |
|
---|
371 | Const SO_DONTLINGER = ((Not SO_LINGER) As Long)
|
---|
372 | Const SO_EXCLUSIVEADDRUSE = ((Not SO_REUSEADDR) As Long)
|
---|
373 |
|
---|
374 | ' Additional options.
|
---|
375 | Const SO_SNDBUF = &h1001
|
---|
376 | Const SO_RCVBUF = &h1002
|
---|
377 | Const SO_SNDLOWAT = &h1003
|
---|
378 | Const SO_RCVLOWAT = &h1004
|
---|
379 | Const SO_SNDTIMEO = &h1005
|
---|
380 | Const SO_RCVTIMEO = &h1006
|
---|
381 | Const SO_ERROR = &h1007
|
---|
382 | Const SO_TYPE = &h1008
|
---|
383 |
|
---|
384 | ' WinSock 2 extension -- new options
|
---|
385 | Const SO_GROUP_ID = &h2001
|
---|
386 | Const SO_GROUP_PRIORITY = &h2002
|
---|
387 | Const SO_MAX_MSG_SIZE = &h2003
|
---|
388 | Const SO_PROTOCOL_INFOA = &h2004
|
---|
389 | Const SO_PROTOCOL_INFOW = &h2005
|
---|
390 | #ifdef UNICODE
|
---|
391 | Const SO_PROTOCOL_INFO = SO_PROTOCOL_INFOW
|
---|
392 | #else
|
---|
393 | Const SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA
|
---|
394 | #endif /* UNICODE */
|
---|
395 | Const PVD_CONFIG = &h3001
|
---|
396 | Const SO_CONDITIONAL_ACCEPT = &h3002
|
---|
397 |
|
---|
398 | ' TCP options.
|
---|
399 | Const TCP_NODELAY = &h0001
|
---|
400 |
|
---|
401 | ' Address families.
|
---|
402 | Const AF_UNSPEC = 0
|
---|
403 | Const AF_UNIX = 1
|
---|
404 | Const AF_INET = 2
|
---|
405 | Const AF_IMPLINK = 3
|
---|
406 | Const AF_PUP = 4
|
---|
407 | Const AF_CHAOS = 5
|
---|
408 | Const AF_NS = 6
|
---|
409 | Const AF_IPX = AF_NS
|
---|
410 | Const AF_ISO = 7
|
---|
411 | Const AF_OSI = AF_ISO
|
---|
412 | Const AF_ECMA = 8
|
---|
413 | Const AF_DATAKIT = 9
|
---|
414 | Const AF_CCITT = 10
|
---|
415 | Const AF_SNA = 11
|
---|
416 | Const AF_DECnet = 12
|
---|
417 | Const AF_DLI = 13
|
---|
418 | Const AF_LAT = 14
|
---|
419 | Const AF_HYLINK = 15
|
---|
420 | Const AF_APPLETALK = 16
|
---|
421 | Const AF_NETBIOS = 17
|
---|
422 | Const AF_VOICEVIEW = 18
|
---|
423 | Const AF_FIREFOX = 19
|
---|
424 | Const AF_UNKNOWN1 = 20
|
---|
425 | Const AF_BAN = 21
|
---|
426 | Const AF_ATM = 22
|
---|
427 | Const AF_INET6 = 23
|
---|
428 | Const AF_CLUSTER = 24
|
---|
429 | Const AF_12844 = 25
|
---|
430 | Const AF_IRDA = 26
|
---|
431 | Const AF_NETDES = 28
|
---|
432 |
|
---|
433 | Const AF_TCNPROCESS = 29
|
---|
434 | Const AF_TCNMESSAGE = 30
|
---|
435 | Const AF_ICLFXBM = 31
|
---|
436 |
|
---|
437 | Const AF_MAX = 32
|
---|
438 |
|
---|
439 | ' Structure used by kernel to store most addresses.
|
---|
440 | Type sockaddr
|
---|
441 | sa_family As Word
|
---|
442 | sa_data[ELM(14)] As Byte
|
---|
443 | End Type
|
---|
444 |
|
---|
445 | ' Portable socket structure (RFC 2553).
|
---|
446 |
|
---|
447 | ' Desired design of maximum size and alignment.
|
---|
448 | ' These are implementation specific.
|
---|
449 | Const _SS_MAXSIZE = 128 ' Maximum size.
|
---|
450 | Const _SS_ALIGNSIZE = (SizeOf (Int64)) 'Desired alignment.
|
---|
451 |
|
---|
452 | ' Definitions used for sockaddr_storage structure paddings design.
|
---|
453 | Const _SS_PAD1SIZE = (_SS_ALIGNSIZE - SizeOf (Integer))
|
---|
454 | Const _SS_PAD2SIZE = (_SS_MAXSIZE - (SizeOf (Integer) + _SS_PAD1SIZE + _SS_ALIGNSIZE))
|
---|
455 |
|
---|
456 | Type sockaddr_storage
|
---|
457 | ss_family As Integer
|
---|
458 | __ss_pad1[ELM(_SS_PAD1SIZE)] As Byte
|
---|
459 | __ss_align As Int64
|
---|
460 | __ss_pad2[ELM(_SS_PAD2SIZE)] As Byte
|
---|
461 | End Type
|
---|
462 |
|
---|
463 | Type sockproto
|
---|
464 | sp_family As Word
|
---|
465 | sp_protocol As Word
|
---|
466 | End Type
|
---|
467 |
|
---|
468 | ' Protocol families, same as address families for now.
|
---|
469 | Const PF_UNSPEC = AF_UNSPEC
|
---|
470 | Const PF_UNIX = AF_UNIX
|
---|
471 | Const PF_INET = AF_INET
|
---|
472 | Const PF_IMPLINK = AF_IMPLINK
|
---|
473 | Const PF_PUP = AF_PUP
|
---|
474 | Const PF_CHAOS = AF_CHAOS
|
---|
475 | Const PF_NS = AF_NS
|
---|
476 | Const PF_IPX = AF_IPX
|
---|
477 | Const PF_ISO = AF_ISO
|
---|
478 | Const PF_OSI = AF_OSI
|
---|
479 | Const PF_ECMA = AF_ECMA
|
---|
480 | Const PF_DATAKIT = AF_DATAKIT
|
---|
481 | Const PF_CCITT = AF_CCITT
|
---|
482 | Const PF_SNA = AF_SNA
|
---|
483 | Const PF_DECnet = AF_DECnet
|
---|
484 | Const PF_DLI = AF_DLI
|
---|
485 | Const PF_LAT = AF_LAT
|
---|
486 | Const PF_HYLINK = AF_HYLINK
|
---|
487 | Const PF_APPLETALK = AF_APPLETALK
|
---|
488 | Const PF_VOICEVIEW = AF_VOICEVIEW
|
---|
489 | Const PF_FIREFOX = AF_FIREFOX
|
---|
490 | Const PF_UNKNOWN1 = AF_UNKNOWN1
|
---|
491 | Const PF_BAN = AF_BAN
|
---|
492 | Const PF_ATM = AF_ATM
|
---|
493 | Const PF_INET6 = AF_INET6
|
---|
494 |
|
---|
495 | Const PF_MAX = AF_MAX
|
---|
496 |
|
---|
497 | ' Structure used for manipulating linger option.
|
---|
498 | Type linger
|
---|
499 | l_onoff As Word
|
---|
500 | l_linger As Word
|
---|
501 | End Type
|
---|
502 |
|
---|
503 | ' Level number for (get/set)sockopt() to apply to socket itself.
|
---|
504 | Const SOL_SOCKET = &hffff
|
---|
505 |
|
---|
506 | ' Maximum queue length specifiable by listen.
|
---|
507 | Const SOMAXCONN = &h7fffffff
|
---|
508 |
|
---|
509 | Const MSG_OOB = &h1
|
---|
510 | Const MSG_PEEK = &h2
|
---|
511 | Const MSG_DONTROUTE = &h4
|
---|
512 | Const MSG_WAITALL = &h8
|
---|
513 |
|
---|
514 | Const MSG_PARTIAL = &h8000
|
---|
515 |
|
---|
516 | ' WinSock 2 extension -- new flags for WSASend(), WSASendTo(), WSARecv() and
|
---|
517 | ' WSARecvFrom()
|
---|
518 | Const MSG_INTERRUPT = &h10
|
---|
519 |
|
---|
520 | Const MSG_MAXIOVLEN = 16
|
---|
521 |
|
---|
522 | ' Define constant based on rfc883, used by gethostbyxxxx() calls.
|
---|
523 | Const MAXGETHOSTSTRUCT = 1024
|
---|
524 |
|
---|
525 | ' WinSock 2 extension -- bit values and indices for FD_XXX network events
|
---|
526 | Const FD_READ_BIT = 0
|
---|
527 | Const FD_READ = (1 << FD_READ_BIT)
|
---|
528 |
|
---|
529 | Const FD_WRITE_BIT = 1
|
---|
530 | Const FD_WRITE = (1 << FD_WRITE_BIT)
|
---|
531 |
|
---|
532 | Const FD_OOB_BIT = 2
|
---|
533 | Const FD_OOB = (1 << FD_OOB_BIT)
|
---|
534 |
|
---|
535 | Const FD_ACCEPT_BIT = 3
|
---|
536 | Const FD_ACCEPT = (1 << FD_ACCEPT_BIT)
|
---|
537 |
|
---|
538 | Const FD_CONNECT_BIT = 4
|
---|
539 | Const FD_CONNECT = (1 << FD_CONNECT_BIT)
|
---|
540 |
|
---|
541 | Const FD_CLOSE_BIT = 5
|
---|
542 | Const FD_CLOSE = (1 << FD_CLOSE_BIT)
|
---|
543 |
|
---|
544 | Const FD_QOS_BIT = 6
|
---|
545 | Const FD_QOS = (1 << FD_QOS_BIT)
|
---|
546 |
|
---|
547 | Const FD_GROUP_QOS_BIT = 7
|
---|
548 | Const FD_GROUP_QOS = (1 << FD_GROUP_QOS_BIT)
|
---|
549 |
|
---|
550 | Const FD_ROUTING_INTERFACE_CHANGE_BIT = 8
|
---|
551 | Const FD_ROUTING_INTERFACE_CHANGE = (1 << FD_ROUTING_INTERFACE_CHANGE_BIT)
|
---|
552 |
|
---|
553 | Const FD_ADDRESS_LIST_CHANGE_BIT = 9
|
---|
554 | Const FD_ADDRESS_LIST_CHANGE = (1 << FD_ADDRESS_LIST_CHANGE_BIT)
|
---|
555 |
|
---|
556 | Const FD_MAX_EVENTS = 10
|
---|
557 | Const FD_ALL_EVENTS = ((1 << FD_MAX_EVENTS) - 1)
|
---|
558 |
|
---|
559 | #require <api_winerror.sbp>
|
---|
560 |
|
---|
561 | ' Compatibility macros.
|
---|
562 |
|
---|
563 | 'Const h_errno = WSAGetLastError()
|
---|
564 | Const HOST_NOT_FOUND = WSAHOST_NOT_FOUND
|
---|
565 | Const TRY_AGAIN = WSATRY_AGAIN
|
---|
566 | Const NO_RECOVERY = WSANO_RECOVERY
|
---|
567 | Const NO_DATA = WSANO_DATA
|
---|
568 | Const WSANO_ADDRESS = WSANO_DATA
|
---|
569 | Const NO_ADDRESS = WSANO_ADDRESS
|
---|
570 |
|
---|
571 | ' WinSock 2 extension -- new error codes and type definition
|
---|
572 |
|
---|
573 | '#ifdef _WIN32
|
---|
574 |
|
---|
575 | TypeDef WSAEVENT = HANDLE
|
---|
576 | TypeDef LPWSAEVENT = *HANDLE
|
---|
577 | TypeDef WSAOVERLAPPED = OVERLAPPED
|
---|
578 | TypeDef LPWSAOVERLAPPED = *OVERLAPPED
|
---|
579 |
|
---|
580 | Const WSA_IO_PENDING = (ERROR_IO_PENDING)
|
---|
581 | Const WSA_IO_INCOMPLETE = (ERROR_IO_INCOMPLETE)
|
---|
582 | Const WSA_INVALID_HANDLE = (ERROR_INVALID_HANDLE)
|
---|
583 | Const WSA_INVALID_PARAMETER = (ERROR_INVALID_PARAMETER)
|
---|
584 | Const WSA_NOT_ENOUGH_MEMORY = (ERROR_NOT_ENOUGH_MEMORY)
|
---|
585 | Const WSA_OPERATION_ABORTED = (ERROR_OPERATION_ABORTED)
|
---|
586 |
|
---|
587 | Const WSA_INVALID_EVENT = (0 As WSAEVENT)
|
---|
588 | Const WSA_MAXIMUM_WAIT_EVENTS = (MAXIMUM_WAIT_OBJECTS)
|
---|
589 | Const WSA_WAIT_FAILED = (WAIT_FAILED)
|
---|
590 | Const WSA_WAIT_EVENT_0 = (WAIT_OBJECT_0)
|
---|
591 | Const WSA_WAIT_IO_COMPLETION = (WAIT_IO_COMPLETION)
|
---|
592 | Const WSA_WAIT_TIMEOUT = (WAIT_TIMEOUT)
|
---|
593 | Const WSA_INFINITE = (INFINITE)
|
---|
594 |
|
---|
595 | '#elif defined _WIN16
|
---|
596 | '#endif
|
---|
597 |
|
---|
598 | Type WSABUF
|
---|
599 | len As DWord
|
---|
600 | buf As *Byte
|
---|
601 | End Type
|
---|
602 | TypeDef LPWSABUF = *WSABUF
|
---|
603 |
|
---|
604 | #require <qos.ab>
|
---|
605 |
|
---|
606 | Type QOS 'struct _QualityOfService
|
---|
607 | SendingFlowspec As FLOWSPEC
|
---|
608 | ReceivingFlowspec As FLOWSPEC
|
---|
609 | ProviderSpecific As WSABUF
|
---|
610 | End Type
|
---|
611 | TypeDef LPQOS = *QOS
|
---|
612 |
|
---|
613 | ' WinSock 2 extension -- manifest constants for return values of the condition function
|
---|
614 | Const CF_ACCEPT = &h0000
|
---|
615 | Const CF_REJECT = &h0001
|
---|
616 | Const CF_DEFER = &h0002
|
---|
617 |
|
---|
618 | ' WinSock 2 extension -- manifest constants for shutdown()
|
---|
619 | Const SD_RECEIVE = &h00
|
---|
620 | Const SD_SEND = &h01
|
---|
621 | Const SD_BOTH = &h02
|
---|
622 |
|
---|
623 | ' WinSock 2 extension -- data type and manifest constants for socket groups
|
---|
624 | TypeDef GROUP = DWord
|
---|
625 |
|
---|
626 | Const SG_UNCONSTRAINED_GROUP = &h01
|
---|
627 | Const SG_CONSTRAINED_GROUP = &h02
|
---|
628 |
|
---|
629 | ' WinSock 2 extension -- data type for WSAEnumNetworkEvents()
|
---|
630 | Type WSANETWORKEVENTS
|
---|
631 | lNetworkEvents As Long
|
---|
632 | iErrorCode[ELM(FD_MAX_EVENTS)] As Long
|
---|
633 | End Type
|
---|
634 | TypeDef LPWSANETWORKEVENTS = *WSANETWORKEVENTS
|
---|
635 |
|
---|
636 | ' WinSock 2 extension -- WSAPROTOCOL_INFO structure and associated
|
---|
637 | ' manifest constants
|
---|
638 |
|
---|
639 | Const MAX_PROTOCOL_CHAIN = 7
|
---|
640 |
|
---|
641 | Const BASE_PROTOCOL = 1
|
---|
642 | Const LAYERED_PROTOCOL = 0
|
---|
643 |
|
---|
644 | Type WSAPROTOCOLCHAIN
|
---|
645 | ChainLen As Long
|
---|
646 | ChainEntries[ELM(MAX_PROTOCOL_CHAIN)] As DWord
|
---|
647 | End Type
|
---|
648 | TypeDef LPWSAPROTOCOLCHAIN = *WSAPROTOCOLCHAIN
|
---|
649 |
|
---|
650 | Const WSAPROTOCOL_LEN = 255
|
---|
651 |
|
---|
652 | Type WSAPROTOCOL_INFOA
|
---|
653 | dwServiceFlags1 As DWord
|
---|
654 | dwServiceFlags2 As DWord
|
---|
655 | dwServiceFlags3 As DWord
|
---|
656 | dwServiceFlags4 As DWord
|
---|
657 | dwProviderFlags As DWord
|
---|
658 | ProviderId As GUID
|
---|
659 | dwCatalogEntryId As DWord
|
---|
660 | ProtocolChain As WSAPROTOCOLCHAIN
|
---|
661 | iVersion As Long
|
---|
662 | iAddressFamily As Long
|
---|
663 | iMaxSockAddr As Long
|
---|
664 | iMinSockAddr As Long
|
---|
665 | iSocketType As Long
|
---|
666 | iProtocol As Long
|
---|
667 | iProtocolMaxOffset As Long
|
---|
668 | iNetworkByteOrder As Long
|
---|
669 | iSecurityScheme As Long
|
---|
670 | dwMessageSize As DWord
|
---|
671 | dwProviderReserved As DWord
|
---|
672 | szProtocol[WSAPROTOCOL_LEN] As Byte
|
---|
673 | End Type
|
---|
674 | TypeDef LPWSAPROTOCOL_INFOA = *WSAPROTOCOL_INFOA
|
---|
675 |
|
---|
676 | Type WSAPROTOCOL_INFOW
|
---|
677 | dwServiceFlags1 As DWord
|
---|
678 | dwServiceFlags2 As DWord
|
---|
679 | dwServiceFlags3 As DWord
|
---|
680 | dwServiceFlags4 As DWord
|
---|
681 | dwProviderFlags As DWord
|
---|
682 | ProviderId As GUID
|
---|
683 | dwCatalogEntryId As DWord
|
---|
684 | ProtocolChain As WSAPROTOCOLCHAIN
|
---|
685 | iVersion As Long
|
---|
686 | iAddressFamily As Long
|
---|
687 | iMaxSockAddr As Long
|
---|
688 | iMinSockAddr As Long
|
---|
689 | iSocketType As Long
|
---|
690 | iProtocol As Long
|
---|
691 | iProtocolMaxOffset As Long
|
---|
692 | iNetworkByteOrder As Long
|
---|
693 | iSecurityScheme As Long
|
---|
694 | dwMessageSize As DWord
|
---|
695 | dwProviderReserved As DWord
|
---|
696 | szProtocol[WSAPROTOCOL_LEN] As WCHAR
|
---|
697 | End Type
|
---|
698 | TypeDef LPWSAPROTOCOL_INFOW = *WSAPROTOCOL_INFOW
|
---|
699 |
|
---|
700 | #ifdef UNICODE
|
---|
701 | TypeDef WSAPROTOCOL_INFO = WSAPROTOCOL_INFOW
|
---|
702 | TypeDef LPWSAPROTOCOL_INFO = LPWSAPROTOCOL_INFOW
|
---|
703 | #else
|
---|
704 | TypeDef WSAPROTOCOL_INFO = WSAPROTOCOL_INFOA
|
---|
705 | TypeDef LPWSAPROTOCOL_INFO = LPWSAPROTOCOL_INFOA
|
---|
706 | #endif
|
---|
707 |
|
---|
708 | ' Flag bit definitions for dwProviderFlags
|
---|
709 | Const PFL_MULTIPLE_PROTO_ENTRIES = &h00000001
|
---|
710 | Const PFL_RECOMMENDED_PROTO_ENTRY = &h00000002
|
---|
711 | Const PFL_HIDDEN = &h00000004
|
---|
712 | Const PFL_MATCHES_PROTOCOL_ZERO = &h00000008
|
---|
713 |
|
---|
714 | ' Flag bit definitions for dwServiceFlags1
|
---|
715 | Const XP1_CONNECTIONLESS = &h00000001
|
---|
716 | Const XP1_GUARANTEED_DELIVERY = &h00000002
|
---|
717 | Const XP1_GUARANTEED_ORDER = &h00000004
|
---|
718 | Const XP1_MESSAGE_ORIENTED = &h00000008
|
---|
719 | Const XP1_PSEUDO_STREAM = &h00000010
|
---|
720 | Const XP1_GRACEFUL_CLOSE = &h00000020
|
---|
721 | Const XP1_EXPEDITED_DATA = &h00000040
|
---|
722 | Const XP1_CONNECT_DATA = &h00000080
|
---|
723 | Const XP1_DISCONNECT_DATA = &h00000100
|
---|
724 | Const XP1_SUPPORT_BROADCAST = &h00000200
|
---|
725 | Const XP1_SUPPORT_MULTIPOINT = &h00000400
|
---|
726 | Const XP1_MULTIPOINT_CONTROL_PLANE = &h00000800
|
---|
727 | Const XP1_MULTIPOINT_DATA_PLANE = &h00001000
|
---|
728 | Const XP1_QOS_SUPPORTED = &h00002000
|
---|
729 | Const XP1_INTERRUPT = &h00004000
|
---|
730 | Const XP1_UNI_SEND = &h00008000
|
---|
731 | Const XP1_UNI_RECV = &h00010000
|
---|
732 | Const XP1_IFS_HANDLES = &h00020000
|
---|
733 | Const XP1_PARTIAL_MESSAGE = &h00040000
|
---|
734 |
|
---|
735 | Const BIGENDIAN = &h0000
|
---|
736 | Const LITTLEENDIAN = &h0001
|
---|
737 |
|
---|
738 | Const SECURITY_PROTOCOL_NONE = &h0000
|
---|
739 |
|
---|
740 | ' WinSock 2 extension -- manifest constants for WSAJoinLeaf()
|
---|
741 | Const JL_SENDER_ONLY = &h01
|
---|
742 | Const JL_RECEIVER_ONLY = &h02
|
---|
743 | Const JL_BOTH = &h04
|
---|
744 |
|
---|
745 | ' WinSock 2 extension -- manifest constants for WSASocket()
|
---|
746 | Const WSA_FLAG_OVERLAPPED = &h01
|
---|
747 | Const WSA_FLAG_MULTIPOINT_C_ROOT = &h02
|
---|
748 | Const WSA_FLAG_MULTIPOINT_C_LEAF = &h04
|
---|
749 | Const WSA_FLAG_MULTIPOINT_D_ROOT = &h08
|
---|
750 | Const WSA_FLAG_MULTIPOINT_D_LEAF = &h10
|
---|
751 |
|
---|
752 | ' WinSock 2 extension -- manifest constants for WSAIoctl()
|
---|
753 | Const IOC_UNIX = &h00000000
|
---|
754 | Const IOC_WS2 = &h08000000
|
---|
755 | Const IOC_PROTOCOL = &h10000000
|
---|
756 | Const IOC_VENDOR = &h18000000
|
---|
757 |
|
---|
758 | Const _WSAIO(x, y) = (IOC_VOID Or (x) Or (y))
|
---|
759 | Const _WSAIOR(x, y) = (IOC_OUT Or (x) Or (y))
|
---|
760 | Const _WSAIOW(x, y) = (IOC_IN Or (x) Or (y))
|
---|
761 | Const _WSAIORW(x, y) = (IOC_INOUT Or (x) Or (y))
|
---|
762 |
|
---|
763 | Const SIO_ASSOCIATE_HANDLE = _WSAIOW(IOC_WS2, 1)
|
---|
764 | Const SIO_ENABLE_CIRCULAR_QUEUEING = _WSAIO(IOC_WS2, 2)
|
---|
765 | Const SIO_FIND_ROUTE = _WSAIOR(IOC_WS2, 3)
|
---|
766 | Const SIO_FLUSH = _WSAIO(IOC_WS2, 4)
|
---|
767 | Const SIO_GET_BROADCAST_ADDRESS = _WSAIOR(IOC_WS2, 5)
|
---|
768 | Const SIO_GET_EXTENSION_FUNCTION_POINTER = _WSAIORW(IOC_WS2, 6)
|
---|
769 | Const SIO_GET_QOS = _WSAIORW(IOC_WS2, 7)
|
---|
770 | Const SIO_GET_GROUP_QOS = _WSAIORW(IOC_WS2, 8)
|
---|
771 | Const SIO_MULTIPOINT_LOOPBACK = _WSAIOW(IOC_WS2, 9)
|
---|
772 | Const SIO_MULTICAST_SCOPE = _WSAIOW(IOC_WS2, 10)
|
---|
773 | Const SIO_SET_QOS = _WSAIOW(IOC_WS2, 11)
|
---|
774 | Const SIO_SET_GROUP_QOS = _WSAIOW(IOC_WS2, 12)
|
---|
775 | Const SIO_TRANSLATE_HANDLE = _WSAIORW(IOC_WS2, 13)
|
---|
776 | Const SIO_ROUTING_INTERFACE_QUERY = _WSAIORW(IOC_WS2, 20)
|
---|
777 | Const SIO_ROUTING_INTERFACE_CHANGE = _WSAIOW(IOC_WS2, 21)
|
---|
778 | Const SIO_ADDRESS_LIST_QUERY = _WSAIOR(IOC_WS2, 22)
|
---|
779 | Const SIO_ADDRESS_LIST_CHANGE = _WSAIO(IOC_WS2, 23)
|
---|
780 | Const SIO_QUERY_TARGET_PNP_HANDLE = _WSAIOR(IOC_WS2, 24)
|
---|
781 | Const SIO_ADDRESS_LIST_SORT = _WSAIORW(IOC_WS2, 25)
|
---|
782 |
|
---|
783 | ' WinSock 2 extensions -- data types for the condition function in
|
---|
784 | ' WSAAccept() and overlapped I/O completion routine.
|
---|
785 |
|
---|
786 | TypeDef LPCONDITIONPROC = *Function(
|
---|
787 | ByRef CallerId As WSABUF,
|
---|
788 | ByRef CallerData As WSABUF,
|
---|
789 | ByRef lpSQOS As QOS,
|
---|
790 | ByRef lpGQOS As QOS,
|
---|
791 | ByRef lpCalleeId As WSABUF,
|
---|
792 | ByRef lpCalleeData As WSABUF,
|
---|
793 | ByRef g As GROUP,
|
---|
794 | dwCallbackData As ULONG_PTR
|
---|
795 | ) As Long
|
---|
796 |
|
---|
797 | TypeDef LPWSAOVERLAPPED_COMPLETION_ROUTINE = *Sub(
|
---|
798 | dwError As DWord,
|
---|
799 | cbTransferred As DWord,
|
---|
800 | ByRef Overlapped As WSAOVERLAPPED,
|
---|
801 | dwFlags As DWord)
|
---|
802 |
|
---|
803 | ' WinSock 2 extension -- manifest constants and associated structures
|
---|
804 | ' for WSANSPIoctl()
|
---|
805 | Const SIO_NSP_NOTIFY_CHANGE = _WSAIOW(IOC_WS2, 25)
|
---|
806 |
|
---|
807 | Const Enum WSACOMPLETIONTYPE
|
---|
808 | NSP_NOTIFY_IMMEDIATELY = 0
|
---|
809 | NSP_NOTIFY_HWND
|
---|
810 | NSP_NOTIFY_EVENT
|
---|
811 | NSP_NOTIFY_PORT
|
---|
812 | NSP_NOTIFY_APC
|
---|
813 | End Enum
|
---|
814 |
|
---|
815 | TypeDef PWSACOMPLETIONTYPE = *WSACOMPLETIONTYPE
|
---|
816 | TypeDef LPWSACOMPLETIONTYPE = *WSACOMPLETIONTYPE
|
---|
817 |
|
---|
818 | Type _System_WinSock_WSACOMPLETION_WINDOWMESSAGE
|
---|
819 | hWnd As HWND
|
---|
820 | uMsg As DWord
|
---|
821 | context As WPARAM
|
---|
822 | End Type
|
---|
823 |
|
---|
824 | Type _System_WinSock_WSACOMPLETION_EVENT
|
---|
825 | lpOverlapped As LPWSAOVERLAPPED
|
---|
826 | End Type
|
---|
827 |
|
---|
828 | Type _System_WinSock_WSACOMPLETION_APC
|
---|
829 | lpOverlapped As LPWSAOVERLAPPED
|
---|
830 | lpfnCompletionProc As LPWSAOVERLAPPED_COMPLETION_ROUTINE
|
---|
831 | End Type
|
---|
832 |
|
---|
833 | Type _System_WinSock_WSACOMPLETION_PORT
|
---|
834 | lpOverlapped As LPWSAOVERLAPPED
|
---|
835 | hPort As HANDLE
|
---|
836 | Key As ULONG_PTR
|
---|
837 | End Type
|
---|
838 |
|
---|
839 | Type /*Class*/ WSACOMPLETION
|
---|
840 | 'Public
|
---|
841 | Type_ As WSACOMPLETIONTYPE
|
---|
842 | /*
|
---|
843 | Parameters As Union
|
---|
844 | WindowMessage As _System_WinSock_WSACOMPLETION_WINDOWMESSAGE
|
---|
845 | Event As _System_WinSock_WSACOMPLETION_EVENT
|
---|
846 | Apc As _System_WinSock_WSACOMPLETION_APC
|
---|
847 | Port As _System_WinSock_WSACOMPLETION_PORT
|
---|
848 | End Union
|
---|
849 | */
|
---|
850 | Port As _System_WinSock_WSACOMPLETION_PORT
|
---|
851 | /*
|
---|
852 | Function WindowMessage() As _System_WinSock_WSACOMPLETION_WINDOWMESSAGE
|
---|
853 | Dim p As *_System_WinSock_WSACOMPLETION_WINDOWMESSAGE
|
---|
854 | p = VarPtr(Port) As *_System_WinSock_WSACOMPLETION_WINDOWMESSAGE
|
---|
855 | Return p[0]
|
---|
856 | End Function
|
---|
857 |
|
---|
858 | Sub WindowMessage(w As _System_WinSock_WSACOMPLETION_WINDOWMESSAGE)
|
---|
859 | Dim p As *_System_WinSock_WSACOMPLETION_WINDOWMESSAGE
|
---|
860 | p = VarPtr(Port) As *_System_WinSock_WSACOMPLETION_WINDOWMESSAGE
|
---|
861 | p[0] = w
|
---|
862 | End Sub
|
---|
863 |
|
---|
864 | Function Event() As _System_WinSock_WSACOMPLETION_EVENT
|
---|
865 | Dim p As *_System_WinSock_WSACOMPLETION_EVENT
|
---|
866 | p = VarPtr(Port) As *_System_WinSock_WSACOMPLETION_EVENT
|
---|
867 | Return p[0]
|
---|
868 | End Function
|
---|
869 |
|
---|
870 | Sub Event(e As _System_WinSock_WSACOMPLETION_EVENT)
|
---|
871 | Dim p As *_System_WinSock_WSACOMPLETION_EVENT
|
---|
872 | p = VarPtr(Port) As *_System_WinSock_WSACOMPLETION_EVENT
|
---|
873 | p[0] = e
|
---|
874 | End Sub
|
---|
875 |
|
---|
876 | Function Apc() As _System_WinSock_WSACOMPLETION_APC
|
---|
877 | Dim p As *_System_WinSock_WSACOMPLETION_APC
|
---|
878 | p = VarPtr(Port) As *_System_WinSock_WSACOMPLETION_APC
|
---|
879 | Return p[0]
|
---|
880 | End Function
|
---|
881 |
|
---|
882 | Sub Apc(a As _System_WinSock_WSACOMPLETION_APC)
|
---|
883 | Dim p As *_System_WinSock_WSACOMPLETION_APC
|
---|
884 | p = VarPtr(Port) As *_System_WinSock_WSACOMPLETION_APC
|
---|
885 | p[0] = a
|
---|
886 | End Sub
|
---|
887 | /*
|
---|
888 | Function Port() As _System_WinSock_WSACOMPLETION_PORT
|
---|
889 | Dim p As *_System_WinSock_WSACOMPLETION_PORT
|
---|
890 | p = VarPtr(Port) As *_System_WinSock_WSACOMPLETION_PORT
|
---|
891 | Return p[0]
|
---|
892 | End Function
|
---|
893 |
|
---|
894 | Sub Port(p As _System_WinSock_WSACOMPLETION_PORT)
|
---|
895 | Dim p As *_System_WinSock_WSACOMPLETION_PORT
|
---|
896 | p = VarPtr(Port) As *_System_WinSock_WSACOMPLETION_PORT
|
---|
897 | p[0] = p
|
---|
898 | End Sub
|
---|
899 | */
|
---|
900 | End Type 'Class
|
---|
901 |
|
---|
902 | TypeDef PWSACOMPLETION = *WSACOMPLETION
|
---|
903 | TypeDef LPWSACOMPLETION = *WSACOMPLETION
|
---|
904 |
|
---|
905 | ' WinSock 2 extension -- manifest constants for SIO_TRANSLATE_HANDLE ioctl
|
---|
906 | Const TH_NETDEV = &h00000001
|
---|
907 | Const TH_TAPI = &h00000002
|
---|
908 |
|
---|
909 | TypeDef SOCKADDR = sockaddr
|
---|
910 | TypeDef PSOCKADDR = *sockaddr
|
---|
911 | TypeDef LPSOCKADDR = *sockaddr
|
---|
912 |
|
---|
913 | TypeDef SOCKADDR_STORAGE = sockaddr_storage
|
---|
914 | TypeDef PSOCKADDR_STORAGE = *sockaddr_storage
|
---|
915 | TypeDef LPSOCKADDR_STORAGE = *sockaddr_storage
|
---|
916 |
|
---|
917 | ' Manifest constants and type definitions related to name resolution and
|
---|
918 | ' registration (RNR) API
|
---|
919 |
|
---|
920 | Type BLOB
|
---|
921 | cbSize As DWord
|
---|
922 | #ifdef MIDL_PASS
|
---|
923 | [size_is(cbSize)] pBlobData As *Byte
|
---|
924 | #else
|
---|
925 | pBlobData As *Byte
|
---|
926 | #endif
|
---|
927 | End Type
|
---|
928 | TypeDef LPBLOB = *BLOB
|
---|
929 |
|
---|
930 | ' Service Install Flags
|
---|
931 | Const SERVICE_MULTIPLE = (&h00000001)
|
---|
932 |
|
---|
933 | ' Name Spaces
|
---|
934 |
|
---|
935 | Const NS_ALL = (0)
|
---|
936 |
|
---|
937 | Const NS_SAP = (1)
|
---|
938 | Const NS_NDS = (2)
|
---|
939 | Const NS_PEER_BROWSE = (3)
|
---|
940 | Const NS_SLP = (5)
|
---|
941 | Const NS_DHCP = (6)
|
---|
942 |
|
---|
943 | Const NS_TCPIP_LOCAL = (10)
|
---|
944 | Const NS_TCPIP_HOSTS = (11)
|
---|
945 | Const NS_DNS = (12)
|
---|
946 | Const NS_NETBT = (13)
|
---|
947 | Const NS_WINS = (14)
|
---|
948 | Const NS_NLA = (15)
|
---|
949 |
|
---|
950 | Const NS_NBP = (20)
|
---|
951 |
|
---|
952 | Const NS_MS = (30)
|
---|
953 | Const NS_STDA = (31)
|
---|
954 | Const NS_NTDS = (32)
|
---|
955 |
|
---|
956 | Const NS_X500 = (40)
|
---|
957 | Const NS_NIS = (41)
|
---|
958 | Const NS_NISPLUS = (42)
|
---|
959 |
|
---|
960 | Const NS_WRQ = (50)
|
---|
961 |
|
---|
962 | Const NS_NETDES = (60)
|
---|
963 |
|
---|
964 | ' Resolution flags for WSAGetAddressByName().
|
---|
965 | Const RES_UNUSED_1 = (&h00000001)
|
---|
966 | Const RES_FLUSH_CACHE = (&h00000002)
|
---|
967 | Const RES_SERVICE = (&h00000004)
|
---|
968 |
|
---|
969 | ' Well known value names for Service Types
|
---|
970 |
|
---|
971 | 'Const SERVICE_TYPE_VALUE_IPXPORTA = "IpxSocket"
|
---|
972 | 'Const SERVICE_TYPE_VALUE_IPXPORTW = L"IpxSocket"
|
---|
973 | 'Const SERVICE_TYPE_VALUE_SAPIDA = "SapId"
|
---|
974 | 'Const SERVICE_TYPE_VALUE_SAPIDW = L"SapId"
|
---|
975 |
|
---|
976 | 'Const SERVICE_TYPE_VALUE_TCPPORTA = "TcpPort"
|
---|
977 | 'Const SERVICE_TYPE_VALUE_TCPPORTW = L"TcpPort"
|
---|
978 |
|
---|
979 | 'Const SERVICE_TYPE_VALUE_UDPPORTA = "UdpPort"
|
---|
980 | 'Const SERVICE_TYPE_VALUE_UDPPORTW = L"UdpPort"
|
---|
981 |
|
---|
982 | 'Const SERVICE_TYPE_VALUE_OBJECTIDA = "ObjectId"
|
---|
983 | 'Const SERVICE_TYPE_VALUE_OBJECTIDW = L"ObjectId"
|
---|
984 | /*
|
---|
985 | #ifdef UNICODE
|
---|
986 | Const SERVICE_TYPE_VALUE_SAPID = SERVICE_TYPE_VALUE_SAPIDW
|
---|
987 | Const SERVICE_TYPE_VALUE_TCPPORT = SERVICE_TYPE_VALUE_TCPPORTW
|
---|
988 | Const SERVICE_TYPE_VALUE_UDPPORT = SERVICE_TYPE_VALUE_UDPPORTW
|
---|
989 | Const SERVICE_TYPE_VALUE_OBJECTID = SERVICE_TYPE_VALUE_OBJECTIDW
|
---|
990 | #else
|
---|
991 | Const SERVICE_TYPE_VALUE_SAPID = SERVICE_TYPE_VALUE_SAPIDA
|
---|
992 | Const SERVICE_TYPE_VALUE_TCPPORT = SERVICE_TYPE_VALUE_TCPPORTA
|
---|
993 | Const SERVICE_TYPE_VALUE_UDPPORT = SERVICE_TYPE_VALUE_UDPPORTA
|
---|
994 | Const SERVICE_TYPE_VALUE_OBJECTID = SERVICE_TYPE_VALUE_OBJECTIDA
|
---|
995 | #endif
|
---|
996 | */
|
---|
997 | Const SERVICE_TYPE_VALUE_IPXPORT = "IpxSocket"
|
---|
998 | Const SERVICE_TYPE_VALUE_SAPID = "SapId"
|
---|
999 | Const SERVICE_TYPE_VALUE_TCPPORT = "TcpPort"
|
---|
1000 | Const SERVICE_TYPE_VALUE_UDPPORT = "UdpPort"
|
---|
1001 | Const SERVICE_TYPE_VALUE_OBJECTID = "ObjectId"
|
---|
1002 |
|
---|
1003 | ' SockAddr Information
|
---|
1004 | Type SOCKET_ADDRESS
|
---|
1005 | lpSockaddr As LPSOCKADDR
|
---|
1006 | iSockaddrLength As Long
|
---|
1007 | End Type
|
---|
1008 | TypeDef PSOCKET_ADDRESS = *SOCKET_ADDRESS
|
---|
1009 | TypeDef LPSOCKET_ADDRESS = *SOCKET_ADDRESS
|
---|
1010 |
|
---|
1011 | ' CSAddr Information
|
---|
1012 | Type CSADDR_INFO
|
---|
1013 | LocalAddr As SOCKET_ADDRESS
|
---|
1014 | RemoteAddr As SOCKET_ADDRESS
|
---|
1015 | iSocketType As Long
|
---|
1016 | iProtocol As Long
|
---|
1017 | End Type
|
---|
1018 | TypeDef PCSADDR_INFO = *CSADDR_INFO
|
---|
1019 | TypeDef LPCSADDR_INFO = *CSADDR_INFO
|
---|
1020 |
|
---|
1021 | ' Address list returned via SIO_ADDRESS_LIST_QUERY
|
---|
1022 | Type SOCKET_ADDRESS_LIST
|
---|
1023 | iAddressCount As Long
|
---|
1024 | Address[ELM(1)] As SOCKET_ADDRESS
|
---|
1025 | End Type
|
---|
1026 | TypeDef LPSOCKET_ADDRESS_LIST = *SOCKET_ADDRESS_LIST
|
---|
1027 |
|
---|
1028 | ' Address Family/Protocol Tuples
|
---|
1029 | Type AFPROTOCOLS
|
---|
1030 | iAddressFamily As Long
|
---|
1031 | iProtocol As Long
|
---|
1032 | End Type
|
---|
1033 | TypeDef PAFPROTOCOLS = *AFPROTOCOLS
|
---|
1034 | TypeDef LPAFPROTOCOLS = *AFPROTOCOLS
|
---|
1035 |
|
---|
1036 | ' Client Query API Typedefs
|
---|
1037 |
|
---|
1038 | ' The comparators
|
---|
1039 | Const Enum WSAECOMPARATOR
|
---|
1040 | COMP_EQUAL = 0
|
---|
1041 | COMP_NOTLESS
|
---|
1042 | End Enum
|
---|
1043 | TypeDef PWSAECOMPARATOR = *WSAECOMPARATOR
|
---|
1044 | TypeDef LPWSAECOMPARATOR = *WSAECOMPARATOR
|
---|
1045 |
|
---|
1046 | Type WSAVERSION
|
---|
1047 | dwVersion As DWord
|
---|
1048 | ecHow As WSAECOMPARATOR
|
---|
1049 | End Type
|
---|
1050 | TypeDef PWSAVERSION = *WSAVERSION
|
---|
1051 | TypeDef LPWSAVERSION = *WSAVERSION
|
---|
1052 |
|
---|
1053 | Type WSAQUERYSETA
|
---|
1054 | dwSize As DWord
|
---|
1055 | lpszServiceInstanceName As LPSTR
|
---|
1056 | lpServiceClassId As *GUID
|
---|
1057 | lpVersion As LPWSAVERSION
|
---|
1058 | lpszComment As LPSTR
|
---|
1059 | dwNameSpace As DWord
|
---|
1060 | lpNSProviderId As *GUID
|
---|
1061 | lpszContext As LPSTR
|
---|
1062 | dwNumberOfProtocols As DWord
|
---|
1063 | lpafpProtocols As LPAFPROTOCOLS
|
---|
1064 | lpszQueryString As LPSTR
|
---|
1065 | dwNumberOfCsAddrs As DWord
|
---|
1066 | lpcsaBuffer As LPCSADDR_INFO
|
---|
1067 | dwOutputFlags As DWord
|
---|
1068 | lpBlob As LPBLOB
|
---|
1069 | End Type
|
---|
1070 | TypeDef PWSAQUERYSETA = *WSAQUERYSETA
|
---|
1071 | TypeDef LPWSAQUERYSETA = *WSAQUERYSETA
|
---|
1072 |
|
---|
1073 | Type WSAQUERYSETW
|
---|
1074 | dwSize As DWord
|
---|
1075 | lpszServiceInstanceName As LPWSTR
|
---|
1076 | lpServiceClassId As *GUID
|
---|
1077 | lpVersion As LPWSAVERSION
|
---|
1078 | lpszComment As LPWSTR
|
---|
1079 | dwNameSpace As DWord
|
---|
1080 | lpNSProviderId As *GUID
|
---|
1081 | lpszContext As LPWSTR
|
---|
1082 | dwNumberOfProtocols As DWord
|
---|
1083 | lpafpProtocols As LPAFPROTOCOLS
|
---|
1084 | lpszQueryString As LPWSTR
|
---|
1085 | dwNumberOfCsAddrs As DWord
|
---|
1086 | lpcsaBuffer As LPCSADDR_INFO
|
---|
1087 | dwOutputFlags As DWord
|
---|
1088 | lpBlob As LPBLOB
|
---|
1089 | End Type
|
---|
1090 | TypeDef PWSAQUERYSETW = *WSAQUERYSETW
|
---|
1091 | TypeDef LPWSAQUERYSETW = *WSAQUERYSETW
|
---|
1092 |
|
---|
1093 | #ifdef UNICODE
|
---|
1094 | TypeDef WSAQUERYSET = WSAQUERYSETW
|
---|
1095 | TypeDef PWSAQUERYSET = PWSAQUERYSETW
|
---|
1096 | TypeDef LPWSAQUERYSET = LPWSAQUERYSETW
|
---|
1097 | #else
|
---|
1098 | TypeDef WSAQUERYSET = WSAQUERYSETA
|
---|
1099 | TypeDef PWSAQUERYSET = PWSAQUERYSETA
|
---|
1100 | TypeDef LPWSAQUERYSET = LPWSAQUERYSETA
|
---|
1101 | #endif
|
---|
1102 |
|
---|
1103 | Const LUP_DEEP = &h0001
|
---|
1104 | Const LUP_CONTAINERS = &h0002
|
---|
1105 | Const LUP_NOCONTAINERS = &h0004
|
---|
1106 | Const LUP_NEAREST = &h0008
|
---|
1107 | Const LUP_RETURN_NAME = &h0010
|
---|
1108 | Const LUP_RETURN_TYPE = &h0020
|
---|
1109 | Const LUP_RETURN_VERSION = &h0040
|
---|
1110 | Const LUP_RETURN_COMMENT = &h0080
|
---|
1111 | Const LUP_RETURN_ADDR = &h0100
|
---|
1112 | Const LUP_RETURN_BLOB = &h0200
|
---|
1113 | Const LUP_RETURN_ALIASES = &h0400
|
---|
1114 | Const LUP_RETURN_QUERY_STRING = &h0800
|
---|
1115 | Const LUP_RETURN_ALL = &h0FF0
|
---|
1116 | Const LUP_RES_SERVICE = &h8000
|
---|
1117 |
|
---|
1118 | Const LUP_FLUSHCACHE = &h1000
|
---|
1119 | Const LUP_FLUSHPREVIOUS = &h2000
|
---|
1120 |
|
---|
1121 | ' Return flags
|
---|
1122 | Const RESULT_IS_ALIAS = &h0001
|
---|
1123 | Const RESULT_IS_ADDED = &h0010
|
---|
1124 | Const RESULT_IS_CHANGED = &h0020
|
---|
1125 | Const RESULT_IS_DELETED = &h0040
|
---|
1126 |
|
---|
1127 | ' Service Address Registration and Deregistration Data Types.
|
---|
1128 |
|
---|
1129 | Const Enum WSAESETSERVICEOP
|
---|
1130 | RNRSERVICE_REGISTER = 0
|
---|
1131 | RNRSERVICE_DEREGISTER
|
---|
1132 | RNRSERVICE_DELETE
|
---|
1133 | End Enum
|
---|
1134 | TypeDef PWSAESETSERVICEOP = *WSAESETSERVICEOP
|
---|
1135 | TypeDef LPWSAESETSERVICEOP = *WSAESETSERVICEOP
|
---|
1136 |
|
---|
1137 | ' Service Installation/Removal Data Types.
|
---|
1138 |
|
---|
1139 | Type WSANSCLASSINFOA
|
---|
1140 | lpszName As LPSTR
|
---|
1141 | dwNameSpace As DWord
|
---|
1142 | dwValueType As DWord
|
---|
1143 | dwValueSize As DWord
|
---|
1144 | lpValue As VoidPtr
|
---|
1145 | End Type
|
---|
1146 | TypeDef PWSANSCLASSINFOA = *WSANSCLASSINFOA
|
---|
1147 | TypeDef LPWSANSCLASSINFOA = *WSANSCLASSINFOA
|
---|
1148 |
|
---|
1149 | Type WSANSCLASSINFOW
|
---|
1150 | lpszName As LPWSTR
|
---|
1151 | dwNameSpace As DWord
|
---|
1152 | dwValueType As DWord
|
---|
1153 | dwValueSize As DWord
|
---|
1154 | lpValue As VoidPtr
|
---|
1155 | End Type
|
---|
1156 | TypeDef PWSANSCLASSINFOW = *WSANSCLASSINFOW
|
---|
1157 | TypeDef LPWSANSCLASSINFOW = *WSANSCLASSINFOW
|
---|
1158 |
|
---|
1159 | #ifdef UNICODE
|
---|
1160 | TypeDef WSANSCLASSINFO = WSANSCLASSINFOW
|
---|
1161 | TypeDef PWSANSCLASSINFO = PWSANSCLASSINFOW
|
---|
1162 | TypeDef LPWSANSCLASSINFO = LPWSANSCLASSINFOW
|
---|
1163 | #else
|
---|
1164 | TypeDef WSANSCLASSINFO = WSANSCLASSINFOA
|
---|
1165 | TypeDef PWSANSCLASSINFO = PWSANSCLASSINFOA
|
---|
1166 | TypeDef LPWSANSCLASSINFO = LPWSANSCLASSINFOA
|
---|
1167 | #endif
|
---|
1168 |
|
---|
1169 | Type WSASERVICECLASSINFOA
|
---|
1170 | lpServiceClassId As *GUID
|
---|
1171 | lpszServiceClassName As LPSTR
|
---|
1172 | dwCount As DWord
|
---|
1173 | lpClassInfos As LPWSANSCLASSINFOA
|
---|
1174 | End Type
|
---|
1175 | TypeDef PWSASERVICECLASSINFOA = *WSASERVICECLASSINFOA
|
---|
1176 | TypeDef LPWSASERVICECLASSINFOA = *WSASERVICECLASSINFOA
|
---|
1177 |
|
---|
1178 | Type WSASERVICECLASSINFOW
|
---|
1179 | lpServiceClassId As *GUID
|
---|
1180 | lpszServiceClassName As LPWSTR
|
---|
1181 | dwCount As DWord
|
---|
1182 | lpClassInfos As LPWSANSCLASSINFOA
|
---|
1183 | End Type
|
---|
1184 | TypeDef PWSASERVICECLASSINFOW = *WSASERVICECLASSINFOW
|
---|
1185 | TypeDef LPWSASERVICECLASSINFOW = *WSASERVICECLASSINFOW
|
---|
1186 |
|
---|
1187 | #ifdef UNICODE
|
---|
1188 | TypeDef WSASERVICECLASSINFO = WSASERVICECLASSINFOW
|
---|
1189 | TypeDef PWSASERVICECLASSINFO = PWSASERVICECLASSINFOW
|
---|
1190 | TypeDef LPWSASERVICECLASSINFO = LPWSASERVICECLASSINFOW
|
---|
1191 | #else
|
---|
1192 | TypeDef WSASERVICECLASSINFO = WSASERVICECLASSINFOA
|
---|
1193 | TypeDef PWSASERVICECLASSINFO = PWSASERVICECLASSINFOA
|
---|
1194 | TypeDef LPWSASERVICECLASSINFO = LPWSASERVICECLASSINFOA
|
---|
1195 | #endif
|
---|
1196 |
|
---|
1197 | Type WSANAMESPACE_INFOA
|
---|
1198 | NSProviderId As GUID
|
---|
1199 | dwNameSpace As DWord
|
---|
1200 | fActive As BOOL
|
---|
1201 | dwVersion As DWord
|
---|
1202 | lpszIdentifier As LPSTR
|
---|
1203 | End Type
|
---|
1204 | TypeDef PWSANAMESPACE_INFOA = *WSANAMESPACE_INFOA
|
---|
1205 | TypeDef LPWSANAMESPACE_INFOA = *WSANAMESPACE_INFOA
|
---|
1206 |
|
---|
1207 | Type WSANAMESPACE_INFOW
|
---|
1208 | NSProviderId As GUID
|
---|
1209 | dwNameSpace As DWord
|
---|
1210 | fActive As BOOL
|
---|
1211 | dwVersion As DWord
|
---|
1212 | lpszIdentifier As LPWSTR
|
---|
1213 | End Type
|
---|
1214 | TypeDef PWSANAMESPACE_INFOW = *WSANAMESPACE_INFOW
|
---|
1215 | TypeDef LPWSANAMESPACE_INFOW = *WSANAMESPACE_INFOW
|
---|
1216 |
|
---|
1217 | #ifdef UNICODE
|
---|
1218 | TypeDef WSANAMESPACE_INFO = WSANAMESPACE_INFOW
|
---|
1219 | TypeDef PWSANAMESPACE_INFO = PWSANAMESPACE_INFOW
|
---|
1220 | TypeDef LPWSANAMESPACE_INFO = LPWSANAMESPACE_INFOW
|
---|
1221 | #else
|
---|
1222 | TypeDef WSANAMESPACE_INFO = WSANAMESPACE_INFOA
|
---|
1223 | TypeDef PWSANAMESPACE_INFO = PWSANAMESPACE_INFOA
|
---|
1224 | TypeDef LPWSANAMESPACE_INFO = LPWSANAMESPACE_INFOA
|
---|
1225 | #endif
|
---|
1226 |
|
---|
1227 | ' Socket function prototypes
|
---|
1228 |
|
---|
1229 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1230 | Declare Function accept Lib "ws2_32" (s As SOCKET, ByRef addr As sockaddr, ByRef addrlen As Long) As SOCKET
|
---|
1231 | #endif
|
---|
1232 |
|
---|
1233 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1234 | TypeDef LPFN_ACCEPT = *Function(s As SOCKET, ByRef addr As sockaddr, ByRef addrlen As Long) As SOCKET
|
---|
1235 | #endif
|
---|
1236 |
|
---|
1237 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1238 | Declare Function bind Lib "ws2_32" (s As SOCKET, ByRef name As sockaddr, addrlen As Long) As Long
|
---|
1239 | #endif
|
---|
1240 |
|
---|
1241 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1242 | TypeDef LPFN_BIND = *Function(s As SOCKET, ByRef name As sockaddr, addrlen As Long) As Long
|
---|
1243 | #endif
|
---|
1244 |
|
---|
1245 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1246 | Declare Function closesocket Lib "ws2_32" (s As SOCKET) As Long
|
---|
1247 | #endif
|
---|
1248 |
|
---|
1249 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1250 | TypeDef LPFN_CLOSESOCKET = *Function(s As SOCKET) As Long
|
---|
1251 | #endif
|
---|
1252 |
|
---|
1253 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1254 | Declare Function connect Lib "ws2_32" (s As SOCKET, ByRef name As sockaddr, namelen As Long) As Long
|
---|
1255 | #endif
|
---|
1256 |
|
---|
1257 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1258 | TypeDef LPFN_CONNECT = *Function(s As SOCKET, ByRef name As sockaddr, namelen As Long) As Long
|
---|
1259 | #endif
|
---|
1260 |
|
---|
1261 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1262 | Declare Function ioctlsocket Lib "ws2_32" (s As SOCKET, cmd As Long, ByRef argp As DWord) As Long
|
---|
1263 | #endif
|
---|
1264 |
|
---|
1265 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1266 | TypeDef LPFN_IOCTLSOCKET = *Function(s As SOCKET, cmd As Long, ByRef argp As DWord) As Long
|
---|
1267 | #endif
|
---|
1268 |
|
---|
1269 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1270 | Declare Function getpeername Lib "ws2_32" (s As SOCKET, ByRef name As sockaddr, ByRef namelen As Long) As Long
|
---|
1271 | #endif
|
---|
1272 |
|
---|
1273 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1274 | TypeDef LPFN_GETPEERNAME = *Function(s As SOCKET, ByRef name As sockaddr, ByRef namelen As Long) As Long
|
---|
1275 | #endif
|
---|
1276 |
|
---|
1277 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1278 | Declare Function getsockname Lib "ws2_32" (s As SOCKET, ByRef name As sockaddr, ByRef namelen As Long) As Long
|
---|
1279 | #endif
|
---|
1280 |
|
---|
1281 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1282 | TypeDef LPFN_GETSOCKNAME = *Function(s As SOCKET, ByRef name As sockaddr, ByRef namelen As Long) As Long
|
---|
1283 | #endif
|
---|
1284 |
|
---|
1285 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1286 | Declare Function getsockopt Lib "ws2_32" (s As SOCKET, level As Long, optname As Long, optval As *Byte, ByRef optlen As Long) As Long
|
---|
1287 | #endif
|
---|
1288 |
|
---|
1289 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1290 | TypeDef LPFN_GETSOCKOPT = *Function(s As SOCKET, level As Long, optname As Long, optval As *Byte, ByRef optlen As Long) As Long
|
---|
1291 | #endif
|
---|
1292 |
|
---|
1293 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1294 | Declare Function htonl Lib "ws2_32" (hostlong As DWord) As DWord
|
---|
1295 | #endif
|
---|
1296 |
|
---|
1297 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1298 | TypeDef LPFN_HTONL = *Function(hostlong As DWord) As DWord
|
---|
1299 | #endif
|
---|
1300 |
|
---|
1301 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1302 | Declare Function htons Lib "ws2_32" (hostshort As Word) As Word
|
---|
1303 | #endif
|
---|
1304 |
|
---|
1305 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1306 | TypeDef LPFN_HTONS = *Function(hostshort As Word) As Word
|
---|
1307 | #endif
|
---|
1308 |
|
---|
1309 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1310 | Declare Function inet_addr Lib "ws2_32" (cp As *Byte) As DWord
|
---|
1311 | #endif
|
---|
1312 |
|
---|
1313 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1314 | TypeDef LPFN_INET_ADDR = *Function(cp As *Byte) As DWord
|
---|
1315 | #endif
|
---|
1316 |
|
---|
1317 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1318 | Declare Function inet_ntoa Lib "ws2_32" (in As DWord /*in_addr*/ ) As *Byte
|
---|
1319 | #endif
|
---|
1320 |
|
---|
1321 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1322 | TypeDef LPFN_INET_NTOA = *Function(in As in_addr) As *Byte
|
---|
1323 | #endif
|
---|
1324 |
|
---|
1325 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1326 | Declare Function listen Lib "ws2_32" (s As SOCKET, backlog As Long) As Long
|
---|
1327 | #endif
|
---|
1328 |
|
---|
1329 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1330 | TypeDef LPFN_LISTEN = *Function(s As SOCKET, backlog As Long) As Long
|
---|
1331 | #endif
|
---|
1332 |
|
---|
1333 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1334 | Declare Function ntohl Lib "ws2_32" (netlong As DWord) As DWord
|
---|
1335 | #endif
|
---|
1336 |
|
---|
1337 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1338 | TypeDef LPFN_NTOHL = *Function(netlong As DWord) As DWord
|
---|
1339 | #endif
|
---|
1340 |
|
---|
1341 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1342 | Declare Function ntohs Lib "ws2_32" (netshort As Word) As Word
|
---|
1343 | #endif
|
---|
1344 |
|
---|
1345 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1346 | TypeDef LPFN_NTOHS = *Function(netshort As Word) As Word
|
---|
1347 | #endif
|
---|
1348 |
|
---|
1349 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1350 | Declare Function recv Lib "ws2_32" (s As SOCKET, buf As *Byte, len As Long, flags As Long) As Long
|
---|
1351 | #endif
|
---|
1352 |
|
---|
1353 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1354 | TypeDef LPFN_RECV = *Function(s As SOCKET, buf As *Byte, len As Long, flags As Long) As Long
|
---|
1355 | #endif
|
---|
1356 |
|
---|
1357 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1358 | Declare Function recvfrom Lib "ws2_32" (s As SOCKET, buf As *Byte, len As Long, flags As Long, ByRef from As sockaddr, ByRef fromlen As Long) As Long
|
---|
1359 | #endif
|
---|
1360 |
|
---|
1361 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1362 | TypeDef LPFN_RECVFROM = *Function(s As SOCKET, buf As *Byte, len As Long, flags As Long, ByRef from As sockaddr, ByRef fromlen As Long) As Long
|
---|
1363 | #endif
|
---|
1364 |
|
---|
1365 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1366 | Declare Function select Lib "ws2_32" (nfds As Long, ByRef readfds As fd_set, ByRef writefds As fd_set, ByRef exceptfds As fd_set, ByRef timeout As timeval) As Long
|
---|
1367 | #endif
|
---|
1368 |
|
---|
1369 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1370 | TypeDef LPFN_SELECT = *Function(nfds As Long, ByRef readfds As fd_set, ByRef writefds As fd_set, ByRef exceptfds As fd_set, ByRef timeout As timeval) As Long
|
---|
1371 | #endif
|
---|
1372 |
|
---|
1373 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1374 | Declare Function send Lib "ws2_32" (s As SOCKET, buf As *Byte, len As Long, flags As Long) As Long
|
---|
1375 | #endif
|
---|
1376 |
|
---|
1377 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1378 | TypeDef LPFN_SEND = *Function(s As SOCKET, buf As *Byte, len As Long, flags As Long) As Long
|
---|
1379 | #endif
|
---|
1380 |
|
---|
1381 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1382 | Declare Function sendto Lib "ws2_32" (s As SOCKET, buf As *Byte, len As Long, flags As Long, ByRef to_ As sockaddr, tolen As Long) As Long
|
---|
1383 | #endif
|
---|
1384 |
|
---|
1385 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1386 | TypeDef LPFN_SENDTO = *Function(s As SOCKET, buf As *Byte, len As Long, flags As Long, ByRef to_ As sockaddr, tolen As Long) As Long
|
---|
1387 | #endif
|
---|
1388 |
|
---|
1389 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1390 | Declare Function setsockopt Lib "ws2_32" (s As SOCKET, level As Long, optname As Long, optval As *Byte, optlen As Long) As Long
|
---|
1391 | #endif
|
---|
1392 |
|
---|
1393 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1394 | TypeDef LPFN_SETSOCKOPT = *Function(s As SOCKET, level As Long, optname As Long, optval As *Byte, optlen As Long) As Long
|
---|
1395 | #endif
|
---|
1396 |
|
---|
1397 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1398 | Declare Function shutdown Lib "ws2_32" (s As SOCKET, how As Long) As Long
|
---|
1399 | #endif
|
---|
1400 |
|
---|
1401 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1402 | TypeDef LPFN_SHUTDOWN = *Function(s As SOCKET, how As Long) As Long
|
---|
1403 | #endif
|
---|
1404 |
|
---|
1405 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1406 | Declare Function socket Lib "ws2_32" (af As Long, type_ As Long, protocol As Long) As SOCKET
|
---|
1407 | #endif
|
---|
1408 |
|
---|
1409 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1410 | TypeDef LPFN_SOCKET = *Function(af As Long, type_ As Long, protocol As Long) As SOCKET
|
---|
1411 | #endif
|
---|
1412 |
|
---|
1413 | ' Database function prototypes
|
---|
1414 |
|
---|
1415 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1416 | Declare Function gethostbyaddr Lib "ws2_32" (addr As PCSTR, len As Long, type_ As Long) As *hostent
|
---|
1417 | #endif
|
---|
1418 |
|
---|
1419 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1420 | TypeDef LPFN_GETHOSTBYADDR = *Function(addr As PCSTR, len As Long, type_ As Long) As *hostent
|
---|
1421 | #endif
|
---|
1422 |
|
---|
1423 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1424 | Declare Function gethostbyname Lib "ws2_32" (name As PCSTR) As *hostent
|
---|
1425 | #endif
|
---|
1426 |
|
---|
1427 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1428 | TypeDef LPFN_GETHOSTBYNAME = *Function(name As PCSTR) As *hostent
|
---|
1429 | #endif
|
---|
1430 |
|
---|
1431 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1432 | Declare Function gethostname Lib "ws2_32" (name As PCSTR, namelen As Long) As Long
|
---|
1433 | #endif
|
---|
1434 |
|
---|
1435 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1436 | TypeDef LPFN_GETHOSTNAME = *Function(name As PCSTR, namelen As Long) As Long
|
---|
1437 | #endif
|
---|
1438 |
|
---|
1439 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1440 | Declare Function getservbyport Lib "ws2_32" (port As Long, proto As PCSTR) As *servent
|
---|
1441 | #endif
|
---|
1442 |
|
---|
1443 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1444 | TypeDef LPFN_GETSERVBYPORT = *Function(port As Long, proto As PCSTR) As *servent
|
---|
1445 | #endif
|
---|
1446 |
|
---|
1447 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1448 | Declare Function getservbyname Lib "ws2_32" (name As PCSTR, proto As PCSTR) As *servent
|
---|
1449 | #endif
|
---|
1450 |
|
---|
1451 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1452 | TypeDef LPFN_GETSERVBYNAME = *Function(name As PCSTR, proto As PCSTR) As *servent
|
---|
1453 | #endif
|
---|
1454 |
|
---|
1455 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1456 | Declare Function getprotobynumber Lib "ws2_32" (number As Long) As *protoent
|
---|
1457 | #endif
|
---|
1458 |
|
---|
1459 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1460 | TypeDef LPFN_GETPROTOBYNUMBER = *Function(number As Long) As *protoent
|
---|
1461 | #endif
|
---|
1462 |
|
---|
1463 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1464 | Declare Function getprotobyname Lib "ws2_32" (name As PCSTR) As *protoent
|
---|
1465 | #endif
|
---|
1466 |
|
---|
1467 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1468 | TypeDef LPFN_GETPROTOBYNAME = (name As PCSTR) As *protoent
|
---|
1469 | #endif
|
---|
1470 |
|
---|
1471 | ' Microsoft Windows Extension function prototypes
|
---|
1472 |
|
---|
1473 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1474 | Declare Function WSAStartup Lib "ws2_32" (wVersionRequested As Word, ByRef WSAData As WSADATA) As Long
|
---|
1475 | #endif
|
---|
1476 |
|
---|
1477 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1478 | TypeDef LPFN_WSASTARTUP = *Function(wVersionRequested As Word, ByRef WSAData As WSADATA) As Long
|
---|
1479 | #endif
|
---|
1480 |
|
---|
1481 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1482 | Declare Function WSACleanup Lib "ws2_32" () As Long
|
---|
1483 | #endif
|
---|
1484 |
|
---|
1485 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1486 | TypeDef LPFN_WSACLEANUP = *Function() As Long
|
---|
1487 | #endif
|
---|
1488 |
|
---|
1489 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1490 | Declare Sub WSASetLastError Lib "ws2_32" (iError As Long)
|
---|
1491 | #endif
|
---|
1492 |
|
---|
1493 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1494 | TypeDef LPFN_WSASETLASTERROR = *Sub(iError As Long)
|
---|
1495 | #endif
|
---|
1496 |
|
---|
1497 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1498 | Declare Function WSAGetLastError Lib "ws2_32" () As Long
|
---|
1499 | #endif
|
---|
1500 |
|
---|
1501 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1502 | TypeDef LPFN_WSAGETLASTERROR = *Function() As Long
|
---|
1503 | #endif
|
---|
1504 |
|
---|
1505 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1506 | Declare Function WSAIsBlocking Lib "ws2_32" () As BOOL
|
---|
1507 | #endif
|
---|
1508 |
|
---|
1509 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1510 | TypeDef LPFN_WSAISBLOCKING = *Function() As BOOL
|
---|
1511 | #endif
|
---|
1512 |
|
---|
1513 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1514 | Declare Function WSAUnhookBlockingHook Lib "ws2_32" () As Long
|
---|
1515 | #endif
|
---|
1516 |
|
---|
1517 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1518 | TypeDef LPFN_WSAUNHOOKBLOCKINGHOOK = *Function() As Long
|
---|
1519 | #endif
|
---|
1520 |
|
---|
1521 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1522 | Declare Function WSASetBlockingHook Lib "ws2_32" (lpBlockFunc As FARPROC) As FARPROC
|
---|
1523 |
|
---|
1524 | #endif
|
---|
1525 |
|
---|
1526 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1527 | TypeDef LPFN_WSASETBLOCKINGHOOK = *Function(lpBlockFunc As FARPROC) As FARPROC
|
---|
1528 | #endif
|
---|
1529 |
|
---|
1530 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1531 | Declare Function WSACancelBlockingCall Lib "ws2_32" () As Long
|
---|
1532 | #endif
|
---|
1533 |
|
---|
1534 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1535 | TypeDef LPFN_WSACANCELBLOCKINGCALL = *Function() As Long
|
---|
1536 | #endif
|
---|
1537 |
|
---|
1538 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1539 | Declare Function WSAAsyncGetServByName Lib "ws2_32" (hwnd As HWND, msg As DWord, name As PCSTR, proto As PCSTR, buf As *Byte, buflen As Long) As HANDLE
|
---|
1540 | #endif
|
---|
1541 |
|
---|
1542 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1543 | TypeDef LPFN_WSAASYNCGETSERVBYNAME = *Function(hwnd As HWND, msg As DWord, name As PCSTR, proto As PCSTR, buf As *Byte, buflen As Long) As HANDLE
|
---|
1544 | #endif
|
---|
1545 |
|
---|
1546 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1547 | Declare Function WSAAsyncGetServByPort Lib "ws2_32" (hwnd As HWND, msg As DWord, port As Long, proto As PCSTR, buf As *Byte, buflen As Long) As HANDLE
|
---|
1548 | #endif
|
---|
1549 |
|
---|
1550 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1551 | TypeDef LPFN_WSAASYNCGETSERVBYPORT = *Function(hwnd As HWND, msg As DWord, port As Long, proto As PCSTR, buf As *Byte, buflen As Long) As HANDLE
|
---|
1552 | #endif
|
---|
1553 |
|
---|
1554 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1555 | Declare Function WSAAsyncGetProtoByName Lib "ws2_32" (hwnd As HWND, msg As DWord, name As PCSTR, buf As *Byte, buflen As Long) As HANDLE
|
---|
1556 | #endif
|
---|
1557 |
|
---|
1558 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1559 | TypeDef LPFN_WSAASYNCGETPROTOBYNAME = *Function(hwnd As HWND, msg As DWord, name As PCSTR, buf As *Byte, buflen As Long) As HANDLE
|
---|
1560 | #endif
|
---|
1561 |
|
---|
1562 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1563 | Declare Function WSAAsyncGetProtoByNumber Lib "ws2_32" (hwnd As HWND, msg As DWord, number As Long, buf As *Byte, buflen As Long) As HANDLE
|
---|
1564 | #endif
|
---|
1565 |
|
---|
1566 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1567 | TypeDef LPFN_WSAASYNCGETPROTOBYNUMBER = *Function(hwnd As HWND, msg As DWord, number As Long, buf As *Byte, buflen As Long) As HANDLE
|
---|
1568 | #endif
|
---|
1569 |
|
---|
1570 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1571 | Declare Function WSAAsyncGetHostByName Lib "ws2_32" (hwnd As HWND, msg As DWord, name As PCSTR, buf As *Byte, buflen As Long) As HANDLE
|
---|
1572 | #endif
|
---|
1573 |
|
---|
1574 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1575 | TypeDef LPFN_WSAASYNCGETHOSTBYNAME = *Function(hwnd As HWND, msg As DWord, name As PCSTR, buf As *Byte, buflen As Long) As HANDLE
|
---|
1576 | #endif
|
---|
1577 |
|
---|
1578 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1579 | Declare Function WSAAsyncGetHostByAddr Lib "ws2_32" (hwnd As HWND, msg As DWord, addr As PCSTR, len As Long, type_ As Long, buf As *Byte, buflen As Long) As HANDLE
|
---|
1580 | #endif
|
---|
1581 |
|
---|
1582 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1583 | TypeDef LPFN_WSAASYNCGETHOSTBYADDR = *Function(hwnd As HWND, msg As DWord, addr As PCSTR, len As Long, type_ As Long, buf As *Byte, buflen As Long) As HANDLE
|
---|
1584 | #endif
|
---|
1585 |
|
---|
1586 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1587 | Declare Function WSACancelAsyncRequest Lib "ws2_32" (hAsyncTaskHandle As HANDLE) As Long
|
---|
1588 | #endif
|
---|
1589 |
|
---|
1590 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1591 | TypeDef LPFN_WSACANCELASYNCREQUEST = *Function(hAsyncTaskHandle As HANDLE) As Long
|
---|
1592 | #endif
|
---|
1593 |
|
---|
1594 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1595 | Declare Function WSAAsyncSelect Lib "ws2_32" (s As SOCKET, hwnd As HWND, msg As DWord, Event As Long) As Long
|
---|
1596 | #endif
|
---|
1597 |
|
---|
1598 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1599 | TypeDef LPFN_WSAASYNCSELECT = *Function(s As SOCKET, hwnd As HWND, msg As DWord, Event As Long) As Long
|
---|
1600 | #endif
|
---|
1601 |
|
---|
1602 | /* WinSock 2 API new function prototypes */
|
---|
1603 |
|
---|
1604 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1605 | Declare Function WSAAccept Lib "ws2_32" (s As SOCKET, ByRef addr As sockaddr, ByRef addrlen As Long, lpfnCondition As LPCONDITIONPROC, CallbackData As ULONG_PTR) As SOCKET
|
---|
1606 | #endif
|
---|
1607 |
|
---|
1608 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1609 | TypeDef LPFN_WSAACCEPT = *Function(s As SOCKET, ByRef addr As sockaddr, ByRef addrlen As Long, lpfnCondition As LPCONDITIONPROC, CallbackData As ULONG_PTR) As SOCKET
|
---|
1610 | #endif
|
---|
1611 |
|
---|
1612 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1613 | Declare Function WSACloseEvent Lib "ws2_32" (hEvent As WSAEVENT) As BOOL
|
---|
1614 | #endif
|
---|
1615 |
|
---|
1616 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1617 | TypeDef LPFN_WSACLOSEEVENT = *Function(hEvent As WSAEVENT) As BOOL
|
---|
1618 | #endif
|
---|
1619 |
|
---|
1620 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1621 | Declare Function WSAConnect Lib "ws2_32" (s As SOCKET, ByRef name As sockaddr, namelen As Long, ByRef CallerData As WSABUF, ByRef CalleeData As WSABUF, ByRef SQOS As QOS, ByRef GQOS As QOS) As Long
|
---|
1622 | #endif
|
---|
1623 |
|
---|
1624 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1625 | TypeDef LPFN_WSACONNECT = *Functions As SOCKET, ByRef name As sockaddr, namelen As Long, ByRef CallerData As WSABUF, ByRef CalleeData As WSABUF, ByRef SQOS As QOS, ByRef GQOS As QOS) As Long
|
---|
1626 | #endif
|
---|
1627 |
|
---|
1628 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1629 | Declare Function WSACreateEvent Lib "ws2_32" () As WSAEVENT
|
---|
1630 | #endif
|
---|
1631 |
|
---|
1632 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1633 | TypeDef LPFN_WSACREATEEVENT = *Function() As WSAEVENT
|
---|
1634 | #endif
|
---|
1635 |
|
---|
1636 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1637 | Declare Function WSADuplicateSocketA Lib "ws2_32" (s As SOCKET, ProcessId As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFOA) As Long
|
---|
1638 | Declare Function WSADuplicateSocketW Lib "ws2_32" (s As SOCKET, ProcessId As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFOW) As Long
|
---|
1639 | #ifdef UNICODE
|
---|
1640 | Declare Function WSADuplicateSocket Lib "ws2_32" Alias "WSADuplicateSocketW" (s As SOCKET, ProcessId As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFO) As Long
|
---|
1641 | #else
|
---|
1642 | Declare Function WSADuplicateSocket Lib "ws2_32" Alias "WSADuplicateSocketA" (s As SOCKET, ProcessId As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFO) As Long
|
---|
1643 | #endif
|
---|
1644 | #endif
|
---|
1645 |
|
---|
1646 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1647 | TypeDef LPFN_WSADUPLICATESOCKETA = *Function(s As SOCKET, ProcessId As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFOA) As Long
|
---|
1648 | TypeDef LPFN_WSADUPLICATESOCKETW = *Function(s As SOCKET, ProcessId As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFOW) As Long
|
---|
1649 | #ifdef UNICODE
|
---|
1650 | TypeDef LPFN_WSADUPLICATESOCKET = LPFN_WSADUPLICATESOCKETW
|
---|
1651 | #else
|
---|
1652 | TypeDef LPFN_WSADUPLICATESOCKET = LPFN_WSADUPLICATESOCKETA
|
---|
1653 | #endif
|
---|
1654 | #endif
|
---|
1655 |
|
---|
1656 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1657 | Declare Function WSAEnumNetworkEvents Lib "ws2_32" (s As SOCKET, hEventObject As WSAEVENT, ByRef NetworkEvents As WSANETWORKEVENTS) As Long
|
---|
1658 | #endif
|
---|
1659 |
|
---|
1660 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1661 | TypeDef LPFN_WSAENUMNETWORKEVENTS = *Function(s As SOCKET, hEventObject As WSAEVENT, ByRef NetworkEvents As WSANETWORKEVENTS) As Long
|
---|
1662 | #endif
|
---|
1663 |
|
---|
1664 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1665 | Declare Function WSAEnumProtocolsA Lib "ws2_32" (Protocols As *Long, ByRef ProtocolBuffer As WSAPROTOCOL_INFOA, ByRef BufferLength As DWord) As Long
|
---|
1666 | Declare Function WSAEnumProtocolsW Lib "ws2_32" (Protocols As *Long, ByRef ProtocolBuffer As WSAPROTOCOL_INFOW, ByRef BufferLength As DWord) As Long
|
---|
1667 | #ifdef UNICODE
|
---|
1668 | Declare Function WSAEnumProtocols Lib "ws2_32" Alias "WSAEnumProtocolsW" (Protocols As *Long, ByRef ProtocolBuffer As WSAPROTOCOL_INFO, ByRef BufferLength As DWord) As Long
|
---|
1669 | #else
|
---|
1670 | Declare Function WSAEnumProtocols Lib "ws2_32" Alias "WSAEnumProtocolsA" (Protocols As *Long, ByRef ProtocolBuffer As WSAPROTOCOL_INFO, ByRef BufferLength As DWord) As Long
|
---|
1671 | #endif
|
---|
1672 | #endif
|
---|
1673 |
|
---|
1674 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1675 | TypeDef LPFN_WSAENUMPROTOCOLSA = *Function(Protocols As *Long, ByRef ProtocolBuffer As WSAPROTOCOL_INFOA, ByRef BufferLength As DWord) As Long
|
---|
1676 | TypeDef LPFN_WSAENUMPROTOCOLSW = *Function(Protocols As *Long, ByRef ProtocolBuffer As WSAPROTOCOL_INFOW, ByRef BufferLength As DWord) As Long
|
---|
1677 | #ifdef UNICODE
|
---|
1678 | TypeDef LPFN_WSAENUMPROTOCOLS = LPFN_WSAENUMPROTOCOLSW
|
---|
1679 | #else
|
---|
1680 | TypeDef LPFN_WSAENUMPROTOCOLS = LPFN_WSAENUMPROTOCOLSA
|
---|
1681 | #endif
|
---|
1682 | #endif
|
---|
1683 |
|
---|
1684 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1685 | Declare Function WSAEventSelect Lib "ws2_32" (s As SOCKET, hEventObject As WSAEVENT, NetworkEvents As Long) As Long
|
---|
1686 | #endif
|
---|
1687 |
|
---|
1688 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1689 | TypeDef LPFN_WSAEVENTSELECT = *Function(s As SOCKET, hEventObject As WSAEVENT, NetworkEvents As Long) As Long
|
---|
1690 | #endif
|
---|
1691 |
|
---|
1692 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1693 | Declare Function WSAGetOverlappedResult Lib "ws2_32" (s As SOCKET, ByRef Overlapped As WSAOVERLAPPED, ByRef cbTransfer As DWord, Wait As BOOL, ByRef Flags As DWord) As BOOL
|
---|
1694 | #endif
|
---|
1695 |
|
---|
1696 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1697 | TypeDef LPFN_WSAGETOVERLAPPEDRESULT = *Function(s As SOCKET, ByRef Overlapped As WSAOVERLAPPED, ByRef cbTransfer As DWord, Wait As BOOL, ByRef Flags As DWord) As BOOL
|
---|
1698 | #endif
|
---|
1699 |
|
---|
1700 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1701 | Declare Function WSAGetQOSByName Lib "ws2_32" (s As SOCKET, ByRef QOSName As WSABUF, ByRef qos As QOS) As BOOL
|
---|
1702 | #endif
|
---|
1703 |
|
---|
1704 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1705 | TypeDef LPFN_WSAGETQOSBYNAME = *Function(s As SOCKET, ByRef QOSName As WSABUF, ByRef qos As QOS) As BOOL
|
---|
1706 | #endif
|
---|
1707 |
|
---|
1708 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1709 | Declare Function WSAHtonl Lib "ws2_32" (s As SOCKET, hostlong As DWord, ByRef netlong As DWord) As Long
|
---|
1710 | #endif
|
---|
1711 |
|
---|
1712 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1713 | TypeDef LPFN_WSAHTONL = *Function(s As SOCKET, hostlong As DWord, ByRef netlong As DWord) As Long
|
---|
1714 | #endif
|
---|
1715 |
|
---|
1716 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1717 | Declare Function WSAHtons Lib "ws2_32" (s As SOCKET, hostshort As Word, ByRef netshort As Word) As Long
|
---|
1718 | #endif
|
---|
1719 |
|
---|
1720 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1721 | TypeDef LPFN_WSAHTONS = *Function(s As SOCKET, hostshort As Word, ByRef netshort As Word) As Long
|
---|
1722 | #endif
|
---|
1723 |
|
---|
1724 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1725 | Declare Function WSAIoctl Lib "ws2_32" (s As SOCKET, IoControlCode As DWord, pvInBuffer As VoidPtr, cbInBuffer As DWord, pvOutBuffer As VoidPtr, cbOutBuffer As DWord,
|
---|
1726 | ByRef cbBytesReturned As DWord, ByRef Overlapped As WSAOVERLAPPED, pCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1727 | #endif
|
---|
1728 |
|
---|
1729 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1730 | TypeDef LPFN_WSAIOCTL = *Function(s As SOCKET, IoControlCode As DWord, pvInBuffer As VoidPtr, cbInBuffer As DWord, pvOutBuffer As VoidPtr, cbOutBuffer As DWord,
|
---|
1731 | ByRef cbBytesReturned As DWord, ByRef Overlapped As WSAOVERLAPPED, pCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1732 | #endif
|
---|
1733 |
|
---|
1734 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1735 | Declare Function WSAJoinLeaf Lib "ws2_32" (s As SOCKET, ByRef name As sockaddr, namelen As Long, ByRef CallerData As WSABUF, ByRef CalleeData As WSABUF,
|
---|
1736 | ByRef SQOS As QOS, ByRef GQOS AS QOS, Flags As DWord) As SOCKET
|
---|
1737 | #endif
|
---|
1738 |
|
---|
1739 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1740 | TypeDef LPFN_WSAJOINLEAF = *Function(s As SOCKET, ByRef name As sockaddr, namelen As Long, ByRef CallerData As WSABUF, ByRef CalleeData As WSABUF,
|
---|
1741 | ByRef SQOS As QOS, ByRef GQOS AS QOS, Flags As DWord) As SOCKET
|
---|
1742 | #endif
|
---|
1743 |
|
---|
1744 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1745 | Declare Function WSANtohl Lib "ws2_32" (s As SOCKET, netlong As DWord, ByRef hostlong As DWord) As Long
|
---|
1746 | #endif
|
---|
1747 |
|
---|
1748 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1749 | TypeDef LPFN_WSANTOHL = *Function(s As SOCKET, netlong As DWord, ByRef hostlong As DWord) As Long
|
---|
1750 | #endif
|
---|
1751 |
|
---|
1752 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1753 | Declare Function WSANtohs Lib "ws2_32" (s As SOCKET, netshort As Word, ByRef hostshort As Word) As Long
|
---|
1754 | #endif
|
---|
1755 |
|
---|
1756 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1757 | TypeDef LPFN_WSANTOHS = *Function(s As SOCKET, netshort As Word, ByRef hostshort As Word) As Long
|
---|
1758 | #endif
|
---|
1759 |
|
---|
1760 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1761 | Declare Function WSARecv Lib "ws2_32" (s As SOCKET, ByRef Buffers As WSABUF, BufferCount As DWord, ByRef NumberOfBytesRecvd As DWord, ByRef Flags As DWord,
|
---|
1762 | ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1763 | #endif
|
---|
1764 |
|
---|
1765 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1766 | TypeDef LPFN_WSARECV = *Function(s As SOCKET, ByRef Buffers As WSABUF, BufferCount As DWord, ByRef NumberOfBytesRecvd As DWord, ByRef Flags As DWord,
|
---|
1767 | ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1768 | #endif
|
---|
1769 |
|
---|
1770 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1771 | Declare Function WSARecvDisconnect Lib "ws2_32" (s As SOCKET, ByRef InboundDisconnectData As WSABUF) As Long
|
---|
1772 | #endif
|
---|
1773 |
|
---|
1774 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1775 | TypeDef LPFN_WSARECVDISCONNECT = *Function(s As SOCKET, ByRef InboundDisconnectData As WSABUF) As Long
|
---|
1776 | #endif
|
---|
1777 |
|
---|
1778 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1779 | Declare Function WSARecvFrom Lib "ws2_32" (s As SOCKET, ByRef Buffers As WSABUF, BufferCount As DWord, ByRef NumberOfBytesRecvd As DWord, ByRef Flags As DWord,
|
---|
1780 | ByRef From As sockaddr, ByRef Fromlen As Long, ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1781 | #endif
|
---|
1782 |
|
---|
1783 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1784 | TypeDef LPFN_WSARECVFROM = *Function(s As SOCKET, ByRef Buffers As WSABUF, BufferCount As DWord, ByRef NumberOfBytesRecvd As DWord, ByRef Flags As DWord,
|
---|
1785 | ByRef From As sockaddr, ByRef Fromlen As Long, ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1786 | #endif
|
---|
1787 |
|
---|
1788 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1789 | Declare Function WSAResetEvent Lib "ws2_32" (hEvent As WSAEVENT) As BOOL
|
---|
1790 | #endif
|
---|
1791 |
|
---|
1792 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1793 | TypeDef LPFN_WSARESETEVENT = *Function(hEvent As WSAEVENT) As BOOL
|
---|
1794 | #endif
|
---|
1795 |
|
---|
1796 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1797 | Declare Function WSASend Lib "ws2_32" (s As SOCKET, ByRef Buffers As WSABUF, BufferCount As DWord, ByRef NumberOfBytesSent As DWord, ByRef Flags As DWord,
|
---|
1798 | ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1799 | #endif
|
---|
1800 |
|
---|
1801 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1802 | TypeDef LPFN_WSASEND = *Function(s As SOCKET, ByRef Buffers As WSABUF, BufferCount As DWord, ByRef NumberOfBytesSent As DWord, ByRef Flags As DWord,
|
---|
1803 | ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1804 | #endif
|
---|
1805 |
|
---|
1806 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1807 | Declare Function WSASendDisconnect Lib "ws2_32" (s As SOCKET, ByRef OutboundDisconnectData As WSABUF) As Long
|
---|
1808 | #endif
|
---|
1809 |
|
---|
1810 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1811 | TypeDef LPFN_WSASENDDISCONNECT = *Function(s As SOCKET, ByRef OutboundDisconnectData As WSABUF) As Long
|
---|
1812 | #endif
|
---|
1813 |
|
---|
1814 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1815 | Declare Function WSASendTo Lib "ws2_32" (s As SOCKET, ByRef Buffers As WSABUF, BufferCount As DWord, ByRef NumberOfBytesSent As DWord, ByRef Flags As DWord,
|
---|
1816 | ByRef To_ As sockaddr, ToLen As Long, ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1817 | #endif
|
---|
1818 |
|
---|
1819 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1820 | TypeDef LPFN_WSASENDTO = *Function(s As SOCKET, ByRef Buffers As WSABUF, BufferCount As DWord, ByRef NumberOfBytesSent As DWord, ByRef Flags As DWord,
|
---|
1821 | ByRef To_ As sockaddr, ToLen As Long, ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
1822 | #endif
|
---|
1823 |
|
---|
1824 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1825 | Declare Function WSASetEvent Lib "ws2_32" (hEvent As WSAEVENT) As BOOL
|
---|
1826 | #endif
|
---|
1827 |
|
---|
1828 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1829 | TypeDef LPFN_WSASETEVENT = *Function(hEvent As WSAEVENT) As BOOL
|
---|
1830 | #endif
|
---|
1831 |
|
---|
1832 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1833 | Declare Function WSASocketA Lib "ws2_32" (af As Long, type_ As Long, protocol As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFOA, g As GROUP, Flags As DWord) As SOCKET
|
---|
1834 | Declare Function WSASocketW Lib "ws2_32" (af As Long, type_ As Long, protocol As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFOW, g As GROUP, Flags As DWord) As SOCKET
|
---|
1835 | #ifdef UNICODE
|
---|
1836 | Declare Function WSASocket Lib "ws2_32" Alias "WSASocketW" (af As Long, type_ As Long, protocol As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFO, g As GROUP, Flags As DWord) As SOCKET
|
---|
1837 | #else
|
---|
1838 | Declare Function WSASocket Lib "ws2_32" Alias "WSASocketA" (af As Long, type_ As Long, protocol As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFO, g As GROUP, Flags As DWord) As SOCKET
|
---|
1839 | #endif
|
---|
1840 | #endif
|
---|
1841 |
|
---|
1842 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1843 | TypeDef LPFN_WSASOCKETA = *Function(af As Long, type_ As Long, protocol As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFOA, g As GROUP, Flags As DWord) As SOCKET
|
---|
1844 | TypeDef LPFN_WSASOCKETW = *Function(af As Long, type_ As Long, protocol As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFOW, g As GROUP, Flags As DWord) As SOCKET
|
---|
1845 | #ifdef UNICODE
|
---|
1846 | TypeDef LPFN_WSASOCKET = LPFN_WSASOCKETW
|
---|
1847 | #else
|
---|
1848 | TypeDef LPFN_WSASOCKET = LPFN_WSASOCKETA
|
---|
1849 | #endif
|
---|
1850 | #endif
|
---|
1851 |
|
---|
1852 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1853 | Declare Function WSAWaitForMultipleEvents Lib "ws2_32" (cEvents As DWord, phEvents As *WSAEVENT, WaitAll As BOOL, Timeout As DWord, Alertable As BOOL) As DWord
|
---|
1854 | #endif
|
---|
1855 |
|
---|
1856 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1857 | TypeDef LPFN_WSAWAITFORMULTIPLEEVENTS = *Function(cEvents As DWord, phEvents As *WSAEVENT, WaitAll As BOOL, Timeout As DWord, Alertable As BOOL) As DWord
|
---|
1858 | #endif
|
---|
1859 |
|
---|
1860 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1861 | Declare Function WSAAddressToStringA Lib "ws2_32" (ByRef saAddress As SOCKADDR, AddressLength As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFOA,
|
---|
1862 | AddressString As PSTR, ByRef dwAddressStringLength As DWord) As Long
|
---|
1863 | Declare Function WSAAddressToStringW Lib "ws2_32" (ByRef saAddress As SOCKADDR, AddressLength As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFOA,
|
---|
1864 | AddressString As PWSTR, ByRef dwAddressStringLength As DWord) As Long
|
---|
1865 | #ifdef UNICODE
|
---|
1866 | Declare Function WSAAddressToString Lib "ws2_32" Alias "WSAAddressToStringW" (ByRef saAddress As SOCKADDR, AddressLength As DWord,
|
---|
1867 | ByRef ProtocolInfo As WSAPROTOCOL_INFO, AddressString As PSTR, ByRef dwAddressStringLength As DWord) As Long
|
---|
1868 | #else
|
---|
1869 | Declare Function WSAAddressToString Lib "ws2_32" Alias "WSAAddressToStringA" (ByRef saAddress As SOCKADDR, AddressLength As DWord,
|
---|
1870 | ByRef ProtocolInfo As WSAPROTOCOL_INFO, AddressString As PSTR, ByRef dwAddressStringLength As DWord) As Long
|
---|
1871 | #endif
|
---|
1872 | #endif
|
---|
1873 |
|
---|
1874 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1875 | TypeDef LPFN_WSAADDRESSTOSTRINGA = *Function(ByRef saAddress As SOCKADDR, AddressLength As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFOA,
|
---|
1876 | AddressString As PSTR, ByRef dwAddressStringLength As DWord) As Long
|
---|
1877 | TypeDef LPFN_WSAADDRESSTOSTRINGW = *Function(ByRef saAddress As SOCKADDR, AddressLength As DWord, ByRef ProtocolInfo As WSAPROTOCOL_INFOA,
|
---|
1878 | AddressString As PWSTR, ByRef dwAddressStringLength As DWord) As Long
|
---|
1879 | #ifdef UNICODE
|
---|
1880 | TypeDef LPFN_WSAADDRESSTOSTRING = LPFN_WSAADDRESSTOSTRINGW
|
---|
1881 | #else
|
---|
1882 | TypeDef LPFN_WSAADDRESSTOSTRING = LPFN_WSAADDRESSTOSTRINGA
|
---|
1883 | #endif
|
---|
1884 | #endif
|
---|
1885 |
|
---|
1886 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1887 | Declare Function WSAStringToAddressA Lib "ws2_32" (AddressString As PSTR, AddressFamily As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFOA,
|
---|
1888 | ByRef Address As SOCKADDR, ByRef AddressLength As Long) As Long
|
---|
1889 | Declare Function WSAStringToAddressW Lib "ws2_32" (AddressString As PWSTR, AddressFamily As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFOW,
|
---|
1890 | ByRef Address As SOCKADDR, ByRef AddressLength As Long) As Long
|
---|
1891 | #ifdef UNICODE
|
---|
1892 | Declare Function WSAStringToAddress Lib "ws2_32" Alias "WSAStringToAddressW" (AddressString As PSTR, AddressFamily As Long,
|
---|
1893 | ByRef ProtocolInfo As WSAPROTOCOL_INFO, ByRef Address As SOCKADDR, ByRef AddressLength As Long) As Long
|
---|
1894 | #else
|
---|
1895 | Declare Function WSAStringToAddress Lib "ws2_32" Alias "WSAStringToAddressA" (AddressString As PSTR, AddressFamily As Long,
|
---|
1896 | ByRef ProtocolInfo As WSAPROTOCOL_INFO, ByRef Address As SOCKADDR, ByRef AddressLength As Long) As Long
|
---|
1897 | #endif
|
---|
1898 | #endif
|
---|
1899 |
|
---|
1900 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1901 | TypeDef LPFN_WSASTRINGTOADDRESSA = *Function(AddressString As PSTR, AddressFamily As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFOA,
|
---|
1902 | ByRef Address As SOCKADDR, ByRef AddressLength As Long) As Long
|
---|
1903 | TypeDef LPFN_WSASTRINGTOADDRESSW = *Function(AddressString As PWSTR, AddressFamily As Long, ByRef ProtocolInfo As WSAPROTOCOL_INFOW,
|
---|
1904 | ByRef Address As SOCKADDR, ByRef AddressLength As Long) As Long
|
---|
1905 | #ifdef UNICODE
|
---|
1906 | TypeDef LPFN_WSASTRINGTOADDRESS = LPFN_WSASTRINGTOADDRESSW
|
---|
1907 | #else
|
---|
1908 | TypeDef LPFN_WSASTRINGTOADDRESS = LPFN_WSASTRINGTOADDRESSA
|
---|
1909 | #endif
|
---|
1910 | #endif
|
---|
1911 |
|
---|
1912 | ' Registration and Name Resolution API functions
|
---|
1913 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1914 | Declare Function WSALookupServiceBeginA Lib "ws2_32" (ByRef qsRestrictions As WSAQUERYSETA, ControlFlags As DWord, ByRef hLookup As HANDLE) As Long
|
---|
1915 | Declare Function WSALookupServiceBeginW Lib "ws2_32" (ByRef qsRestrictions As WSAQUERYSETW, ControlFlags As DWord, ByRef hLookup As HANDLE) As Long
|
---|
1916 | #ifdef UNICODE
|
---|
1917 | Declare Function WSALookupServiceBegin Lib "ws2_32" Alias "WSALookupServiceBeginW" (ByRef qsRestrictions As WSAQUERYSET, ControlFlags As DWord, ByRef hLookup As HANDLE) As Long
|
---|
1918 | #else
|
---|
1919 | Declare Function WSALookupServiceBegin Lib "ws2_32" Alias "WSALookupServiceBeginA" (ByRef qsRestrictions As WSAQUERYSET, ControlFlags As DWord, ByRef hLookup As HANDLE) As Long
|
---|
1920 | #endif
|
---|
1921 | #endif
|
---|
1922 |
|
---|
1923 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1924 | TypeDef LPFN_WSALOOKUPSERVICEBEGINA = *Function(ByRef qsRestrictions As WSAQUERYSETA, ControlFlags As DWord, ByRef hLookup As HANDLE) As Long
|
---|
1925 | TypeDef LPFN_WSALOOKUPSERVICEBEGINW = *Function(ByRef qsRestrictions As WSAQUERYSETW, ControlFlags As DWord, ByRef hLookup As HANDLE) As Long
|
---|
1926 | #ifdef UNICODE
|
---|
1927 | TypeDef LPFN_WSALOOKUPSERVICEBEGIN = LPFN_WSALOOKUPSERVICEBEGINW
|
---|
1928 | #else
|
---|
1929 | TypeDef LPFN_WSALOOKUPSERVICEBEGIN = LPFN_WSALOOKUPSERVICEBEGINA
|
---|
1930 | #endif
|
---|
1931 | #endif
|
---|
1932 |
|
---|
1933 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1934 | Declare Function WSALookupServiceNextA Lib "ws2_32" (hLookup As HANDLE, ControlFlags As DWord, ByRef BufferLength As DWord, ByRef qsResults As WSAQUERYSETA) As Long
|
---|
1935 | Declare Function WSALookupServiceNextW Lib "ws2_32" (hLookup As HANDLE, ControlFlags As DWord, ByRef BufferLength As DWord, ByRef qsResults As WSAQUERYSETW) As Long
|
---|
1936 | #ifdef UNICODE
|
---|
1937 | Declare Function WSALookupServiceNext Lib "ws2_32" Alias "WSALookupServiceNextW" (hLookup As HANDLE, ControlFlags As DWord, ByRef BufferLength As DWord, ByRef qsResults As WSAQUERYSET) As Long
|
---|
1938 | #else
|
---|
1939 | Declare Function WSALookupServiceNext Lib "ws2_32" Alias "WSALookupServiceNextA" (hLookup As HANDLE, ControlFlags As DWord, ByRef BufferLength As DWord, ByRef qsResults As WSAQUERYSET) As Long
|
---|
1940 | #endif
|
---|
1941 | #endif
|
---|
1942 |
|
---|
1943 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1944 | TypeDef LPFN_WSALOOKUPSERVICENEXTA = *FunctionhLookup As HANDLE, ControlFlags As DWord, ByRef BufferLength As DWord, ByRef qsResults As WSAQUERYSETA) As Long
|
---|
1945 | TypeDef LPFN_WSALOOKUPSERVICENEXTW = *FunctionhLookup As HANDLE, ControlFlags As DWord, ByRef BufferLength As DWord, ByRef qsResults As WSAQUERYSETW) As Long
|
---|
1946 | #ifdef UNICODE
|
---|
1947 | TypeDef LPFN_WSALOOKUPSERVICENEXT = LPFN_WSALOOKUPSERVICENEXTW
|
---|
1948 | #else
|
---|
1949 | TypeDef LPFN_WSALOOKUPSERVICENEXT = LPFN_WSALOOKUPSERVICENEXTA
|
---|
1950 | #endif
|
---|
1951 | #endif
|
---|
1952 |
|
---|
1953 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1954 | Declare Function WSANSPIoctl Lib "ws2_32" (hLookup As HANDLE, ControlCode As DWord, pvInBuffer As VoidPtr, cbInBuffer As DWord,
|
---|
1955 | pvOutBuffer As VoidPtr, cbOutBuffer As DWord, ByRef cbBytesReturned As DWord, ByRef Completion As WSACOMPLETION) As Long
|
---|
1956 | #endif
|
---|
1957 |
|
---|
1958 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1959 | TypeDef LPFN_WSANSPIOCTL = *Function(hLookup As HANDLE, ControlCode As DWord, pvInBuffer As VoidPtr, cbInBuffer As DWord,
|
---|
1960 | pvOutBuffer As VoidPtr, cbOutBuffer As DWord, ByRef cbBytesReturned As DWord, ByRef Completion As WSACOMPLETION) As Long
|
---|
1961 | #endif
|
---|
1962 |
|
---|
1963 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1964 | Declare Function WSALookupServiceEnd Lib "ws2_32" (hLookup As HANDLE) As Long
|
---|
1965 | #endif
|
---|
1966 |
|
---|
1967 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1968 | TypeDef LPFN_WSALOOKUPSERVICEEND = *Function(hLookup As HANDLE) As Long
|
---|
1969 | #endif
|
---|
1970 |
|
---|
1971 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1972 | Declare Function WSAInstallServiceClassA Lib "ws2_32" (ByRef ServiceClassInfo As WSASERVICECLASSINFOA) As Long
|
---|
1973 | Declare Function WSAInstallServiceClassW Lib "ws2_32" (ByRef ServiceClassInfo As WSASERVICECLASSINFOW) As Long
|
---|
1974 | #ifdef UNICODE
|
---|
1975 | Declare Function WSAInstallServiceClass Lib "ws2_32" Alias "WSAInstallServiceClassW" (ByRef ServiceClassInfo As WSASERVICECLASSINFO) As Long
|
---|
1976 | #else
|
---|
1977 | Declare Function WSAInstallServiceClass Lib "ws2_32" Alias "WSAInstallServiceClassA" (ByRef ServiceClassInfo As WSASERVICECLASSINFO) As Long
|
---|
1978 | #endif
|
---|
1979 | #endif
|
---|
1980 |
|
---|
1981 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1982 | TypeDef LPFN_WSAINSTALLSERVICECLASSA = *Function(ByRef ServiceClassInfo As WSASERVICECLASSINFOA) As Long
|
---|
1983 | TypeDef LPFN_WSAINSTALLSERVICECLASSW = *Function(ByRef ServiceClassInfo As WSASERVICECLASSINFOW) As Long
|
---|
1984 | #ifdef UNICODE
|
---|
1985 | TypeDef LPFN_WSAINSTALLSERVICECLASS = LPFN_WSAINSTALLSERVICECLASSW
|
---|
1986 | #else
|
---|
1987 | TypeDef LPFN_WSAINSTALLSERVICECLASS = LPFN_WSAINSTALLSERVICECLASSA
|
---|
1988 | #endif
|
---|
1989 | #endif
|
---|
1990 |
|
---|
1991 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
1992 | Declare Function WSARemoveServiceClass Lib "ws2_32" (ByRef ServiceClassId As GUID) As Long
|
---|
1993 | #endif
|
---|
1994 |
|
---|
1995 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
1996 | TypeDef LPFN_WSAREMOVESERVICECLASS = *Function(ByRef ServiceClassId As GUID) As Long
|
---|
1997 | #endif
|
---|
1998 |
|
---|
1999 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
2000 | Declare Function WSAGetServiceClassInfoA Lib "ws2_32" (ByRef ProviderId As GUID, ByRef ServiceClassId As GUID, ByRef BufSize As DWord, ByRef ServiceClassInfo As WSASERVICECLASSINFOA) As Long
|
---|
2001 | Declare Function WSAGetServiceClassInfoW Lib "ws2_32" (ByRef ProviderId As GUID, ByRef ServiceClassId As GUID, ByRef BufSize As DWord, ByRef ServiceClassInfo As WSASERVICECLASSINFOW) As Long
|
---|
2002 | #ifdef UNICODE
|
---|
2003 | Declare Function WSAGetServiceClassInfo Lib "ws2_32" Alias "WSAGetServiceClassInfoW" (ByRef ProviderId As GUID, ByRef ServiceClassId As GUID, ByRef BufSize As DWord, ByRef ServiceClassInfo As WSASERVICECLASSINFO) As Long
|
---|
2004 | #else
|
---|
2005 | Declare Function WSAGetServiceClassInfo Lib "ws2_32" Alias "WSAGetServiceClassInfoA" (ByRef ProviderId As GUID, ByRef ServiceClassId As GUID, ByRef BufSize As DWord, ByRef ServiceClassInfo As WSASERVICECLASSINFO) As Long
|
---|
2006 | #endif
|
---|
2007 | #endif
|
---|
2008 |
|
---|
2009 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
2010 | TypeDef LPFN_WSAGETSERVICECLASSINFOA = *Function(ByRef ProviderId As GUID, ByRef ServiceClassId As GUID, ByRef BufSize As DWord, ByRef ServiceClassInfo As WSASERVICECLASSINFOA) As Long
|
---|
2011 | TypeDef LPFN_WSAGETSERVICECLASSINFOW = *Function(ByRef ProviderId As GUID, ByRef ServiceClassId As GUID, ByRef BufSize As DWord, ByRef ServiceClassInfo As WSASERVICECLASSINFOW) As Long
|
---|
2012 | #ifdef UNICODE
|
---|
2013 | TypeDef LPFN_WSAGETSERVICECLASSINFO = LPFN_WSAGETSERVICECLASSINFOW
|
---|
2014 | #else
|
---|
2015 | TypeDef LPFN_WSAGETSERVICECLASSINFO = LPFN_WSAGETSERVICECLASSINFOA
|
---|
2016 | #endif
|
---|
2017 | #endif
|
---|
2018 |
|
---|
2019 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
2020 | Declare Function WSAEnumNameSpaceProvidersA Lib "ws2_32" (ByRef BufferLength As DWord, ByRef nspBuffer As WSANAMESPACE_INFOA) As Long
|
---|
2021 | Declare Function WSAEnumNameSpaceProvidersW Lib "ws2_32" (ByRef BufferLength As DWord, ByRef nspBuffer As WSANAMESPACE_INFOW) As Long
|
---|
2022 | #ifdef UNICODE
|
---|
2023 | Declare Function WSAEnumNameSpaceProviders Lib "ws2_32" Alias "WSAEnumNameSpaceProvidersW" (ByRef BufferLength As DWord, ByRef nspBuffer As WSANAMESPACE_INFO) As Long
|
---|
2024 | #else
|
---|
2025 | Declare Function WSAEnumNameSpaceProviders Lib "ws2_32" Alias "WSAEnumNameSpaceProvidersA" (ByRef BufferLength As DWord, ByRef nspBuffer As WSANAMESPACE_INFO) As Long
|
---|
2026 | #endif
|
---|
2027 | #endif
|
---|
2028 |
|
---|
2029 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
2030 | TypeDef LPFN_WSAENUMNAMESPACEPROVIDERSA = *Function(ByRef BufferLength As DWord, ByRef nspBuffer As WSANAMESPACE_INFOA) As Long
|
---|
2031 | TypeDef LPFN_WSAENUMNAMESPACEPROVIDERSW = *Function(ByRef BufferLength As DWord, ByRef nspBuffer As WSANAMESPACE_INFOW) As Long
|
---|
2032 | #ifdef UNICODE
|
---|
2033 | TypeDef LPFN_WSAENUMNAMESPACEPROVIDERS = LPFN_WSAENUMNAMESPACEPROVIDERSW
|
---|
2034 | #else
|
---|
2035 | TypeDef LPFN_WSAENUMNAMESPACEPROVIDERS = LPFN_WSAENUMNAMESPACEPROVIDERSA
|
---|
2036 | #endif
|
---|
2037 | #endif
|
---|
2038 |
|
---|
2039 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
2040 | Declare Function WSAGetServiceClassNameByClassIdA Lib "ws2_32" (ByRef ServiceClassId As GUID, ServiceClassName As PSTR, ByRef BufferLength As DWord) As Long
|
---|
2041 | Declare Function WSAGetServiceClassNameByClassIdW Lib "ws2_32" (ByRef ServiceClassId As GUID, ServiceClassName As PWSTR, ByRef BufferLength As DWord) As Long
|
---|
2042 | #ifdef UNICODE
|
---|
2043 | Declare Function WSAGetServiceClassNameByClassId Lib "ws2_32" Alias "WSAGetServiceClassNameByClassIdW" (ByRef ServiceClassId As GUID, ServiceClassName As PWSTR, ByRef BufferLength As DWord) As Long
|
---|
2044 | #else
|
---|
2045 | Declare Function WSAGetServiceClassNameByClassId Lib "ws2_32" Alias "WSAGetServiceClassNameByClassIdA" (ByRef ServiceClassId As GUID, ServiceClassName As PSTR, ByRef BufferLength As DWord) As Long
|
---|
2046 | #endif
|
---|
2047 | #endif
|
---|
2048 |
|
---|
2049 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
2050 | TypeDef LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA = *Function(ByRef ServiceClassId As GUID, ServiceClassName As PSTR, ByRef BufferLength As DWord) As Long
|
---|
2051 | TypeDef LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW = *Function(ByRef ServiceClassId As GUID, ServiceClassName As PWSTR, ByRef BufferLength As DWord) As Long
|
---|
2052 | #ifdef UNICODE
|
---|
2053 | TypeDef LPFN_WSAGETSERVICECLASSNAMEBYCLASSID = LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW
|
---|
2054 | #else
|
---|
2055 | TypeDef LPFN_WSAGETSERVICECLASSNAMEBYCLASSID = LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA
|
---|
2056 | #endif
|
---|
2057 | #endif
|
---|
2058 |
|
---|
2059 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
2060 | Declare Function WSASetServiceA Lib "ws2_32" (ByRef qsRegInfo As WSAQUERYSETA, essoperation As WSAESETSERVICEOP, ControlFlags As DWord) As Long
|
---|
2061 | Declare Function WSASetServiceW Lib "ws2_32" (ByRef qsRegInfo As WSAQUERYSETW, essoperation As WSAESETSERVICEOP, ControlFlags As DWord) As Long
|
---|
2062 | #ifdef UNICODE
|
---|
2063 | Declare Function WSASetService Lib "ws2_32" Alias "WSASetServiceW" (ByRef qsRegInfo As WSAQUERYSET, essoperation As WSAESETSERVICEOP, ControlFlags As DWord) As Long
|
---|
2064 | #else
|
---|
2065 | Declare Function WSASetService Lib "ws2_32" Alias "WSASetServiceA" (ByRef qsRegInfo As WSAQUERYSET, essoperation As WSAESETSERVICEOP, ControlFlags As DWord) As Long
|
---|
2066 | #endif
|
---|
2067 | #endif
|
---|
2068 |
|
---|
2069 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
2070 | TypeDef LPFN_WSASETSERVICEA = *Function(ByRef qsRegInfo As WSAQUERYSETA, essoperation As WSAESETSERVICEOP, ControlFlags As DWord) As Long
|
---|
2071 | TypeDef LPFN_WSASETSERVICEW = *Function(ByRef qsRegInfo As WSAQUERYSETW, essoperation As WSAESETSERVICEOP, ControlFlags As DWord) As Long
|
---|
2072 | #ifdef UNICODE
|
---|
2073 | TypeDef LPFN_WSASETSERVICE = LPFN_WSASETSERVICEW
|
---|
2074 | #else
|
---|
2075 | TypeDef LPFN_WSASETSERVICE = LPFN_WSASETSERVICEA
|
---|
2076 | #endif
|
---|
2077 | #endif
|
---|
2078 |
|
---|
2079 | #ifndef NO_INCL_WINSOCK_API_PROTOTYPES
|
---|
2080 | Declare Function WSAProviderConfigChange Lib "ws2_32" (ByRef NotificationHandle As HANDLE, ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
2081 | #endif
|
---|
2082 |
|
---|
2083 | #ifdef INCL_WINSOCK_API_TYPEDEFS
|
---|
2084 | TypeDef LPFN_WSAPROVIDERCONFIGCHANGE = *Function(ByRef NotificationHandle As HANDLE, ByRef Overlapped As WSAOVERLAPPED, lpCompletionRoutine As LPWSAOVERLAPPED_COMPLETION_ROUTINE) As Long
|
---|
2085 | #endif
|
---|
2086 |
|
---|
2087 | ' Microsoft Windows Extended data types
|
---|
2088 | TypeDef SOCKADDR_IN = sockaddr_in
|
---|
2089 | TypeDef PSOCKADDR_IN = *sockaddr_in
|
---|
2090 | TypeDef LPSOCKADDR_IN = *sockaddr_in
|
---|
2091 |
|
---|
2092 | TypeDef LINGER = linger
|
---|
2093 | TypeDef PLINGER = *linger
|
---|
2094 | TypeDef LPLINGER = *linger
|
---|
2095 |
|
---|
2096 | TypeDef IN_ADDR = in_addr
|
---|
2097 | TypeDef PIN_ADDR = *in_addr
|
---|
2098 | TypeDef LPIN_ADDR = *in_addr
|
---|
2099 |
|
---|
2100 | TypeDef FD_SET = fd_set
|
---|
2101 | TypeDef PFD_SET = *fd_set
|
---|
2102 | TypeDef LPFD_SET = *fd_set
|
---|
2103 |
|
---|
2104 | TypeDef HOSTENT = hostent
|
---|
2105 | TypeDef PHOSTENT = *hostent
|
---|
2106 | TypeDef LPHOSTENT = *hostent
|
---|
2107 |
|
---|
2108 | TypeDef SERVENT = servent
|
---|
2109 | TypeDef PSERVENT = *servent
|
---|
2110 | TypeDef LPSERVENT = *servent
|
---|
2111 |
|
---|
2112 | TypeDef PROTOENT = protoent
|
---|
2113 | TypeDef PPROTOENT = *protoent
|
---|
2114 | TypeDef LPPROTOENT = *protoent
|
---|
2115 |
|
---|
2116 | TypeDef TIMEVAL = timeval
|
---|
2117 | TypeDef PTIMEVAL = *timeval
|
---|
2118 | TypeDef LPTIMEVAL = *timeval
|
---|
2119 |
|
---|
2120 | ' Windows message parameter composition and decomposition macros.
|
---|
2121 | Const WSAMAKEASYNCREPLY(buflen, error) = MAKELONG(buflen, error)
|
---|
2122 | Const WSAMAKESELECTREPLY(event, error) = MAKELONG(event, error)
|
---|
2123 | Const WSAGETASYNCBUFLEN(lParam) = LOWORD(lParam)
|
---|
2124 | Const WSAGETASYNCERROR(lParam) = HIWORD(lParam)
|
---|
2125 | Const WSAGETSELECTEVENT(lParam) = LOWORD(lParam)
|
---|
2126 | Const WSAGETSELECTERROR(lParam) = HIWORD(lParam)
|
---|
2127 |
|
---|
2128 | '#ifdef IPV6STRICT
|
---|
2129 | '#require <wsipv6ok.ab>
|
---|
2130 | '#endif
|
---|
2131 |
|
---|
2132 | #endif
|
---|