// winsock2.cpp : Defines the entry point for the DLL application. // #include "stdafx.h" #include #include //-------------------------------------------------------------------------// BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } //-------------------------------------------------------------------------// /* Socket function prototypes */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI accept( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT int FAR * addrlen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_ACCEPT)( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT int FAR * addrlen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI bind( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_BIND)( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI closesocket( IN SOCKET s ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_CLOSESOCKET)( IN SOCKET s ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI connect( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_CONNECT)( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI ioctlsocket( IN SOCKET s, IN long cmd, IN OUT u_long FAR * argp ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_IOCTLSOCKET)( IN SOCKET s, IN long cmd, IN OUT u_long FAR * argp ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI getpeername( IN SOCKET s, OUT struct sockaddr FAR * name, IN OUT int FAR * namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_GETPEERNAME)( IN SOCKET s, IN struct sockaddr FAR * name, IN OUT int FAR * namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI getsockname( IN SOCKET s, OUT struct sockaddr FAR * name, IN OUT int FAR * namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_GETSOCKNAME)( IN SOCKET s, OUT struct sockaddr FAR * name, IN OUT int FAR * namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI getsockopt( IN SOCKET s, IN int level, IN int optname, OUT char FAR * optval, IN OUT int FAR * optlen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_GETSOCKOPT)( IN SOCKET s, IN int level, IN int optname, OUT char FAR * optval, IN OUT int FAR * optlen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE u_long WSAAPI htonl( IN u_long hostlong ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef u_long (WSAAPI * LPFN_HTONL)( IN u_long hostlong ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE u_short WSAAPI htons( IN u_short hostshort ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef u_short (WSAAPI * LPFN_HTONS)( IN u_short hostshort ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE unsigned long WSAAPI inet_addr( IN const char FAR * cp ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef unsigned long (WSAAPI * LPFN_INET_ADDR)( IN const char FAR * cp ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE char FAR * WSAAPI inet_ntoa( IN struct in_addr in ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef char FAR * (WSAAPI * LPFN_INET_NTOA)( IN struct in_addr in ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI listen( IN SOCKET s, IN int backlog ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_LISTEN)( IN SOCKET s, IN int backlog ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE u_long WSAAPI ntohl( IN u_long netlong ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef u_long (WSAAPI * LPFN_NTOHL)( IN u_long netlong ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE u_short WSAAPI ntohs( IN u_short netshort ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef u_short (WSAAPI * LPFN_NTOHS)( IN u_short netshort ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI recv( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_RECV)( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI recvfrom( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags, OUT struct sockaddr FAR * from, IN OUT int FAR * fromlen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_RECVFROM)( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags, OUT struct sockaddr FAR * from, IN OUT int FAR * fromlen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI select( IN int nfds, IN OUT fd_set FAR * readfds, IN OUT fd_set FAR * writefds, IN OUT fd_set FAR *exceptfds, IN const struct timeval FAR * timeout ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SELECT)( IN int nfds, IN OUT fd_set FAR * readfds, IN OUT fd_set FAR * writefds, IN OUT fd_set FAR *exceptfds, IN const struct timeval FAR * timeout ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI send( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SEND)( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI sendto( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags, IN const struct sockaddr FAR * to, IN int tolen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SENDTO)( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags, IN const struct sockaddr FAR * to, IN int tolen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI setsockopt( IN SOCKET s, IN int level, IN int optname, IN const char FAR * optval, IN int optlen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SETSOCKOPT)( IN SOCKET s, IN int level, IN int optname, IN const char FAR * optval, IN int optlen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI shutdown( IN SOCKET s, IN int how ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SHUTDOWN)( IN SOCKET s, IN int how ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI socket( IN int af, IN int type, IN int protocol ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_SOCKET)( IN int af, IN int type, IN int protocol ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* Database function prototypes */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct hostent FAR * WSAAPI gethostbyaddr( IN const char FAR * addr, IN int len, IN int type ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct hostent FAR * (WSAAPI * LPFN_GETHOSTBYADDR)( IN const char FAR * addr, IN int len, IN int type ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct hostent FAR * WSAAPI gethostbyname( IN const char FAR * name ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct hostent FAR * (WSAAPI * LPFN_GETHOSTBYNAME)( IN const char FAR * name ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI gethostname( OUT char FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_GETHOSTNAME)( OUT char FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct servent FAR * WSAAPI getservbyport( IN int port, IN const char FAR * proto ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct servent FAR * (WSAAPI * LPFN_GETSERVBYPORT)( IN int port, IN const char FAR * proto ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct servent FAR * WSAAPI getservbyname( IN const char FAR * name, IN const char FAR * proto ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct servent FAR * (WSAAPI * LPFN_GETSERVBYNAME)( IN const char FAR * name, IN const char FAR * proto ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct protoent FAR * WSAAPI getprotobynumber( IN int number ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct protoent FAR * (WSAAPI * LPFN_GETPROTOBYNUMBER)( IN int number ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct protoent FAR * WSAAPI getprotobyname( IN const char FAR * name ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct protoent FAR * (WSAAPI * LPFN_GETPROTOBYNAME)( IN const char FAR * name ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* Microsoft Windows Extension function prototypes */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAStartup( IN WORD wVersionRequested, OUT LPWSADATA lpWSAData ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSASTARTUP)( IN WORD wVersionRequested, OUT LPWSADATA lpWSAData ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSACleanup( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSACLEANUP)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE void WSAAPI WSASetLastError( IN int iError ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef void (WSAAPI * LPFN_WSASETLASTERROR)( IN int iError ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAGetLastError( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAGETLASTERROR)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSAIsBlocking( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSAISBLOCKING)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAUnhookBlockingHook( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAUNHOOKBLOCKINGHOOK)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE FARPROC WSAAPI WSASetBlockingHook( IN FARPROC lpBlockFunc ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef FARPROC (WSAAPI * LPFN_WSASETBLOCKINGHOOK)( IN FARPROC lpBlockFunc ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSACancelBlockingCall( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSACANCELBLOCKINGCALL)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetServByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETSERVBYNAME)( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetServByPort( IN HWND hWnd, IN u_int wMsg, IN int port, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETSERVBYPORT)( IN HWND hWnd, IN u_int wMsg, IN int port, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetProtoByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETPROTOBYNAME)( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetProtoByNumber( IN HWND hWnd, IN u_int wMsg, IN int number, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETPROTOBYNUMBER)( IN HWND hWnd, IN u_int wMsg, IN int number, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetHostByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETHOSTBYNAME)( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetHostByAddr( IN HWND hWnd, IN u_int wMsg, IN const char FAR * addr, IN int len, IN int type, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETHOSTBYADDR)( IN HWND hWnd, IN u_int wMsg, IN const char FAR * addr, IN int len, IN int type, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSACancelAsyncRequest( IN HANDLE hAsyncTaskHandle ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSACANCELASYNCREQUEST)( IN HANDLE hAsyncTaskHandle ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAAsyncSelect( IN SOCKET s, IN HWND hWnd, IN u_int wMsg, IN long lEvent ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAASYNCSELECT)( IN SOCKET s, IN HWND hWnd, IN u_int wMsg, IN long lEvent ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* WinSock 2 API new function prototypes */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI WSAAccept( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT LPINT addrlen, IN LPCONDITIONPROC lpfnCondition, IN DWORD_PTR dwCallbackData ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_WSAACCEPT)( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT LPINT addrlen, IN LPCONDITIONPROC lpfnCondition, IN DWORD_PTR dwCallbackData ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSACloseEvent( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSACLOSEEVENT)( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAConnect( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSACONNECT)( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE WSAEVENT WSAAPI WSACreateEvent( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef WSAEVENT (WSAAPI * LPFN_WSACREATEEVENT)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSADuplicateSocketA( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOA lpProtocolInfo ); WINSOCK_API_LINKAGE int WSAAPI WSADuplicateSocketW( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOW lpProtocolInfo ); #ifdef UNICODE #define WSADuplicateSocket WSADuplicateSocketW #else #define WSADuplicateSocket WSADuplicateSocketA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSADUPLICATESOCKETA)( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOA lpProtocolInfo ); typedef int (WSAAPI * LPFN_WSADUPLICATESOCKETW)( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOW lpProtocolInfo ); #ifdef UNICODE #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW #else #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAEnumNetworkEvents( IN SOCKET s, IN WSAEVENT hEventObject, OUT LPWSANETWORKEVENTS lpNetworkEvents ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAENUMNETWORKEVENTS)( IN SOCKET s, IN WSAEVENT hEventObject, OUT LPWSANETWORKEVENTS lpNetworkEvents ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAEnumProtocolsA( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ); WINSOCK_API_LINKAGE int WSAAPI WSAEnumProtocolsW( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ); #ifdef UNICODE #define WSAEnumProtocols WSAEnumProtocolsW #else #define WSAEnumProtocols WSAEnumProtocolsA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAENUMPROTOCOLSA)( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ); typedef int (WSAAPI * LPFN_WSAENUMPROTOCOLSW)( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ); #ifdef UNICODE #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSW #else #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAEventSelect( IN SOCKET s, IN WSAEVENT hEventObject, IN long lNetworkEvents ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAEVENTSELECT)( IN SOCKET s, IN WSAEVENT hEventObject, IN long lNetworkEvents ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSAGetOverlappedResult( IN SOCKET s, IN LPWSAOVERLAPPED lpOverlapped, OUT LPDWORD lpcbTransfer, IN BOOL fWait, OUT LPDWORD lpdwFlags ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSAGETOVERLAPPEDRESULT)( IN SOCKET s, IN LPWSAOVERLAPPED lpOverlapped, OUT LPDWORD lpcbTransfer, IN BOOL fWait, OUT LPDWORD lpdwFlags ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSAGetQOSByName( IN SOCKET s, IN LPWSABUF lpQOSName, OUT LPQOS lpQOS ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSAGETQOSBYNAME)( IN SOCKET s, IN LPWSABUF lpQOSName, OUT LPQOS lpQOS ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAHtonl( IN SOCKET s, IN u_long hostlong, OUT u_long FAR * lpnetlong ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAHTONL)( IN SOCKET s, IN u_long hostlong, OUT u_long FAR * lpnetlong ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAHtons( IN SOCKET s, IN u_short hostshort, OUT u_short FAR * lpnetshort ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAHTONS)( IN SOCKET s, IN u_short hostshort, OUT u_short FAR * lpnetshort ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAIoctl( IN SOCKET s, IN DWORD dwIoControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAIOCTL)( IN SOCKET s, IN DWORD dwIoControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI WSAJoinLeaf( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS, IN DWORD dwFlags ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_WSAJOINLEAF)( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS, IN DWORD dwFlags ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSANtohl( IN SOCKET s, IN u_long netlong, OUT u_long FAR * lphostlong ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSANTOHL)( IN SOCKET s, IN u_long netlong, OUT u_long FAR * lphostlong ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSANtohs( IN SOCKET s, IN u_short netshort, OUT u_short FAR * lphostshort ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSANTOHS)( IN SOCKET s, IN u_short netshort, OUT u_short FAR * lphostshort ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSARecv( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSARECV)( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSARecvDisconnect( IN SOCKET s, OUT LPWSABUF lpInboundDisconnectData ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSARECVDISCONNECT)( IN SOCKET s, OUT LPWSABUF lpInboundDisconnectData ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSARecvFrom( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, OUT struct sockaddr FAR * lpFrom, IN OUT LPINT lpFromlen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSARECVFROM)( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, OUT struct sockaddr FAR * lpFrom, IN OUT LPINT lpFromlen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSAResetEvent( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSARESETEVENT)( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSASend( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSASEND)( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSASendDisconnect( IN SOCKET s, IN LPWSABUF lpOutboundDisconnectData ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSASENDDISCONNECT)( IN SOCKET s, IN LPWSABUF lpOutboundDisconnectData ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSASendTo( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN const struct sockaddr FAR * lpTo, IN int iTolen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSASENDTO)( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN const struct sockaddr FAR * lpTo, IN int iTolen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSASetEvent( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSASETEVENT)( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI WSASocketA( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ); WINSOCK_API_LINKAGE SOCKET WSAAPI WSASocketW( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ); #ifdef UNICODE #define WSASocket WSASocketW #else #define WSASocket WSASocketA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_WSASOCKETA)( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ); typedef SOCKET (WSAAPI * LPFN_WSASOCKETW)( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ); #ifdef UNICODE #define LPFN_WSASOCKET LPFN_WSASOCKETW #else #define LPFN_WSASOCKET LPFN_WSASOCKETA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE DWORD WSAAPI WSAWaitForMultipleEvents( IN DWORD cEvents, IN const WSAEVENT FAR * lphEvents, IN BOOL fWaitAll, IN DWORD dwTimeout, IN BOOL fAlertable ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef DWORD (WSAAPI * LPFN_WSAWAITFORMULTIPLEEVENTS)( IN DWORD cEvents, IN const WSAEVENT FAR * lphEvents, IN BOOL fWaitAll, IN DWORD dwTimeout, IN BOOL fAlertable ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAAddressToStringA( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN OUT LPSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ); WINSOCK_API_LINKAGE INT WSAAPI WSAAddressToStringW( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN OUT LPWSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ); #ifdef UNICODE #define WSAAddressToString WSAAddressToStringW #else #define WSAAddressToString WSAAddressToStringA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAADDRESSTOSTRINGA)( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN OUT LPSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ); typedef INT (WSAAPI * LPFN_WSAADDRESSTOSTRINGW)( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN OUT LPWSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ); #ifdef UNICODE #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGW #else #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAStringToAddressA( IN LPSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ); WINSOCK_API_LINKAGE INT WSAAPI WSAStringToAddressW( IN LPWSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ); #ifdef UNICODE #define WSAStringToAddress WSAStringToAddressW #else #define WSAStringToAddress WSAStringToAddressA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSASTRINGTOADDRESSA)( IN LPSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ); typedef INT (WSAAPI * LPFN_WSASTRINGTOADDRESSW)( IN LPWSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ); #ifdef UNICODE #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSW #else #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* Registration and Name Resolution API functions */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceBeginA( IN LPWSAQUERYSETA lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ); WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceBeginW( IN LPWSAQUERYSETW lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ); #ifdef UNICODE #define WSALookupServiceBegin WSALookupServiceBeginW #else #define WSALookupServiceBegin WSALookupServiceBeginA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICEBEGINA)( IN LPWSAQUERYSETA lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ); typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICEBEGINW)( IN LPWSAQUERYSETW lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ); #ifdef UNICODE #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINW #else #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceNextA( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETA lpqsResults ); WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceNextW( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETW lpqsResults ); #ifdef UNICODE #define WSALookupServiceNext WSALookupServiceNextW #else #define WSALookupServiceNext WSALookupServiceNextA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICENEXTA)( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETA lpqsResults ); typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICENEXTW)( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETW lpqsResults ); #ifdef UNICODE #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTW #else #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSANSPIoctl( IN HANDLE hLookup, IN DWORD dwControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSACOMPLETION lpCompletion ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSANSPIOCTL)( IN HANDLE hLookup, IN DWORD dwControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSACOMPLETION lpCompletion ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceEnd( IN HANDLE hLookup ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICEEND)( IN HANDLE hLookup ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAInstallServiceClassA( IN LPWSASERVICECLASSINFOA lpServiceClassInfo ); WINSOCK_API_LINKAGE INT WSAAPI WSAInstallServiceClassW( IN LPWSASERVICECLASSINFOW lpServiceClassInfo ); #ifdef UNICODE #define WSAInstallServiceClass WSAInstallServiceClassW #else #define WSAInstallServiceClass WSAInstallServiceClassA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAINSTALLSERVICECLASSA)( IN LPWSASERVICECLASSINFOA lpServiceClassInfo ); typedef INT (WSAAPI * LPFN_WSAINSTALLSERVICECLASSW)( IN LPWSASERVICECLASSINFOW lpServiceClassInfo ); #ifdef UNICODE #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSW #else #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSARemoveServiceClass( IN LPGUID lpServiceClassId ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAREMOVESERVICECLASS)( IN LPGUID lpServiceClassId ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassInfoA( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOA lpServiceClassInfo ); WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassInfoW( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOW lpServiceClassInfo ); #ifdef UNICODE #define WSAGetServiceClassInfo WSAGetServiceClassInfoW #else #define WSAGetServiceClassInfo WSAGetServiceClassInfoA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAGETSERVICECLASSINFOA)( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOA lpServiceClassInfo ); typedef INT (WSAAPI * LPFN_WSAGETSERVICECLASSINFOW)( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOW lpServiceClassInfo ); #ifdef UNICODE #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOW #else #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAEnumNameSpaceProvidersA( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOA lpnspBuffer ); WINSOCK_API_LINKAGE INT WSAAPI WSAEnumNameSpaceProvidersW( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOW lpnspBuffer ); #ifdef UNICODE #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW #else #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAENUMNAMESPACEPROVIDERSA)( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOA lpnspBuffer ); typedef INT (WSAAPI * LPFN_WSAENUMNAMESPACEPROVIDERSW)( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOW lpnspBuffer ); #ifdef UNICODE #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW #else #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassNameByClassIdA( IN LPGUID lpServiceClassId, OUT LPSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ); WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassNameByClassIdW( IN LPGUID lpServiceClassId, OUT LPWSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ); #ifdef UNICODE #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW #else #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA)( IN LPGUID lpServiceClassId, OUT LPSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ); typedef INT (WSAAPI * LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW)( IN LPGUID lpServiceClassId, OUT LPWSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ); #ifdef UNICODE #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW #else #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceA( IN LPWSAQUERYSETA lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ); WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceW( IN LPWSAQUERYSETW lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ); #ifdef UNICODE #define WSASetService WSASetServiceW #else #define WSASetService WSASetServiceA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSASETSERVICEA)( IN LPWSAQUERYSETA lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ); typedef INT (WSAAPI * LPFN_WSASETSERVICEW)( IN LPWSAQUERYSETW lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ); #ifdef UNICODE #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEW #else #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAProviderConfigChange( IN OUT LPHANDLE lpNotificationHandle, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAPROVIDERCONFIGCHANGE)( IN OUT LPHANDLE lpNotificationHandle, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */