annotate win32/winsock2.d @ 1:4a9dcbd9e54f

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