1 #[link(name = "windows")]
3 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
4 pub fn WebSocketAbortHandle(hwebsocket
: WEB_SOCKET_HANDLE
);
5 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
6 pub fn WebSocketBeginClientHandshake(hwebsocket
: WEB_SOCKET_HANDLE
, pszsubprotocols
: *const ::windows_sys
::core
::PSTR
, ulsubprotocolcount
: u32, pszextensions
: *const ::windows_sys
::core
::PSTR
, ulextensioncount
: u32, pinitialheaders
: *const WEB_SOCKET_HTTP_HEADER
, ulinitialheadercount
: u32, padditionalheaders
: *mut *mut WEB_SOCKET_HTTP_HEADER
, puladditionalheadercount
: *mut u32) -> ::windows_sys
::core
::HRESULT
;
7 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
8 pub fn WebSocketBeginServerHandshake(hwebsocket
: WEB_SOCKET_HANDLE
, pszsubprotocolselected
: ::windows_sys
::core
::PCSTR
, pszextensionselected
: *const ::windows_sys
::core
::PSTR
, ulextensionselectedcount
: u32, prequestheaders
: *const WEB_SOCKET_HTTP_HEADER
, ulrequestheadercount
: u32, presponseheaders
: *mut *mut WEB_SOCKET_HTTP_HEADER
, pulresponseheadercount
: *mut u32) -> ::windows_sys
::core
::HRESULT
;
9 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
10 pub fn WebSocketCompleteAction(hwebsocket
: WEB_SOCKET_HANDLE
, pvactioncontext
: *const ::core
::ffi
::c_void
, ulbytestransferred
: u32);
11 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
12 pub fn WebSocketCreateClientHandle(pproperties
: *const WEB_SOCKET_PROPERTY
, ulpropertycount
: u32, phwebsocket
: *mut WEB_SOCKET_HANDLE
) -> ::windows_sys
::core
::HRESULT
;
13 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
14 pub fn WebSocketCreateServerHandle(pproperties
: *const WEB_SOCKET_PROPERTY
, ulpropertycount
: u32, phwebsocket
: *mut WEB_SOCKET_HANDLE
) -> ::windows_sys
::core
::HRESULT
;
15 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
16 pub fn WebSocketDeleteHandle(hwebsocket
: WEB_SOCKET_HANDLE
);
17 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
18 pub fn WebSocketEndClientHandshake(hwebsocket
: WEB_SOCKET_HANDLE
, presponseheaders
: *const WEB_SOCKET_HTTP_HEADER
, ulreponseheadercount
: u32, pulselectedextensions
: *mut u32, pulselectedextensioncount
: *mut u32, pulselectedsubprotocol
: *mut u32) -> ::windows_sys
::core
::HRESULT
;
19 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
20 pub fn WebSocketEndServerHandshake(hwebsocket
: WEB_SOCKET_HANDLE
) -> ::windows_sys
::core
::HRESULT
;
21 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
22 pub fn WebSocketGetAction(hwebsocket
: WEB_SOCKET_HANDLE
, eactionqueue
: WEB_SOCKET_ACTION_QUEUE
, pdatabuffers
: *mut WEB_SOCKET_BUFFER
, puldatabuffercount
: *mut u32, paction
: *mut WEB_SOCKET_ACTION
, pbuffertype
: *mut WEB_SOCKET_BUFFER_TYPE
, pvapplicationcontext
: *mut *mut ::core
::ffi
::c_void
, pvactioncontext
: *mut *mut ::core
::ffi
::c_void
) -> ::windows_sys
::core
::HRESULT
;
23 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
24 pub fn WebSocketGetGlobalProperty(etype
: WEB_SOCKET_PROPERTY_TYPE
, pvvalue
: *mut ::core
::ffi
::c_void
, ulsize
: *mut u32) -> ::windows_sys
::core
::HRESULT
;
25 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
26 pub fn WebSocketReceive(hwebsocket
: WEB_SOCKET_HANDLE
, pbuffer
: *const WEB_SOCKET_BUFFER
, pvcontext
: *const ::core
::ffi
::c_void
) -> ::windows_sys
::core
::HRESULT
;
27 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
28 pub fn WebSocketSend(hwebsocket
: WEB_SOCKET_HANDLE
, buffertype
: WEB_SOCKET_BUFFER_TYPE
, pbuffer
: *const WEB_SOCKET_BUFFER
, context
: *const ::core
::ffi
::c_void
) -> ::windows_sys
::core
::HRESULT
;
30 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
31 pub type WEB_SOCKET_ACTION
= i32;
32 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
33 pub const WEB_SOCKET_NO_ACTION
: WEB_SOCKET_ACTION
= 0i32;
34 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
35 pub const WEB_SOCKET_SEND_TO_NETWORK_ACTION
: WEB_SOCKET_ACTION
= 1i32;
36 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
37 pub const WEB_SOCKET_INDICATE_SEND_COMPLETE_ACTION
: WEB_SOCKET_ACTION
= 2i32;
38 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
39 pub const WEB_SOCKET_RECEIVE_FROM_NETWORK_ACTION
: WEB_SOCKET_ACTION
= 3i32;
40 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
41 pub const WEB_SOCKET_INDICATE_RECEIVE_COMPLETE_ACTION
: WEB_SOCKET_ACTION
= 4i32;
42 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
43 pub type WEB_SOCKET_ACTION_QUEUE
= i32;
44 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
45 pub const WEB_SOCKET_SEND_ACTION_QUEUE
: WEB_SOCKET_ACTION_QUEUE
= 1i32;
46 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
47 pub const WEB_SOCKET_RECEIVE_ACTION_QUEUE
: WEB_SOCKET_ACTION_QUEUE
= 2i32;
48 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
49 pub const WEB_SOCKET_ALL_ACTION_QUEUE
: WEB_SOCKET_ACTION_QUEUE
= 3i32;
51 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
52 pub union WEB_SOCKET_BUFFER
{
53 pub Data
: WEB_SOCKET_BUFFER_1
,
54 pub CloseStatus
: WEB_SOCKET_BUFFER_0
,
56 impl ::core
::marker
::Copy
for WEB_SOCKET_BUFFER {}
57 impl ::core
::clone
::Clone
for WEB_SOCKET_BUFFER
{
58 fn clone(&self) -> Self {
63 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
64 pub struct WEB_SOCKET_BUFFER_0
{
65 pub pbReason
: *mut u8,
66 pub ulReasonLength
: u32,
69 impl ::core
::marker
::Copy
for WEB_SOCKET_BUFFER_0 {}
70 impl ::core
::clone
::Clone
for WEB_SOCKET_BUFFER_0
{
71 fn clone(&self) -> Self {
76 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
77 pub struct WEB_SOCKET_BUFFER_1
{
78 pub pbBuffer
: *mut u8,
79 pub ulBufferLength
: u32,
81 impl ::core
::marker
::Copy
for WEB_SOCKET_BUFFER_1 {}
82 impl ::core
::clone
::Clone
for WEB_SOCKET_BUFFER_1
{
83 fn clone(&self) -> Self {
87 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
88 pub type WEB_SOCKET_BUFFER_TYPE
= i32;
89 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
90 pub const WEB_SOCKET_UTF8_MESSAGE_BUFFER_TYPE
: WEB_SOCKET_BUFFER_TYPE
= -2147483648i32;
91 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
92 pub const WEB_SOCKET_UTF8_FRAGMENT_BUFFER_TYPE
: WEB_SOCKET_BUFFER_TYPE
= -2147483647i32;
93 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
94 pub const WEB_SOCKET_BINARY_MESSAGE_BUFFER_TYPE
: WEB_SOCKET_BUFFER_TYPE
= -2147483646i32;
95 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
96 pub const WEB_SOCKET_BINARY_FRAGMENT_BUFFER_TYPE
: WEB_SOCKET_BUFFER_TYPE
= -2147483645i32;
97 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
98 pub const WEB_SOCKET_CLOSE_BUFFER_TYPE
: WEB_SOCKET_BUFFER_TYPE
= -2147483644i32;
99 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
100 pub const WEB_SOCKET_PING_PONG_BUFFER_TYPE
: WEB_SOCKET_BUFFER_TYPE
= -2147483643i32;
101 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
102 pub const WEB_SOCKET_UNSOLICITED_PONG_BUFFER_TYPE
: WEB_SOCKET_BUFFER_TYPE
= -2147483642i32;
103 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
104 pub type WEB_SOCKET_CLOSE_STATUS
= i32;
105 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
106 pub const WEB_SOCKET_SUCCESS_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1000i32;
107 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
108 pub const WEB_SOCKET_ENDPOINT_UNAVAILABLE_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1001i32;
109 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
110 pub const WEB_SOCKET_PROTOCOL_ERROR_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1002i32;
111 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
112 pub const WEB_SOCKET_INVALID_DATA_TYPE_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1003i32;
113 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
114 pub const WEB_SOCKET_EMPTY_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1005i32;
115 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
116 pub const WEB_SOCKET_ABORTED_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1006i32;
117 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
118 pub const WEB_SOCKET_INVALID_PAYLOAD_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1007i32;
119 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
120 pub const WEB_SOCKET_POLICY_VIOLATION_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1008i32;
121 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
122 pub const WEB_SOCKET_MESSAGE_TOO_BIG_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1009i32;
123 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
124 pub const WEB_SOCKET_UNSUPPORTED_EXTENSIONS_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1010i32;
125 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
126 pub const WEB_SOCKET_SERVER_ERROR_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1011i32;
127 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
128 pub const WEB_SOCKET_SECURE_HANDSHAKE_ERROR_CLOSE_STATUS
: WEB_SOCKET_CLOSE_STATUS
= 1015i32;
129 pub type WEB_SOCKET_HANDLE
= isize;
131 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
132 pub struct WEB_SOCKET_HTTP_HEADER
{
133 pub pcName
: ::windows_sys
::core
::PSTR
,
134 pub ulNameLength
: u32,
135 pub pcValue
: ::windows_sys
::core
::PSTR
,
136 pub ulValueLength
: u32,
138 impl ::core
::marker
::Copy
for WEB_SOCKET_HTTP_HEADER {}
139 impl ::core
::clone
::Clone
for WEB_SOCKET_HTTP_HEADER
{
140 fn clone(&self) -> Self {
144 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
145 pub const WEB_SOCKET_MAX_CLOSE_REASON_LENGTH
: u32 = 123u32;
147 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
148 pub struct WEB_SOCKET_PROPERTY
{
149 pub Type
: WEB_SOCKET_PROPERTY_TYPE
,
150 pub pvValue
: *mut ::core
::ffi
::c_void
,
151 pub ulValueSize
: u32,
153 impl ::core
::marker
::Copy
for WEB_SOCKET_PROPERTY {}
154 impl ::core
::clone
::Clone
for WEB_SOCKET_PROPERTY
{
155 fn clone(&self) -> Self {
159 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
160 pub type WEB_SOCKET_PROPERTY_TYPE
= i32;
161 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
162 pub const WEB_SOCKET_RECEIVE_BUFFER_SIZE_PROPERTY_TYPE
: WEB_SOCKET_PROPERTY_TYPE
= 0i32;
163 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
164 pub const WEB_SOCKET_SEND_BUFFER_SIZE_PROPERTY_TYPE
: WEB_SOCKET_PROPERTY_TYPE
= 1i32;
165 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
166 pub const WEB_SOCKET_DISABLE_MASKING_PROPERTY_TYPE
: WEB_SOCKET_PROPERTY_TYPE
= 2i32;
167 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
168 pub const WEB_SOCKET_ALLOCATED_BUFFER_PROPERTY_TYPE
: WEB_SOCKET_PROPERTY_TYPE
= 3i32;
169 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
170 pub const WEB_SOCKET_DISABLE_UTF8_VERIFICATION_PROPERTY_TYPE
: WEB_SOCKET_PROPERTY_TYPE
= 4i32;
171 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
172 pub const WEB_SOCKET_KEEPALIVE_INTERVAL_PROPERTY_TYPE
: WEB_SOCKET_PROPERTY_TYPE
= 5i32;
173 #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"]
174 pub const WEB_SOCKET_SUPPORTED_VERSIONS_PROPERTY_TYPE
: WEB_SOCKET_PROPERTY_TYPE
= 6i32;