home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / wsahelp.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  4KB  |  97 lines

  1. #ifndef _WSAHELP_H
  2. #define _WSAHELP_H
  3.  
  4. #include <winsock2.h>
  5. #include <ntsecapi.h>
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif /* __cplusplus */
  9.  
  10. #define WSH_NOTIFY_BIND 0x00000001
  11. #define WSH_NOTIFY_LISTEN 0x00000002
  12. #define WSH_NOTIFY_CONNECT 0x00000004
  13. #define WSH_NOTIFY_ACCEPT 0x00000008
  14. #define WSH_NOTIFY_SHUTDOWN_RECEIVE 0x00000010
  15. #define WSH_NOTIFY_SHUTDOWN_SEND 0x00000020
  16. #define WSH_NOTIFY_SHUTDOWN_ALL 0x00000040
  17. #define WSH_NOTIFY_CLOSE 0x00000080
  18. #define WSH_NOTIFY_CONNECT_ERROR 0x00000100
  19. #define SOL_INTERNAL 0xFFFE
  20. #define SO_CONTEXT 1
  21.  
  22. #ifndef RC_INVOKED
  23. typedef enum _SOCKADDR_ADDRESS_INFO {
  24.   SockaddrAddressInfoNormal,
  25.   SockaddrAddressInfoWildcard,
  26.   SockaddrAddressInfoBroadcast,
  27.   SockaddrAddressInfoLoopback
  28. } SOCKADDR_ADDRESS_INFO, *PSOCKADDR_ADDRESS_INFO;
  29. typedef enum _SOCKADDR_ENDPOINT_INFO {
  30.   SockaddrEndpointInfoNormal,
  31.   SockaddrEndpointInfoWildcard,
  32.   SockaddrEndpointInfoReserved
  33. } SOCKADDR_ENDPOINT_INFO, *PSOCKADDR_ENDPOINT_INFO;
  34. typedef struct _SOCKADDR_INFO {
  35.   SOCKADDR_ADDRESS_INFO AddressInfo;
  36.   SOCKADDR_ENDPOINT_INFO EndpointInfo;
  37. } SOCKADDR_INFO, *PSOCKADDR_INFO;
  38.  
  39. INT WINAPI WSHAddressToString(LPSOCKADDR,INT,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD);
  40. INT WINAPI WSHEnumProtocols(LPINT,LPWSTR,LPVOID,LPDWORD);
  41. INT WINAPI WSHGetBroadcastSockaddr(PVOID,PSOCKADDR,PINT);
  42. INT WINAPI WSHGetProviderGuid(LPWSTR,LPGUID);
  43. INT WINAPI WSHGetSockaddrType(PSOCKADDR,DWORD,PSOCKADDR_INFO);
  44. INT WINAPI WSHGetSocketInformation(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT);
  45. INT WINAPI WSHGetWildcardSockaddr(PVOID,PSOCKADDR,PINT);
  46. INT WINAPI WSHGetWSAProtocolInfo(LPWSTR,LPWSAPROTOCOL_INFOW*,LPDWORD);
  47. INT WINAPI WSHIoctl(PVOID,SOCKET,HANDLE,HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,
  48. LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPBOOL);
  49. INT WINAPI WSHJoinLeaf(PVOID,SOCKET,HANDLE,HANDLE,PVOID,SOCKET,PSOCKADDR,
  50. DWORD,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD);
  51. INT WINAPI WSHNotify(PVOID,SOCKET,HANDLE,HANDLE,DWORD);
  52. INT WINAPI WSHOpenSocket(PINT,PINT,PINT,PUNICODE_STRING,PVOID,PDWORD);
  53. INT WINAPI WSHOpenSocket2(PINT,PINT,PINT,GROUP,DWORD,PUNICODE_STRING,PVOID*,PDWORD);
  54. INT WINAPI WSHSetSocketInformation(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT);
  55. INT WINAPI WSHStringToAddress(LPWSTR,DWORD,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPDWORD);
  56.  
  57. typedef INT (WINAPI *PWSH_ADDRESS_TO_STRING)(LPSOCKADDR,INT,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD);
  58. typedef INT (WINAPI *PWSH_ENUM_PROTOCOLS)(LPINT,LPWSTR,LPVOID,LPDWORD);
  59. typedef INT (WINAPI *PWSH_GET_BROADCAST_SOCKADDR)(PVOID,PSOCKADDR,PINT);
  60. typedef INT (WINAPI *PWSH_GET_PROVIDER_GUID)(LPWSTR,LPGUID);
  61. typedef INT (WINAPI *PWSH_GET_SOCKADDR_TYPE)(PSOCKADDR,DWORD,PSOCKADDR_INFO);
  62. typedef INT (WINAPI *PWSH_GET_SOCKET_INFORMATION)(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT);
  63. typedef INT (WINAPI *PWSH_GET_WILDCARD_SOCKEADDR)(PVOID,PSOCKADDR,PINT);
  64. typedef INT (WINAPI *PWSH_GET_WSAPROTOCOL_INFO)(LPWSTR,LPWSAPROTOCOL_INFOW*,LPDWORD);
  65. typedef INT (WINAPI *PWSH_IOCTL)(PVOID,SOCKET,HANDLE,HANDLE,DWORD,LPVOID,DWORD,
  66.          LPVOID,DWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPBOOL);
  67. typedef INT (WINAPI *PWSH_JOIN_LEAF)(PVOID,SOCKET,HANDLE,HANDLE,PVOID,SOCKET,
  68.          PSOCKADDR,DWORD,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD);
  69. typedef INT (WINAPI *PWSH_NOTIFY)(PVOID,SOCKET,HANDLE,HANDLE,DWORD);
  70. typedef INT (WINAPI *PWSH_OPEN_SOCKET)(PINT,PINT,PINT,PUNICODE_STRING,PVOID,PDWORD);
  71. typedef INT (WINAPI *PWSH_OPEN_SOCKET2)(PINT,PINT,PINT,GROUP,DWORD,PUNICODE_STRING,PVOID*,PDWORD);
  72. typedef INT (WINAPI *PWSH_SET_SOCKET_INFORMATION)(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT);
  73. typedef INT (WINAPI *PWSH_STRING_TO_ADDRESS)(LPWSTR,DWORD,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPDWORD);
  74.  
  75. #ifndef __OBJC__
  76. /* "Protocol" is a builtin class name in ObjC.  */
  77. typedef struct _WINSOCK_MAPPING {
  78.     DWORD Rows;
  79.     DWORD Columns;
  80.     struct {
  81.         DWORD AddressFamily;
  82.         DWORD SocketType;
  83.         DWORD Protocol;
  84.     } Mapping[1];
  85. } WINSOCK_MAPPING, *PWINSOCK_MAPPING;
  86. DWORD WINAPI WSHGetWinsockMapping(PWINSOCK_MAPPING,DWORD);
  87. typedef DWORD (WINAPI *PWSH_GET_WINSOCK_MAPPING)(PWINSOCK_MAPPING,DWORD);
  88. #endif
  89.  
  90. #endif /* RC_INVOKED */
  91.  
  92. #ifdef __cplusplus
  93. }
  94. #endif /* __cplusplus */
  95.  
  96. #endif /* _WSAHELP_H */
  97.