// // DWNSOCK1.INC Macros for dynamically linking to WinSock 1.1 // #ifdef DWINSOCK_GLOBAL #undef DYNAMICWINSOCK #define DYNAMICWINSOCK(name, ptr) ptr p_##name #endif #ifdef DWINSOCK_EXTERN #undef DYNAMICWINSOCK #define DYNAMICWINSOCK(name, ptr) extern ptr p_##name #endif #ifdef DWINSOCK_GETPROCADDRESS #undef DYNAMICWINSOCK #define DYNAMICWINSOCK(name, ptr) \ p_##name = (ptr)GetProcAddress(hndlWinSock, #name); \ if (p_##name == NULL) fOK = FALSE #endif #ifndef ___WSAFDISSET___ typedef int (WSAAPI * LPFN_WSAFDISSET)( IN SOCKET s, OUT fd_set FAR *fds ); #define ___WSAFDISSET___ #endif // // Function available in both versions // DYNAMICWINSOCK(accept, LPFN_ACCEPT); DYNAMICWINSOCK(bind, LPFN_BIND); DYNAMICWINSOCK(closesocket, LPFN_CLOSESOCKET); DYNAMICWINSOCK(connect, LPFN_CONNECT); DYNAMICWINSOCK(gethostbyname, LPFN_GETHOSTBYNAME); DYNAMICWINSOCK(gethostname, LPFN_GETHOSTNAME); DYNAMICWINSOCK(getsockname, LPFN_GETSOCKNAME); DYNAMICWINSOCK(getsockopt, LPFN_GETSOCKOPT); DYNAMICWINSOCK(htonl, LPFN_HTONL); DYNAMICWINSOCK(htons, LPFN_HTONS); DYNAMICWINSOCK(inet_addr, LPFN_INET_ADDR); DYNAMICWINSOCK(inet_ntoa, LPFN_INET_NTOA); DYNAMICWINSOCK(ioctlsocket, LPFN_IOCTLSOCKET); DYNAMICWINSOCK(listen, LPFN_LISTEN); DYNAMICWINSOCK(ntohl, LPFN_NTOHL); DYNAMICWINSOCK(ntohs, LPFN_NTOHS); DYNAMICWINSOCK(recvfrom, LPFN_RECVFROM); DYNAMICWINSOCK(select, LPFN_SELECT); DYNAMICWINSOCK(sendto, LPFN_SENDTO); DYNAMICWINSOCK(setsockopt, LPFN_SETSOCKOPT); DYNAMICWINSOCK(shutdown, LPFN_SHUTDOWN); DYNAMICWINSOCK(socket, LPFN_SOCKET); DYNAMICWINSOCK(WSACleanup, LPFN_WSACLEANUP); DYNAMICWINSOCK(WSAGetLastError, LPFN_WSAGETLASTERROR); DYNAMICWINSOCK(WSASetLastError, LPFN_WSASETLASTERROR); DYNAMICWINSOCK(WSAStartup, LPFN_WSASTARTUP); DYNAMICWINSOCK(__WSAFDIsSet, LPFN_WSAFDISSET);