2025-04-27 07:49:33 -04:00

63 lines
1.9 KiB
C++

//
// 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);