1 module libasync.types;
2 package:
3 enum LOG = false; //trace
4 enum DEBUG = false;
5 
6 import std.typecons: Flag;
7 public alias isIPv6 = Flag!"IPv6";
8 alias isTCP = Flag!"TCP";
9 alias isForced = Flag!"ForceFind";
10 
11 version(OSX) 	enum is_OSX = true;
12 else		enum is_OSX = false;
13 version(Posix) 	enum is_Posix = true;
14 else		enum is_Posix = false;
15 version(linux) 	enum is_linux = true;
16 else		enum is_linux = false;
17 version(iOS) 	enum is_iOS = true;
18 else		enum is_iOS = false;
19 
20 static if (is_linux)
21 	enum EPOLL = true;
22 else	enum EPOLL = false;
23 
24 mixin template DefStatus() {
25 
26 	/// Check this property to make sure the event loop hasn't failed
27 	@property bool hasError() const
28 	{
29 		return m_evLoop.status.code != Status.OK && m_evLoop.status.code != Status.ASYNC;
30 	}
31 
32 	/*
33 	 * The status code is Status.ASYNC if the call is delayed (yield), Status.ABORT if an
34 	 * unrecoverable socket/fd error occurs (throw), or Status.ERROR if an internal error
35 	 * occured (assert).
36 	*/
37 	@property StatusInfo status() const {
38 		return m_evLoop.status;
39 	}
40 
41 	/// Returns a human-readable error message from the underlying operating system.
42 	@property string error() const {
43 		return m_evLoop.error;
44 	}
45 }
46 
47 mixin template ContextMgr() {
48 	T getContext(T)()
49 		if (isPointer!T)
50 	{
51 		return cast(T*) m_ctxt;
52 	}
53 
54 	T getContext(T)()
55 		if (is(T == class))
56 	{
57 		return cast(T) m_ctxt;
58 	}
59 
60 	void setContext(T)(T ctxt)
61 		if (isPointer!T || is(T == class))
62 	{
63 		m_ctxt = cast(void*) ctxt;
64 	}
65 }
66 
67 struct StatusInfo {
68 	Status code = Status.OK;
69 	string text;
70 }
71 
72 public enum Status : char {
73 	OK					=	0,
74 	ASYNC				=	1,
75 	RETRY				=	2,
76 	ERROR				=	3,
77 	ABORT				=	4,
78 	EVLOOP_TIMEOUT		=	5,
79 	EVLOOP_FAILURE		=	6,
80 	NOT_IMPLEMENTED		=	7
81 }
82 
83 enum EWIN : size_t {
84 	ERROR_SUCCESS							=	0,
85 	NO_ERROR								=	0,
86 	ERROR_INVALID_FUNCTION					=	1,
87 	ERROR_FILE_NOT_FOUND					=	2,
88 	ERROR_PATH_NOT_FOUND					=	3,
89 	ERROR_TOO_MANY_OPEN_FILES				=	4,
90 	ERROR_ACCESS_DENIED						=	5,
91 	ERROR_INVALID_HANDLE					=	6,
92 	ERROR_ARENA_TRASHED						=	7,
93 	ERROR_NOT_ENOUGH_MEMORY					=	8,
94 	ERROR_INVALID_BLOCK						=	9,
95 	ERROR_BAD_ENVIRONMENT					=	10,
96 	ERROR_BAD_FORMAT						=	11,
97 	ERROR_INVALID_ACCESS					=	12,
98 	ERROR_INVALID_DATA						=	13,
99 	ERROR_OUTOFMEMORY						=	14,
100 	ERROR_INVALID_DRIVE						=	15,
101 	ERROR_CURRENT_DIRECTORY					=	16,
102 	ERROR_NOT_SAME_DEVICE					=	17,
103 	ERROR_NO_MORE_FILES						=	18,
104 	ERROR_WRITE_PROTECT						=	19,
105 	ERROR_BAD_UNIT							=	20,
106 	ERROR_NOT_READY							=	21,
107 	ERROR_BAD_COMMAND						=	22,
108 	ERROR_CRC								=	23,
109 	ERROR_BAD_LENGTH						=	24,
110 	ERROR_SEEK								=	25,
111 	ERROR_NOT_DOS_DISK						=	26,
112 	ERROR_SECTOR_NOT_FOUND					=	27,
113 	ERROR_OUT_OF_PAPER						=	28,
114 	ERROR_WRITE_FAULT						=	29,
115 	ERROR_READ_FAULT						=	30,
116 	ERROR_GEN_FAILURE						=	31,
117 	ERROR_SHARING_VIOLATION					=	32,
118 	ERROR_LOCK_VIOLATION					=	33,
119 	ERROR_WRONG_DISK						=	34,
120 	ERROR_SHARING_BUFFER_EXCEEDED			=	36,
121 	ERROR_HANDLE_EOF						=	38,
122 	ERROR_HANDLE_DISK_FULL					=	39,
123 	ERROR_NOT_SUPPORTED						=	50,
124 	ERROR_REM_NOT_LIST						=	51,
125 	ERROR_DUP_NAME							=	52,
126 	ERROR_BAD_NETPATH						=	53,
127 	ERROR_NETWORK_BUSY						=	54,
128 	ERROR_DEV_NOT_EXIST						=	55,
129 	ERROR_TOO_MANY_CMDS						=	56,
130 	ERROR_ADAP_HDW_ERR						=	57,
131 	ERROR_BAD_NET_RESP						=	58,
132 	ERROR_UNEXP_NET_ERR						=	59,
133 	ERROR_BAD_REM_ADAP						=	60,
134 	ERROR_PRINTQ_FULL						=	61,
135 	ERROR_NO_SPOOL_SPACE					=	62,
136 	ERROR_PRINT_CANCELLED					=	63,
137 	ERROR_NETNAME_DELETED					=	64,
138 	ERROR_NETWORK_ACCESS_DENIED				=	65,
139 	ERROR_BAD_DEV_TYPE						=	66,
140 	ERROR_BAD_NET_NAME						=	67,
141 	ERROR_TOO_MANY_NAMES					=	68,
142 	ERROR_TOO_MANY_SESS						=	69,
143 	ERROR_SHARING_PAUSED					=	70,
144 	ERROR_REQ_NOT_ACCEP						=	71,
145 	ERROR_REDIR_PAUSED						=	72,
146 	ERROR_FILE_EXISTS						=	80,
147 	ERROR_CANNOT_MAKE						=	82,
148 	ERROR_FAIL_I24							=	83,
149 	ERROR_OUT_OF_STRUCTURES					=	84,
150 	ERROR_ALREADY_ASSIGNED					=	85,
151 	ERROR_INVALID_PASSWORD					=	86,
152 	ERROR_INVALID_PARAMETER					=	87,
153 	ERROR_NET_WRITE_FAULT					=	88,
154 	ERROR_NO_PROC_SLOTS						=	89,
155 	ERROR_TOO_MANY_SEMAPHORES				=	100,
156 	ERROR_EXCL_SEM_ALREADY_OWNED			=	101,
157 	ERROR_SEM_IS_SET						=	102,
158 	ERROR_TOO_MANY_SEM_REQUESTS				=	103,
159 	ERROR_INVALID_AT_INTERRUPT_TIME			=	104,
160 	ERROR_SEM_OWNER_DIED					=	105,
161 	ERROR_SEM_USER_LIMIT					=	106,
162 	ERROR_DISK_CHANGE						=	107,
163 	ERROR_DRIVE_LOCKED						=	108,
164 	ERROR_BROKEN_PIPE						=	109,
165 	ERROR_OPEN_FAILED						=	110,
166 	ERROR_BUFFER_OVERFLOW					=	111,
167 	ERROR_DISK_FULL							=	112,
168 	ERROR_NO_MORE_SEARCH_HANDLES			=	113,
169 	ERROR_INVALID_TARGET_HANDLE				=	114,
170 	ERROR_INVALID_CATEGORY					=	117,
171 	ERROR_INVALID_VERIFY_SWITCH				=	118,
172 	ERROR_BAD_DRIVER_LEVEL					=	119,
173 	ERROR_CALL_NOT_IMPLEMENTED				=	120,
174 	ERROR_SEM_TIMEOUT						=	121,
175 	ERROR_INSUFFICIENT_BUFFER				=	122,
176 	ERROR_INVALID_NAME						=	123,
177 	ERROR_INVALID_LEVEL						=	124,
178 	ERROR_NO_VOLUME_LABEL					=	125,
179 	ERROR_MOD_NOT_FOUND						=	126,
180 	ERROR_PROC_NOT_FOUND					=	127,
181 	ERROR_WAIT_NO_CHILDREN					=	128,
182 	ERROR_CHILD_NOT_COMPLETE				=	129,
183 	ERROR_DIRECT_ACCESS_HANDLE				=	130,
184 	ERROR_NEGATIVE_SEEK						=	131,
185 	ERROR_SEEK_ON_DEVICE					=	132,
186 	ERROR_IS_JOIN_TARGET					=	133,
187 	ERROR_IS_JOINED							=	134,
188 	ERROR_IS_SUBSTED						=	135,
189 	ERROR_NOT_JOINED						=	136,
190 	ERROR_NOT_SUBSTED						=	137,
191 	ERROR_JOIN_TO_JOIN						=	138,
192 	ERROR_SUBST_TO_SUBST					=	139,
193 	ERROR_JOIN_TO_SUBST						=	140,
194 	ERROR_SUBST_TO_JOIN						=	141,
195 	ERROR_BUSY_DRIVE						=	142,
196 	ERROR_SAME_DRIVE						=	143,
197 	ERROR_DIR_NOT_ROOT						=	144,
198 	ERROR_DIR_NOT_EMPTY						=	145,
199 	ERROR_IS_SUBST_PATH						=	146,
200 	ERROR_IS_JOIN_PATH						=	147,
201 	ERROR_PATH_BUSY							=	148,
202 	ERROR_IS_SUBST_TARGET					=	149,
203 	ERROR_SYSTEM_TRACE						=	150,
204 	ERROR_INVALID_EVENT_COUNT				=	151,
205 	ERROR_TOO_MANY_MUXWAITERS				=	152,
206 	ERROR_INVALID_LIST_FORMAT				=	153,
207 	ERROR_LABEL_TOO_LONG					=	154,
208 	ERROR_TOO_MANY_TCBS						=	155,
209 	ERROR_SIGNAL_REFUSED					=	156,
210 	ERROR_DISCARDED							=	157,
211 	ERROR_NOT_LOCKED						=	158,
212 	ERROR_BAD_THREADID_ADDR					=	159,
213 	ERROR_BAD_ARGUMENTS						=	160,
214 	ERROR_BAD_PATHNAME						=	161,
215 	ERROR_SIGNAL_PENDING					=	162,
216 	ERROR_MAX_THRDS_REACHED					=	164,
217 	ERROR_LOCK_FAILED						=	167,
218 	WAIT_TIMEOUT							=	258,
219 	WAIT_FAILED								=	0xFFFFFFFF,
220 	/*
221 	ERROR_BUSY								=	170,
222 	ERROR_CANCEL_VIOLATION					=	173,
223 	ERROR_ATOMIC_LOCKS_NOT_SUPPORTED		=	174,
224 	ERROR_INVALID_SEGMENT_NUMBER			=	180,
225 	ERROR_INVALID_ORDINAL					=	182,
226 	ERROR_ALREADY_EXISTS					=	183,
227 	ERROR_INVALID_FLAG_NUMBER				=	186,
228 	ERROR_SEM_NOT_FOUND						=	187,
229 	ERROR_INVALID_STARTING_CODESEG			=	188,
230 	ERROR_INVALID_STACKSEG					=	189,
231 	ERROR_INVALID_MODULETYPE				=	190,
232 	ERROR_INVALID_EXE_SIGNATURE				=	191,
233 	ERROR_EXE_MARKED_INVALID				=	192,
234 	ERROR_BAD_EXE_FORMAT					=	193,
235 	ERROR_ITERATED_DATA_EXCEEDS_64k			=	194,
236 	ERROR_INVALID_MINALLOCSIZE				=	195,
237 	ERROR_DYNLINK_FROM_INVALID_RING			=	196,
238 	ERROR_IOPL_NOT_ENABLED					=	197,
239 	ERROR_INVALID_SEGDPL					=	198,
240 	ERROR_AUTODATASEG_EXCEEDS_64k			=	199,
241 	ERROR_RING2SEG_MUST_BE_MOVABLE			=	200,
242 	ERROR_RELOC_CHAIN_XEEDS_SEGLIM			=	201,
243 	ERROR_INFLOOP_IN_RELOC_CHAIN			=	202,
244 	ERROR_ENVVAR_NOT_FOUND					=	203,
245 	ERROR_NO_SIGNAL_SENT					=	205,
246 	ERROR_FILENAME_EXCED_RANGE				=	206,
247 	ERROR_RING2_STACK_IN_USE				=	207,
248 	ERROR_META_EXPANSION_TOO_LONG			=	208,
249 	ERROR_INVALID_SIGNAL_NUMBER				=	209,
250 	ERROR_THREAD_1_INACTIVE					=	210,
251 	ERROR_LOCKED							=	212,
252 	ERROR_TOO_MANY_MODULES					=	214,
253 	ERROR_NESTING_NOT_ALLOWED				=	215,
254 	ERROR_BAD_PIPE							=	230,
255 	ERROR_PIPE_BUSY							=	231,
256 	ERROR_NO_DATA							=	232,
257 	ERROR_PIPE_NOT_CONNECTED				=	233,
258 	ERROR_MORE_DATA							=	234,
259 	ERROR_VC_DISCONNECTED					=	240,
260 	ERROR_INVALID_EA_NAME					=	254,
261 	ERROR_EA_LIST_INCONSISTENT				=	255,
262 	ERROR_NO_MORE_ITEMS						=	259,
263 	ERROR_CANNOT_COPY						=	266,
264 	ERROR_DIRECTORY							=	267,
265 	ERROR_EAS_DIDNT_FIT						=	275,
266 	ERROR_EA_FILE_CORRUPT					=	276,
267 	ERROR_EA_TABLE_FULL						=	277,
268 	ERROR_INVALID_EA_HANDLE					=	278,
269 	ERROR_EAS_NOT_SUPPORTED					=	282,
270 	ERROR_NOT_OWNER							=	288,
271 	ERROR_TOO_MANY_POSTS					=	298,
272 	ERROR_PARTIAL_COPY						=	299,
273 	ERROR_MR_MID_NOT_FOUND					=	317,
274 	ERROR_INVALID_ADDRESS					=	487,
275 	ERROR_ARITHMETIC_OVERFLOW				=	534,
276 	ERROR_PIPE_CONNECTED					=	535,
277 	ERROR_PIPE_LISTENING					=	536,
278 	ERROR_EA_ACCESS_DENIED					=	994,
279 	ERROR_OPERATION_ABORTED					=	995,
280 	ERROR_IO_INCOMPLETE						=	996,
281 	ERROR_IO_PENDING						=	997,
282 	ERROR_NOACCESS							=	998,
283 	ERROR_SWAPERROR							=	999,
284 	ERROR_STACK_OVERFLOW					=	1001,
285 	ERROR_INVALID_MESSAGE					=	1002,
286 	ERROR_CAN_NOT_COMPLETE					=	1003,
287 	ERROR_INVALID_FLAGS						=	1004,
288 	ERROR_UNRECOGNIZED_VOLUME				=	1005,
289 	ERROR_FILE_INVALID						=	1006,
290 	ERROR_FULLSCREEN_MODE					=	1007,
291 	ERROR_NO_TOKEN							=	1008,
292 	ERROR_BADDB								=	1009,
293 	ERROR_BADKEY							=	1010,
294 	ERROR_CANTOPEN							=	1011,
295 	ERROR_CANTREAD							=	1012,
296 	ERROR_CANTWRITE							=	1013,
297 	ERROR_REGISTRY_RECOVERED				=	1014,
298 	ERROR_REGISTRY_CORRUPT					=	1015,
299 	ERROR_REGISTRY_IO_FAILED				=	1016,
300 	ERROR_NOT_REGISTRY_FILE					=	1017,
301 	ERROR_KEY_DELETED						=	1018,
302 	ERROR_NO_LOG_SPACE						=	1019,
303 	ERROR_KEY_HAS_CHILDREN					=	1020,
304 	ERROR_CHILD_MUST_BE_VOLATILE			=	1021,
305 	ERROR_NOTIFY_ENUM_DIR					=	1022,
306 	ERROR_DEPENDENT_SERVICES_RUNNING		=	1051,
307 	ERROR_INVALID_SERVICE_CONTROL			=	1052,
308 	ERROR_SERVICE_REQUEST_TIMEOUT			=	1053,
309 	ERROR_SERVICE_NO_THREAD					=	1054,
310 	ERROR_SERVICE_DATABASE_LOCKED			=	1055,
311 	ERROR_SERVICE_ALREADY_RUNNING			=	1056,
312 	ERROR_INVALID_SERVICE_ACCOUNT			=	1057,
313 	ERROR_SERVICE_DISABLED					=	1058,
314 	ERROR_CIRCULAR_DEPENDENCY				=	1059,
315 	ERROR_SERVICE_DOES_NOT_EXIST			=	1060,
316 	ERROR_SERVICE_CANNOT_ACCEPT_CTRL		=	1061,
317 	ERROR_SERVICE_NOT_ACTIVE				=	1062,
318 	ERROR_FAILED_SERVICE_CONTROLLER_CONNECT	=	1063,
319 	ERROR_EXCEPTION_IN_SERVICE				=	1064,
320 	ERROR_DATABASE_DOES_NOT_EXIST			=	1065,
321 	ERROR_SERVICE_SPECIFIC_ERROR			=	1066,
322 	ERROR_PROCESS_ABORTED					=	1067,
323 	ERROR_SERVICE_DEPENDENCY_FAIL			=	1068,
324 	ERROR_SERVICE_LOGON_FAILED				=	1069,
325 	ERROR_SERVICE_START_HANG				=	1070,
326 	ERROR_INVALID_SERVICE_LOCK				=	1071,
327 	ERROR_SERVICE_MARKED_FOR_DELETE			=	1072,
328 	ERROR_SERVICE_EXISTS					=	1073,
329 	ERROR_ALREADY_RUNNING_LKG				=	1074,
330 	ERROR_SERVICE_DEPENDENCY_DELETED		=	1075,
331 	ERROR_BOOT_ALREADY_ACCEPTED				=	1076,
332 	ERROR_SERVICE_NEVER_STARTED				=	1077,
333 	ERROR_DUPLICATE_SERVICE_NAME			=	1078,
334 	ERROR_END_OF_MEDIA						=	1100,
335 	ERROR_FILEMARK_DETECTED					=	1101,
336 	ERROR_BEGINNING_OF_MEDIA				=	1102,
337 	ERROR_SETMARK_DETECTED					=	1103,
338 	ERROR_NO_DATA_DETECTED					=	1104,
339 	ERROR_PARTITION_FAILURE					=	1105,
340 	ERROR_INVALID_BLOCK_LENGTH				=	1106,
341 	ERROR_DEVICE_NOT_PARTITIONED			=	1107,
342 	ERROR_UNABLE_TO_LOCK_MEDIA				=	1108,
343 	ERROR_UNABLE_TO_UNLOAD_MEDIA			=	1109,
344 	ERROR_MEDIA_CHANGED						=	1110,
345 	ERROR_BUS_RESET							=	1111,
346 	ERROR_NO_MEDIA_IN_DRIVE					=	1112,
347 	ERROR_NO_UNICODE_TRANSLATION			=	1113,
348 	ERROR_DLL_INIT_FAILED					=	1114,
349 	ERROR_SHUTDOWN_IN_PROGRESS				=	1115,
350 	ERROR_NO_SHUTDOWN_IN_PROGRESS			=	1116,
351 	ERROR_IO_DEVICE							=	1117,
352 	ERROR_SERIAL_NO_DEVICE					=	1118,
353 	ERROR_IRQ_BUSY							=	1119,
354 	ERROR_MORE_WRITES						=	1120,
355 	ERROR_COUNTER_TIMEOUT					=	1121,
356 	ERROR_FLOPPY_ID_MARK_NOT_FOUND			=	1122,
357 	ERROR_FLOPPY_WRONG_CYLINDER				=	1123,
358 	ERROR_FLOPPY_UNKNOWN_ERROR				=	1124,
359 	ERROR_FLOPPY_BAD_REGISTERS				=	1125,
360 	ERROR_DISK_RECALIBRATE_FAILED			=	1126,
361 	ERROR_DISK_OPERATION_FAILED				=	1127,
362 	ERROR_DISK_RESET_FAILED					=	1128,
363 	ERROR_EOM_OVERFLOW						=	1129,
364 	ERROR_NOT_ENOUGH_SERVER_MEMORY			=	1130,
365 	ERROR_POSSIBLE_DEADLOCK					=	1131,
366 	ERROR_MAPPED_ALIGNMENT					=	1132,
367 	ERROR_SET_POWER_STATE_VETOED			=	1140,
368 	ERROR_SET_POWER_STATE_FAILED			=	1141,
369 	ERROR_TOO_MANY_LINKS					=	1142,
370 	ERROR_OLD_WIN_VERSION					=	1150,
371 	ERROR_APP_WRONG_OS						=	1151,
372 	ERROR_SINGLE_INSTANCE_APP				=	1152,
373 	ERROR_RMODE_APP							=	1153,
374 	ERROR_INVALID_DLL						=	1154,
375 	ERROR_NO_ASSOCIATION					=	1155,
376 	ERROR_DDE_FAIL							=	1156,
377 	ERROR_DLL_NOT_FOUND						=	1157,
378 	ERROR_BAD_USERNAME						=	2202,
379 	ERROR_NOT_CONNECTED						=	2250,
380 	ERROR_OPEN_FILES						=	2401,
381 	ERROR_ACTIVE_CONNECTIONS				=	2402,
382 	ERROR_DEVICE_IN_USE						=	2404,
383 	ERROR_BAD_DEVICE						=	1200,
384 	ERROR_CONNECTION_UNAVAIL				=	1201,
385 	ERROR_DEVICE_ALREADY_REMEMBERED			=	1202,
386 	ERROR_NO_NET_OR_BAD_PATH				=	1203,
387 	ERROR_BAD_PROVIDER						=	1204,
388 	ERROR_CANNOT_OPEN_PROFILE				=	1205,
389 	ERROR_BAD_PROFILE						=	1206,
390 	ERROR_NOT_CONTAINER						=	1207,
391 	ERROR_EXTENDED_ERROR					=	1208,
392 	ERROR_INVALID_GROUPNAME					=	1209,
393 	ERROR_INVALID_COMPUTERNAME				=	1210,
394 	ERROR_INVALID_EVENTNAME					=	1211,
395 	ERROR_INVALID_DOMAINNAME				=	1212,
396 	ERROR_INVALID_SERVICENAME				=	1213,
397 	ERROR_INVALID_NETNAME					=	1214,
398 	ERROR_INVALID_SHARENAME					=	1215,
399 	ERROR_INVALID_PASSWORDNAME				=	1216,
400 	ERROR_INVALID_MESSAGENAME				=	1217,
401 	ERROR_INVALID_MESSAGEDEST				=	1218,
402 	ERROR_SESSION_CREDENTIAL_CONFLICT		=	1219,
403 	ERROR_REMOTE_SESSION_LIMIT_EXCEEDED		=	1220,
404 	ERROR_DUP_DOMAINNAME					=	1221,
405 	ERROR_NO_NETWORK						=	1222,
406 	ERROR_CANCELLED							=	1223,
407 	ERROR_USER_MAPPED_FILE					=	1224,
408 	ERROR_CONNECTION_REFUSED				=	1225,
409 	ERROR_GRACEFUL_DISCONNECT				=	1226,
410 	ERROR_ADDRESS_ALREADY_ASSOCIATED		=	1227,
411 	ERROR_ADDRESS_NOT_ASSOCIATED			=	1228,
412 	ERROR_CONNECTION_INVALID				=	1229,
413 	ERROR_CONNECTION_ACTIVE					=	1230,
414 	ERROR_NETWORK_UNREACHABLE				=	1231,
415 	ERROR_HOST_UNREACHABLE					=	1232,
416 	ERROR_PROTOCOL_UNREACHABLE				=	1233,
417 	ERROR_PORT_UNREACHABLE					=	1234,
418 	ERROR_REQUEST_ABORTED					=	1235,
419 	ERROR_CONNECTION_ABORTED				=	1236,
420 	ERROR_RETRY								=	1237,
421 	ERROR_CONNECTION_COUNT_LIMIT			=	1238,
422 	ERROR_LOGIN_TIME_RESTRICTION			=	1239,
423 	ERROR_LOGIN_WKSTA_RESTRICTION			=	1240,
424 	ERROR_INCORRECT_ADDRESS					=	1241,
425 	ERROR_ALREADY_REGISTERED				=	1242,
426 	ERROR_SERVICE_NOT_FOUND					=	1243,
427 	ERROR_NOT_AUTHENTICATED					=	1244,
428 	ERROR_NOT_LOGGED_ON						=	1245,
429 	ERROR_CONTINUE							=	1246,
430 	ERROR_ALREADY_INITIALIZED				=	1247,
431 	ERROR_NO_MORE_DEVICES					=	1248,
432 	ERROR_NOT_ALL_ASSIGNED					=	1300,
433 	ERROR_SOME_NOT_MAPPED					=	1301,
434 	ERROR_NO_QUOTAS_FOR_ACCOUNT				=	1302,
435 	ERROR_LOCAL_USER_SESSION_KEY			=	1303,
436 	ERROR_NULL_LM_PASSWORD					=	1304,
437 	ERROR_UNKNOWN_REVISION					=	1305,
438 	ERROR_REVISION_MISMATCH					=	1306,
439 	ERROR_INVALID_OWNER						=	1307,
440 	ERROR_INVALID_PRIMARY_GROUP				=	1308,
441 	ERROR_NO_IMPERSONATION_TOKEN			=	1309,
442 	ERROR_CANT_DISABLE_MANDATORY			=	1310,
443 	ERROR_NO_LOGON_SERVERS					=	1311,
444 	ERROR_NO_SUCH_LOGON_SESSION				=	1312,
445 	ERROR_NO_SUCH_PRIVILEGE					=	1313,
446 	ERROR_PRIVILEGE_NOT_HELD				=	1314,
447 	ERROR_INVALID_ACCOUNT_NAME				=	1315,
448 	ERROR_USER_EXISTS						=	1316,
449 	ERROR_NO_SUCH_USER						=	1317,
450 	ERROR_GROUP_EXISTS						=	1318,
451 	ERROR_NO_SUCH_GROUP						=	1319,
452 	ERROR_MEMBER_IN_GROUP					=	1320,
453 	ERROR_MEMBER_NOT_IN_GROUP				=	1321,
454 	ERROR_LAST_ADMIN						=	1322,
455 	ERROR_WRONG_PASSWORD					=	1323,
456 	ERROR_ILL_FORMED_PASSWORD				=	1324,
457 	ERROR_PASSWORD_RESTRICTION				=	1325,
458 	ERROR_LOGON_FAILURE						=	1326,
459 	ERROR_ACCOUNT_RESTRICTION				=	1327,
460 	ERROR_INVALID_LOGON_HOURS				=	1328,
461 	ERROR_INVALID_WORKSTATION				=	1329,
462 	ERROR_PASSWORD_EXPIRED					=	1330,
463 	ERROR_ACCOUNT_DISABLED					=	1331,
464 	ERROR_NONE_MAPPED						=	1332,
465 	ERROR_TOO_MANY_LUIDS_REQUESTED			=	1333,
466 	ERROR_LUIDS_EXHAUSTED					=	1334,
467 	ERROR_INVALID_SUB_AUTHORITY				=	1335,
468 	ERROR_INVALID_ACL						=	1336,
469 	ERROR_INVALID_SID						=	1337,
470 	ERROR_INVALID_SECURITY_DESCR			=	1338,
471 	ERROR_BAD_INHERITANCE_ACL				=	1340,
472 	ERROR_SERVER_DISABLED					=	1341,
473 	ERROR_SERVER_NOT_DISABLED				=	1342,
474 	ERROR_INVALID_ID_AUTHORITY				=	1343,
475 	ERROR_ALLOTTED_SPACE_EXCEEDED			=	1344,
476 	ERROR_INVALID_GROUP_ATTRIBUTES			=	1345,
477 	ERROR_BAD_IMPERSONATION_LEVEL			=	1346,
478 	ERROR_CANT_OPEN_ANONYMOUS				=	1347,
479 	ERROR_BAD_VALIDATION_CLASS				=	1348,
480 	ERROR_BAD_TOKEN_TYPE					=	1349,
481 	ERROR_NO_SECURITY_ON_OBJECT				=	1350,
482 	ERROR_CANT_ACCESS_DOMAIN_INFO			=	1351,
483 	ERROR_INVALID_SERVER_STATE				=	1352,
484 	ERROR_INVALID_DOMAIN_STATE				=	1353,
485 	ERROR_INVALID_DOMAIN_ROLE				=	1354,
486 	ERROR_NO_SUCH_DOMAIN					=	1355,
487 	ERROR_DOMAIN_EXISTS						=	1356,
488 	ERROR_DOMAIN_LIMIT_EXCEEDED				=	1357,
489 	ERROR_INTERNAL_DB_CORRUPTION			=	1358,
490 	ERROR_INTERNAL_ERROR					=	1359,
491 	ERROR_GENERIC_NOT_MAPPED				=	1360,
492 	ERROR_BAD_DESCRIPTOR_FORMAT				=	1361,
493 	ERROR_NOT_LOGON_PROCESS					=	1362,
494 	ERROR_LOGON_SESSION_EXISTS				=	1363,
495 	ERROR_NO_SUCH_PACKAGE					=	1364,
496 	ERROR_BAD_LOGON_SESSION_STATE			=	1365,
497 	ERROR_LOGON_SESSION_COLLISION			=	1366,
498 	ERROR_INVALID_LOGON_TYPE				=	1367,
499 	ERROR_CANNOT_IMPERSONATE				=	1368,
500 	ERROR_RXACT_INVALID_STATE				=	1369,
501 	ERROR_RXACT_COMMIT_FAILURE				=	1370,
502 	ERROR_SPECIAL_ACCOUNT					=	1371,
503 	ERROR_SPECIAL_GROUP						=	1372,
504 	ERROR_SPECIAL_USER						=	1373,
505 	ERROR_MEMBERS_PRIMARY_GROUP				=	1374,
506 	ERROR_TOKEN_ALREADY_IN_USE				=	1375,
507 	ERROR_NO_SUCH_ALIAS						=	1376,
508 	ERROR_MEMBER_NOT_IN_ALIAS				=	1377,
509 	ERROR_MEMBER_IN_ALIAS					=	1378,
510 	ERROR_ALIAS_EXISTS						=	1379,
511 	ERROR_LOGON_NOT_GRANTED					=	1380,
512 	ERROR_TOO_MANY_SECRETS					=	1381,
513 	ERROR_SECRET_TOO_LONG					=	1382,
514 	ERROR_INTERNAL_DB_ERROR					=	1383,
515 	ERROR_TOO_MANY_CONTEXT_IDS				=	1384,
516 	ERROR_LOGON_TYPE_NOT_GRANTED			=	1385,
517 	ERROR_NT_CROSS_ENCRYPTION_REQUIRED		=	1386,
518 	ERROR_NO_SUCH_MEMBER					=	1387,
519 	ERROR_INVALID_MEMBER					=	1388,
520 	ERROR_TOO_MANY_SIDS						=	1389,
521 	ERROR_LM_CROSS_ENCRYPTION_REQUIRED		=	1390,
522 	ERROR_NO_INHERITANCE					=	1391,
523 	ERROR_FILE_CORRUPT						=	1392,
524 	ERROR_DISK_CORRUPT						=	1393,
525 	ERROR_NO_USER_SESSION_KEY				=	1394,
526 	ERROR_LICENSE_QUOTA_EXCEEDED			=	1395,
527 */	ERROR_INVALID_WINDOW_HANDLE				=	1400,
528 /*	ERROR_INVALID_MENU_HANDLE				=	1401,
529 	ERROR_INVALID_CURSOR_HANDLE				=	1402,
530 	ERROR_INVALID_ACCEL_HANDLE				=	1403,
531 	ERROR_INVALID_HOOK_HANDLE				=	1404,
532 	ERROR_INVALID_DWP_HANDLE				=	1405,
533 	ERROR_TLW_WITH_WSCHILD					=	1406,
534 	ERROR_CANNOT_FIND_WND_CLASS				=	1407,
535 	ERROR_WINDOW_OF_OTHER_THREAD			=	1408,
536 	ERROR_HOTKEY_ALREADY_REGISTERED			=	1409,
537 	ERROR_CLASS_ALREADY_EXISTS				=	1410,
538 	ERROR_CLASS_DOES_NOT_EXIST				=	1411,
539 	ERROR_CLASS_HAS_WINDOWS					=	1412,
540 	ERROR_INVALID_INDEX						=	1413,
541 	ERROR_INVALID_ICON_HANDLE				=	1414,
542 	ERROR_PRIVATE_DIALOG_INDEX				=	1415,
543 	ERROR_LISTBOX_ID_NOT_FOUND				=	1416,
544 	ERROR_NO_WILDCARD_CHARACTERS			=	1417,
545 	ERROR_CLIPBOARD_NOT_OPEN				=	1418,
546 	ERROR_HOTKEY_NOT_REGISTERED				=	1419,
547 	ERROR_WINDOW_NOT_DIALOG					=	1420,
548 	ERROR_CONTROL_ID_NOT_FOUND				=	1421,
549 	ERROR_INVALID_COMBOBOX_MESSAGE			=	1422,
550 	ERROR_WINDOW_NOT_COMBOBOX				=	1423,
551 	ERROR_INVALID_EDIT_HEIGHT				=	1424,
552 	ERROR_DC_NOT_FOUND						=	1425,
553 	ERROR_INVALID_HOOK_FILTER				=	1426,
554 	ERROR_INVALID_FILTER_PROC				=	1427,
555 	ERROR_HOOK_NEEDS_HMOD					=	1428,
556 	ERROR_GLOBAL_ONLY_HOOK					=	1429,
557 	ERROR_JOURNAL_HOOK_SET					=	1430,
558 	ERROR_HOOK_NOT_INSTALLED				=	1431,
559 	ERROR_INVALID_LB_MESSAGE				=	1432,
560 	ERROR_SETCOUNT_ON_BAD_LB				=	1433,
561 	ERROR_LB_WITHOUT_TABSTOPS				=	1434,
562 	ERROR_DESTROY_OBJECT_OF_OTHER_THREAD	=	1435,
563 	ERROR_CHILD_WINDOW_MENU					=	1436,
564 	ERROR_NO_SYSTEM_MENU					=	1437,
565 	ERROR_INVALID_MSGBOX_STYLE				=	1438,
566 	ERROR_INVALID_SPI_VALUE					=	1439,
567 	ERROR_SCREEN_ALREADY_LOCKED				=	1440,
568 	ERROR_HWNDS_HAVE_DIFF_PARENT			=	1441,
569 	ERROR_NOT_CHILD_WINDOW					=	1442,
570 	ERROR_INVALID_GW_COMMAND				=	1443,
571 	ERROR_INVALID_THREAD_ID					=	1444,
572 	ERROR_NON_MDICHILD_WINDOW				=	1445,
573 	ERROR_POPUP_ALREADY_ACTIVE				=	1446,
574 	ERROR_NO_SCROLLBARS						=	1447,
575 	ERROR_INVALID_SCROLLBAR_RANGE			=	1448,
576 	ERROR_INVALID_SHOWWIN_COMMAND			=	1449,
577 	ERROR_NO_SYSTEM_RESOURCES				=	1450,
578 	ERROR_NONPAGED_SYSTEM_RESOURCES			=	1451,
579 	ERROR_PAGED_SYSTEM_RESOURCES			=	1452,
580 	ERROR_WORKING_SET_QUOTA					=	1453,
581 	ERROR_PAGEFILE_QUOTA					=	1454,
582 	ERROR_COMMITMENT_LIMIT					=	1455,
583 	ERROR_MENU_ITEM_NOT_FOUND				=	1456,
584 	ERROR_EVENTLOG_FILE_CORRUPT				=	1500,
585 	ERROR_EVENTLOG_CANT_START				=	1501,
586 	ERROR_LOG_FILE_FULL						=	1502,
587 	ERROR_EVENTLOG_FILE_CHANGED				=	1503,
588 	RPC_S_INVALID_STRING_BINDING			=	1700,
589 	RPC_S_WRONG_KIND_OF_BINDING				=	1701,
590 	RPC_S_INVALID_BINDING					=	1702,
591 	RPC_S_PROTSEQ_NOT_SUPPORTED				=	1703,
592 	RPC_S_INVALID_RPC_PROTSEQ				=	1704,
593 	RPC_S_INVALID_STRING_UUID				=	1705,
594 	RPC_S_INVALID_ENDPOINT_FORMAT			=	1706,
595 	RPC_S_INVALID_NET_ADDR					=	1707,
596 	RPC_S_NO_ENDPOINT_FOUND					=	1708,
597 	RPC_S_INVALID_TIMEOUT					=	1709,
598 	RPC_S_OBJECT_NOT_FOUND					=	1710,
599 	RPC_S_ALREADY_REGISTERED				=	1711,
600 	RPC_S_TYPE_ALREADY_REGISTERED			=	1712,
601 	RPC_S_ALREADY_LISTENING					=	1713,
602 	RPC_S_NO_PROTSEQS_REGISTERED			=	1714,
603 	RPC_S_NOT_LISTENING						=	1715,
604 	RPC_S_UNKNOWN_MGR_TYPE					=	1716,
605 	RPC_S_UNKNOWN_IF						=	1717,
606 	RPC_S_NO_BINDINGS						=	1718,
607 	RPC_S_NO_PROTSEQS						=	1719,
608 	RPC_S_CANT_CREATE_ENDPOINT				=	1720,
609 	RPC_S_OUT_OF_RESOURCES					=	1721,
610 	RPC_S_SERVER_UNAVAILABLE				=	1722,
611 	RPC_S_SERVER_TOO_BUSY					=	1723,
612 	RPC_S_INVALID_NETWORK_OPTIONS			=	1724,
613 	RPC_S_NO_CALL_ACTIVE					=	1725,
614 	RPC_S_CALL_FAILED						=	1726,
615 	RPC_S_CALL_FAILED_DNE					=	1727,
616 	RPC_S_PROTOCOL_ERROR					=	1728,
617 	RPC_S_UNSUPPORTED_TRANS_SYN				=	1730,
618 	RPC_S_UNSUPPORTED_TYPE					=	1732,
619 	RPC_S_INVALID_TAG						=	1733,
620 	RPC_S_INVALID_BOUND						=	1734,
621 	RPC_S_NO_ENTRY_NAME						=	1735,
622 	RPC_S_INVALID_NAME_SYNTAX				=	1736,
623 	RPC_S_UNSUPPORTED_NAME_SYNTAX			=	1737,
624 	RPC_S_UUID_NO_ADDRESS					=	1739,
625 	RPC_S_DUPLICATE_ENDPOINT				=	1740,
626 	RPC_S_UNKNOWN_AUTHN_TYPE				=	1741,
627 	RPC_S_MAX_CALLS_TOO_SMALL				=	1742,
628 	RPC_S_STRING_TOO_LONG					=	1743,
629 	RPC_S_PROTSEQ_NOT_FOUND					=	1744,
630 	RPC_S_PROCNUM_OUT_OF_RANGE				=	1745,
631 	RPC_S_BINDING_HAS_NO_AUTH				=	1746,
632 	RPC_S_UNKNOWN_AUTHN_SERVICE				=	1747,
633 	RPC_S_UNKNOWN_AUTHN_LEVEL				=	1748,
634 	RPC_S_INVALID_AUTH_IDENTITY				=	1749,
635 	RPC_S_UNKNOWN_AUTHZ_SERVICE				=	1750,
636 	EPT_S_INVALID_ENTRY						=	1751,
637 	EPT_S_CANT_PERFORM_OP					=	1752,
638 	EPT_S_NOT_REGISTERED					=	1753,
639 	RPC_S_NOTHING_TO_EXPORT					=	1754,
640 	RPC_S_INCOMPLETE_NAME					=	1755,
641 	RPC_S_INVALID_VERS_OPTION				=	1756,
642 	RPC_S_NO_MORE_MEMBERS					=	1757,
643 	RPC_S_NOT_ALL_OBJS_UNEXPORTED			=	1758,
644 	RPC_S_INTERFACE_NOT_FOUND				=	1759,
645 	RPC_S_ENTRY_ALREADY_EXISTS				=	1760,
646 	RPC_S_ENTRY_NOT_FOUND					=	1761,
647 	RPC_S_NAME_SERVICE_UNAVAILABLE			=	1762,
648 	RPC_S_INVALID_NAF_ID					=	1763,
649 	RPC_S_CANNOT_SUPPORT					=	1764,
650 	RPC_S_NO_CONTEXT_AVAILABLE				=	1765,
651 	RPC_S_INTERNAL_ERROR					=	1766,
652 	RPC_S_ZERO_DIVIDE						=	1767,
653 	RPC_S_ADDRESS_ERROR						=	1768,
654 	RPC_S_FP_DIV_ZERO						=	1769,
655 	RPC_S_FP_UNDERFLOW						=	1770,
656 	RPC_S_FP_OVERFLOW						=	1771,
657 	RPC_X_NO_MORE_ENTRIES					=	1772,
658 	RPC_X_SS_CHAR_TRANS_OPEN_FAIL			=	1773,
659 	RPC_X_SS_CHAR_TRANS_SHORT_FILE			=	1774,
660 	RPC_X_SS_IN_NULL_CONTEXT				=	1775,
661 	RPC_X_SS_CONTEXT_DAMAGED				=	1777,
662 	RPC_X_SS_HANDLES_MISMATCH				=	1778,
663 	RPC_X_SS_CANNOT_GET_CALL_HANDLE			=	1779,
664 	RPC_X_NULL_REF_POINTER					=	1780,
665 	RPC_X_ENUM_VALUE_OUT_OF_RANGE			=	1781,
666 	RPC_X_BYTE_COUNT_TOO_SMALL				=	1782,
667 	RPC_X_BAD_STUB_DATA						=	1783,
668 	ERROR_INVALID_USER_BUFFER				=	1784,
669 	ERROR_UNRECOGNIZED_MEDIA				=	1785,
670 	ERROR_NO_TRUST_LSA_SECRET				=	1786,
671 	ERROR_NO_TRUST_SAM_ACCOUNT				=	1787,
672 	ERROR_TRUSTED_DOMAIN_FAILURE			=	1788,
673 	ERROR_TRUSTED_RELATIONSHIP_FAILURE		=	1789,
674 	ERROR_TRUST_FAILURE						=	1790,
675 	RPC_S_CALL_IN_PROGRESS					=	1791,
676 	ERROR_NETLOGON_NOT_STARTED				=	1792,
677 	ERROR_ACCOUNT_EXPIRED					=	1793,
678 	ERROR_REDIRECTOR_HAS_OPEN_HANDLES		=	1794,
679 	ERROR_PRINTER_DRIVER_ALREADY_INSTALLED	=	1795,
680 	ERROR_UNKNOWN_PORT						=	1796,
681 	ERROR_UNKNOWN_PRINTER_DRIVER			=	1797,
682 	ERROR_UNKNOWN_PRINTPROCESSOR			=	1798,
683 	ERROR_INVALID_SEPARATOR_FILE			=	1799,
684 	ERROR_INVALID_PRIORITY					=	1800,
685 	ERROR_INVALID_PRINTER_NAME				=	1801,
686 	ERROR_PRINTER_ALREADY_EXISTS			=	1802,
687 	ERROR_INVALID_PRINTER_COMMAND			=	1803,
688 	ERROR_INVALID_DATATYPE					=	1804,
689 	ERROR_INVALID_ENVIRONMENT				=	1805,
690 	RPC_S_NO_MORE_BINDINGS					=	1806,
691 	ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT	=	1807,
692 	ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT	=	1808,
693 	ERROR_NOLOGON_SERVER_TRUST_ACCOUNT		=	1809,
694 	ERROR_DOMAIN_TRUST_INCONSISTENT			=	1810,
695 	ERROR_SERVER_HAS_OPEN_HANDLES			=	1811,
696 	ERROR_RESOURCE_DATA_NOT_FOUND			=	1812,
697 	ERROR_RESOURCE_TYPE_NOT_FOUND			=	1813,
698 	ERROR_RESOURCE_NAME_NOT_FOUND			=	1814,
699 	ERROR_RESOURCE_LANG_NOT_FOUND			=	1815,
700 	ERROR_NOT_ENOUGH_QUOTA					=	1816,
701 	RPC_S_NO_INTERFACES						=	1817,
702 	RPC_S_CALL_CANCELLED					=	1818,
703 	RPC_S_BINDING_INCOMPLETE				=	1819,
704 	RPC_S_COMM_FAILURE						=	1820,
705 	RPC_S_UNSUPPORTED_AUTHN_LEVEL			=	1821,
706 	RPC_S_NO_PRINC_NAME						=	1822,
707 	RPC_S_NOT_RPC_ERROR						=	1823,
708 	RPC_S_UUID_LOCAL_ONLY					=	1824,
709 	RPC_S_SEC_PKG_ERROR						=	1825,
710 	RPC_S_NOT_CANCELLED						=	1826,
711 	RPC_X_INVALID_ES_ACTION					=	1827,
712 	RPC_X_WRONG_ES_VERSION					=	1828,
713 	RPC_X_WRONG_STUB_VERSION				=	1829,
714 	RPC_S_GROUP_MEMBER_NOT_FOUND			=	1898,
715 	EPT_S_CANT_CREATE						=	1899,
716 	RPC_S_INVALID_OBJECT					=	1900,
717 	ERROR_INVALID_TIME						=	1901,
718 	ERROR_INVALID_FORM_NAME					=	1902,
719 	ERROR_INVALID_FORM_SIZE					=	1903,
720 	ERROR_ALREADY_WAITING					=	1904,
721 	ERROR_PRINTER_DELETED					=	1905,
722 	ERROR_INVALID_PRINTER_STATE				=	1906,
723 	ERROR_PASSWORD_MUST_CHANGE				=	1907,
724 	ERROR_DOMAIN_CONTROLLER_NOT_FOUND		=	1908,
725 	ERROR_ACCOUNT_LOCKED_OUT				=	1909,
726 	ERROR_NO_BROWSER_SERVERS_FOUND			=	6118,
727 	ERROR_INVALID_PIXEL_FORMAT				=	2000,
728 	ERROR_BAD_DRIVER						=	2001,
729 	ERROR_INVALID_WINDOW_STYLE				=	2002,
730 	ERROR_METAFILE_NOT_SUPPORTED			=	2003,
731 	ERROR_TRANSFORM_NOT_SUPPORTED			=	2004,
732 	ERROR_CLIPPING_NOT_SUPPORTED			=	2005,
733 	ERROR_UNKNOWN_PRINT_MONITOR				=	3000,
734 	ERROR_PRINTER_DRIVER_IN_USE				=	3001,
735 	ERROR_SPOOL_FILE_NOT_FOUND				=	3002,
736 	ERROR_SPL_NO_STARTDOC					=	3003,
737 	ERROR_SPL_NO_ADDJOB						=	3004,
738 	ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED	=	3005,
739 	ERROR_PRINT_MONITOR_ALREADY_INSTALLED	=	3006,
740 	ERROR_WINS_INTERNAL						=	4000,
741 	ERROR_CAN_NOT_DEL_LOCAL_WINS			=	4001,
742 	ERROR_STATIC_INIT						=	4002,
743 	ERROR_INC_BACKUP						=	4003,
744 	ERROR_FULL_BACKUP						=	4004,
745 	ERROR_REC_NON_EXISTENT					=	4005,
746 	ERROR_RPL_NOT_ALLOWED					=	4006,*/
747 	WSA_OK					=	0,		/* No error */
748 	WSA_INVALID_HANDLE		=	6,		/* Specified event object handle is invalid. */
749 	WSA_NOT_ENOUGH_MEMORY	= 	8,		/* Insufficient memory available. */
750 	WSA_INVALID_PARAMETER 	=	87,		/* One or more parameters are invalid. */
751 	WSA_OPERATION_ABORTED	=	995,	/* Overlapped operation aborted. */
752 	WSA_IO_INCOMPLETE		=	996,	/* Overlapped I/O event object not in signaled state. */
753 	WSA_IO_PENDING			=	997,	/* Overlapped operations will complete later. */
754 	WSAEINTR				=	10004,	/* Interrupted function call. */
755 	WSAEBADF				=	10009,	/* File handle is not valid. */
756 	WSAEACCES				=	10013,	/* Permission denied. */
757 	WSAEFAULT				=	10014,	/* Bad address. */
758 	WSAEINVAL				=	10022,	/* Invalid argument. */
759 	WSAEMFILE				=	10024,	/* Too many open files. */
760 	WSAEWOULDBLOCK			=	10035,	/* Resource temporarily unavailable. */
761 	WSAEINPROGRESS			=	10036,	/* Operation now in progress. */
762 	WSAEALREADY				=	10037,	/* Operation already in progress. */
763 	WSAENOTSOCK				=	10038,	/* Socket operation on nonsocket. */
764 	WSAEDESTADDRREQ			=	10039,	/* Destination address required. */
765 	WSAEMSGSIZE				=	10040,	/* Message too long. */
766 	WSAEPROTOTYPE			=	10041,	/* Protocol wrong type for socket. */
767 	WSAENOPROTOOPT			=	10042,	/* Bad protocol option. */
768 	WSAEPROTONOSUPPORT		=	10043,	/* Protocol not supported. */
769 	WSAESOCKTNOSUPPORT		=	10044,	/* Socket type not supported. */
770 	WSAEOPNOTSUPP			=	10045,	/* Operation not supported. */
771 	WSAEPFNOSUPPORT			=	10046,	/* Protocol family not supported. */
772 	WSAEAFNOSUPPORT			=	10047,	/* Address family not supported by protocol family. */
773 	WSAEADDRINUSE			=	10048,	/* Address already in use. */
774 	WSAEADDRNOTAVAIL		=	10049,	/* Cannot assign requested address. */
775 	WSAENETDOWN				=	10050,	/* Network is down. */
776 	WSAENETUNREACH			=	10051,	/* Network is unreachable. */
777 	WSAENETRESET			=	10052,	/* Network dropped connection on reset. */
778 	WSAECONNABORTED			=	10053,	/* Software caused connection abort. */
779 	WSAECONNRESET			=	10054,	/* Connection reset by peer. */
780 	WSAENOBUFS				=	10055,	/* No buffer space available. */
781 	WSAEISCONN				=	10056,	/* Socket is already connected. */
782 	WSAENOTCONN				=	10057,	/* Socket is not connected. */
783 	WSAESHUTDOWN			=	10058,	/* Cannot send after socket shutdown. */
784 	WSAETOOMANYREFS			=	10059,	/* Too many references. */
785 	WSAETIMEDOUT			=	10060,	/* Connection timed out. */
786 	WSAECONNREFUSED			=	10061,	/* Connection refused. */
787 	WSAELOOP				=	10062,	/* Cannot translate name. */
788 	WSAENAMETOOLONG			=	10063,	/* Name too long. */
789 	WSAEHOSTDOWN			=	10064,	/* Host is down. */
790 	WSAEHOSTUNREACH			=	10065,	/* No route to host. */
791 	WSAENOTEMPTY			=	10066,	/* Directory not empty. */
792 	WSAEPROCLIM				=	10067,	/* Too many processes. */
793 	WSAEUSERS				=	10068,	/* User quota exceeded. */
794 	WSAEDQUOT				=	10069,	/* Disk quota exceeded. */
795 	WSAESTALE				=	10070,	/* Stale file handle reference. */
796 	WSAEREMOTE				=	10071,	/* Item is remote. */
797 	WSASYSNOTREADY			=	10091,	/* Network subsystem is unavailable. */
798 	WSAVERNOTSUPPORTED		=	10092,	/* Winsock.dll version out of range. */
799 	WSANOTINITIALISED		=	10093,	/* Successful WSAStartup not yet performed. */
800 	WSAEDISCON				=	10101,	/* Graceful shutdown in progress. */
801 	WSAENOMORE				=	10102,	/* No more results. */
802 	WSAECANCELLED			=	10103,	/* Call has been canceled. */
803 	WSAEINVALIDPROCTABLE	=	10104,	/* Procedure call table is invalid. */
804 	WSAEINVALIDPROVIDER		=	10105,	/* Service provider is invalid. */
805 	WSAEPROVIDERFAILEDINIT	=	10106,	/* Service provider failed to initialize. */
806 	WSASYSCALLFAILURE		=	10107,	/* System call failure. */
807 	WSASERVICE_NOT_FOUND	=	10108,	/* Service not found. */
808 	WSATYPE_NOT_FOUND		=	10109,	/* Class type not found. */
809 	WSA_E_NO_MORE			=	10110,	/* No more results. */
810 	WSA_E_CANCELLED			=	10111,	/* Call was canceled. */
811 	WSAEREFUSED				=	10112,	/* Database query was refused. */
812 	WSAHOST_NOT_FOUND		=	11001,	/* Host not found. */
813 	WSATRY_AGAIN			=	11002,	/* Nonauthoritative host not found. */
814 	WSANO_RECOVERY			=	11003,	/* This is a nonrecoverable error. */
815 	WSANO_DATA				=	11004,	/* Valid name, no data record of requested type. */
816 	WSA_QOS_RECEIVERS		=	11005,	/* QOS receivers. */
817 	WSA_QOS_SENDERS			=	11006,	/* QOS senders. */
818 	WSA_QOS_NO_SENDERS		=	11007,	/* No QOS senders. */
819 	WSA_QOS_NO_RECEIVERS	=	11008,	/* QOS no receivers. */
820 	WSA_QOS_REQUEST_CONFIRMED	=	11009,	/* QOS request confirmed. */
821 	WSA_QOS_ADMISSION_FAILURE	=	11010,	/* QOS admission error. */
822 	WSA_QOS_POLICY_FAILURE		=	11011,	/* QOS policy failure. */
823 	WSA_QOS_BAD_STYLE			=	11012,	/* QOS bad style. */
824 	WSA_QOS_BAD_OBJECT			=	11013,	/* QOS bad object. */
825 	WSA_QOS_TRAFFIC_CTRL_ERROR	=	11014,	/* QOS traffic control error. */
826 	WSA_QOS_GENERIC_ERROR		=	11015,	/* QOS generic error. */
827 	WSA_QOS_ESERVICETYPE		=	11016,	/* QOS service type error. */
828 	WSA_QOS_EFLOWSPEC			=	11017,	/* QOS flowspec error. */
829 	WSA_QOS_EPROVSPECBUF		=	11018,	/* Invalid QOS provider buffer. */
830 	WSA_QOS_EFILTERSTYLE		=	11019,	/* Invalid QOS filter style. */
831 	WSA_QOS_EFILTERTYPE			=	11020,	/* Invalid QOS filter type. */
832 	WSA_QOS_EFILTERCOUNT		=	11021,	/* Incorrect QOS filter count. */
833 	WSA_QOS_EOBJLENGTH			=	11022,	/* Invalid QOS object length. */
834 	WSA_QOS_EFLOWCOUNT			=	11023,	/* Incorrect QOS flow count. */
835 	WSA_QOS_EUNKOWNPSOBJ		=	11024,	/* Unrecognized QOS object. */
836 	WSA_QOS_EPOLICYOBJ			=	11025,	/* Invalid QOS policy object. */
837 	WSA_QOS_EFLOWDESC			=	11026,	/* Invalid QOS flow descriptor. */
838 	WSA_QOS_EPSFLOWSPEC			=	11027,	/* Invalid QOS provider-specific flowspec. */
839 	WSA_QOS_EPSFILTERSPEC		=	11028,	/* Invalid QOS provider-specific filterspec. */
840 	WSA_QOS_ESDMODEOBJ			=	11029,	/* Invalid QOS shape discard mode object. */
841 	WSA_QOS_ESHAPERATEOBJ		=	11030,	/* Invalid QOS shaping rate object. */
842 	WSA_QOS_RESERVED_PETYPE		=	11031	/* Reserved policy QOS element type. */
843 }
844 
845 static if (is_OSX || is_iOS) enum EPosix : int {
846 
847 	EAI_OVERFLOW	=		-12,	/* Argument buffer overflow.  */
848 	EAI_SYSTEM		=		-11,	/* System error returned in `errno'.  */
849 	EAI_MEMORY		=		-10,	/* Memory allocation failure.  */
850 	EAI_ADDRFAMILY	=		-9,		/* Address family for NAME not supported. */
851 	EAI_SERVICE		=		-8,		/* SERVICE not supported for `ai_socktype'.  */
852 	EAI_SOCKTYPE	=		-7,		/* `ai_socktype' not supported.  */
853 	EAI_FAMILY		=		-6,		/* `ai_family' not supported.  */
854 	EAI_FAIL		=		-4,		/* Non-recoverable failure in name res.  */
855 	EAI_AGAIN		=		-3,		/* Temporary failure in name resolution.  */
856 	EAI_NONAME		=		-2,		/* NAME or SERVICE is unknown.  */
857 	/*EAI_BADFLAGS	=		-1,    	Invalid value for `ai_flags' field.  */
858 	EINVALID		=		-1,
859 	EOK				=		0,
860 	EPERM			=	1,		/* Operation not permitted */
861 	ENOENT			=	2,		/* No such file or directory */
862 	ESRCH			=	3,		/* No such process */
863 	EINTR			=	4,		/* Interrupted system call */
864 	EIO				=	5,		/* Input/output error */
865 	ENXIO			=	6,		/* Device not configured */
866 	E2BIG			=	7,		/* Argument list too long */
867 	ENOEXEC			=	8,		/* Exec format error */
868 	EBADF			=	9,		/* Bad file descriptor */
869 	ECHILD			=	10,		/* No child processes */
870 	EDEADLK			=	11,		/* Resource deadlock avoided */
871 	/* 11 was EAGAIN */
872 	ENOMEM			=	12,		/* Cannot allocate memory */
873 	EACCES			=	13,		/* Permission denied */
874 	EFAULT			=	14,		/* Bad address */
875 	ENOTBLK			=	15,		/* Block device required */
876 	EBUSY			=	16,		/* Device busy */
877 	EEXIST			=	17,		/* File exists */
878 	EXDEV			=	18,		/* Cross-device link */
879 	ENODEV			=	19,		/* Operation not supported by device */
880 	ENOTDIR			=	20,		/* Not a directory */
881 	EISDIR			=	21,		/* Is a directory */
882 	EINVAL			=	22,		/* Invalid argument */
883 	ENFILE			=	23,		/* Too many open files in system */
884 	EMFILE			=	24,		/* Too many open files */
885 	ENOTTY			=	25,		/* Inappropriate ioctl for device */
886 	ETXTBSY			=	26,		/* Text file busy */
887 	EFBIG			=	27,		/* File too large */
888 	ENOSPC			=	28,		/* No space left on device */
889 	ESPIPE			=	29,		/* Illegal seek */
890 	EROFS			=	30,		/* Read-only filesystem */
891 	EMLINK			=	31,		/* Too many links */
892 	EPIPE			=	32,		/* Broken pipe */
893 	/* math software */
894 	EDOM			=	33,		/* Numerical argument out of domain */
895 	ERANGE			=	34,		/* Result too large */
896 
897 	/* non-blocking and interrupt i/o */
898 	EAGAIN			=	35,		/* Resource temporarily unavailable */
899 	EWOULDBLOCK		= 	EAGAIN,	/* Operation would block */
900 	EINPROGRESS		=	36,		/* Operation now in progress */
901 	EALREADY		=	37,		/* Operation already in progress */
902 
903 	/* ipc/network software -- argument errors */
904 	ENOTSOCK		=	38,		/* Socket operation on non-socket */
905 	EDESTADDRREQ	=	39,		/* Destination address required */
906 	EMSGSIZE		=	40,		/* Message too long */
907 	EPROTOTYPE		=	41,		/* Protocol wrong type for socket */
908 	ENOPROTOOPT		=	42,		/* Protocol not available */
909 	EPROTONOSUPPORT	=	43,		/* Protocol not supported */
910 	ESOCKTNOSUPPORT	=	44,		/* Socket type not supported */
911 	EOPNOTSUPP		=	45,		/* Operation not supported */
912 	ENOTSUP			=	EOPNOTSUPP,		/* Operation not supported */
913 	EPFNOSUPPORT	=	46,		/* Protocol family not supported */
914 	EAFNOSUPPORT	=	47,		/* Address family not supported by protocol family */
915 	EADDRINUSE		=	48,		/* Address already in use */
916 	EADDRNOTAVAIL	=	49,		/* Can't assign requested address */
917 
918 	/* ipc/network software -- operational errors */
919 	ENETDOWN		=	50,		/* Network is down */
920 	ENETUNREACH		=	51,		/* Network is unreachable */
921 	ENETRESET		=	52,		/* Network dropped connection on reset */
922 	ECONNABORTED	=	53,		/* Software caused connection abort */
923 	ECONNRESET		=	54,		/* Connection reset by peer */
924 	ENOBUFS			=	55,		/* No buffer space available */
925 	EISCONN			=	56,		/* Socket is already connected */
926 	ENOTCONN		=	57,		/* Socket is not connected */
927 	ESHUTDOWN		=	58,		/* Can't send after socket shutdown */
928 	ETOOMANYREFS	=	59,		/* Too many references: can't splice */
929 	ETIMEDOUT		=	60,		/* Operation timed out */
930 	ECONNREFUSED	=	61,		/* Connection refused */
931 
932 	ELOOP			=	62,		/* Too many levels of symbolic links */
933 	ENAMETOOLONG	=	63,		/* File name too long */
934 
935 	/* should be rearranged */
936 	EHOSTDOWN		=	64,		/* Host is down */
937 	EHOSTUNREACH	=	65,		/* No route to host */
938 	ENOTEMPTY		=	66,		/* Directory not empty */
939 
940 	/* quotas & mush */
941 	EPROCLIM		=	67,		/* Too many processes */
942 	EUSERS			=	68,		/* Too many users */
943 	EDQUOT			=	69,		/* Disc quota exceeded */
944 
945 	/* Network File System */
946 	ESTALE			=	70,		/* Stale NFS file handle */
947 	EREMOTE			=	71,		/* Too many levels of remote in path */
948 	EBADRPC			=	72,		/* RPC struct is bad */
949 	ERPCMISMATCH	=	73,		/* RPC version wrong */
950 	EPROGUNAVAIL	=	74,		/* RPC prog. not avail */
951 	EPROGMISMATCH	=	75,		/* Program version wrong */
952 	EPROCUNAVAIL	=	76,		/* Bad procedure for program */
953 
954 	ENOLCK			=	77,		/* No locks available */
955 	ENOSYS			=	78,		/* Function not implemented */
956 	EFTYPE			=	79,		/* Inappropriate file type or format */
957 	EAUTH			=	80,		/* Authentication error */
958 	ENEEDAUTH		=	81,		/* Need authenticator */
959 	EIDRM			=	82,		/* Identifier removed */
960 	ENOMSG			=	83,		/* No message of desired type */
961 	EOVERFLOW		=	84,		/* Value too large to be stored in data type */
962 	ECANCELED		=	85,		/* Operation canceled */
963 	EILSEQ			=	86,		/* Illegal byte sequence */
964 	ENOATTR			=	87,		/* Attribute not found */
965 
966 	EDOOFUS			=	88,		/* Programming error */
967 
968 	EBADMSG			=	89,		/* Bad message */
969 	EMULTIHOP		=	90,		/* Multihop attempted */
970 	ENOLINK			=	91,		/* Link has been severed */
971 	EPROTO			=	92,		/* Protocol error */
972 	ENOTCAPABLE		=	93,		/* Capabilities insufficient */
973 	ECAPMODE		=	94,		/* Not permitted in capability mode */
974 	ELAST			=	94		/* Must be equal largest errno */
975 }
976 version(linux) enum EPosix : int {
977 
978 	EAI_OVERFLOW	=		-12,	/* Argument buffer overflow.  */
979 	EAI_SYSTEM		=		-11,	/* System error returned in `errno'.  */
980 	EAI_MEMORY		=		-10,	/* Memory allocation failure.  */
981 	EAI_ADDRFAMILY	=		-9,		/* Address family for NAME not supported. */
982 	EAI_SERVICE		=		-8,		/* SERVICE not supported for `ai_socktype'.  */
983 	EAI_SOCKTYPE	=		-7,		/* `ai_socktype' not supported.  */
984 	EAI_FAMILY		=		-6,		/* `ai_family' not supported.  */
985 	EAI_FAIL		=		-4,		/* Non-recoverable failure in name res.  */
986 	EAI_AGAIN		=		-3,		/* Temporary failure in name resolution.  */
987 	EAI_NONAME		=		-2,		/* NAME or SERVICE is unknown.  */
988 	/*EAI_BADFLAGS	=		-1,    	Invalid value for `ai_flags' field.  */
989 	EINVALID		=		-1,
990 	EOK				=		0,
991 	EPERM			=		1,      /* Operation not permitted */
992 	ENOENT			=		2,      /* No such file or directory */
993 	ESRCH			=		3,      /* No such process */
994 	EINTR			=		4,      /* Interrupted system call */
995 	EIO				=		5,      /* I/O error */
996 	ENXIO			=		6,      /* No such device or address */
997 	E2BIG			=		7,      /* Argument list too long */
998 	ENOEXEC			=		8,      /* Exec format error */
999 	EBADF			=		9,      /* Bad file number */
1000 	ECHILD			=		10,      /* No child processes */
1001 	EAGAIN			=		11,      /* Try again */
1002 	ENOMEM			=		12,      /* Out of memory */
1003 	EACCES			=		13,      /* Permission denied */
1004 	EFAULT			=		14,      /* Bad address */
1005 	ENOTBLK			=		15,      /* Block device required */
1006 	EBUSY			=		16,      /* Device or resource busy */
1007 	EEXIST			=		17,      /* File exists */
1008 	EXDEV			=		18,      /* Cross-device link */
1009 	ENODEV			=		19,      /* No such device */
1010 	ENOTDIR			=		20,      /* Not a directory */
1011 	EISDIR			=		21,      /* Is a directory */
1012 	EINVAL			=		22,      /* Invalid argument */
1013 	ENFILE			=		23,      /* File table overflow */
1014 	EMFILE			=		24,      /* Too many open files */
1015 	ENOTTY			=		25,      /* Not a typewriter */
1016 	ETXTBSY			=		26,      /* Text file busy */
1017 	EFBIG			=		27,      /* File too large */
1018 	ENOSPC			=		28,      /* No space left on device */
1019 	ESPIPE			=		29,      /* Illegal seek */
1020 	EROFS			=		30,      /* Read-only file system */
1021 	EMLINK			=		31,      /* Too many links */
1022 	EPIPE			=		32,	     /* Broken pipe */
1023 	EDOM			=		33,      /* Math argument out of domain of func */
1024 	ERANGE			=		34,      /* Math result not representable */
1025 	EDEADLK			=		35,      /* Resource deadlock would occur */
1026 	ENAMETOOLONG	=		36,      /* File name too long */
1027 	ENOLCK			=		37,      /* No record locks available */
1028 	ENOSYS			=		38,      /* Function not implemented */
1029 	ENOTEMPTY		=		39,      /* Directory not empty */
1030 	ELOOP			=		40,      /* Too many symbolic links encountered */
1031 	EWOULDBLOCK		=		EAGAIN,  /* Operation would block */
1032 	ENOMSG			=		42,      /* No message of desired type */
1033 	EIDRM			=		43,      /* Identifier removed */
1034 	ECHRNG			=		44,      /* Channel number out of range */
1035 	EL2NSYNC		=		45,      /* Level 2 not synchronized */
1036 	EL3HLT			=		46,      /* Level 3 halted */
1037 	EL3RST			=		47,      /* Level 3 reset */
1038 	ELNRNG			=		48,      /* Link number out of range */
1039 	EUNATCH			=		49,      /* Protocol driver not attached */
1040 	ENOCSI			=		50,      /* No CSI structure available */
1041 	EL2HLT			=		51,      /* Level 2 halted */
1042 	EBADE			=		52,      /* Invalid exchange */
1043 	EBADR			=		53,      /* Invalid request descriptor */
1044 	EXFULL			=		54,      /* Exchange full */
1045 	ENOANO			=		55,      /* No anode */
1046 	EBADRQC			=		56,      /* Invalid request code */
1047 	EBADSLT			=		57,      /* Invalid slot */
1048 	ESHUTDOWN2		=		58,
1049 	EDEADLOCK		=		EDEADLK,
1050 	EBFONT			=		59,      /* Bad font file format */
1051 	ENOSTR			=		60,      /* Device not a stream */
1052 	ENODATA			=		61,      /* No data available */
1053 	ETIME			=		62,      /* Timer expired */
1054 	ENOSR			=		63,      /* Out of streams resources */
1055 	ENONET			=		64,      /* Machine is not on the network */
1056 	ENOPKG			=		65,      /* Package not installed */
1057 	EREMOTE			=		66,      /* Object is remote */
1058 	ENOLINK			=		67,      /* Link has been severed */
1059 	EADV			=		68,      /* Advertise error */
1060 	ESRMNT			=		69,      /* Srmount error */
1061 	ECOMM			=		70,      /* Communication error on send */
1062 	EPROTO			=		71,      /* Protocol error */
1063 	EMULTIHOP		=		72,      /* Multihop attempted */
1064 	EDOTDOT			=		73,      /* RFS specific error */
1065 	EBADMSG			=		74,      /* Not a data message */
1066 	EOVERFLOW		=		75,      /* Value too large for defined data type */
1067 	ENOTUNIQ		=		76,      /* Name not unique on network */
1068 	EBADFD			=		77,      /* File descriptor in bad state */
1069 	EREMCHG			=		78,      /* Remote address changed */
1070 	ELIBACC			=		79,      /* Can not access a needed shared library */
1071 	ELIBBAD			=		80,      /* Accessing a corrupted shared library */
1072 	ELIBSCN			=		81,      /* .lib section in a.out corrupted */
1073 	ELIBMAX			=		82,      /* Attempting to link in too many shared libraries */
1074 	ELIBEXEC		=		83,      /* Cannot exec a shared library directly */
1075 	EILSEQ			=		84,      /* Illegal byte sequence */
1076 	ERESTART		=		85,      /* Interrupted system call should be restarted */
1077 	ESTRPIPE		=		86,      /* Streams pipe error */
1078 	EUSERS			=		87,      /* Too many users */
1079 	ENOTSOCK		=		88,      /* Socket operation on non-socket */
1080 	EDESTADDRREQ	=		89,      /* Destination address required */
1081 	EMSGSIZE		=		90,      /* Message too long */
1082 	EPROTOTYPE		=		91,      /* Protocol wrong type for socket */
1083 	ENOPROTOOPT		=		92,      /* Protocol not available */
1084 	EPROTONOSUPPORT	=		93,      /* Protocol not supported */
1085 	ESOCKTNOSUPPORT	=		94,      /* Socket type not supported */
1086 	EOPNOTSUPP		=		95,      /* Operation not supported on transport endpoint */
1087 	EPFNOSUPPORT	=		96,      /* Protocol family not supported */
1088 	EAFNOSUPPORT	=		97,      /* Address family not supported by protocol */
1089 	EADDRINUSE		=		98,      /* Address already in use */
1090 	EADDRNOTAVAIL	=		99,      /* Cannot assign requested address */
1091 	ENETDOWN		=		100,     /* Network is down */
1092 	ENETUNREACH		=		101,     /* Network is unreachable */
1093 	ENETRESET		=		102,     /* Network dropped connection because of reset */
1094 	ECONNABORTED	=		103,     /* Software caused connection abort */
1095 	ECONNRESET		=		104,     /* Connection reset by peer */
1096 	ENOBUFS			=		105,     /* No buffer space available */
1097 	EISCONN			=		106,     /* Transport endpoint is already connected */
1098 	ENOTCONN		=		107,     /* Transport endpoint is not connected */
1099 	ESHUTDOWN		=		108,     /* Cannot send after transport endpoint shutdown */
1100 	ETOOMANYREFS	=		109,     /* Too many references: cannot splice */
1101 	ETIMEDOUT		=		110,     /* Connection timed out */
1102 	ECONNREFUSED	=		111,     /* Connection refused */
1103 	EHOSTDOWN		=		112,     /* Host is down */
1104 	EHOSTUNREACH	=		113,     /* No route to host */
1105 	EALREADY		=		114,     /* Operation already in progress */
1106 	EINPROGRESS		=		115,     /* Operation now in progress */
1107 	ESTALE			=		116,     /* Stale file handle */
1108 	EUCLEAN			=		117,     /* Structure needs cleaning */
1109 	ENOTNAM			=		118,     /* Not a XENIX named type file */
1110 	ENAVAIL			=		119,     /* No XENIX semaphores available */
1111 	EISNAM			=		120,     /* Is a named type file */
1112 	EREMOTEIO		=		121,     /* Remote I/O error */
1113 	EDQUOT			=		122,     /* Quota exceeded */
1114 	ENOMEDIUM		=		123,     /* No medium found */
1115 	EMEDIUMTYPE		=		124,     /* Wrong medium type */
1116 	ECANCELED		=		125,     /* Operation Canceled */
1117 	ENOKEY			=		126,     /* Required key not available */
1118 	EKEYEXPIRED		=		127,     /* Key has expired */
1119 	EKEYREVOKED		=		128,     /* Key has been revoked */
1120 	EKEYREJECTED	=		129,     /* Key was rejected by service */
1121 	/* for robust mutexes */
1122 	EOWNERDEAD		=		130,     /* Owner died */
1123 	ENOTRECOVERABLE	=		131,     /* State not recoverable */
1124 	ERFKILL			=		132,     /* Operation not possible due to RF-kill */
1125 	EHWPOISON		=		133     /* Memory page has hardware error */
1126 }
1127 
1128 string[EWIN] EWSAMessages;
1129 version(Posix) string[EPosix] EPosixMessages;
1130 
1131 static this() {
1132 	with (EWIN){
1133 		EWSAMessages = [
1134 			WSA_OK					:	"No error",
1135 			WSA_INVALID_HANDLE		:	"Specified event object handle is invalid.",
1136 			WSA_NOT_ENOUGH_MEMORY	: 	"Insufficient memory available.",
1137 			WSA_INVALID_PARAMETER 	:	"One or more parameters are invalid.",
1138 			WSA_OPERATION_ABORTED	:	"Overlapped operation aborted.",
1139 			WSA_IO_INCOMPLETE		:	"Overlapped I/O event object not in signaled state.",
1140 			WSA_IO_PENDING			:	"Overlapped operations will complete later.",
1141 			WSAEINTR				:	"Interrupted function call.",
1142 			WSAEBADF				:	"File handle is not valid.",
1143 			WSAEACCES				:	"Permission denied.",
1144 			WSAEFAULT				:	"Bad address.",
1145 			WSAEINVAL				:	"Invalid argument.",
1146 			WSAEMFILE				:	"Too many open files.",
1147 			WSAEWOULDBLOCK			:	"Resource temporarily unavailable.",
1148 			WSAEINPROGRESS			:	"Operation now in progress.",
1149 			WSAEALREADY				:	"Operation already in progress.",
1150 			WSAENOTSOCK				:	"Socket operation on nonsocket.",
1151 			WSAEDESTADDRREQ			:	"Destination address required.",
1152 			WSAEMSGSIZE				:	"Message too long.",
1153 			WSAEPROTOTYPE			:	"Protocol wrong type for socket.",
1154 			WSAENOPROTOOPT			:	"Bad protocol option.",
1155 			WSAEPROTONOSUPPORT		:	"Protocol not supported.",
1156 			WSAESOCKTNOSUPPORT		:	"Socket type not supported.",
1157 			WSAEOPNOTSUPP			:	"Operation not supported.",
1158 			WSAEPFNOSUPPORT			:	"Protocol family not supported.",
1159 			WSAEAFNOSUPPORT			:	"Address family not supported by protocol family.",
1160 			WSAEADDRINUSE			:	"Address already in use.",
1161 			WSAEADDRNOTAVAIL		:	"Cannot assign requested address.",
1162 			WSAENETDOWN				:	"Network is down.",
1163 			WSAENETUNREACH			:	"Network is unreachable.",
1164 			WSAENETRESET			:	"Network dropped connection on reset.",
1165 			WSAECONNABORTED			:	"Software caused connection abort.",
1166 			WSAECONNRESET			:	"Connection reset by peer.",
1167 			WSAENOBUFS				:	"No buffer space available.",
1168 			WSAEISCONN				:	"Socket is already connected.",
1169 			WSAENOTCONN				:	"Socket is not connected.",
1170 			WSAESHUTDOWN			:	"Cannot send after socket shutdown.",
1171 			WSAETOOMANYREFS			:	"Too many references.",
1172 			WSAETIMEDOUT			:	"Connection timed out.",
1173 			WSAECONNREFUSED			:	"Connection refused.",
1174 			WSAELOOP				:	"Cannot translate name.",
1175 			WSAENAMETOOLONG			:	"Name too long.",
1176 			WSAEHOSTDOWN			:	"Host is down.",
1177 			WSAEHOSTUNREACH			:	"No route to host.",
1178 			WSAENOTEMPTY			:	"Directory not empty.",
1179 			WSAEPROCLIM				:	"Too many processes.",
1180 			WSAEUSERS				:	"User quota exceeded.",
1181 			WSAEDQUOT				:	"Disk quota exceeded.",
1182 			WSAESTALE				:	"Stale file handle reference.",
1183 			WSAEREMOTE				:	"Item is remote.",
1184 			WSASYSNOTREADY			:	"Network subsystem is unavailable.",
1185 			WSAVERNOTSUPPORTED		:	"Winsock.dll version out of range.",
1186 			WSANOTINITIALISED		:	"Successful WSAStartup not yet performed.",
1187 			WSAEDISCON				:	"Graceful shutdown in progress.",
1188 			WSAENOMORE				:	"No more results.",
1189 			WSAECANCELLED			:	"Call has been canceled.",
1190 			WSAEINVALIDPROCTABLE	:	"Procedure call table is invalid.",
1191 			WSAEINVALIDPROVIDER		:	"Service provider is invalid.",
1192 			WSAEPROVIDERFAILEDINIT	:	"Service provider failed to initialize.",
1193 			WSASYSCALLFAILURE		:	"System call failure.",
1194 			WSASERVICE_NOT_FOUND	:	"Service not found.",
1195 			WSATYPE_NOT_FOUND		:	"Class type not found.",
1196 			WSA_E_NO_MORE			:	"No more results.",
1197 			WSA_E_CANCELLED			:	"Call was canceled.",
1198 			WSAEREFUSED				:	"Database query was refused.",
1199 			WSAHOST_NOT_FOUND		:	"Host not found.",
1200 			WSATRY_AGAIN			:	"Nonauthoritative host not found.",
1201 			WSANO_RECOVERY			:	"This is a nonrecoverable error.",
1202 			WSANO_DATA				:	"Valid name, no data record of requested type."/*,
1203 			WSA_QOS_RECEIVERS		:	"QOS receivers.",
1204 			WSA_QOS_SENDERS			:	"QOS senders.",
1205 			WSA_QOS_NO_SENDERS		:	"No QOS senders.",
1206 			WSA_QOS_NO_RECEIVERS	:	"QOS no receivers.",
1207 			WSA_QOS_REQUEST_CONFIRMED	:	"QOS request confirmed.",
1208 			WSA_QOS_ADMISSION_FAILURE	:	"QOS admission error.",
1209 			WSA_QOS_POLICY_FAILURE		:	"QOS policy failure.",
1210 			WSA_QOS_BAD_STYLE			:	"QOS bad style.",
1211 			WSA_QOS_BAD_OBJECT			:	"QOS bad object.",
1212 			WSA_QOS_TRAFFIC_CTRL_ERROR	:	"QOS traffic control error.",
1213 			WSA_QOS_GENERIC_ERROR		:	"QOS generic error.",
1214 			WSA_QOS_ESERVICETYPE		:	"QOS service type error.",
1215 			WSA_QOS_EFLOWSPEC			:	"QOS flowspec error.",
1216 			WSA_QOS_EPROVSPECBUF		:	"Invalid QOS provider buffer.",
1217 			WSA_QOS_EFILTERSTYLE		:	"Invalid QOS filter style.",
1218 			WSA_QOS_EFILTERTYPE			:	"Invalid QOS filter type.",
1219 			WSA_QOS_EFILTERCOUNT		:	"Incorrect QOS filter count.",
1220 			WSA_QOS_EOBJLENGTH			:	"Invalid QOS object length.",
1221 			WSA_QOS_EFLOWCOUNT			:	"Incorrect QOS flow count.",
1222 			WSA_QOS_EUNKOWNPSOBJ		:	"Unrecognized QOS object.",
1223 			WSA_QOS_EPOLICYOBJ			:	"Invalid QOS policy object.",
1224 			WSA_QOS_EFLOWDESC			:	"Invalid QOS flow descriptor.",
1225 			WSA_QOS_EPSFLOWSPEC			:	"Invalid QOS provider-specific flowspec.",
1226 			WSA_QOS_EPSFILTERSPEC		:	"Invalid QOS provider-specific filterspec.",
1227 			WSA_QOS_ESDMODEOBJ			:	"Invalid QOS shape discard mode object.",
1228 			WSA_QOS_ESHAPERATEOBJ		:	"Invalid QOS shaping rate object.",
1229 			WSA_QOS_RESERVED_PETYPE		:	"Reserved policy QOS element type."*/
1230 		];
1231 	}
1232 
1233 	version(Posix) with (EPosix){
1234 		EPosixMessages = [
1235 			EAI_OVERFLOW	:		"Argument buffer overflow.",
1236 			EAI_SYSTEM		:		"System error returned in `errno'.",
1237 			EAI_MEMORY		:		"Memory allocation failure. ",
1238 			EAI_ADDRFAMILY	:		"Address family for NAME not supported.",
1239 			EAI_SERVICE		:		"SERVICE not supported for `ai_socktype'.",
1240 			EAI_SOCKTYPE	:		"`ai_socktype' not supported.",
1241 			EAI_FAMILY		:		"`ai_family' not supported.",
1242 			EAI_FAIL		:		"Non-recoverable failure in name res.",
1243 			EAI_AGAIN		:		"Temporary failure in name resolution.",
1244 			EAI_NONAME		:		"NAME or SERVICE is unknown.",
1245 			EINVALID		:		"Invalid arguments",
1246 			EPERM			:		"Operation not permitted",
1247 			ENOENT			:		"No such file or directory",
1248 			ESRCH			:		"No such process",
1249 			EINTR			:		"Interrupted system call",
1250 			EIO				:		"I/O error",
1251 			ENXIO			:		"No such device or address",
1252 			E2BIG			:		"Argument list too long",
1253 			ENOEXEC			:		"Exec format error",
1254 			EBADF			:		"Bad file number",
1255 			ECHILD			:		"No child processes",
1256 			EAGAIN			:		"Try again",
1257 			ENOMEM			:		"Out of memory",
1258 			EACCES			:		"Permission denied",
1259 			EFAULT			:		"Bad address",
1260 			ENOTBLK			:		"Block device required",
1261 			EBUSY			:		"Device or resource busy",
1262 			EEXIST			:		"File exists",
1263 			EXDEV			:		"Cross-device link",
1264 			ENODEV			:		"No such device",
1265 			ENOTDIR			:		"Not a directory",
1266 			EISDIR			:		"Is a directory",
1267 			EINVAL			:		"Invalid argument",
1268 			ENFILE			:		"File table overflow",
1269 			EMFILE			:		"Too many open files",
1270 			ENOTTY			:		"Not a typewriter",
1271 			ETXTBSY			:		"Text file busy",
1272 			EFBIG			:		"File too large",
1273 			ENOSPC			:		"No space left on device",
1274 			ESPIPE			:		"Illegal seek",
1275 			EROFS			:		"Read-only file system",
1276 			EMLINK			:		"Too many links",
1277 			EPIPE			:		"Broken pipe",
1278 			EDOM			:		"Math argument out of domain of func",
1279 			ERANGE			:		"Math result not representable",
1280 			EDEADLK			:		"Resource deadlock would occur",
1281 			ENAMETOOLONG	:		"File name too long",
1282 			ENOLCK			:		"No record locks available",
1283 			ENOSYS			:		"Function not implemented",
1284 			ENOTEMPTY		:		"Directory not empty",
1285 			ELOOP			:		"Too many symbolic links encountered",
1286 			EWOULDBLOCK		:		"Operation would block",
1287 			ENOMSG			:		"No message of desired type",
1288 			EIDRM			:		"Identifier removed",
1289 /*			ECHRNG			:		"Channel number out of range",
1290 			EL2NSYNC		:		"Level 2 not synchronized",
1291 			EL3HLT			:		"Level 3 halted",
1292 			EL3RST			:		"Level 3 reset",
1293 			ELNRNG			:		"Link number out of range",
1294 			EUNATCH			:		"Protocol driver not attached",
1295 			ENOCSI			:		"No CSI structure available",
1296 			EL2HLT			:		"Level 2 halted",
1297 			EBADE			:		"Invalid exchange",
1298 			EBADR			:		"Invalid request descriptor",
1299 			EXFULL			:		"Exchange full",
1300 			ENOANO			:		"No anode",
1301 			EBADRQC			:		"Invalid request code",
1302 			EBADSLT			:		"Invalid slot",
1303 			EDEADLOCK		:		"Resource deadlock would occur",
1304 			EBFONT			:		"Bad font file format",
1305 			ENOSTR			:		"Device not a stream",
1306 			ENODATA			:		"No data available",
1307 			ETIME			:		"Timer expired",
1308 			ENOSR			:		"Out of streams resources",
1309 			ENONET			:		"Machine is not on the network",*/
1310 //			ENOPKG			:		"Package not installed",
1311 			EREMOTE			:		"Object is remote",
1312 			ENOLINK			:		"Link has been severed",
1313 //			EADV			:		"Advertise error",
1314 //			ESRMNT			:		"Srmount error",
1315 //			ECOMM			:		"Communication error on send",
1316 			EPROTO			:		"Protocol error",
1317 			EMULTIHOP		:		"Multihop attempted",
1318 //			EDOTDOT			:		"RFS specific error",
1319 			EBADMSG			:		"Not a data message",
1320 			EOVERFLOW		:		"Value too large for defined data type",
1321 //			ENOTUNIQ		:		"Name not unique on network",
1322 //			EBADFD			:		"File descriptor in bad state",
1323 //			EREMCHG			:		"Remote address changed",
1324 //			ELIBACC			:		"Can not access a needed shared library",
1325 //			ELIBBAD			:		"Accessing a corrupted shared library",
1326 //			ELIBSCN			:		".lib section in a.out corrupted",
1327 //			ELIBMAX			:		"Attempting to link in too many shared libraries",
1328 //			ELIBEXEC		:		"Cannot exec a shared library directly",
1329 			EILSEQ			:		"Illegal byte sequence",
1330 //			ERESTART		:		"Interrupted system call should be restarted",
1331 //			ESTRPIPE		:		"Streams pipe error",
1332 			EUSERS			:		"Too many users",
1333 			ENOTSOCK		:		"Socket operation on non-socket",
1334 			EDESTADDRREQ	:		"Destination address required",
1335 			EMSGSIZE		:		"Message too long",
1336 			EPROTOTYPE		:		"Protocol wrong type for socket",
1337 			ENOPROTOOPT		:		"Protocol not available",
1338 			EPROTONOSUPPORT	:		"Protocol not supported",
1339 			ESOCKTNOSUPPORT	:		"Socket type not supported",
1340 			EOPNOTSUPP		:		"Operation not supported on transport endpoint",
1341 			EPFNOSUPPORT	:		"Protocol family not supported",
1342 			EAFNOSUPPORT	:		"Address family not supported by protocol",
1343 			EADDRINUSE		:		"Address already in use",
1344 			EADDRNOTAVAIL	:		"Cannot assign requested address",
1345 			ENETDOWN		:		"Network is down",
1346 			ENETUNREACH		:		"Network is unreachable",
1347 			ENETRESET		:		"Network dropped connection because of reset",
1348 			ECONNABORTED	:		"Software caused connection abort",
1349 			ECONNRESET		:		"Connection reset by peer",
1350 			ENOBUFS			:		"No buffer space available",
1351 			EISCONN			:		"Transport endpoint is already connected",
1352 			ENOTCONN		:		"Transport endpoint is not connected",
1353 			ESHUTDOWN		:		"Cannot send after transport endpoint shutdown",
1354 			ETOOMANYREFS	:		"Too many references: cannot splice",
1355 			ETIMEDOUT		:		"Connection timed out",
1356 			ECONNREFUSED	:		"Connection refused",
1357 			EHOSTDOWN		:		"Host is down",
1358 			EHOSTUNREACH	:		"No route to host",
1359 			EALREADY		:		"Operation already in progress",
1360 			EINPROGRESS		:		"Operation now in progress",
1361 			ESTALE			:		"Stale file handle",
1362 /*			EUCLEAN			:		"Structure needs cleaning",
1363 			ENOTNAM			:		"Not a XENIX named type file",
1364 			ENAVAIL			:		"No XENIX semaphores available",
1365 			EISNAM			:		"Is a named type file",
1366 			EREMOTEIO		:		"Remote I/O error",
1367 			EDQUOT			:		"Quota exceeded",
1368 			ENOMEDIUM		:		"No medium found",
1369 			EMEDIUMTYPE		:		"Wrong medium type",
1370 */			ECANCELED		:		"Operation Canceled"
1371 /*			ENOKEY			:		"Required key not available",
1372 			EKEYEXPIRED		:		"Key has expired",
1373 			EKEYREVOKED		:		"Key has been revoked",
1374 			EKEYREJECTED	:		"Key was rejected by service",
1375 
1376 			EOWNERDEAD		:		"Owner died",
1377 			ENOTRECOVERABLE	:		"State not recoverable",
1378 			ERFKILL			:		"Operation not possible due to RF-kill",
1379 			EHWPOISON		:		"Memory page has hardware error"
1380 */		];
1381 	}
1382 }