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