4 #pragma GCC system_header
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
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
);
79 /* "Protocol" is a builtin class name in ObjC. */
80 typedef struct _WINSOCK_MAPPING
{
88 } WINSOCK_MAPPING
, *PWINSOCK_MAPPING
;
89 DWORD WINAPI
WSHGetWinsockMapping(PWINSOCK_MAPPING
,DWORD
);
90 typedef DWORD (WINAPI
*PWSH_GET_WINSOCK_MAPPING
)(PWINSOCK_MAPPING
,DWORD
);
93 #endif /* RC_INVOKED */
97 #endif /* __cplusplus */