home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / C_C++ / BorlandCompiler / freecommandLinetools.exe / Include / mswsock.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-27  |  4.3 KB  |  191 lines

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