home *** CD-ROM | disk | FTP | other *** search
/ Supercompiler 1997 / SUPERCOMPILER97.iso / MS_VC.50 / VC / MFC / SRC / SOCKIMPL.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-30  |  4.6 KB  |  106 lines

  1. // This is a part of the Microsoft Foundation Classes C++ library.
  2. // Copyright (C) 1992-1997 Microsoft Corporation
  3. // All rights reserved.
  4. //
  5. // This source code is only intended as a supplement to the
  6. // Microsoft Foundation Classes Reference and related
  7. // electronic documentation provided with the library.
  8. // See these sources for detailed information regarding the
  9. // Microsoft Foundation Classes product.
  10.  
  11. // Note: must include AFXDB.H first
  12.  
  13. #undef AFX_DATA
  14. #define AFX_DATA AFX_NET_DATA
  15.  
  16. /////////////////////////////////////////////////////////////////////////////
  17. // AFX_SOCK_CALL - used to dynamically load the ODBC library
  18. //  (since ODBC is not yet supported on all platforms)
  19.  
  20. #ifdef _AFXDLL
  21.  
  22. struct AFX_SOCK_CALL
  23. {
  24.     SOCKET (PASCAL* pfnaccept)(SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen);
  25.     u_short (PASCAL * pfnhtons)(u_short hostshort);
  26.     unsigned long (PASCAL * pfninet_addr)(const char FAR * cp);
  27.     int (PASCAL * pfnclosesocket)(SOCKET s);
  28.     int (PASCAL * pfngetsockname)(SOCKET s, struct sockaddr FAR *name, int FAR * namelen);
  29.     int (PASCAL * pfngetpeername)(SOCKET s, struct sockaddr FAR *name, int FAR * namelen);
  30.     u_short (PASCAL * pfnntohs)(u_short netshort);
  31.     char* (PASCAL * pfninet_ntoa)(struct in_addr in);
  32.     int (PASCAL * pfnWSAGetLastError)(void);
  33.     void (PASCAL * pfnWSASetLastError)(int iError);
  34.     int (PASCAL * pfnWSAStartup)(WORD wVersionRequired, LPWSADATA lpWSAData);
  35.     int (PASCAL * pfnWSACleanup)(void);
  36.     u_long (PASCAL * pfnhtonl)(u_long hostlong);
  37.     SOCKET (PASCAL * pfnsocket)(int af, int type, int protocol);
  38.     struct hostent* (PASCAL * pfngethostbyname)(const char FAR * name);
  39.     int (PASCAL * pfnrecv)(SOCKET s, char FAR * buf, int len, int flags);
  40.     int (PASCAL * pfnsend)(SOCKET s, const char FAR * buf, int len, int flags);
  41.     int (PASCAL * pfnWSAAsyncSelect)(SOCKET s, HWND hWnd, u_int wMsg, long lEvent);
  42.     int (PASCAL * pfnrecvfrom)(SOCKET s, char FAR * buf, int len, int flags, struct sockaddr FAR *from, int FAR * fromlen);
  43.     int (PASCAL * pfnsendto)(SOCKET s, const char FAR * buf, int len, int flags, const struct sockaddr FAR *to, int tolen);
  44.     int (PASCAL * pfnconnect)(SOCKET s, const struct sockaddr FAR *name, int namelen);
  45.     int (PASCAL * pfnbind)(SOCKET s, const struct sockaddr FAR *addr, int namelen);
  46.     int (PASCAL * pfnsetsockopt)(SOCKET s, int level, int optname, const char FAR * optval, int optlen);
  47.     int (PASCAL * pfngetsockopt)(SOCKET s, int level, int optname, char FAR * optval, int FAR *optlen);
  48.     int (PASCAL * pfnioctlsocket)(SOCKET s, long cmd, u_long FAR *argp);
  49.     int (PASCAL * pfnlisten)(SOCKET s, int backlog);
  50.     int (PASCAL * pfnshutdown)(SOCKET s, int how);
  51. };
  52.  
  53. extern AFX_DATA AFX_SOCK_CALL _afxSOCK;
  54.  
  55. #define accept              _afxSOCK.pfnaccept
  56. #define htons               _afxSOCK.pfnhtons
  57. #define inet_addr           _afxSOCK.pfninet_addr
  58. #define closesocket         _afxSOCK.pfnclosesocket
  59. #define getsockname         _afxSOCK.pfngetsockname
  60. #define getpeername         _afxSOCK.pfngetpeername
  61. #define ntohs               _afxSOCK.pfnntohs
  62. #define inet_ntoa           _afxSOCK.pfninet_ntoa
  63. #define WSAGetLastError     _afxSOCK.pfnWSAGetLastError
  64. #define WSASetLastError     _afxSOCK.pfnWSASetLastError
  65. #define WSAStartup          _afxSOCK.pfnWSAStartup
  66. #define WSACleanup          _afxSOCK.pfnWSACleanup
  67. #define htonl               _afxSOCK.pfnhtonl
  68. #define socket              _afxSOCK.pfnsocket
  69. #define gethostbyname       _afxSOCK.pfngethostbyname
  70. #define recv                _afxSOCK.pfnrecv
  71. #define send                _afxSOCK.pfnsend
  72. #define WSAAsyncSelect      _afxSOCK.pfnWSAAsyncSelect
  73. #define recvfrom            _afxSOCK.pfnrecvfrom
  74. #define sendto              _afxSOCK.pfnsendto
  75. #define connect             _afxSOCK.pfnconnect
  76. #define bind                _afxSOCK.pfnbind
  77. #define setsockopt          _afxSOCK.pfnsetsockopt
  78. #define getsockopt          _afxSOCK.pfngetsockopt
  79. #define ioctlsocket         _afxSOCK.pfnioctlsocket
  80. #define listen              _afxSOCK.pfnlisten
  81. #define shutdown            _afxSOCK.pfnshutdown
  82.  
  83. #endif //_AFXDLL
  84.  
  85. /////////////////////////////////////////////////////////////////////////////
  86. // _AFX_SOCK_STATE
  87.  
  88. #undef AFX_DATA
  89. #define AFX_DATA
  90.  
  91. class _AFX_SOCK_STATE : public CNoTrackObject
  92. {
  93. public:
  94.     DWORD m_dwReserved1;    // reserved for version 4.1 only
  95.     HINSTANCE m_hInstSOCK;      // handle of WSOCK32.DLL
  96.     void (AFXAPI *m_pfnSockTerm)(void); // set once initialized
  97.     virtual ~_AFX_SOCK_STATE();
  98. };
  99.  
  100. EXTERN_PROCESS_LOCAL(_AFX_SOCK_STATE, _afxSockState)
  101.  
  102. #undef AFX_DATA
  103. #define AFX_DATA
  104.  
  105. /////////////////////////////////////////////////////////////////////////////
  106.