#  
#         File: winsock.def 
#       System: MS-Windows 3.x 
#      Summary: Module definition file for Windows Sockets DLL.  
#  
name	winsock
id	8
length	155

1   pascal16 accept(word ptr ptr) WINSOCK_accept
2   pascal16 bind(word ptr word) WINSOCK_bind
3   pascal16 closesocket(word) WINSOCK_closesocket
4   pascal16 connect(word ptr word) WINSOCK_connect
5   pascal16 getpeername(word ptr ptr) WINSOCK_getpeername
6   pascal16 getsockname(word ptr ptr) WINSOCK_getsockname
7   pascal16 getsockopt(word word word ptr ptr) WINSOCK_getsockopt
8   pascal   htonl(long) WINSOCK_htonl
9   pascal16 htons(word) WINSOCK_htons
10  pascal   inet_addr(long) WINSOCK_inet_addr
11  pascal   inet_ntoa(long) WINSOCK_inet_ntoa
12  pascal16 ioctlsocket(word long ptr) WINSOCK_ioctlsocket
13  pascal16 listen(word word) WINSOCK_listen
14  pascal   ntohl(long) WINSOCK_ntohl
15  pascal16 ntohs(word) WINSOCK_ntohs
16  pascal16 recv(word ptr word word) WINSOCK_recv
17  pascal16 recvfrom(word ptr word word ptr ptr) WINSOCK_recvfrom
18  pascal16 select(word ptr ptr ptr ptr word) WINSOCK_select
19  pascal16 send(word ptr word word) WINSOCK_send
20  pascal16 sendto(word ptr word word ptr ptr) WINSOCK_sendto
21  pascal16 setsockopt(word word word ptr word) WINSOCK_setsockopt
22  pascal16 shutdown(word word) WINSOCK_shutdown
23  pascal16 socket(word word word) WINSOCK_socket
51  pascal   gethostbyaddr(ptr word word) WINSOCK_gethostbyaddr
52  pascal   gethostbyname(ptr) WINSOCK_gethostbyname
53  pascal   getprotobyname(ptr) WINSOCK_getprotobyname
54  pascal   getprotobynumber(word) WINSOCK_getprotobynumber
55  pascal   getservbyname(ptr ptr) WINSOCK_getservbyname
56  pascal   getservbyport(word ptr) WINSOCK_getservbyport
57  pascal   gethostname(ptr word) WINSOCK_gethostname
101 pascal16 WSAAsyncSelect(word word word long) WSAAsyncSelect
102 pascal16 WSAAsyncGetHostByAddr(word word ptr word word ptr word)
             WSAAsyncGetHostByAddr
103 pascal16 WSAAsyncGetHostByName(word word ptr ptr word)
             WSAAsyncGetHostByName
104 pascal16 WSAAsyncGetProtoByNumber(word word word ptr word)
             WSAAsyncGetProtoByNumber
105 pascal16 WSAAsyncGetProtoByName(word word ptr ptr word)
             WSAAsyncGetProtoByName
106 pascal16 WSAAsyncGetServByPort(word word word ptr ptr word)
             WSAAsyncGetServByPort
107 pascal16 WSAAsyncGetServByName(word word ptr ptr ptr word)
             WSAAsyncGetServByName
108 pascal16 WSACancelAsyncRequest(word) WSACancelAsyncRequest
109 pascal16 WSASetBlockingHook() WSASetBlockingHook
110 pascal16 WSAUnhookBlockingHook() WSAUnhookBlockingHook
111 pascal16 WSAGetLastError() WSAGetLastError
112 pascal   WSASetLastError(word) WSASetLastError
113 pascal16 WSACancelBlockingCall() WSACancelBlockingCall
114 pascal16 WSAIsBlocking() WSAIsBlocking
115 pascal   WSAStartup(word ptr) WSAStartup
116 pascal   WSACleanup() WSACleanup
151 pascal16 __WSAFDIsSet(word ptr) WSAFDIsSet
