home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / MSWSOCK.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  4KB  |  184 lines

  1. /*++
  2.  
  3. Copyright (c) 1989-1996  Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     mswsock.h
  8.  
  9. Abstract:
  10.  
  11.     This module contains the Microsoft-specific extensions to the Windows
  12.     Sockets API.
  13.  
  14. Author:
  15.  
  16.     Keith Moore (keithmo) 06-Oct-1995 (Separated from WINSOCK.H).
  17.  
  18. Revision History:
  19.  
  20. --*/
  21.  
  22. #ifndef _MSWSOCK_
  23. #define _MSWSOCK_
  24. #pragma option -b
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30. /*
  31.  * Options for connect and disconnect data and options.  Used only by
  32.  * non-TCP/IP transports such as DECNet, OSI TP4, etc.
  33.  */
  34. #define SO_CONNDATA                 0x7000
  35. #define SO_CONNOPT                  0x7001
  36. #define SO_DISCDATA                 0x7002
  37. #define SO_DISCOPT                  0x7003
  38. #define SO_CONNDATALEN              0x7004
  39. #define SO_CONNOPTLEN               0x7005
  40. #define SO_DISCDATALEN              0x7006
  41. #define SO_DISCOPTLEN               0x7007
  42.  
  43. /*
  44.  * Option for opening sockets for synchronous access.
  45.  */
  46. #define SO_OPENTYPE                 0x7008
  47.  
  48. #define SO_SYNCHRONOUS_ALERT        0x10
  49. #define SO_SYNCHRONOUS_NONALERT     0x20
  50.  
  51. /*
  52.  * Other NT-specific options.
  53.  */
  54. #define SO_MAXDG                    0x7009
  55. #define SO_MAXPATHDG                0x700A
  56. #define SO_UPDATE_ACCEPT_CONTEXT    0x700B
  57. #define SO_CONNECT_TIME             0x700C
  58.  
  59. /*
  60.  * TCP options.
  61.  */
  62. #define TCP_BSDURGENT               0x7000
  63.  
  64. /*
  65.  * Microsoft extended APIs.
  66.  */
  67. int
  68. PASCAL FAR
  69. WSARecvEx (
  70.     SOCKET s,
  71.     char FAR *buf,
  72.     int len,
  73.     int FAR *flags
  74.     );
  75.  
  76. typedef struct _TRANSMIT_FILE_BUFFERS {
  77.     LPVOID Head;
  78.     DWORD HeadLength;
  79.     LPVOID Tail;
  80.     DWORD TailLength;
  81. } TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, FAR *LPTRANSMIT_FILE_BUFFERS;
  82.  
  83. #define TF_DISCONNECT       0x01
  84. #define TF_REUSE_SOCKET     0x02
  85. #define TF_WRITE_BEHIND     0x04
  86.  
  87. BOOL
  88. PASCAL FAR
  89. TransmitFile (
  90.     IN SOCKET hSocket,
  91.     IN HANDLE hFile,
  92.     IN DWORD nNumberOfBytesToWrite,
  93.     IN DWORD nNumberOfBytesPerSend,
  94.     IN LPOVERLAPPED lpOverlapped,
  95.     IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
  96.     IN DWORD dwReserved
  97.     );
  98.  
  99. BOOL
  100. PASCAL FAR
  101. AcceptEx (
  102.     IN SOCKET sListenSocket,
  103.     IN SOCKET sAcceptSocket,
  104.     IN PVOID lpOutputBuffer,
  105.     IN DWORD dwReceiveDataLength,
  106.     IN DWORD dwLocalAddressLength,
  107.     IN DWORD dwRemoteAddressLength,
  108.     OUT LPDWORD lpdwBytesReceived,
  109.     IN LPOVERLAPPED lpOverlapped
  110.     );
  111.  
  112. VOID
  113. PASCAL FAR
  114. GetAcceptExSockaddrs (
  115.     IN PVOID lpOutputBuffer,
  116.     IN DWORD dwReceiveDataLength,
  117.     IN DWORD dwLocalAddressLength,
  118.     IN DWORD dwRemoteAddressLength,
  119.     OUT struct sockaddr **LocalSockaddr,
  120.     OUT LPINT LocalSockaddrLength,
  121.     OUT struct sockaddr **RemoteSockaddr,
  122.     OUT LPINT RemoteSockaddrLength
  123.     );
  124.  
  125. /*
  126.  * "QueryInterface" versions of the above APIs.
  127.  */
  128.  
  129. typedef
  130. BOOL
  131. (PASCAL FAR * LPFN_TRANSMITFILE)(
  132.     IN SOCKET hSocket,
  133.     IN HANDLE hFile,
  134.     IN DWORD nNumberOfBytesToWrite,
  135.     IN DWORD nNumberOfBytesPerSend,
  136.     IN LPOVERLAPPED lpOverlapped,
  137.     IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
  138.     IN DWORD dwReserved
  139.     );
  140.  
  141. #define WSAID_TRANSMITFILE \
  142.         {0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
  143.  
  144. typedef
  145. BOOL
  146. (PASCAL FAR * LPFN_ACCEPTEX)(
  147.     IN SOCKET sListenSocket,
  148.     IN SOCKET sAcceptSocket,
  149.     IN PVOID lpOutputBuffer,
  150.     IN DWORD dwReceiveDataLength,
  151.     IN DWORD dwLocalAddressLength,
  152.     IN DWORD dwRemoteAddressLength,
  153.     OUT LPDWORD lpdwBytesReceived,
  154.     IN LPOVERLAPPED lpOverlapped
  155.     );
  156.  
  157. #define WSAID_ACCEPTEX \
  158.         {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
  159.  
  160. typedef
  161. VOID
  162. (PASCAL FAR * LPFN_GETACCEPTEXSOCKADDRS)(
  163.     IN PVOID lpOutputBuffer,
  164.     IN DWORD dwReceiveDataLength,
  165.     IN DWORD dwLocalAddressLength,
  166.     IN DWORD dwRemoteAddressLength,
  167.     OUT struct sockaddr **LocalSockaddr,
  168.     OUT LPINT LocalSockaddrLength,
  169.     OUT struct sockaddr **RemoteSockaddr,
  170.     OUT LPINT RemoteSockaddrLength
  171.     );
  172.  
  173. #define WSAID_GETACCEPTEXSOCKADDRS \
  174.         {0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
  175.  
  176.  
  177. #ifdef __cplusplus
  178. }
  179. #endif
  180.  
  181. #pragma option -b.
  182. #endif  /* _MSWSOCK_ */
  183.  
  184.