MODULE WinNet ["MPR.dll"];
(**
	project	= "BlackBox"
	organization	= "www.oberon.ch"
	contributors	= "Oberon microsystems"
	version	= "System/Rsrc/About"
	copyright	= "System/Rsrc/About"
	license	= "Docu/BB-License"
	changes	= "
	- 20151013, center #78, fixing type of WinNet.hostent.h_addr_list
	"
	issues	= "
	- ...
	"

**)

	IMPORT WinApi;

	CONST (* macros *)
		INVALID_SOCKET* = -1;
		WNNC_NET_MSNET* = 65536;
		WNNC_NET_LANMAN* = 131072;
		WNNC_NET_NETWARE* = 196608;
		WNNC_NET_VINES* = 262144;
		WNNC_NET_10NET* = 327680;
		WNNC_NET_LOCUS* = 393216;
		WNNC_NET_SUN_PC_NFS* = 458752;
		WNNC_NET_LANSTEP* = 524288;
		WNNC_NET_9TILES* = 589824;
		WNNC_NET_LANTASTIC* = 655360;
		WNNC_NET_AS400* = 720896;
		WNNC_NET_FTP_NFS* = 786432;
		WNNC_NET_PATHWORKS* = 851968;
		WNNC_NET_LIFENET* = 917504;
		WNNC_NET_POWERLAN* = 983040;
		WNNC_NET_BWNFS* = 1048576;
		WNNC_NET_COGENT* = 1114112;
		WNNC_NET_FARALLON* = 1179648;
		WNNC_NET_APPLETALK* = 1245184;
		RESOURCE_CONNECTED* = 1;
		RESOURCE_GLOBALNET* = 2;
		RESOURCE_REMEMBERED* = 3;
		RESOURCE_RECENT* = 4;
		RESOURCE_CONTEXT* = 5;
		RESOURCETYPE_ANY* = 0;
		RESOURCETYPE_DISK* = 1;
		RESOURCETYPE_PRINT* = 2;
		RESOURCETYPE_RESERVED* = 8;
		RESOURCETYPE_UNKNOWN* = -1;
		RESOURCEUSAGE_CONNECTABLE* = 1;
		RESOURCEUSAGE_CONTAINER* = 2;
		RESOURCEUSAGE_NOLOCALDEVICE* = 4;
		RESOURCEUSAGE_SIBLING* = 8;
		RESOURCEUSAGE_ALL* = 3;
		RESOURCEUSAGE_RESERVED* = 80000000H;
		RESOURCEDISPLAYTYPE_GENERIC* = 0;
		RESOURCEDISPLAYTYPE_DOMAIN* = 1;
		RESOURCEDISPLAYTYPE_SERVER* = 2;
		RESOURCEDISPLAYTYPE_SHARE* = 3;
		RESOURCEDISPLAYTYPE_FILE* = 4;
		RESOURCEDISPLAYTYPE_GROUP* = 5;
		RESOURCEDISPLAYTYPE_NETWORK* = 6;
		RESOURCEDISPLAYTYPE_ROOT* = 7;
		RESOURCEDISPLAYTYPE_SHAREADMIN* = 8;
		RESOURCEDISPLAYTYPE_DIRECTORY* = 9;
		RESOURCEDISPLAYTYPE_TREE* = 10;
		NETPROPERTY_PERSISTENT* = 1;
		CONNECT_UPDATE_PROFILE* = {0};
		CONNECT_UPDATE_RECENT* = {1};
		CONNECT_TEMPORARY* = {2};
		CONNECT_INTERACTIVE* = {3};
		CONNECT_PROMPT* = {4};
		CONNECT_NEED_DRIVE* = {5};
		CONNECT_REFCOUNT* = {6};
		CONNECT_REDIRECT* = {7};
		CONNECT_LOCALDRIVE* = {8};
		CONNECT_CURRENT_MEDIA* = {9};
		CONNDLG_RO_PATH* = {0};
		CONNDLG_CONN_POINT* = {1};
		CONNDLG_USE_MRU* = {2};
		CONNDLG_HIDE_BOX* = {3};
		CONNDLG_PERSIST* = {4};
		CONNDLG_NOT_PERSIST* = {5};
		DISC_UPDATE_PROFILE* = 1;
		DISC_NO_FORCE* = 64;
		UNIVERSAL_NAME_INFO_LEVEL* = 1;
		REMOTE_NAME_INFO_LEVEL* = 2;
		WNFMT_MULTILINE* = {0};
		WNFMT_ABBREVIATED* = {1};
		WNFMT_INENUM* = {4};
		WNFMT_CONNECTION* = {5};
		NETINFO_DLL16* = {0};
		NETINFO_DISKRED* = {2};
		NETINFO_PRINTERRED* = {3};
		RP_LOGON* = 1;
		RP_INIFILE* = 2;
		PP_DISPLAYERRORS* = 1;
		WN_SUCCESS* = 0;
		WN_NO_ERROR* = 0;
		WN_NOT_SUPPORTED* = 50;
		WN_CANCEL* = 1223;
		WN_RETRY* = 1237;
		WN_NET_ERROR* = 59;
		WN_MORE_DATA* = 234;
		WN_BAD_POINTER* = 487;
		WN_BAD_VALUE* = 87;
		WN_BAD_USER* = 2202;
		WN_BAD_PASSWORD* = 86;
		WN_ACCESS_DENIED* = 5;
		WN_FUNCTION_BUSY* = 170;
		WN_WINDOWS_ERROR* = 59;
		WN_OUT_OF_MEMORY* = 8;
		WN_NO_NETWORK* = 1222;
		WN_EXTENDED_ERROR* = 1208;
		WN_BAD_LEVEL* = 124;
		WN_BAD_HANDLE* = 6;
		WN_NOT_INITIALIZING* = 1247;
		WN_NO_MORE_DEVICES* = 1248;
		WN_NOT_CONNECTED* = 2250;
		WN_OPEN_FILES* = 2401;
		WN_DEVICE_IN_USE* = 2404;
		WN_BAD_NETNAME* = 67;
		WN_BAD_LOCALNAME* = 1200;
		WN_ALREADY_CONNECTED* = 85;
		WN_DEVICE_ERROR* = 31;
		WN_CONNECTION_CLOSED* = 1201;
		WN_NO_NET_OR_BAD_PATH* = 1203;
		WN_BAD_PROVIDER* = 1204;
		WN_CANNOT_OPEN_PROFILE* = 1205;
		WN_BAD_PROFILE* = 1206;
		WN_BAD_DEV_TYPE* = 66;
		WN_DEVICE_ALREADY_REMEMBERED* = 1202;
		WN_NO_MORE_ENTRIES* = 259;
		WN_NOT_CONTAINER* = 1207;
		WN_NOT_AUTHENTICATED* = 1244;
		WN_NOT_LOGGED_ON* = 1245;
		WN_NOT_VALIDATED* = 1311;
		WNCON_FORNETCARD* = 1;
		WNCON_NOTROUTED* = 2;
		WNCON_SLOWLINK* = 4;
		WNCON_DYNAMIC* = 8;
		NCBNAMSZ* = 16;
		MAX_LANA* = 254;
		NAME_FLAGS_MASK* = 135;
		GROUP_NAME* = 128;
		UNIQUE_NAME* = 0;
		REGISTERING* = 0;
		REGISTERED* = 4;
		DEREGISTERED* = 5;
		DUPLICATE* = 6;
		DUPLICATE_DEREG* = 7;
		LISTEN_OUTSTANDING* = 1;
		CALL_PENDING* = 2;
		SESSION_ESTABLISHED* = 3;
		HANGUP_PENDING* = 4;
		HANGUP_COMPLETE* = 5;
		SESSION_ABORTED* = 6;
		ALL_TRANSPORTS* = "M";
		MS_NBF* = "MNBF";
		NCBCALL* = 16;
		NCBLISTEN* = 17;
		NCBHANGUP* = 18;
		NCBSEND* = 20;
		NCBRECV* = 21;
		NCBRECVANY* = 22;
		NCBCHAINSEND* = 23;
		NCBDGSEND* = 32;
		NCBDGRECV* = 33;
		NCBDGSENDBC* = 34;
		NCBDGRECVBC* = 35;
		NCBADDNAME* = 48;
		NCBDELNAME* = 49;
		NCBRESET* = 50;
		NCBASTAT* = 51;
		NCBSSTAT* = 52;
		NCBCANCEL* = 53;
		NCBADDGRNAME* = 54;
		NCBENUM* = 55;
		NCBUNLINK* = 112;
		NCBSENDNA* = 113;
		NCBCHAINSENDNA* = 114;
		NCBLANSTALERT* = 115;
		NCBACTION* = 119;
		NCBFINDNAME* = 120;
		NCBTRACE* = 121;
		ASYNCH* = 128;
		NRC_GOODRET* = 0;
		NRC_BUFLEN* = 1;
		NRC_ILLCMD* = 3;
		NRC_CMDTMO* = 5;
		NRC_INCOMP* = 6;
		NRC_BADDR* = 7;
		NRC_SNUMOUT* = 8;
		NRC_NORES* = 9;
		NRC_SCLOSED* = 10;
		NRC_CMDCAN* = 11;
		NRC_DUPNAME* = 13;
		NRC_NAMTFUL* = 14;
		NRC_ACTSES* = 15;
		NRC_LOCTFUL* = 17;
		NRC_REMTFUL* = 18;
		NRC_ILLNN* = 19;
		NRC_NOCALL* = 20;
		NRC_NOWILD* = 21;
		NRC_INUSE* = 22;
		NRC_NAMERR* = 23;
		NRC_SABORT* = 24;
		NRC_NAMCONF* = 25;
		NRC_IFBUSY* = 33;
		NRC_TOOMANY* = 34;
		NRC_BRIDGE* = 35;
		NRC_CANOCCR* = 36;
		NRC_CANCEL* = 38;
		NRC_DUPENV* = 48;
		NRC_ENVNOTDEF* = 52;
		NRC_OSRESNOTAV* = 53;
		NRC_MAXAPPS* = 54;
		NRC_NOSAPS* = 55;
		NRC_NORESOURCES* = 56;
		NRC_INVADDRESS* = 57;
		NRC_INVDDID* = 59;
		NRC_LOCKFAIL* = 60;
		NRC_OPENERR* = 63;
		NRC_SYSTEM* = 64;
		NRC_PENDING* = 255;
		INCL_WINSOCK_API_PROTOTYPES* = 1;
		INCL_WINSOCK_API_TYPEDEFS* = 0;
		FD_SETSIZE* = 64;
		IOCPARM_MASK* = 127;
		IOC_VOID* = 536870912;
		IOC_OUT* = 1073741824;
		IOC_IN* = 80000000H;
		IOC_INOUT* = -1073741824;
		IPPROTO_IP* = 0;
		IPPROTO_ICMP* = 1;
		IPPROTO_IGMP* = 2;
		IPPROTO_GGP* = 3;
		IPPROTO_TCP* = 6;
		IPPROTO_PUP* = 12;
		IPPROTO_UDP* = 17;
		IPPROTO_IDP* = 22;
		IPPROTO_ND* = 77;
		IPPROTO_RAW* = 255;
		IPPROTO_MAX* = 256;
		IPPORT_ECHO* = 7;
		IPPORT_DISCARD* = 9;
		IPPORT_SYSTAT* = 11;
		IPPORT_DAYTIME* = 13;
		IPPORT_NETSTAT* = 15;
		IPPORT_FTP* = 21;
		IPPORT_TELNET* = 23;
		IPPORT_SMTP* = 25;
		IPPORT_TIMESERVER* = 37;
		IPPORT_NAMESERVER* = 42;
		IPPORT_WHOIS* = 43;
		IPPORT_MTP* = 57;
		IPPORT_TFTP* = 69;
		IPPORT_RJE* = 77;
		IPPORT_FINGER* = 79;
		IPPORT_TTYLINK* = 87;
		IPPORT_SUPDUP* = 95;
		IPPORT_EXECSERVER* = 512;
		IPPORT_LOGINSERVER* = 513;
		IPPORT_CMDSERVER* = 514;
		IPPORT_EFSSERVER* = 520;
		IPPORT_BIFFUDP* = 512;
		IPPORT_WHOSERVER* = 513;
		IPPORT_ROUTESERVER* = 520;
		IPPORT_RESERVED* = 1024;
		IMPLINK_IP* = 155;
		IMPLINK_LOWEXPER* = 156;
		IMPLINK_HIGHEXPER* = 158;
		IN_CLASSA_NET* = -16777216;
		IN_CLASSA_NSHIFT* = 24;
		IN_CLASSA_HOST* = 16777215;
		IN_CLASSA_MAX* = 128;
		IN_CLASSB_NET* = -65536;
		IN_CLASSB_NSHIFT* = 16;
		IN_CLASSB_HOST* = 65535;
		IN_CLASSB_MAX* = 65536;
		IN_CLASSC_NET* = -256;
		IN_CLASSC_NSHIFT* = 8;
		IN_CLASSC_HOST* = 255;
		IN_CLASSD_NET* = -268435456;
		IN_CLASSD_NSHIFT* = 28;
		IN_CLASSD_HOST* = 268435455;
		INADDR_LOOPBACK* = 2130706433;
		INADDR_NONE* = -1;
		WSADESCRIPTION_LEN* = 256;
		WSASYS_STATUS_LEN* = 128;
		SOCKET_ERROR* = -1;
		SOCK_STREAM* = 1;
		SOCK_DGRAM* = 2;
		SOCK_RAW* = 3;
		SOCK_RDM* = 4;
		SOCK_SEQPACKET* = 5;
		SO_DEBUG* = 1;
		SO_ACCEPTCONN* = 2;
		SO_REUSEADDR* = 4;
		SO_KEEPALIVE* = 8;
		SO_DONTROUTE* = 16;
		SO_BROADCAST* = 32;
		SO_USELOOPBACK* = 64;
		SO_LINGER* = 128;
		SO_OOBINLINE* = 256;
		SO_DONTLINGER* = -129;
		SO_SNDBUF* = 4097;
		SO_RCVBUF* = 4098;
		SO_SNDLOWAT* = 4099;
		SO_RCVLOWAT* = 4100;
		SO_SNDTIMEO* = 4101;
		SO_RCVTIMEO* = 4102;
		SO_ERROR* = 4103;
		SO_TYPE* = 4104;
		SO_GROUP_ID* = 8193;
		SO_GROUP_PRIORITY* = 8194;
		SO_MAX_MSG_SIZE* = 8195;
		SO_PROTOCOL_INFOA* = 8196;
		SO_PROTOCOL_INFOW* = 8197;
		SO_PROTOCOL_INFO* = 8196;
		PVD_CONFIG* = 12289;
		TCP_NODELAY* = 1;
		AF_UNSPEC* = 0;
		AF_UNIX* = 1;
		AF_INET* = 2;
		AF_IMPLINK* = 3;
		AF_PUP* = 4;
		AF_CHAOS* = 5;
		AF_NS* = 6;
		AF_IPX* = 6;
		AF_ISO* = 7;
		AF_OSI* = 7;
		AF_ECMA* = 8;
		AF_DATAKIT* = 9;
		AF_CCITT* = 10;
		AF_SNA* = 11;
		AF_DECnet* = 12;
		AF_DLI* = 13;
		AF_LAT* = 14;
		AF_HYLINK* = 15;
		AF_APPLETALK* = 16;
		AF_NETBIOS* = 17;
		AF_VOICEVIEW* = 18;
		AF_FIREFOX* = 19;
		AF_UNKNOWN1* = 20;
		AF_BAN* = 21;
		AF_ATM* = 22;
		AF_MAX* = 23;
		PF_UNSPEC* = 0;
		PF_UNIX* = 1;
		PF_INET* = 2;
		PF_IMPLINK* = 3;
		PF_PUP* = 4;
		PF_CHAOS* = 5;
		PF_NS* = 6;
		PF_IPX* = 6;
		PF_ISO* = 7;
		PF_OSI* = 7;
		PF_ECMA* = 8;
		PF_DATAKIT* = 9;
		PF_CCITT* = 10;
		PF_SNA* = 11;
		PF_DECnet* = 12;
		PF_DLI* = 13;
		PF_LAT* = 14;
		PF_HYLINK* = 15;
		PF_APPLETALK* = 16;
		PF_VOICEVIEW* = 18;
		PF_FIREFOX* = 19;
		PF_UNKNOWN1* = 20;
		PF_BAN* = 21;
		PF_ATM* = 22;
		PF_MAX* = 23;
		SOL_SOCKET* = 65535;
		SOMAXCONN* = 5;
		MSG_OOB* = 1;
		MSG_PEEK* = 2;
		MSG_DONTROUTE* = 4;
		MSG_PARTIAL* = 32768;
		MSG_INTERRUPT* = 16;
		MSG_MAXIOVLEN* = 16;
		MAXGETHOSTSTRUCT* = 1024;
		FD_READ_BIT* = 0;
		FD_READ* = 1;
		FD_WRITE_BIT* = 1;
		FD_WRITE* = 2;
		FD_OOB_BIT* = 2;
		FD_OOB* = 4;
		FD_ACCEPT_BIT* = 3;
		FD_ACCEPT* = 8;
		FD_CONNECT_BIT* = 4;
		FD_CONNECT* = 16;
		FD_CLOSE_BIT* = 5;
		FD_CLOSE* = 32;
		FD_QOS_BIT* = 6;
		FD_QOS* = 64;
		FD_GROUP_QOS_BIT* = 7;
		FD_GROUP_QOS* = 128;
		FD_MAX_EVENTS* = 8;
		FD_ALL_EVENTS* = 255;
		WSABASEERR* = 10000;
		WSAEINTR* = 10004;
		WSAEBADF* = 10009;
		WSAEACCES* = 10013;
		WSAEFAULT* = 10014;
		WSAEINVAL* = 10022;
		WSAEMFILE* = 10024;
		WSAEWOULDBLOCK* = 10035;
		WSAEINPROGRESS* = 10036;
		WSAEALREADY* = 10037;
		WSAENOTSOCK* = 10038;
		WSAEDESTADDRREQ* = 10039;
		WSAEMSGSIZE* = 10040;
		WSAEPROTOTYPE* = 10041;
		WSAENOPROTOOPT* = 10042;
		WSAEPROTONOSUPPORT* = 10043;
		WSAESOCKTNOSUPPORT* = 10044;
		WSAEOPNOTSUPP* = 10045;
		WSAEPFNOSUPPORT* = 10046;
		WSAEAFNOSUPPORT* = 10047;
		WSAEADDRINUSE* = 10048;
		WSAEADDRNOTAVAIL* = 10049;
		WSAENETDOWN* = 10050;
		WSAENETUNREACH* = 10051;
		WSAENETRESET* = 10052;
		WSAECONNABORTED* = 10053;
		WSAECONNRESET* = 10054;
		WSAENOBUFS* = 10055;
		WSAEISCONN* = 10056;
		WSAENOTCONN* = 10057;
		WSAESHUTDOWN* = 10058;
		WSAETOOMANYREFS* = 10059;
		WSAETIMEDOUT* = 10060;
		WSAECONNREFUSED* = 10061;
		WSAELOOP* = 10062;
		WSAENAMETOOLONG* = 10063;
		WSAEHOSTDOWN* = 10064;
		WSAEHOSTUNREACH* = 10065;
		WSAENOTEMPTY* = 10066;
		WSAEPROCLIM* = 10067;
		WSAEUSERS* = 10068;
		WSAEDQUOT* = 10069;
		WSAESTALE* = 10070;
		WSAEREMOTE* = 10071;
		WSASYSNOTREADY* = 10091;
		WSAVERNOTSUPPORTED* = 10092;
		WSANOTINITIALISED* = 10093;
		WSAEDISCON* = 10101;
		WSAHOST_NOT_FOUND* = 11001;
		HOST_NOT_FOUND* = 11001;
		WSATRY_AGAIN* = 11002;
		TRY_AGAIN* = 11002;
		WSANO_RECOVERY* = 11003;
		NO_RECOVERY* = 11003;
		WSANO_DATA* = 11004;
		NO_DATA* = 11004;
		WSANO_ADDRESS* = 11004;
		NO_ADDRESS* = 11004;
		WSA_IO_PENDING* = 10035;
		WSA_IO_INCOMPLETE* = 10035;
		WSA_INVALID_HANDLE* = 10038;
		WSA_INVALID_PARAMETER* = 10022;
		WSA_NOT_ENOUGH_MEMORY* = 10055;
		WSA_OPERATION_ABORTED* = 10004;
		WSA_MAXIMUM_WAIT_EVENTS* = 64;
		WSA_WAIT_FAILED* = -1;
		WSA_WAIT_EVENT_0* = 0;
		WSA_WAIT_TIMEOUT* = 258;
		WSA_INFINITE* = -1;
		CF_ACCEPT* = 0;
		CF_REJECT* = 1;
		CF_DEFER* = 2;
		SD_RECEIVE* = 0;
		SD_SEND* = 1;
		SD_BOTH* = 2;
		SG_UNCONSTRAINED_GROUP* = 1;
		SG_CONSTRAINED_GROUP* = 2;
		MAX_PROTOCOL_CHAIN* = 8;
		BASE_PROTOCOL* = 1;
		LAYERED_PROTOCOL* = 0;
		WSAPROTOCOL_LEN* = 255;
		XP1_CONNECTIONLESS* = {0};
		XP1_GUARANTEED_DELIVERY* = {1};
		XP1_GUARANTEED_ORDER* = {2};
		XP1_MESSAGE_ORIENTED* = {3};
		XP1_PSEUDO_STREAM* = {4};
		XP1_GRACEFUL_CLOSE* = {5};
		XP1_EXPEDITED_DATA* = {6};
		XP1_CONNECT_DATA* = {7};
		XP1_DISCONNECT_DATA* = {8};
		XP1_SUPPORT_BROADCAST* = {9};
		XP1_SUPPORT_MULTIPOINT* = {10};
		XP1_MULTIPOINT_CONTROL_PLANE* = {11};
		XP1_MULTIPOINT_DATA_PLANE* = {12};
		XP1_QOS_SUPPORTED* = {13};
		XP1_INTERRUPT* = {14};
		XP1_UNI_SEND* = {15};
		XP1_UNI_RECV* = {16};
		XP1_IFS_HANDLES* = {17};
		XP1_PARTIAL_MESSAGE* = {18};
		BIGENDIAN* = 0;
		LITTLEENDIAN* = 1;
		SECURITY_PROTOCOL_NONE* = 0;
		JL_SENDER_ONLY* = 1;
		JL_RECEIVER_ONLY* = 2;
		JL_BOTH* = 4;
		WSA_FLAG_OVERLAPPED* = {0};
		WSA_FLAG_MULTIPOINT_C_ROOT* = {1};
		WSA_FLAG_MULTIPOINT_C_LEAF* = {2};
		WSA_FLAG_MULTIPOINT_D_ROOT* = {3};
		WSA_FLAG_MULTIPOINT_D_LEAF* = {4};
		IOC_UNIX* = 0;
		IOC_WS2* = 134217728;
		IOC_PROTOCOL* = 268435456;
		IOC_VENDOR* = 402653184;
		SIO_ASSOCIATE_HANDLE* = -2013265919;
		SIO_ENABLE_CIRCULAR_QUEUEING* = 671088642;
		SIO_FIND_ROUTE* = 1207959555;
		SIO_FLUSH* = 671088644;
		SIO_GET_BROADCAST_ADDRESS* = 1207959557;
		SIO_GET_EXTENSION_FUNCTION_POINTER* = 1207959558;
		SIO_GET_QOS* = 1207959559;
		SIO_GET_GROUP_QOS* = 1207959560;
		SIO_MULTIPOINT_LOOPBACK* = -2013265911;
		SIO_MULTICAST_SCOPE* = -2013265910;
		SIO_SET_QOS* = -2013265909;
		SIO_SET_GROUP_QOS* = -2013265908;
		SIO_TRANSLATE_HANDLE* = -939524083;
		TH_NETDEV* = 1;
		TH_TAPI* = 2;
		SO_CONNDATA* = 28672;
		SO_CONNOPT* = 28673;
		SO_DISCDATA* = 28674;
		SO_DISCOPT* = 28675;
		SO_CONNDATALEN* = 28676;
		SO_CONNOPTLEN* = 28677;
		SO_DISCDATALEN* = 28678;
		SO_DISCOPTLEN* = 28679;
		SO_OPENTYPE* = 28680;
		SO_SYNCHRONOUS_ALERT* = 16;
		SO_SYNCHRONOUS_NONALERT* = 32;
		SO_MAXDG* = 28681;
		SO_MAXPATHDG* = 28682;
		SO_UPDATE_ACCEPT_CONTEXT* = 28683;
		SO_CONNECT_TIME* = 28684;
		TCP_BSDURGENT* = 28672;
		TF_DISCONNECT* = 1;
		TF_REUSE_SOCKET* = 2;

	CONST (* enumerations *)
		BestEffortService* = 0;
		PredictiveService* = 1;
		GuaranteedService* = 2;

	TYPE
		NETRESOURCEA* = RECORD [untagged]
			dwScope*: INTEGER;
			dwType*: INTEGER;
			dwDisplayType*: INTEGER;
			dwUsage*: INTEGER;
			lpLocalName*: WinApi.PtrSTR;
			lpRemoteName*: WinApi.PtrSTR;
			lpComment*: WinApi.PtrSTR;
			lpProvider*: WinApi.PtrSTR;
		END;
		PtrNETRESOURCEA* = POINTER TO NETRESOURCEA;
		NETRESOURCEW* = RECORD [untagged]
			dwScope*: INTEGER;
			dwType*: INTEGER;
			dwDisplayType*: INTEGER;
			dwUsage*: INTEGER;
			lpLocalName*: WinApi.PtrWSTR;
			lpRemoteName*: WinApi.PtrWSTR;
			lpComment*: WinApi.PtrWSTR;
			lpProvider*: WinApi.PtrWSTR;
		END;
		PtrNETRESOURCEW* = POINTER TO NETRESOURCEW;
		NETRESOURCE* = NETRESOURCEA;
		PtrNETRESOURCE* = PtrNETRESOURCEA;
		CONNECTDLGSTRUCTA* = RECORD [untagged]
			cbStructure*: INTEGER;
			hwndOwner*: WinApi.HWND;
			lpConnRes*: PtrNETRESOURCEA;
			dwFlags*: SET;
			dwDevNum*: INTEGER;
		END;
		PtrCONNECTDLGSTRUCTA* = POINTER TO CONNECTDLGSTRUCTA;
		CONNECTDLGSTRUCTW* = RECORD [untagged]
			cbStructure*: INTEGER;
			hwndOwner*: WinApi.HWND;
			lpConnRes*: PtrNETRESOURCEW;
			dwFlags*: SET;
			dwDevNum*: INTEGER;
		END;
		PtrCONNECTDLGSTRUCTW* = POINTER TO CONNECTDLGSTRUCTW;
		CONNECTDLGSTRUCT* = CONNECTDLGSTRUCTA;
		PtrCONNECTDLGSTRUCT* = PtrCONNECTDLGSTRUCTA;
		DISCDLGSTRUCTA* = RECORD [untagged]
			cbStructure*: INTEGER;
			hwndOwner*: WinApi.HWND;
			lpLocalName*: WinApi.PtrSTR;
			lpRemoteName*: WinApi.PtrSTR;
			dwFlags*: SET;
		END;
		PtrDISCDLGSTRUCTA* = POINTER TO DISCDLGSTRUCTA;
		DISCDLGSTRUCTW* = RECORD [untagged]
			cbStructure*: INTEGER;
			hwndOwner*: WinApi.HWND;
			lpLocalName*: WinApi.PtrWSTR;
			lpRemoteName*: WinApi.PtrWSTR;
			dwFlags*: SET;
		END;
		PtrDISCDLGSTRUCTW* = POINTER TO DISCDLGSTRUCTW;
		DISCDLGSTRUCT* = DISCDLGSTRUCTA;
		PtrDISCDLGSTRUCT* = PtrDISCDLGSTRUCTA;
		UNIVERSAL_NAME_INFOA* = RECORD [untagged]
			lpUniversalName*: WinApi.PtrSTR;
		END;
		PtrUNIVERSAL_NAME_INFOA* = POINTER TO UNIVERSAL_NAME_INFOA;
		UNIVERSAL_NAME_INFOW* = RECORD [untagged]
			lpUniversalName*: WinApi.PtrWSTR;
		END;
		PtrUNIVERSAL_NAME_INFOW* = POINTER TO UNIVERSAL_NAME_INFOW;
		UNIVERSAL_NAME_INFO* = UNIVERSAL_NAME_INFOA;
		PtrUNIVERSAL_NAME_INFO* = PtrUNIVERSAL_NAME_INFOA;
		REMOTE_NAME_INFOA* = RECORD [untagged]
			lpUniversalName*: WinApi.PtrSTR;
			lpConnectionName*: WinApi.PtrSTR;
			lpRemainingPath*: WinApi.PtrSTR;
		END;
		PtrREMOTE_NAME_INFOA* = POINTER TO REMOTE_NAME_INFOA;
		REMOTE_NAME_INFOW* = RECORD [untagged]
			lpUniversalName*: WinApi.PtrWSTR;
			lpConnectionName*: WinApi.PtrWSTR;
			lpRemainingPath*: WinApi.PtrWSTR;
		END;
		PtrREMOTE_NAME_INFOW* = POINTER TO REMOTE_NAME_INFOW;
		REMOTE_NAME_INFO* = REMOTE_NAME_INFOA;
		PtrREMOTE_NAME_INFO* = PtrREMOTE_NAME_INFOA;
		NETINFOSTRUCT* = RECORD [untagged]
			cbStructure*: INTEGER;
			dwProviderVersion*: INTEGER;
			dwStatus*: SET;
			dwCharacteristics*: INTEGER;
			dwHandle*: INTEGER;
			wNetType*: SHORTINT;
			dwPrinters*: INTEGER;
			dwDrives*: INTEGER;
		END;
		PtrNETINFOSTRUCT* = POINTER TO NETINFOSTRUCT;
		FNGETPROFILEPATHA* = PROCEDURE (pszUsername: WinApi.PtrSTR; pszBuffer: WinApi.PtrSTR; cbBuffer: INTEGER): INTEGER;
		FNGETPROFILEPATHW* = PROCEDURE (pszUsername: WinApi.PtrWSTR; pszBuffer: WinApi.PtrWSTR; cbBuffer: INTEGER): INTEGER;
		FNRECONCILEPROFILEA* = PROCEDURE (pszCentralFile: WinApi.PtrSTR; pszLocalFile: WinApi.PtrSTR; dwFlags: SET): INTEGER;
		FNRECONCILEPROFILEW* = PROCEDURE (pszCentralFile: WinApi.PtrWSTR; pszLocalFile: WinApi.PtrWSTR; dwFlags: SET): INTEGER;
		FNPROCESSPOLICIESA* = PROCEDURE (hwnd: WinApi.HWND; pszPath: WinApi.PtrSTR; pszUsername: WinApi.PtrSTR; pszComputerName: WinApi.PtrSTR; dwFlags: SET): WinApi.BOOL;
		FNPROCESSPOLICIESW* = PROCEDURE (hwnd: WinApi.HWND; pszPath: WinApi.PtrWSTR; pszUsername: WinApi.PtrWSTR; pszComputerName: WinApi.PtrWSTR; dwFlags: SET): WinApi.BOOL;
		NETCONNECTINFOSTRUCT* = RECORD [untagged]
			cbStructure*: INTEGER;
			dwFlags*: SET;
			dwSpeed*: INTEGER;
			dwDelay*: INTEGER;
			dwOptDataSize*: INTEGER;
		END;
		PtrNETCONNECTINFOSTRUCT* = POINTER TO NETCONNECTINFOSTRUCT;
		PtrNCB* = POINTER TO NCB;
		NCB* = RECORD [untagged]
			ncb_command*: SHORTCHAR;
			ncb_retcode*: SHORTCHAR;
			ncb_lsn*: SHORTCHAR;
			ncb_num*: SHORTCHAR;
			ncb_buffer*: WinApi.PtrSTR;
			ncb_length*: SHORTINT;
			ncb_callname*: ARRAY [untagged] 16 OF SHORTCHAR;
			ncb_name*: ARRAY [untagged] 16 OF SHORTCHAR;
			ncb_rto*: SHORTCHAR;
			ncb_sto*: SHORTCHAR;
			ncb_post*: PROCEDURE (p0: PtrNCB);
			ncb_lana_num*: SHORTCHAR;
			ncb_cmd_cplt*: SHORTCHAR;
			ncb_reserve*: ARRAY [untagged] 10 OF SHORTCHAR;
			ncb_event*: WinApi.HANDLE;
		END;
		ADAPTER_STATUS* = RECORD [untagged]
			adapter_address*: ARRAY [untagged] 6 OF SHORTCHAR;
			rev_major*: SHORTCHAR;
			reserved0*: SHORTCHAR;
			adapter_type*: SHORTCHAR;
			rev_minor*: SHORTCHAR;
			duration*: SHORTINT;
			frmr_recv*: SHORTINT;
			frmr_xmit*: SHORTINT;
			iframe_recv_err*: SHORTINT;
			xmit_aborts*: SHORTINT;
			xmit_success*: INTEGER;
			recv_success*: INTEGER;
			iframe_xmit_err*: SHORTINT;
			recv_buff_unavail*: SHORTINT;
			t1_timeouts*: SHORTINT;
			ti_timeouts*: SHORTINT;
			reserved1*: INTEGER;
			free_ncbs*: SHORTINT;
			max_cfg_ncbs*: SHORTINT;
			max_ncbs*: SHORTINT;
			xmit_buf_unavail*: SHORTINT;
			max_dgram_size*: SHORTINT;
			pending_sess*: SHORTINT;
			max_cfg_sess*: SHORTINT;
			max_sess*: SHORTINT;
			max_sess_pkt_size*: SHORTINT;
			name_count*: SHORTINT;
		END;
		PtrADAPTER_STATUS* = POINTER TO ADAPTER_STATUS;
		NAME_BUFFER* = RECORD [untagged]
			name*: ARRAY [untagged] 16 OF SHORTCHAR;
			name_num*: SHORTCHAR;
			name_flags*: SHORTCHAR;
		END;
		PtrNAME_BUFFER* = POINTER TO NAME_BUFFER;
		SESSION_HEADER* = RECORD [untagged]
			sess_name*: SHORTCHAR;
			num_sess*: SHORTCHAR;
			rcv_dg_outstanding*: SHORTCHAR;
			rcv_any_outstanding*: SHORTCHAR;
		END;
		PtrSESSION_HEADER* = POINTER TO SESSION_HEADER;
		SESSION_BUFFER* = RECORD [untagged]
			lsn*: SHORTCHAR;
			state*: SHORTCHAR;
			local_name*: ARRAY [untagged] 16 OF SHORTCHAR;
			remote_name*: ARRAY [untagged] 16 OF SHORTCHAR;
			rcvs_outstanding*: SHORTCHAR;
			sends_outstanding*: SHORTCHAR;
		END;
		PtrSESSION_BUFFER* = POINTER TO SESSION_BUFFER;
		LANA_ENUM* = RECORD [untagged]
			length*: SHORTCHAR;
			lana*: ARRAY [untagged] 255 OF SHORTCHAR;
		END;
		PtrLANA_ENUM* = POINTER TO LANA_ENUM;
		FIND_NAME_HEADER* = RECORD [untagged]
			node_count*: SHORTINT;
			reserved*: SHORTCHAR;
			unique_group*: SHORTCHAR;
		END;
		PtrFIND_NAME_HEADER* = POINTER TO FIND_NAME_HEADER;
		FIND_NAME_BUFFER* = RECORD [untagged]
			length*: SHORTCHAR;
			access_control*: SHORTCHAR;
			frame_control*: SHORTCHAR;
			destination_addr*: ARRAY [untagged] 6 OF SHORTCHAR;
			source_addr*: ARRAY [untagged] 6 OF SHORTCHAR;
			routing_info*: ARRAY [untagged] 18 OF SHORTCHAR;
		END;
		PtrFIND_NAME_BUFFER* = POINTER TO FIND_NAME_BUFFER;
		ACTION_HEADER* = RECORD [untagged]
			transport_id*: INTEGER;
			action_code*: SHORTINT;
			reserved*: SHORTINT;
		END;
		PtrACTION_HEADER* = POINTER TO ACTION_HEADER;
		u_char* = SHORTCHAR;
		u_short* = SHORTINT;
		u_int* = INTEGER;
		u_long* = INTEGER;
		SOCKET* = u_int;
		fd_set* = RECORD [untagged]
			fd_count*: u_int;
			fd_array*: ARRAY [untagged] 64 OF SOCKET;
		END;
		Ptrfd_set* = POINTER TO fd_set;
		timeval* = RECORD [untagged]
			tv_sec*: INTEGER;
			tv_usec*: INTEGER;
		END;
		Ptrtimeval* = POINTER TO timeval;
		hostent* = RECORD [untagged]
			h_name*: WinApi.PtrSTR;
			h_aliases*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.PtrSTR;
			h_addrtype*: SHORTINT;
			h_length*: SHORTINT;
			h_addr_list*: POINTER TO (*?*) ARRAY [untagged] OF POINTER TO ARRAY [untagged] OF SHORTCHAR;
		END;
		Ptrhostent* = POINTER TO hostent;
		netent* = RECORD [untagged]
			n_name*: WinApi.PtrSTR;
			n_aliases*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.PtrSTR;
			n_addrtype*: SHORTINT;
			n_net*: u_long;
		END;
		servent* = RECORD [untagged]
			s_name*: WinApi.PtrSTR;
			s_aliases*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.PtrSTR;
			s_port*: SHORTINT;
			s_proto*: WinApi.PtrSTR;
		END;
		Ptrservent* = POINTER TO servent;
		protoent* = RECORD [untagged]
			p_name*: WinApi.PtrSTR;
			p_aliases*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.PtrSTR;
			p_proto*: SHORTINT;
		END;
		Ptrprotoent* = POINTER TO protoent;
		in_addr* = RECORD [untagged]
			S_un*: RECORD [union]
				S_un_b*: RECORD [untagged]
					s_b1*: u_char;
					s_b2*: u_char;
					s_b3*: u_char;
					s_b4*: u_char;
				END;
				S_un_w*: RECORD [untagged]
					s_w1*: u_short;
					s_w2*: u_short;
				END;
				S_addr*: u_long;
			END;
		END;
		Ptrin_addr* = POINTER TO in_addr;
		sockaddr_in* = RECORD [untagged]
			sin_family*: SHORTINT;
			sin_port*: u_short;
			sin_addr*: in_addr;
			sin_zero*: ARRAY [untagged] 8 OF SHORTCHAR;
		END;
		Ptrsockaddr_in* = POINTER TO sockaddr_in;
		WSADATA* = RECORD [untagged]
			wVersion*: SHORTINT;
			wHighVersion*: SHORTINT;
			szDescription*: ARRAY [untagged] 257 OF SHORTCHAR;
			szSystemStatus*: ARRAY [untagged] 129 OF SHORTCHAR;
			iMaxSockets*: SHORTINT;
			iMaxUdpDg*: SHORTINT;
			lpVendorInfo*: WinApi.PtrSTR;
		END;
		PtrWSADATA* = POINTER TO WSADATA;
		sockaddr* = RECORD [untagged]
			sa_family*: u_short;
			sa_data*: ARRAY [untagged] 14 OF SHORTCHAR;
		END;
		Ptrsockaddr* = POINTER TO sockaddr;
		sockproto* = RECORD [untagged]
			sp_family*: u_short;
			sp_protocol*: u_short;
		END;
		linger* = RECORD [untagged]
			l_onoff*: u_short;
			l_linger*: u_short;
		END;
		Ptrlinger* = POINTER TO linger;
		WSAEVENT* = INTEGER;
		WSAOVERLAPPED* = RECORD [untagged]
			Internal*: INTEGER;
			InternalHigh*: INTEGER;
			Offset*: INTEGER;
			OffsetHigh*: INTEGER;
			hEvent*: WSAEVENT;
		END;
		PtrWSAOVERLAPPED* = POINTER TO WSAOVERLAPPED;
		WSABUF* = RECORD [untagged]
			len*: u_long;
			buf*: WinApi.PtrSTR;
		END;
		PtrWSABUF* = POINTER TO WSABUF;
		GUARANTEE* = INTEGER;
		int32* = INTEGER;
		FLOWSPEC* = RECORD [untagged]
			TokenRate*: int32;
			TokenBucketSize*: int32;
			PeakBandwidth*: int32;
			Latency*: int32;
			DelayVariation*: int32;
			LevelOfGuarantee*: GUARANTEE;
			CostOfCall*: int32;
			NetworkAvailability*: int32;
		END;
		PtrFLOWSPEC* = POINTER TO FLOWSPEC;
		QOS* = RECORD [untagged]
			SendingFlowspec*: WSABUF;
			ReceivingFlowspec*: WSABUF;
		END;
		PtrQOS* = POINTER TO QOS;
		GROUP* = INTEGER;
		WSANETWORKEVENTS* = RECORD [untagged]
			lNetworkEvents*: INTEGER;
			iErrorCode*: ARRAY [untagged] 8 OF INTEGER;
		END;
		PtrWSANETWORKEVENTS* = POINTER TO WSANETWORKEVENTS;
		WSAPROTOCOLCHAIN* = RECORD [untagged]
			ChainLen*: INTEGER;
			ChainEntries*: ARRAY [untagged] 8 OF INTEGER;
		END;
		PtrWSAPROTOCOLCHAIN* = POINTER TO WSAPROTOCOLCHAIN;
		WSAPROTOCOL_INFOA* = RECORD [untagged]
			dwServiceFlags1*: INTEGER;
			dwServiceFlags2*: INTEGER;
			dwServiceFlags3*: INTEGER;
			dwServiceFlags4*: INTEGER;
			dwProviderId*: INTEGER;
			dwCatalogEntryId*: INTEGER;
			ProtocolChain*: WSAPROTOCOLCHAIN;
			iVersion*: INTEGER;
			iAddressFamily*: INTEGER;
			iMaxSockAddr*: INTEGER;
			iMinSockAddr*: INTEGER;
			iSocketType*: INTEGER;
			iProtocol*: INTEGER;
			iNetworkByteOrder*: INTEGER;
			iSecurityScheme*: INTEGER;
			bMultiple*: WinApi.BOOL;
			bFirst*: WinApi.BOOL;
			dwMessageSize*: INTEGER;
			dwProviderReserved*: INTEGER;
			szProtocol*: ARRAY [untagged] 256 OF SHORTCHAR;
		END;
		PtrWSAPROTOCOL_INFOA* = POINTER TO WSAPROTOCOL_INFOA;
		WSAPROTOCOL_INFOW* = RECORD [untagged]
			dwServiceFlags1*: INTEGER;
			dwServiceFlags2*: INTEGER;
			dwServiceFlags3*: INTEGER;
			dwServiceFlags4*: INTEGER;
			dwProviderId*: INTEGER;
			dwCatalogEntryId*: INTEGER;
			ProtocolChain*: WSAPROTOCOLCHAIN;
			iVersion*: INTEGER;
			iAddressFamily*: INTEGER;
			iMaxSockAddr*: INTEGER;
			iMinSockAddr*: INTEGER;
			iSocketType*: INTEGER;
			iProtocol*: INTEGER;
			iNetworkByteOrder*: INTEGER;
			iSecurityScheme*: INTEGER;
			bMultiple*: WinApi.BOOL;
			bFirst*: WinApi.BOOL;
			dwMessageSize*: INTEGER;
			dwProviderReserved*: INTEGER;
			szProtocol*: ARRAY [untagged] 256 OF CHAR;
		END;
		PtrWSAPROTOCOL_INFOW* = POINTER TO WSAPROTOCOL_INFOW;
		WSAPROTOCOL_INFO* = WSAPROTOCOL_INFOA;
		PtrWSAPROTOCOL_INFO* = PtrWSAPROTOCOL_INFOA;
		CONDITIONPROC* = PROCEDURE (VAR [nil] lpCallerId: WSABUF; VAR [nil] lpCallerData: WSABUF; VAR [nil] lpSQOS: QOS; VAR [nil] lpGQOS: QOS; VAR [nil] lpCalleeId: WSABUF; VAR [nil] lpCalleeData: WSABUF; VAR [nil] g: GROUP; dwCallbackData: INTEGER): INTEGER;
		WSAOVERLAPPED_COMPLETION_ROUTINE* = PROCEDURE (dwError: INTEGER; cbTransferred: INTEGER; VAR [nil] lpOverlapped: WSAOVERLAPPED; dwFlags: SET);
		SOCKADDR* = sockaddr;
		PtrSOCKADDR* = Ptrsockaddr;
		SOCKADDR_IN* = sockaddr_in;
		PtrSOCKADDR_IN* = Ptrsockaddr_in;
		LINGER* = linger;
		PtrLINGER* = Ptrlinger;
		IN_ADDR* = in_addr;
		PtrIN_ADDR* = Ptrin_addr;
		FD_SET* = fd_set;
		PtrFD_SET* = Ptrfd_set;
		HOSTENT* = hostent;
		PtrHOSTENT* = Ptrhostent;
		SERVENT* = servent;
		PtrSERVENT* = Ptrservent;
		PROTOENT* = protoent;
		PtrPROTOENT* = Ptrprotoent;
		TIMEVAL* = timeval;
		PtrTIMEVAL* = Ptrtimeval;
		TRANSMIT_FILE_BUFFERS* = RECORD [untagged]
			Head*: WinApi.PtrVoid;
			HeadLength*: INTEGER;
			Tail*: WinApi.PtrVoid;
			TailLength*: INTEGER;
		END;
		PtrTRANSMIT_FILE_BUFFERS* = POINTER TO TRANSMIT_FILE_BUFFERS;

	PROCEDURE WNetAddConnectionA* (lpRemoteName: WinApi.PtrSTR; lpPassword: WinApi.PtrSTR; lpLocalName: WinApi.PtrSTR): INTEGER;
	(*END WNetAddConnectionA;*)

	PROCEDURE WNetAddConnectionW* (lpRemoteName: WinApi.PtrWSTR; lpPassword: WinApi.PtrWSTR; lpLocalName: WinApi.PtrWSTR): INTEGER;
	(*END WNetAddConnectionW;*)

	PROCEDURE WNetAddConnection* ["WNetAddConnectionA"] (lpRemoteName: WinApi.PtrSTR; lpPassword: WinApi.PtrSTR; lpLocalName: WinApi.PtrSTR): INTEGER;
	(*END WNetAddConnection;*)

	PROCEDURE WNetAddConnection2A* (VAR [nil] lpNetResource: NETRESOURCEA; lpPassword: WinApi.PtrSTR; lpUserName: WinApi.PtrSTR; dwFlags: SET): INTEGER;
	(*END WNetAddConnection2A;*)

	PROCEDURE WNetAddConnection2W* (VAR [nil] lpNetResource: NETRESOURCEW; lpPassword: WinApi.PtrWSTR; lpUserName: WinApi.PtrWSTR; dwFlags: SET): INTEGER;
	(*END WNetAddConnection2W;*)

	PROCEDURE WNetAddConnection2* ["WNetAddConnection2A"] (VAR [nil] lpNetResource: NETRESOURCEA; lpPassword: WinApi.PtrSTR; lpUserName: WinApi.PtrSTR; dwFlags: SET): INTEGER;
	(*END WNetAddConnection2;*)

	PROCEDURE WNetAddConnection3A* (hwndOwner: WinApi.HWND; VAR [nil] lpNetResource: NETRESOURCEA; lpPassword: WinApi.PtrSTR; lpUserName: WinApi.PtrSTR; dwFlags: SET): INTEGER;
	(*END WNetAddConnection3A;*)

	PROCEDURE WNetAddConnection3W* (hwndOwner: WinApi.HWND; VAR [nil] lpNetResource: NETRESOURCEW; lpPassword: WinApi.PtrWSTR; lpUserName: WinApi.PtrWSTR; dwFlags: SET): INTEGER;
	(*END WNetAddConnection3W;*)

	PROCEDURE WNetAddConnection3* ["WNetAddConnection3A"] (hwndOwner: WinApi.HWND; VAR [nil] lpNetResource: NETRESOURCEA; lpPassword: WinApi.PtrSTR; lpUserName: WinApi.PtrSTR; dwFlags: SET): INTEGER;
	(*END WNetAddConnection3;*)

	PROCEDURE WNetCancelConnectionA* (lpName: WinApi.PtrSTR; fForce: WinApi.BOOL): INTEGER;
	(*END WNetCancelConnectionA;*)

	PROCEDURE WNetCancelConnectionW* (lpName: WinApi.PtrWSTR; fForce: WinApi.BOOL): INTEGER;
	(*END WNetCancelConnectionW;*)

	PROCEDURE WNetCancelConnection* ["WNetCancelConnectionA"] (lpName: WinApi.PtrSTR; fForce: WinApi.BOOL): INTEGER;
	(*END WNetCancelConnection;*)

	PROCEDURE WNetCancelConnection2A* (lpName: WinApi.PtrSTR; dwFlags: SET; fForce: WinApi.BOOL): INTEGER;
	(*END WNetCancelConnection2A;*)

	PROCEDURE WNetCancelConnection2W* (lpName: WinApi.PtrWSTR; dwFlags: SET; fForce: WinApi.BOOL): INTEGER;
	(*END WNetCancelConnection2W;*)

	PROCEDURE WNetCancelConnection2* ["WNetCancelConnection2A"] (lpName: WinApi.PtrSTR; dwFlags: SET; fForce: WinApi.BOOL): INTEGER;
	(*END WNetCancelConnection2;*)

	PROCEDURE WNetGetConnectionA* (lpLocalName: WinApi.PtrSTR; lpRemoteName: WinApi.PtrSTR; VAR [nil] lpnLength: INTEGER): INTEGER;
	(*END WNetGetConnectionA;*)

	PROCEDURE WNetGetConnectionW* (lpLocalName: WinApi.PtrWSTR; lpRemoteName: WinApi.PtrWSTR; VAR [nil] lpnLength: INTEGER): INTEGER;
	(*END WNetGetConnectionW;*)

	PROCEDURE WNetGetConnection* ["WNetGetConnectionA"] (lpLocalName: WinApi.PtrSTR; lpRemoteName: WinApi.PtrSTR; VAR [nil] lpnLength: INTEGER): INTEGER;
	(*END WNetGetConnection;*)

	PROCEDURE WNetUseConnectionA* (hwndOwner: WinApi.HWND; VAR [nil] lpNetResource: NETRESOURCEA; lpUserID: WinApi.PtrSTR; lpPassword: WinApi.PtrSTR; dwFlags: SET; lpAccessName: WinApi.PtrSTR; VAR [nil] lpBufferSize: INTEGER; VAR [nil] lpResult: INTEGER): INTEGER;
	(*END WNetUseConnectionA;*)

	PROCEDURE WNetUseConnectionW* (hwndOwner: WinApi.HWND; VAR [nil] lpNetResource: NETRESOURCEW; lpUserID: WinApi.PtrWSTR; lpPassword: WinApi.PtrWSTR; dwFlags: SET; lpAccessName: WinApi.PtrWSTR; VAR [nil] lpBufferSize: INTEGER; VAR [nil] lpResult: INTEGER): INTEGER;
	(*END WNetUseConnectionW;*)

	PROCEDURE WNetUseConnection* ["WNetUseConnectionA"] (hwndOwner: WinApi.HWND; VAR [nil] lpNetResource: NETRESOURCEA; lpUserID: WinApi.PtrSTR; lpPassword: WinApi.PtrSTR; dwFlags: SET; lpAccessName: WinApi.PtrSTR; VAR [nil] lpBufferSize: INTEGER; VAR [nil] lpResult: INTEGER): INTEGER;
	(*END WNetUseConnection;*)

	PROCEDURE WNetSetConnectionA* (lpName: WinApi.PtrSTR; dwProperties: INTEGER; pvValues: WinApi.PtrVoid): INTEGER;
	(*END WNetSetConnectionA;*)

	PROCEDURE WNetSetConnectionW* (lpName: WinApi.PtrWSTR; dwProperties: INTEGER; pvValues: WinApi.PtrVoid): INTEGER;
	(*END WNetSetConnectionW;*)

	PROCEDURE WNetSetConnection* ["WNetSetConnectionA"] (lpName: WinApi.PtrSTR; dwProperties: INTEGER; pvValues: WinApi.PtrVoid): INTEGER;
	(*END WNetSetConnection;*)

	PROCEDURE WNetConnectionDialog* (hwnd: WinApi.HWND; dwType: INTEGER): INTEGER;
	(*END WNetConnectionDialog;*)

	PROCEDURE WNetDisconnectDialog* (hwnd: WinApi.HWND; dwType: INTEGER): INTEGER;
	(*END WNetDisconnectDialog;*)

	PROCEDURE WNetConnectionDialog1A* (VAR [nil] lpConnDlgStruct: CONNECTDLGSTRUCTA): INTEGER;
	(*END WNetConnectionDialog1A;*)

	PROCEDURE WNetConnectionDialog1W* (VAR [nil] lpConnDlgStruct: CONNECTDLGSTRUCTW): INTEGER;
	(*END WNetConnectionDialog1W;*)

	PROCEDURE WNetConnectionDialog1* ["WNetConnectionDialog1A"] (VAR [nil] lpConnDlgStruct: CONNECTDLGSTRUCTA): INTEGER;
	(*END WNetConnectionDialog1;*)

	PROCEDURE WNetDisconnectDialog1A* (VAR [nil] lpConnDlgStruct: DISCDLGSTRUCTA): INTEGER;
	(*END WNetDisconnectDialog1A;*)

	PROCEDURE WNetDisconnectDialog1W* (VAR [nil] lpConnDlgStruct: DISCDLGSTRUCTW): INTEGER;
	(*END WNetDisconnectDialog1W;*)

	PROCEDURE WNetDisconnectDialog1* ["WNetDisconnectDialog1A"] (VAR [nil] lpConnDlgStruct: DISCDLGSTRUCTA): INTEGER;
	(*END WNetDisconnectDialog1;*)

	PROCEDURE WNetOpenEnumA* (dwScope: INTEGER; dwType: INTEGER; dwUsage: INTEGER; VAR [nil] lpNetResource: NETRESOURCEA; VAR [nil] lphEnum: WinApi.HANDLE): INTEGER;
	(*END WNetOpenEnumA;*)

	PROCEDURE WNetOpenEnumW* (dwScope: INTEGER; dwType: INTEGER; dwUsage: INTEGER; VAR [nil] lpNetResource: NETRESOURCEW; VAR [nil] lphEnum: WinApi.HANDLE): INTEGER;
	(*END WNetOpenEnumW;*)

	PROCEDURE WNetOpenEnum* ["WNetOpenEnumA"] (dwScope: INTEGER; dwType: INTEGER; dwUsage: INTEGER; VAR [nil] lpNetResource: NETRESOURCEA; VAR [nil] lphEnum: WinApi.HANDLE): INTEGER;
	(*END WNetOpenEnum;*)

	PROCEDURE WNetEnumResourceA* (hEnum: WinApi.HANDLE; VAR [nil] lpcCount: INTEGER; lpBuffer: WinApi.PtrVoid; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetEnumResourceA;*)

	PROCEDURE WNetEnumResourceW* (hEnum: WinApi.HANDLE; VAR [nil] lpcCount: INTEGER; lpBuffer: WinApi.PtrVoid; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetEnumResourceW;*)

	PROCEDURE WNetEnumResource* ["WNetEnumResourceA"] (hEnum: WinApi.HANDLE; VAR [nil] lpcCount: INTEGER; lpBuffer: WinApi.PtrVoid; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetEnumResource;*)

	PROCEDURE WNetCloseEnum* (hEnum: WinApi.HANDLE): INTEGER;
	(*END WNetCloseEnum;*)

	PROCEDURE WNetGetResourceParentA* (VAR [nil] lpNetResource: NETRESOURCEA; lpBuffer: WinApi.PtrVoid; VAR [nil] cbBuffer: INTEGER): INTEGER;
	(*END WNetGetResourceParentA;*)

	PROCEDURE WNetGetResourceParentW* (VAR [nil] lpNetResource: NETRESOURCEW; lpBuffer: WinApi.PtrVoid; VAR [nil] cbBuffer: INTEGER): INTEGER;
	(*END WNetGetResourceParentW;*)

	PROCEDURE WNetGetResourceParent* ["WNetGetResourceParentA"] (VAR [nil] lpNetResource: NETRESOURCEA; lpBuffer: WinApi.PtrVoid; VAR [nil] cbBuffer: INTEGER): INTEGER;
	(*END WNetGetResourceParent;*)

	PROCEDURE WNetGetResourceInformationA* (VAR [nil] lpNetResource: NETRESOURCEA; lpBuffer: WinApi.PtrVoid; VAR [nil] cbBuffer: INTEGER; VAR [nil] lplpSystem: WinApi.PtrSTR): INTEGER;
	(*END WNetGetResourceInformationA;*)

	PROCEDURE WNetGetResourceInformationW* (VAR [nil] lpNetResource: NETRESOURCEW; lpBuffer: WinApi.PtrVoid; VAR [nil] cbBuffer: INTEGER; VAR [nil] lplpSystem: WinApi.PtrWSTR): INTEGER;
	(*END WNetGetResourceInformationW;*)

	PROCEDURE WNetGetResourceInformation* ["WNetGetResourceInformationA"] (VAR [nil] lpNetResource: NETRESOURCEA; lpBuffer: WinApi.PtrVoid; VAR [nil] cbBuffer: INTEGER; VAR [nil] lplpSystem: WinApi.PtrSTR): INTEGER;
	(*END WNetGetResourceInformation;*)

	PROCEDURE WNetGetUniversalNameA* (lpLocalPath: WinApi.PtrSTR; dwInfoLevel: INTEGER; lpBuffer: WinApi.PtrVoid; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetGetUniversalNameA;*)

	PROCEDURE WNetGetUniversalNameW* (lpLocalPath: WinApi.PtrWSTR; dwInfoLevel: INTEGER; lpBuffer: WinApi.PtrVoid; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetGetUniversalNameW;*)

	PROCEDURE WNetGetUniversalName* ["WNetGetUniversalNameA"] (lpLocalPath: WinApi.PtrSTR; dwInfoLevel: INTEGER; lpBuffer: WinApi.PtrVoid; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetGetUniversalName;*)

	PROCEDURE WNetGetUserA* (lpName: WinApi.PtrSTR; lpUserName: WinApi.PtrSTR; VAR [nil] lpnLength: INTEGER): INTEGER;
	(*END WNetGetUserA;*)

	PROCEDURE WNetGetUserW* (lpName: WinApi.PtrWSTR; lpUserName: WinApi.PtrWSTR; VAR [nil] lpnLength: INTEGER): INTEGER;
	(*END WNetGetUserW;*)

	PROCEDURE WNetGetUser* ["WNetGetUserA"] (lpName: WinApi.PtrSTR; lpUserName: WinApi.PtrSTR; VAR [nil] lpnLength: INTEGER): INTEGER;
	(*END WNetGetUser;*)

	PROCEDURE WNetGetProviderNameA* (dwNetType: INTEGER; lpProviderName: WinApi.PtrSTR; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetGetProviderNameA;*)

	PROCEDURE WNetGetProviderNameW* (dwNetType: INTEGER; lpProviderName: WinApi.PtrWSTR; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetGetProviderNameW;*)

	PROCEDURE WNetGetProviderName* ["WNetGetProviderNameA"] (dwNetType: INTEGER; lpProviderName: WinApi.PtrSTR; VAR [nil] lpBufferSize: INTEGER): INTEGER;
	(*END WNetGetProviderName;*)

	PROCEDURE WNetGetNetworkInformationA* (lpProvider: WinApi.PtrSTR; VAR [nil] lpNetInfoStruct: NETINFOSTRUCT): INTEGER;
	(*END WNetGetNetworkInformationA;*)

	PROCEDURE WNetGetNetworkInformationW* (lpProvider: WinApi.PtrWSTR; VAR [nil] lpNetInfoStruct: NETINFOSTRUCT): INTEGER;
	(*END WNetGetNetworkInformationW;*)

	PROCEDURE WNetGetNetworkInformation* ["WNetGetNetworkInformationA"] (lpProvider: WinApi.PtrSTR; VAR [nil] lpNetInfoStruct: NETINFOSTRUCT): INTEGER;
	(*END WNetGetNetworkInformation;*)

	PROCEDURE WNetGetLastErrorA* (VAR [nil] lpError: INTEGER; lpErrorBuf: WinApi.PtrSTR; nErrorBufSize: INTEGER; lpNameBuf: WinApi.PtrSTR; nNameBufSize: INTEGER): INTEGER;
	(*END WNetGetLastErrorA;*)

	PROCEDURE WNetGetLastErrorW* (VAR [nil] lpError: INTEGER; lpErrorBuf: WinApi.PtrWSTR; nErrorBufSize: INTEGER; lpNameBuf: WinApi.PtrWSTR; nNameBufSize: INTEGER): INTEGER;
	(*END WNetGetLastErrorW;*)

	PROCEDURE WNetGetLastError* ["WNetGetLastErrorA"] (VAR [nil] lpError: INTEGER; lpErrorBuf: WinApi.PtrSTR; nErrorBufSize: INTEGER; lpNameBuf: WinApi.PtrSTR; nNameBufSize: INTEGER): INTEGER;
	(*END WNetGetLastError;*)

	PROCEDURE MultinetGetConnectionPerformanceA* (VAR [nil] lpNetResource: NETRESOURCEA; VAR [nil] lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): INTEGER;
	(*END MultinetGetConnectionPerformanceA;*)

	PROCEDURE MultinetGetConnectionPerformanceW* (VAR [nil] lpNetResource: NETRESOURCEW; VAR [nil] lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): INTEGER;
	(*END MultinetGetConnectionPerformanceW;*)

	PROCEDURE MultinetGetConnectionPerformance* ["MultinetGetConnectionPerformanceA"] (VAR [nil] lpNetResource: NETRESOURCEA; VAR [nil] lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): INTEGER;
	(*END MultinetGetConnectionPerformance;*)

	PROCEDURE Netbios* ["NETAPI32.dll", ""] (VAR [nil] pncb: NCB): SHORTCHAR;
	(*END Netbios;*)

	PROCEDURE __WSAFDIsSet* ["WSOCK32.dll", ""] (p0: SOCKET; VAR [nil] p1: fd_set): INTEGER;
	(*END __WSAFDIsSet;*)

	PROCEDURE accept* ["WSOCK32.dll", ""] (s: SOCKET; VAR [nil] addr: sockaddr; VAR [nil] addrlen: INTEGER): SOCKET;
	(*END accept;*)

	PROCEDURE bind* ["WSOCK32.dll", ""] (s: SOCKET; VAR [nil] name: sockaddr; namelen: INTEGER): INTEGER;
	(*END bind;*)

	PROCEDURE closesocket* ["WSOCK32.dll", ""] (s: SOCKET): INTEGER;
	(*END closesocket;*)

	PROCEDURE connect* ["WSOCK32.dll", ""] (s: SOCKET; VAR [nil] name: sockaddr; namelen: INTEGER): INTEGER;
	(*END connect;*)

	PROCEDURE ioctlsocket* ["WSOCK32.dll", ""] (s: SOCKET; cmd: INTEGER; VAR [nil] argp: u_long): INTEGER;
	(*END ioctlsocket;*)

	PROCEDURE getpeername* ["WSOCK32.dll", ""] (s: SOCKET; VAR [nil] name: sockaddr; VAR [nil] namelen: INTEGER): INTEGER;
	(*END getpeername;*)

	PROCEDURE getsockname* ["WSOCK32.dll", ""] (s: SOCKET; VAR [nil] name: sockaddr; VAR [nil] namelen: INTEGER): INTEGER;
	(*END getsockname;*)

	PROCEDURE getsockopt* ["WSOCK32.dll", ""] (s: SOCKET; level: INTEGER; optname: INTEGER; optval: WinApi.PtrSTR; VAR [nil] optlen: INTEGER): INTEGER;
	(*END getsockopt;*)

	PROCEDURE htonl* ["WSOCK32.dll", ""] (hostlong: u_long): u_long;
	(*END htonl;*)

	PROCEDURE htons* ["WSOCK32.dll", ""] (hostshort: u_short): u_short;
	(*END htons;*)

	PROCEDURE inet_addr* ["WSOCK32.dll", ""] (cp: WinApi.PtrSTR): INTEGER;
	(*END inet_addr;*)

	PROCEDURE inet_ntoa* ["WSOCK32.dll", ""] (in: in_addr): WinApi.PtrSTR;
	(*END inet_ntoa;*)

	PROCEDURE listen* ["WSOCK32.dll", ""] (s: SOCKET; backlog: INTEGER): INTEGER;
	(*END listen;*)

	PROCEDURE ntohl* ["WSOCK32.dll", ""] (netlong: u_long): u_long;
	(*END ntohl;*)

	PROCEDURE ntohs* ["WSOCK32.dll", ""] (netshort: u_short): u_short;
	(*END ntohs;*)

	PROCEDURE recv* ["WSOCK32.dll", ""] (s: SOCKET; buf: WinApi.PtrSTR; len: INTEGER; flags: SET): INTEGER;
	(*END recv;*)

	PROCEDURE recvfrom* ["WSOCK32.dll", ""] (s: SOCKET; buf: WinApi.PtrSTR; len: INTEGER; flags: SET; VAR [nil] from: sockaddr; VAR [nil] fromlen: INTEGER): INTEGER;
	(*END recvfrom;*)

	PROCEDURE select* ["WSOCK32.dll", ""] (nfds: INTEGER; VAR [nil] readfds: fd_set; VAR [nil] writefds: fd_set; VAR [nil] exceptfds: fd_set; VAR [nil] timeout: timeval): INTEGER;
	(*END select;*)

	PROCEDURE send* ["WSOCK32.dll", ""] (s: SOCKET; buf: WinApi.PtrSTR; len: INTEGER; flags: SET): INTEGER;
	(*END send;*)

	PROCEDURE sendto* ["WSOCK32.dll", ""] (s: SOCKET; buf: WinApi.PtrSTR; len: INTEGER; flags: SET; VAR [nil] to: sockaddr; tolen: INTEGER): INTEGER;
	(*END sendto;*)

	PROCEDURE setsockopt* ["WSOCK32.dll", ""] (s: SOCKET; level: INTEGER; optname: INTEGER; optval: WinApi.PtrSTR; optlen: INTEGER): INTEGER;
	(*END setsockopt;*)

	PROCEDURE shutdown* ["WSOCK32.dll", ""] (s: SOCKET; how: INTEGER): INTEGER;
	(*END shutdown;*)

	PROCEDURE socket* ["WSOCK32.dll", ""] (af: INTEGER; type: INTEGER; protocol: INTEGER): SOCKET;
	(*END socket;*)

	PROCEDURE gethostbyaddr* ["WSOCK32.dll", ""] (addr: WinApi.PtrSTR; len: INTEGER; type: INTEGER): Ptrhostent;
	(*END gethostbyaddr;*)

	PROCEDURE gethostbyname* ["WSOCK32.dll", ""] (name: WinApi.PtrSTR): Ptrhostent;
	(*END gethostbyname;*)

	PROCEDURE gethostname* ["WSOCK32.dll", ""] (name: WinApi.PtrSTR; namelen: INTEGER): INTEGER;
	(*END gethostname;*)

	PROCEDURE getservbyport* ["WSOCK32.dll", ""] (port: INTEGER; proto: WinApi.PtrSTR): Ptrservent;
	(*END getservbyport;*)

	PROCEDURE getservbyname* ["WSOCK32.dll", ""] (name: WinApi.PtrSTR; proto: WinApi.PtrSTR): Ptrservent;
	(*END getservbyname;*)

	PROCEDURE getprotobynumber* ["WSOCK32.dll", ""] (number: INTEGER): Ptrprotoent;
	(*END getprotobynumber;*)

	PROCEDURE getprotobyname* ["WSOCK32.dll", ""] (name: WinApi.PtrSTR): Ptrprotoent;
	(*END getprotobyname;*)

	PROCEDURE WSAStartup* ["WSOCK32.dll", ""] (wVersionRequested: SHORTINT; VAR [nil] lpWSAData: WSADATA): INTEGER;
	(*END WSAStartup;*)

	PROCEDURE WSACleanup* ["WSOCK32.dll", ""] (): INTEGER;
	(*END WSACleanup;*)

	PROCEDURE WSASetLastError* ["WSOCK32.dll", ""] (iError: INTEGER);
	(*END WSASetLastError;*)

	PROCEDURE WSAGetLastError* ["WSOCK32.dll", ""] (): INTEGER;
	(*END WSAGetLastError;*)

	PROCEDURE WSAIsBlocking* ["WSOCK32.dll", ""] (): WinApi.BOOL;
	(*END WSAIsBlocking;*)

	PROCEDURE WSAUnhookBlockingHook* ["WSOCK32.dll", ""] (): INTEGER;
	(*END WSAUnhookBlockingHook;*)

	PROCEDURE WSASetBlockingHook* ["WSOCK32.dll", ""] (lpBlockFunc: WinApi.FARPROC): WinApi.FARPROC;
	(*END WSASetBlockingHook;*)

	PROCEDURE WSACancelBlockingCall* ["WSOCK32.dll", ""] (): INTEGER;
	(*END WSACancelBlockingCall;*)

	PROCEDURE WSAAsyncGetServByName* ["WSOCK32.dll", ""] (hWnd: WinApi.HWND; wMsg: u_int; name: WinApi.PtrSTR; proto: WinApi.PtrSTR; buf: WinApi.PtrSTR; buflen: INTEGER): WinApi.HANDLE;
	(*END WSAAsyncGetServByName;*)

	PROCEDURE WSAAsyncGetServByPort* ["WSOCK32.dll", ""] (hWnd: WinApi.HWND; wMsg: u_int; port: INTEGER; proto: WinApi.PtrSTR; buf: WinApi.PtrSTR; buflen: INTEGER): WinApi.HANDLE;
	(*END WSAAsyncGetServByPort;*)

	PROCEDURE WSAAsyncGetProtoByName* ["WSOCK32.dll", ""] (hWnd: WinApi.HWND; wMsg: u_int; name: WinApi.PtrSTR; buf: WinApi.PtrSTR; buflen: INTEGER): WinApi.HANDLE;
	(*END WSAAsyncGetProtoByName;*)

	PROCEDURE WSAAsyncGetProtoByNumber* ["WSOCK32.dll", ""] (hWnd: WinApi.HWND; wMsg: u_int; number: INTEGER; buf: WinApi.PtrSTR; buflen: INTEGER): WinApi.HANDLE;
	(*END WSAAsyncGetProtoByNumber;*)

	PROCEDURE WSAAsyncGetHostByName* ["WSOCK32.dll", ""] (hWnd: WinApi.HWND; wMsg: u_int; name: WinApi.PtrSTR; buf: WinApi.PtrSTR; buflen: INTEGER): WinApi.HANDLE;
	(*END WSAAsyncGetHostByName;*)

	PROCEDURE WSAAsyncGetHostByAddr* ["WSOCK32.dll", ""] (hWnd: WinApi.HWND; wMsg: u_int; addr: WinApi.PtrSTR; len: INTEGER; type: INTEGER; buf: WinApi.PtrSTR; buflen: INTEGER): WinApi.HANDLE;
	(*END WSAAsyncGetHostByAddr;*)

	PROCEDURE WSACancelAsyncRequest* ["WSOCK32.dll", ""] (hAsyncTaskHandle: WinApi.HANDLE): INTEGER;
	(*END WSACancelAsyncRequest;*)

	PROCEDURE WSAAsyncSelect* ["WSOCK32.dll", ""] (s: SOCKET; hWnd: WinApi.HWND; wMsg: u_int; lEvent: INTEGER): INTEGER;
	(*END WSAAsyncSelect;*)

	PROCEDURE WSAAccept* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] addr: sockaddr; VAR [nil] addrlen: INTEGER; lpfnCondition: CONDITIONPROC; dwCallbackData: INTEGER): SOCKET;
	(*END WSAAccept;*)

	PROCEDURE WSACloseEvent* ["WS2_32.dll", ""] (hEvent: WSAEVENT): WinApi.BOOL;
	(*END WSACloseEvent;*)

	PROCEDURE WSAConnect* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] name: sockaddr; namelen: INTEGER; VAR [nil] lpCallerData: WSABUF; VAR [nil] lpCalleeData: WSABUF; VAR [nil] lpSQOS: QOS; VAR [nil] lpGQOS: QOS): INTEGER;
	(*END WSAConnect;*)

	PROCEDURE WSACreateEvent* ["WS2_32.dll", ""] (): WSAEVENT;
	(*END WSACreateEvent;*)

	PROCEDURE WSADuplicateSocketA* ["WS2_32.dll", ""] (s: SOCKET; dwProcessId: INTEGER; VAR [nil] lpProtocolInfo: WSAPROTOCOL_INFOA): INTEGER;
	(*END WSADuplicateSocketA;*)

	PROCEDURE WSADuplicateSocketW* ["WS2_32.dll", ""] (s: SOCKET; dwProcessId: INTEGER; VAR [nil] lpProtocolInfo: WSAPROTOCOL_INFOW): INTEGER;
	(*END WSADuplicateSocketW;*)

	PROCEDURE WSADuplicateSocket* ["WS2_32.dll", "WSADuplicateSocketA"] (s: SOCKET; dwProcessId: INTEGER; VAR [nil] lpProtocolInfo: WSAPROTOCOL_INFOA): INTEGER;
	(*END WSADuplicateSocket;*)

	PROCEDURE WSAEnumNetworkEvents* ["WS2_32.dll", ""] (s: SOCKET; hEventObject: WSAEVENT; VAR [nil] lpNetworkEvents: WSANETWORKEVENTS): INTEGER;
	(*END WSAEnumNetworkEvents;*)

	PROCEDURE WSAEnumProtocolsA* ["WS2_32.dll", ""] (VAR [nil] lpiProtocols: INTEGER; VAR [nil] lpProtocolBuffer: WSAPROTOCOL_INFOA; VAR [nil] lpdwBufferLength: INTEGER): INTEGER;
	(*END WSAEnumProtocolsA;*)

	PROCEDURE WSAEnumProtocolsW* ["WS2_32.dll", ""] (VAR [nil] lpiProtocols: INTEGER; VAR [nil] lpProtocolBuffer: WSAPROTOCOL_INFOW; VAR [nil] lpdwBufferLength: INTEGER): INTEGER;
	(*END WSAEnumProtocolsW;*)

	PROCEDURE WSAEnumProtocols* ["WS2_32.dll", "WSAEnumProtocolsA"] (VAR [nil] lpiProtocols: INTEGER; VAR [nil] lpProtocolBuffer: WSAPROTOCOL_INFOA; VAR [nil] lpdwBufferLength: INTEGER): INTEGER;
	(*END WSAEnumProtocols;*)

	PROCEDURE WSAEventSelect* ["WS2_32.dll", ""] (s: SOCKET; hEventObject: WSAEVENT; lNetworkEvents: INTEGER): INTEGER;
	(*END WSAEventSelect;*)

	PROCEDURE WSAGetOverlappedResult* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] lpOverlapped: WSAOVERLAPPED; VAR [nil] lpcbTransfer: INTEGER; fWait: WinApi.BOOL; VAR [nil] lpdwFlags: SET): WinApi.BOOL;
	(*END WSAGetOverlappedResult;*)

	PROCEDURE WSAGetQOSByName* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] lpQOSName: WSABUF; VAR [nil] lpQOS: QOS): WinApi.BOOL;
	(*END WSAGetQOSByName;*)

	PROCEDURE WSAHtonl* ["WS2_32.dll", ""] (s: SOCKET; hostlong: u_long; VAR [nil] lpnetlong: u_long): INTEGER;
	(*END WSAHtonl;*)

	PROCEDURE WSAHtons* ["WS2_32.dll", ""] (s: SOCKET; hostshort: u_short; VAR [nil] lpnetshort: u_short): INTEGER;
	(*END WSAHtons;*)

	PROCEDURE WSAIoctl* ["WS2_32.dll", ""] (s: SOCKET; dwIoControlCode: INTEGER; lpvInBuffer: WinApi.PtrVoid; cbInBuffer: INTEGER; lpvOutBuffer: WinApi.PtrVoid; cbOutBuffer: INTEGER; VAR [nil] lpcbBytesReturned: INTEGER; VAR [nil] lpOverlapped: WSAOVERLAPPED; lpCompletionRoutine: WSAOVERLAPPED_COMPLETION_ROUTINE): INTEGER;
	(*END WSAIoctl;*)

	PROCEDURE WSAJoinLeaf* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] name: sockaddr; namelen: INTEGER; VAR [nil] lpCallerData: WSABUF; VAR [nil] lpCalleeData: WSABUF; VAR [nil] lpSQOS: QOS; VAR [nil] lpGQOS: QOS; dwFlags: SET): SOCKET;
	(*END WSAJoinLeaf;*)

	PROCEDURE WSANtohl* ["WS2_32.dll", ""] (s: SOCKET; netlong: u_long; VAR [nil] lphostlong: u_long): INTEGER;
	(*END WSANtohl;*)

	PROCEDURE WSANtohs* ["WS2_32.dll", ""] (s: SOCKET; netshort: u_short; VAR [nil] lphostshort: u_short): INTEGER;
	(*END WSANtohs;*)

	PROCEDURE WSARecv* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] lpBuffers: WSABUF; dwBufferCount: INTEGER; VAR [nil] lpNumberOfBytesRecvd: INTEGER; VAR [nil] lpFlags: INTEGER; VAR [nil] lpOverlapped: WSAOVERLAPPED; lpCompletionRoutine: WSAOVERLAPPED_COMPLETION_ROUTINE): INTEGER;
	(*END WSARecv;*)

	PROCEDURE WSARecvDisconnect* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] lpInboundDisconnectData: WSABUF): INTEGER;
	(*END WSARecvDisconnect;*)

	PROCEDURE WSARecvFrom* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] lpBuffers: WSABUF; dwBufferCount: INTEGER; VAR [nil] lpNumberOfBytesRecvd: INTEGER; VAR [nil] lpFlags: INTEGER; VAR [nil] lpFrom: sockaddr; VAR [nil] lpFromlen: INTEGER; VAR [nil] lpOverlapped: WSAOVERLAPPED; lpCompletionRoutine: WSAOVERLAPPED_COMPLETION_ROUTINE): INTEGER;
	(*END WSARecvFrom;*)

	PROCEDURE WSAResetEvent* ["WS2_32.dll", ""] (hEvent: WSAEVENT): WinApi.BOOL;
	(*END WSAResetEvent;*)

	PROCEDURE WSASend* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] lpBuffers: WSABUF; dwBufferCount: INTEGER; VAR [nil] lpNumberOfBytesSent: INTEGER; dwFlags: SET; VAR [nil] lpOverlapped: WSAOVERLAPPED; lpCompletionRoutine: WSAOVERLAPPED_COMPLETION_ROUTINE): INTEGER;
	(*END WSASend;*)

	PROCEDURE WSASendDisconnect* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] lpOutboundDisconnectData: WSABUF): INTEGER;
	(*END WSASendDisconnect;*)

	PROCEDURE WSASendTo* ["WS2_32.dll", ""] (s: SOCKET; VAR [nil] lpBuffers: WSABUF; dwBufferCount: INTEGER; VAR [nil] lpNumberOfBytesSent: INTEGER; dwFlags: SET; VAR [nil] lpTo: sockaddr; iTolen: INTEGER; VAR [nil] lpOverlapped: WSAOVERLAPPED; lpCompletionRoutine: WSAOVERLAPPED_COMPLETION_ROUTINE): INTEGER;
	(*END WSASendTo;*)

	PROCEDURE WSASetEvent* ["WS2_32.dll", ""] (hEvent: WSAEVENT): WinApi.BOOL;
	(*END WSASetEvent;*)

	PROCEDURE WSASocketA* ["WS2_32.dll", ""] (af: INTEGER; type: INTEGER; protocol: INTEGER; VAR [nil] lpProtocolInfo: WSAPROTOCOL_INFOA; g: GROUP; dwFlags: SET): SOCKET;
	(*END WSASocketA;*)

	PROCEDURE WSASocketW* ["WS2_32.dll", ""] (af: INTEGER; type: INTEGER; protocol: INTEGER; VAR [nil] lpProtocolInfo: WSAPROTOCOL_INFOW; g: GROUP; dwFlags: SET): SOCKET;
	(*END WSASocketW;*)

	PROCEDURE WSASocket* ["WS2_32.dll", "WSASocketA"] (af: INTEGER; type: INTEGER; protocol: INTEGER; VAR [nil] lpProtocolInfo: WSAPROTOCOL_INFOA; g: GROUP; dwFlags: SET): SOCKET;
	(*END WSASocket;*)

	PROCEDURE WSAWaitForMultipleEvents* ["WS2_32.dll", ""] (cEvents: INTEGER; VAR [nil] lphEvents: WSAEVENT; fWaitAll: WinApi.BOOL; dwTimeout: INTEGER; fAlertable: WinApi.BOOL): INTEGER;
	(*END WSAWaitForMultipleEvents;*)

	PROCEDURE WSARecvEx* ["WSOCK32.dll", ""] (s: SOCKET; buf: WinApi.PtrSTR; len: INTEGER; VAR [nil] flags: SET): INTEGER;
	(*END WSARecvEx;*)

	PROCEDURE TransmitFile* ["WSOCK32.dll", ""] (hSocket: SOCKET; hFile: WinApi.HANDLE; nNumberOfBytesToWrite: INTEGER; nNumberOfBytesPerSend: INTEGER; VAR [nil] lpOverlapped: WinApi.OVERLAPPED; VAR [nil] lpTransmitBuffers: TRANSMIT_FILE_BUFFERS; dwReserved: INTEGER): WinApi.BOOL;
	(*END TransmitFile;*)

	PROCEDURE AcceptEx* ["WSOCK32.dll", ""] (sListenSocket: SOCKET; sAcceptSocket: SOCKET; lpOutputBuffer: WinApi.PtrVoid; dwReceiveDataLength: INTEGER; dwLocalAddressLength: INTEGER; dwRemoteAddressLength: INTEGER; VAR [nil] lpdwBytesReceived: INTEGER; VAR [nil] lpOverlapped: WinApi.OVERLAPPED): WinApi.BOOL;
	(*END AcceptEx;*)

	PROCEDURE GetAcceptExSockaddrs* ["WSOCK32.dll", ""] (lpOutputBuffer: WinApi.PtrVoid; dwReceiveDataLength: INTEGER; dwLocalAddressLength: INTEGER; dwRemoteAddressLength: INTEGER; VAR [nil] LocalSockaddr: Ptrsockaddr; VAR [nil] LocalSockaddrLength: INTEGER; VAR [nil] RemoteSockaddr: Ptrsockaddr; VAR [nil] RemoteSockaddrLength: INTEGER);
	(*END GetAcceptExSockaddrs;*)

END WinNet.
