1 // Copyright © 2015-2017 winapi-rs developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 5 // All files in the project carrying such notice may not be copied, modified, or distributed 6 // except according to those terms. 7 //! Windows HTTP Services API constant definitions and macros 8 use ctypes::c_int; 9 use shared::basetsd::DWORD_PTR; 10 use shared::minwindef::{BOOL, DWORD, LPCVOID, LPDWORD, LPVOID, USHORT, WORD}; 11 use um::minwinbase::SYSTEMTIME; 12 use um::winnt::{LPCWSTR, LPWSTR, PCWSTR, PVOID, PWSTR}; 13 pub type HINTERNET = LPVOID; 14 pub type LPHINTERNET = *mut HINTERNET; 15 pub type INTERNET_PORT = WORD; 16 pub type LPINTERNET_PORT = *mut INTERNET_PORT; 17 pub const INTERNET_DEFAULT_PORT: INTERNET_PORT = 0; 18 pub const INTERNET_DEFAULT_HTTP_PORT: INTERNET_PORT = 80; 19 pub const INTERNET_DEFAULT_HTTPS_PORT: INTERNET_PORT = 443; 20 pub const WINHTTP_FLAG_ASYNC: DWORD = 0x10000000; 21 pub const WINHTTP_FLAG_SECURE: DWORD = 0x00800000; 22 pub const WINHTTP_FLAG_ESCAPE_PERCENT: DWORD = 0x00000004; 23 pub const WINHTTP_FLAG_NULL_CODEPAGE: DWORD = 0x00000008; 24 pub const WINHTTP_FLAG_BYPASS_PROXY_CACHE: DWORD = 0x00000100; 25 pub const WINHTTP_FLAG_REFRESH: DWORD = WINHTTP_FLAG_BYPASS_PROXY_CACHE; 26 pub const WINHTTP_FLAG_ESCAPE_DISABLE: DWORD = 0x00000040; 27 pub const WINHTTP_FLAG_ESCAPE_DISABLE_QUERY: DWORD = 0x00000080; 28 STRUCT!{struct WINHTTP_ASYNC_RESULT { 29 dwResult: DWORD_PTR, 30 dwError: DWORD, 31 }} 32 pub type LPWINHTTP_ASYNC_RESULT = *mut WINHTTP_ASYNC_RESULT; 33 pub type INTERNET_SCHEME = c_int; 34 pub type LPINTERNET_SCHEME = *mut c_int; 35 pub const INTERNET_SCHEME_HTTP: INTERNET_SCHEME = 1; 36 pub const INTERNET_SCHEME_HTTPS: INTERNET_SCHEME = 2; 37 pub const INTERNET_SCHEME_FTP: INTERNET_SCHEME = 3; 38 pub const INTERNET_SCHEME_SOCKS: INTERNET_SCHEME = 4; 39 STRUCT!{struct URL_COMPONENTS { 40 dwStructSize: DWORD, 41 lpszScheme: LPWSTR, 42 dwSchemeLength: DWORD, 43 nScheme: INTERNET_SCHEME, 44 lpszHostName: LPWSTR, 45 dwHostNameLength: DWORD, 46 nPort: INTERNET_PORT, 47 lpszUserName: LPWSTR, 48 dwUserNameLength: DWORD, 49 lpszPassword: LPWSTR, 50 dwPasswordLength: DWORD, 51 lpszUrlPath: LPWSTR, 52 dwUrlPathLength: DWORD, 53 lpszExtraInfo: LPWSTR, 54 dwExtraInfoLength: DWORD, 55 }} 56 pub type LPURL_COMPONENTS = *mut URL_COMPONENTS; 57 pub type URL_COMPONENTSW = URL_COMPONENTS; 58 pub type LPURL_COMPONENTSW = LPURL_COMPONENTS; 59 STRUCT!{struct WINHTTP_PROXY_INFO { 60 dwAccessType: DWORD, 61 lpszProxy: LPWSTR, 62 lpszProxyBypass: LPWSTR, 63 }} 64 pub type LPWINHTTP_PROXY_INFO = *mut WINHTTP_PROXY_INFO; 65 pub type WINHTTP_PROXY_INFOW = WINHTTP_PROXY_INFO; 66 pub type LPWINHTTP_PROXY_INFOW = LPWINHTTP_PROXY_INFO; 67 STRUCT!{struct WINHTTP_AUTOPROXY_OPTIONS { 68 dwFlags: DWORD, 69 dwAutoDetectFlags: DWORD, 70 lpszAutoConfigUrl: LPCWSTR, 71 lpvReserved: LPVOID, 72 dwReserved: DWORD, 73 fAutoLogonIfChallenged: BOOL, 74 }} 75 pub const WINHTTP_AUTOPROXY_AUTO_DETECT: DWORD = 0x00000001; 76 pub const WINHTTP_AUTOPROXY_CONFIG_URL: DWORD = 0x00000002; 77 pub const WINHTTP_AUTOPROXY_HOST_KEEPCASE: DWORD = 0x00000004; 78 pub const WINHTTP_AUTOPROXY_HOST_LOWERCASE: DWORD = 0x00000008; 79 pub const WINHTTP_AUTOPROXY_RUN_INPROCESS: DWORD = 0x00010000; 80 pub const WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY: DWORD = 0x00020000; 81 pub const WINHTTP_AUTOPROXY_NO_DIRECTACCESS: DWORD = 0x00040000; 82 pub const WINHTTP_AUTOPROXY_NO_CACHE_CLIENT: DWORD = 0x00080000; 83 pub const WINHTTP_AUTOPROXY_NO_CACHE_SVC: DWORD = 0x00100000; 84 pub const WINHTTP_AUTOPROXY_SORT_RESULTS: DWORD = 0x00400000; 85 pub const WINHTTP_AUTO_DETECT_TYPE_DHCP: DWORD = 0x00000001; 86 pub const WINHTTP_AUTO_DETECT_TYPE_DNS_A: DWORD = 0x00000002; 87 STRUCT!{struct WINHTTP_PROXY_RESULT_ENTRY { 88 fProxy: BOOL, 89 fBypass: BOOL, 90 ProxyScheme: INTERNET_SCHEME, 91 pwszProxy: PWSTR, 92 ProxyPort: INTERNET_PORT, 93 }} 94 STRUCT!{struct WINHTTP_PROXY_RESULT { 95 cEntries: DWORD, 96 pEntries: *mut WINHTTP_PROXY_RESULT_ENTRY, 97 }} 98 pub const WINHTTP_FIRST_OPTION: DWORD = WINHTTP_OPTION_CALLBACK; 99 pub const WINHTTP_OPTION_CALLBACK: DWORD = 1; 100 pub const WINHTTP_OPTION_RESOLVE_TIMEOUT: DWORD = 2; 101 pub const WINHTTP_OPTION_CONNECT_TIMEOUT: DWORD = 3; 102 pub const WINHTTP_OPTION_CONNECT_RETRIES: DWORD = 4; 103 pub const WINHTTP_OPTION_SEND_TIMEOUT: DWORD = 5; 104 pub const WINHTTP_OPTION_RECEIVE_TIMEOUT: DWORD = 6; 105 pub const WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT: DWORD = 7; 106 pub const WINHTTP_OPTION_HANDLE_TYPE: DWORD = 9; 107 pub const WINHTTP_OPTION_READ_BUFFER_SIZE: DWORD = 12; 108 pub const WINHTTP_OPTION_WRITE_BUFFER_SIZE: DWORD = 13; 109 pub const WINHTTP_OPTION_PARENT_HANDLE: DWORD = 21; 110 pub const WINHTTP_OPTION_EXTENDED_ERROR: DWORD = 24; 111 pub const WINHTTP_OPTION_SECURITY_FLAGS: DWORD = 31; 112 pub const WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT: DWORD = 32; 113 pub const WINHTTP_OPTION_URL: DWORD = 34; 114 pub const WINHTTP_OPTION_SECURITY_KEY_BITNESS: DWORD = 36; 115 pub const WINHTTP_OPTION_PROXY: DWORD = 38; 116 pub const WINHTTP_OPTION_PROXY_RESULT_ENTRY: DWORD = 39; 117 pub const WINHTTP_OPTION_USER_AGENT: DWORD = 41; 118 pub const WINHTTP_OPTION_CONTEXT_VALUE: DWORD = 45; 119 pub const WINHTTP_OPTION_CLIENT_CERT_CONTEXT: DWORD = 47; 120 pub const WINHTTP_OPTION_REQUEST_PRIORITY: DWORD = 58; 121 pub const WINHTTP_OPTION_HTTP_VERSION: DWORD = 59; 122 pub const WINHTTP_OPTION_DISABLE_FEATURE: DWORD = 63; 123 pub const WINHTTP_OPTION_CODEPAGE: DWORD = 68; 124 pub const WINHTTP_OPTION_MAX_CONNS_PER_SERVER: DWORD = 73; 125 pub const WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER: DWORD = 74; 126 pub const WINHTTP_OPTION_AUTOLOGON_POLICY: DWORD = 77; 127 pub const WINHTTP_OPTION_SERVER_CERT_CONTEXT: DWORD = 78; 128 pub const WINHTTP_OPTION_ENABLE_FEATURE: DWORD = 79; 129 pub const WINHTTP_OPTION_WORKER_THREAD_COUNT: DWORD = 80; 130 pub const WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT: DWORD = 81; 131 pub const WINHTTP_OPTION_PASSPORT_COBRANDING_URL: DWORD = 82; 132 pub const WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH: DWORD = 83; 133 pub const WINHTTP_OPTION_SECURE_PROTOCOLS: DWORD = 84; 134 pub const WINHTTP_OPTION_ENABLETRACING: DWORD = 85; 135 pub const WINHTTP_OPTION_PASSPORT_SIGN_OUT: DWORD = 86; 136 pub const WINHTTP_OPTION_PASSPORT_RETURN_URL: DWORD = 87; 137 pub const WINHTTP_OPTION_REDIRECT_POLICY: DWORD = 88; 138 pub const WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS: DWORD = 89; 139 pub const WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE: DWORD = 90; 140 pub const WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE: DWORD = 91; 141 pub const WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE: DWORD = 92; 142 pub const WINHTTP_OPTION_CONNECTION_INFO: DWORD = 93; 143 pub const WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST: DWORD = 94; 144 pub const WINHTTP_OPTION_SPN: DWORD = 96; 145 pub const WINHTTP_OPTION_GLOBAL_PROXY_CREDS: DWORD = 97; 146 pub const WINHTTP_OPTION_GLOBAL_SERVER_CREDS: DWORD = 98; 147 pub const WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT: DWORD = 99; 148 pub const WINHTTP_OPTION_REJECT_USERPWD_IN_URL: DWORD = 100; 149 pub const WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS: DWORD = 101; 150 pub const WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE: DWORD = 103; 151 pub const WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE: DWORD = 104; 152 pub const WINHTTP_OPTION_SERVER_SPN_USED: DWORD = 106; 153 pub const WINHTTP_OPTION_PROXY_SPN_USED: DWORD = 107; 154 pub const WINHTTP_OPTION_SERVER_CBT: DWORD = 108; 155 pub const WINHTTP_OPTION_UNSAFE_HEADER_PARSING: DWORD = 110; 156 pub const WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS: DWORD = 111; 157 pub const WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET: DWORD = 114; 158 pub const WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT: DWORD = 115; 159 pub const WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL: DWORD = 116; 160 pub const WINHTTP_OPTION_DECOMPRESSION: DWORD = 118; 161 pub const WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE: DWORD = 122; 162 pub const WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE: DWORD = 123; 163 pub const WINHTTP_LAST_OPTION: DWORD = WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE; 164 pub const WINHTTP_OPTION_USERNAME: DWORD = 0x1000; 165 pub const WINHTTP_OPTION_PASSWORD: DWORD = 0x1001; 166 pub const WINHTTP_OPTION_PROXY_USERNAME: DWORD = 0x1002; 167 pub const WINHTTP_OPTION_PROXY_PASSWORD: DWORD = 0x1003; 168 //569 169 FN!{stdcall WINHTTP_STATUS_CALLBACK( 170 hInternet: HINTERNET, 171 dwContext: DWORD_PTR, 172 dwInternetStatus: DWORD, 173 lpvStatusInformation: LPVOID, 174 dwStatusInformationLength: DWORD, 175 ) -> ()} 176 pub type LPWINHTTP_STATUS_CALLBACK = *mut WINHTTP_STATUS_CALLBACK; 177 pub const WINHTTP_CALLBACK_STATUS_RESOLVING_NAME: DWORD = 0x00000001; 178 pub const WINHTTP_CALLBACK_STATUS_NAME_RESOLVED: DWORD = 0x00000002; 179 pub const WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER: DWORD = 0x00000004; 180 pub const WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER: DWORD = 0x00000008; 181 pub const WINHTTP_CALLBACK_STATUS_SENDING_REQUEST: DWORD = 0x00000010; 182 pub const WINHTTP_CALLBACK_STATUS_REQUEST_SENT: DWORD = 0x00000020; 183 pub const WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE: DWORD = 0x00000040; 184 pub const WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED: DWORD = 0x00000080; 185 pub const WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION: DWORD = 0x00000100; 186 pub const WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED: DWORD = 0x00000200; 187 pub const WINHTTP_CALLBACK_STATUS_HANDLE_CREATED: DWORD = 0x00000400; 188 pub const WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING: DWORD = 0x00000800; 189 pub const WINHTTP_CALLBACK_STATUS_DETECTING_PROXY: DWORD = 0x00001000; 190 pub const WINHTTP_CALLBACK_STATUS_REDIRECT: DWORD = 0x00004000; 191 pub const WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE: DWORD = 0x00008000; 192 pub const WINHTTP_CALLBACK_STATUS_SECURE_FAILURE: DWORD = 0x00010000; 193 pub const WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE: DWORD = 0x00020000; 194 pub const WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE: DWORD = 0x00040000; 195 pub const WINHTTP_CALLBACK_STATUS_READ_COMPLETE: DWORD = 0x00080000; 196 pub const WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE: DWORD = 0x00100000; 197 pub const WINHTTP_CALLBACK_STATUS_REQUEST_ERROR: DWORD = 0x00200000; 198 pub const WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE: DWORD = 0x00400000; 199 pub const WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE: DWORD = 0x01000000; 200 pub const WINHTTP_CALLBACK_STATUS_CLOSE_COMPLETE: DWORD = 0x02000000; 201 pub const WINHTTP_CALLBACK_STATUS_SHUTDOWN_COMPLETE: DWORD = 0x04000000; 202 pub const WINHTTP_CALLBACK_FLAG_RESOLVE_NAME: DWORD = WINHTTP_CALLBACK_STATUS_RESOLVING_NAME 203 | WINHTTP_CALLBACK_STATUS_NAME_RESOLVED; 204 pub const WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER: DWORD = 205 WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER | WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER; 206 pub const WINHTTP_CALLBACK_FLAG_SEND_REQUEST: DWORD = 207 WINHTTP_CALLBACK_STATUS_SENDING_REQUEST | WINHTTP_CALLBACK_STATUS_REQUEST_SENT; 208 pub const WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE: DWORD = 209 WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE | WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED; 210 pub const WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION: DWORD = 211 WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION | WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED; 212 pub const WINHTTP_CALLBACK_FLAG_HANDLES: DWORD = 213 WINHTTP_CALLBACK_STATUS_HANDLE_CREATED | WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING; 214 pub const WINHTTP_CALLBACK_FLAG_DETECTING_PROXY: DWORD = WINHTTP_CALLBACK_STATUS_DETECTING_PROXY; 215 pub const WINHTTP_CALLBACK_FLAG_REDIRECT: DWORD = WINHTTP_CALLBACK_STATUS_REDIRECT; 216 pub const WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE: DWORD = 217 WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE; 218 pub const WINHTTP_CALLBACK_FLAG_SECURE_FAILURE: DWORD = WINHTTP_CALLBACK_STATUS_SECURE_FAILURE; 219 pub const WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE: DWORD = 220 WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE; 221 pub const WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE: DWORD = 222 WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE; 223 pub const WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE: DWORD = WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE; 224 pub const WINHTTP_CALLBACK_FLAG_READ_COMPLETE: DWORD = WINHTTP_CALLBACK_STATUS_READ_COMPLETE; 225 pub const WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE: DWORD = WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE; 226 pub const WINHTTP_CALLBACK_FLAG_REQUEST_ERROR: DWORD = WINHTTP_CALLBACK_STATUS_REQUEST_ERROR; 227 pub const WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE: DWORD = 228 WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE; 229 pub const WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS: DWORD = 230 WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE | WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE 231 | WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE | WINHTTP_CALLBACK_STATUS_READ_COMPLETE 232 | WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR 233 | WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE; 234 pub const WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS: DWORD = 0xffffffff; 235 pub const WINHTTP_QUERY_MIME_VERSION: DWORD = 0; 236 pub const WINHTTP_QUERY_CONTENT_TYPE: DWORD = 1; 237 pub const WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING: DWORD = 2; 238 pub const WINHTTP_QUERY_CONTENT_ID: DWORD = 3; 239 pub const WINHTTP_QUERY_CONTENT_DESCRIPTION: DWORD = 4; 240 pub const WINHTTP_QUERY_CONTENT_LENGTH: DWORD = 5; 241 pub const WINHTTP_QUERY_CONTENT_LANGUAGE: DWORD = 6; 242 pub const WINHTTP_QUERY_ALLOW: DWORD = 7; 243 pub const WINHTTP_QUERY_PUBLIC: DWORD = 8; 244 pub const WINHTTP_QUERY_DATE: DWORD = 9; 245 pub const WINHTTP_QUERY_EXPIRES: DWORD = 10; 246 pub const WINHTTP_QUERY_LAST_MODIFIED: DWORD = 11; 247 pub const WINHTTP_QUERY_MESSAGE_ID: DWORD = 12; 248 pub const WINHTTP_QUERY_URI: DWORD = 13; 249 pub const WINHTTP_QUERY_DERIVED_FROM: DWORD = 14; 250 pub const WINHTTP_QUERY_COST: DWORD = 15; 251 pub const WINHTTP_QUERY_LINK: DWORD = 16; 252 pub const WINHTTP_QUERY_PRAGMA: DWORD = 17; 253 pub const WINHTTP_QUERY_VERSION: DWORD = 18; 254 pub const WINHTTP_QUERY_STATUS_CODE: DWORD = 19; 255 pub const WINHTTP_QUERY_STATUS_TEXT: DWORD = 20; 256 pub const WINHTTP_QUERY_RAW_HEADERS: DWORD = 21; 257 pub const WINHTTP_QUERY_RAW_HEADERS_CRLF: DWORD = 22; 258 pub const WINHTTP_QUERY_CONNECTION: DWORD = 23; 259 pub const WINHTTP_QUERY_ACCEPT: DWORD = 24; 260 pub const WINHTTP_QUERY_ACCEPT_CHARSET: DWORD = 25; 261 pub const WINHTTP_QUERY_ACCEPT_ENCODING: DWORD = 26; 262 pub const WINHTTP_QUERY_ACCEPT_LANGUAGE: DWORD = 27; 263 pub const WINHTTP_QUERY_AUTHORIZATION: DWORD = 28; 264 pub const WINHTTP_QUERY_CONTENT_ENCODING: DWORD = 29; 265 pub const WINHTTP_QUERY_FORWARDED: DWORD = 30; 266 pub const WINHTTP_QUERY_FROM: DWORD = 31; 267 pub const WINHTTP_QUERY_IF_MODIFIED_SINCE: DWORD = 32; 268 pub const WINHTTP_QUERY_LOCATION: DWORD = 33; 269 pub const WINHTTP_QUERY_ORIG_URI: DWORD = 34; 270 pub const WINHTTP_QUERY_REFERER: DWORD = 35; 271 pub const WINHTTP_QUERY_RETRY_AFTER: DWORD = 36; 272 pub const WINHTTP_QUERY_SERVER: DWORD = 37; 273 pub const WINHTTP_QUERY_TITLE: DWORD = 38; 274 pub const WINHTTP_QUERY_USER_AGENT: DWORD = 39; 275 pub const WINHTTP_QUERY_WWW_AUTHENTICATE: DWORD = 40; 276 pub const WINHTTP_QUERY_PROXY_AUTHENTICATE: DWORD = 41; 277 pub const WINHTTP_QUERY_ACCEPT_RANGES: DWORD = 42; 278 pub const WINHTTP_QUERY_SET_COOKIE: DWORD = 43; 279 pub const WINHTTP_QUERY_COOKIE: DWORD = 44; 280 pub const WINHTTP_QUERY_REQUEST_METHOD: DWORD = 45; 281 pub const WINHTTP_QUERY_REFRESH: DWORD = 46; 282 pub const WINHTTP_QUERY_CONTENT_DISPOSITION: DWORD = 47; 283 pub const WINHTTP_QUERY_AGE: DWORD = 48; 284 pub const WINHTTP_QUERY_CACHE_CONTROL: DWORD = 49; 285 pub const WINHTTP_QUERY_CONTENT_BASE: DWORD = 50; 286 pub const WINHTTP_QUERY_CONTENT_LOCATION: DWORD = 51; 287 pub const WINHTTP_QUERY_CONTENT_MD5: DWORD = 52; 288 pub const WINHTTP_QUERY_CONTENT_RANGE: DWORD = 53; 289 pub const WINHTTP_QUERY_ETAG: DWORD = 54; 290 pub const WINHTTP_QUERY_HOST: DWORD = 55; 291 pub const WINHTTP_QUERY_IF_MATCH: DWORD = 56; 292 pub const WINHTTP_QUERY_IF_NONE_MATCH: DWORD = 57; 293 pub const WINHTTP_QUERY_IF_RANGE: DWORD = 58; 294 pub const WINHTTP_QUERY_IF_UNMODIFIED_SINCE: DWORD = 59; 295 pub const WINHTTP_QUERY_MAX_FORWARDS: DWORD = 60; 296 pub const WINHTTP_QUERY_PROXY_AUTHORIZATION: DWORD = 61; 297 pub const WINHTTP_QUERY_RANGE: DWORD = 62; 298 pub const WINHTTP_QUERY_TRANSFER_ENCODING: DWORD = 63; 299 pub const WINHTTP_QUERY_UPGRADE: DWORD = 64; 300 pub const WINHTTP_QUERY_VARY: DWORD = 65; 301 pub const WINHTTP_QUERY_VIA: DWORD = 66; 302 pub const WINHTTP_QUERY_WARNING: DWORD = 67; 303 pub const WINHTTP_QUERY_EXPECT: DWORD = 68; 304 pub const WINHTTP_QUERY_PROXY_CONNECTION: DWORD = 69; 305 pub const WINHTTP_QUERY_UNLESS_MODIFIED_SINCE: DWORD = 70; 306 pub const WINHTTP_QUERY_PROXY_SUPPORT: DWORD = 75; 307 pub const WINHTTP_QUERY_AUTHENTICATION_INFO: DWORD = 76; 308 pub const WINHTTP_QUERY_PASSPORT_URLS: DWORD = 77; 309 pub const WINHTTP_QUERY_PASSPORT_CONFIG: DWORD = 78; 310 pub const WINHTTP_QUERY_MAX: DWORD = 78; 311 pub const WINHTTP_QUERY_CUSTOM: DWORD = 65535; 312 pub const WINHTTP_QUERY_FLAG_REQUEST_HEADERS: DWORD = 0x80000000; 313 pub const WINHTTP_QUERY_FLAG_SYSTEMTIME: DWORD = 0x40000000; 314 pub const WINHTTP_QUERY_FLAG_NUMBER: DWORD = 0x20000000; 315 pub const HTTP_STATUS_CONTINUE: DWORD = 100; 316 pub const HTTP_STATUS_SWITCH_PROTOCOLS: DWORD = 101; 317 pub const HTTP_STATUS_OK: DWORD = 200; 318 pub const HTTP_STATUS_CREATED: DWORD = 201; 319 pub const HTTP_STATUS_ACCEPTED: DWORD = 202; 320 pub const HTTP_STATUS_PARTIAL: DWORD = 203; 321 pub const HTTP_STATUS_NO_CONTENT: DWORD = 204; 322 pub const HTTP_STATUS_RESET_CONTENT: DWORD = 205; 323 pub const HTTP_STATUS_PARTIAL_CONTENT: DWORD = 206; 324 pub const HTTP_STATUS_WEBDAV_MULTI_STATUS: DWORD = 207; 325 pub const HTTP_STATUS_AMBIGUOUS: DWORD = 300; 326 pub const HTTP_STATUS_MOVED: DWORD = 301; 327 pub const HTTP_STATUS_REDIRECT: DWORD = 302; 328 pub const HTTP_STATUS_REDIRECT_METHOD: DWORD = 303; 329 pub const HTTP_STATUS_NOT_MODIFIED: DWORD = 304; 330 pub const HTTP_STATUS_USE_PROXY: DWORD = 305; 331 pub const HTTP_STATUS_REDIRECT_KEEP_VERB: DWORD = 307; 332 pub const HTTP_STATUS_BAD_REQUEST: DWORD = 400; 333 pub const HTTP_STATUS_DENIED: DWORD = 401; 334 pub const HTTP_STATUS_PAYMENT_REQ: DWORD = 402; 335 pub const HTTP_STATUS_FORBIDDEN: DWORD = 403; 336 pub const HTTP_STATUS_NOT_FOUND: DWORD = 404; 337 pub const HTTP_STATUS_BAD_METHOD: DWORD = 405; 338 pub const HTTP_STATUS_NONE_ACCEPTABLE: DWORD = 406; 339 pub const HTTP_STATUS_PROXY_AUTH_REQ: DWORD = 407; 340 pub const HTTP_STATUS_REQUEST_TIMEOUT: DWORD = 408; 341 pub const HTTP_STATUS_CONFLICT: DWORD = 409; 342 pub const HTTP_STATUS_GONE: DWORD = 410; 343 pub const HTTP_STATUS_LENGTH_REQUIRED: DWORD = 411; 344 pub const HTTP_STATUS_PRECOND_FAILED: DWORD = 412; 345 pub const HTTP_STATUS_REQUEST_TOO_LARGE: DWORD = 413; 346 pub const HTTP_STATUS_URI_TOO_LONG: DWORD = 414; 347 pub const HTTP_STATUS_UNSUPPORTED_MEDIA: DWORD = 415; 348 pub const HTTP_STATUS_RETRY_WITH: DWORD = 449; 349 pub const HTTP_STATUS_SERVER_ERROR: DWORD = 500; 350 pub const HTTP_STATUS_NOT_SUPPORTED: DWORD = 501; 351 pub const HTTP_STATUS_BAD_GATEWAY: DWORD = 502; 352 pub const HTTP_STATUS_SERVICE_UNAVAIL: DWORD = 503; 353 pub const HTTP_STATUS_GATEWAY_TIMEOUT: DWORD = 504; 354 pub const HTTP_STATUS_VERSION_NOT_SUP: DWORD = 505; 355 pub const HTTP_STATUS_FIRST: DWORD = HTTP_STATUS_CONTINUE; 356 pub const HTTP_STATUS_LAST: DWORD = HTTP_STATUS_VERSION_NOT_SUP; 357 pub const WINHTTP_ACCESS_TYPE_DEFAULT_PROXY: DWORD = 0; 358 pub const WINHTTP_ACCESS_TYPE_NO_PROXY: DWORD = 1; 359 pub const WINHTTP_ACCESS_TYPE_NAMED_PROXY: DWORD = 3; 360 pub const WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY: DWORD = 4; 361 STRUCT!{struct WINHTTP_CURRENT_USER_IE_PROXY_CONFIG { 362 fAutoDetect: BOOL, 363 lpszAutoConfigUrl: LPWSTR, 364 lpszProxy: LPWSTR, 365 lpszProxyBypass: LPWSTR, 366 }} 367 pub const WINHTTP_ERROR_BASE: DWORD = 12000; 368 pub const ERROR_WINHTTP_OUT_OF_HANDLES: DWORD = WINHTTP_ERROR_BASE + 1; 369 pub const ERROR_WINHTTP_TIMEOUT: DWORD = WINHTTP_ERROR_BASE + 2; 370 pub const ERROR_WINHTTP_INTERNAL_ERROR: DWORD = WINHTTP_ERROR_BASE + 4; 371 pub const ERROR_WINHTTP_INVALID_URL: DWORD = WINHTTP_ERROR_BASE + 5; 372 pub const ERROR_WINHTTP_UNRECOGNIZED_SCHEME: DWORD = WINHTTP_ERROR_BASE + 6; 373 pub const ERROR_WINHTTP_NAME_NOT_RESOLVED: DWORD = WINHTTP_ERROR_BASE + 7; 374 pub const ERROR_WINHTTP_INVALID_OPTION: DWORD = WINHTTP_ERROR_BASE + 9; 375 pub const ERROR_WINHTTP_OPTION_NOT_SETTABLE: DWORD = WINHTTP_ERROR_BASE + 11; 376 pub const ERROR_WINHTTP_SHUTDOWN: DWORD = WINHTTP_ERROR_BASE + 12; 377 pub const ERROR_WINHTTP_LOGIN_FAILURE: DWORD = WINHTTP_ERROR_BASE + 15; 378 pub const ERROR_WINHTTP_OPERATION_CANCELLED: DWORD = WINHTTP_ERROR_BASE + 17; 379 pub const ERROR_WINHTTP_INCORRECT_HANDLE_TYPE: DWORD = WINHTTP_ERROR_BASE + 18; 380 pub const ERROR_WINHTTP_INCORRECT_HANDLE_STATE: DWORD = WINHTTP_ERROR_BASE + 19; 381 pub const ERROR_WINHTTP_CANNOT_CONNECT: DWORD = WINHTTP_ERROR_BASE + 29; 382 pub const ERROR_WINHTTP_CONNECTION_ERROR: DWORD = WINHTTP_ERROR_BASE + 30; 383 pub const ERROR_WINHTTP_RESEND_REQUEST: DWORD = WINHTTP_ERROR_BASE + 32; 384 pub const ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED: DWORD = WINHTTP_ERROR_BASE + 44; 385 pub const ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN: DWORD = WINHTTP_ERROR_BASE + 100; 386 pub const ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND: DWORD = WINHTTP_ERROR_BASE + 101; 387 pub const ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND: DWORD = WINHTTP_ERROR_BASE + 102; 388 pub const ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN: DWORD = WINHTTP_ERROR_BASE + 103; 389 pub const ERROR_WINHTTP_HEADER_NOT_FOUND: DWORD = WINHTTP_ERROR_BASE + 150; 390 pub const ERROR_WINHTTP_INVALID_SERVER_RESPONSE: DWORD = WINHTTP_ERROR_BASE + 152; 391 pub const ERROR_WINHTTP_INVALID_HEADER: DWORD = WINHTTP_ERROR_BASE + 153; 392 pub const ERROR_WINHTTP_INVALID_QUERY_REQUEST: DWORD = WINHTTP_ERROR_BASE + 154; 393 pub const ERROR_WINHTTP_HEADER_ALREADY_EXISTS: DWORD = WINHTTP_ERROR_BASE + 155; 394 pub const ERROR_WINHTTP_REDIRECT_FAILED: DWORD = WINHTTP_ERROR_BASE + 156; 395 pub const ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR: DWORD = WINHTTP_ERROR_BASE + 178; 396 pub const ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT: DWORD = WINHTTP_ERROR_BASE + 166; 397 pub const ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT: DWORD = WINHTTP_ERROR_BASE + 167; 398 pub const ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE: DWORD = WINHTTP_ERROR_BASE + 176; 399 pub const ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR: DWORD = WINHTTP_ERROR_BASE + 177; 400 pub const ERROR_WINHTTP_NOT_INITIALIZED: DWORD = WINHTTP_ERROR_BASE + 172; 401 pub const ERROR_WINHTTP_SECURE_FAILURE: DWORD = WINHTTP_ERROR_BASE + 175; 402 pub const ERROR_WINHTTP_SECURE_CERT_DATE_INVALID: DWORD = WINHTTP_ERROR_BASE + 37; 403 pub const ERROR_WINHTTP_SECURE_CERT_CN_INVALID: DWORD = WINHTTP_ERROR_BASE + 38; 404 pub const ERROR_WINHTTP_SECURE_INVALID_CA: DWORD = WINHTTP_ERROR_BASE + 45; 405 pub const ERROR_WINHTTP_SECURE_CERT_REV_FAILED: DWORD = WINHTTP_ERROR_BASE + 57; 406 pub const ERROR_WINHTTP_SECURE_CHANNEL_ERROR: DWORD = WINHTTP_ERROR_BASE + 157; 407 pub const ERROR_WINHTTP_SECURE_INVALID_CERT: DWORD = WINHTTP_ERROR_BASE + 169; 408 pub const ERROR_WINHTTP_SECURE_CERT_REVOKED: DWORD = WINHTTP_ERROR_BASE + 170; 409 pub const ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE: DWORD = WINHTTP_ERROR_BASE + 179; 410 pub const ERROR_WINHTTP_AUTODETECTION_FAILED: DWORD = WINHTTP_ERROR_BASE + 180; 411 pub const ERROR_WINHTTP_HEADER_COUNT_EXCEEDED: DWORD = WINHTTP_ERROR_BASE + 181; 412 pub const ERROR_WINHTTP_HEADER_SIZE_OVERFLOW: DWORD = WINHTTP_ERROR_BASE + 182; 413 pub const ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW: DWORD = WINHTTP_ERROR_BASE + 183; 414 pub const ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW: DWORD = WINHTTP_ERROR_BASE + 184; 415 pub const ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY: DWORD = WINHTTP_ERROR_BASE + 185; 416 pub const ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY: DWORD = WINHTTP_ERROR_BASE + 186; 417 pub const WINHTTP_ERROR_LAST: DWORD = WINHTTP_ERROR_BASE + 186; 418 pub const WINHTTP_RESET_STATE: DWORD = 0x00000001; 419 pub const WINHTTP_RESET_SWPAD_CURRENT_NETWORK: DWORD = 0x00000002; 420 pub const WINHTTP_RESET_SWPAD_ALL: DWORD = 0x00000004; 421 pub const WINHTTP_RESET_SCRIPT_CACHE: DWORD = 0x00000008; 422 pub const WINHTTP_RESET_ALL: DWORD = 0x0000FFFF; 423 pub const WINHTTP_RESET_NOTIFY_NETWORK_CHANGED: DWORD = 0x00010000; 424 pub const WINHTTP_RESET_OUT_OF_PROC: DWORD = 0x00020000; 425 extern "system" { WinHttpSetStatusCallback( hInternet: HINTERNET, lpfnInternetCallback: WINHTTP_STATUS_CALLBACK, dwNotificationFlags: DWORD, dwReserved: DWORD_PTR, ) -> WINHTTP_STATUS_CALLBACK426 pub fn WinHttpSetStatusCallback( 427 hInternet: HINTERNET, 428 lpfnInternetCallback: WINHTTP_STATUS_CALLBACK, 429 dwNotificationFlags: DWORD, 430 dwReserved: DWORD_PTR, 431 ) -> WINHTTP_STATUS_CALLBACK; WinHttpTimeFromSystemTime( pst: *const SYSTEMTIME, pwszTime: LPWSTR, ) -> BOOL432 pub fn WinHttpTimeFromSystemTime( 433 pst: *const SYSTEMTIME, 434 pwszTime: LPWSTR, 435 ) -> BOOL; WinHttpTimeToSystemTime( pwszTime: LPCWSTR, pst: *mut SYSTEMTIME ) -> BOOL436 pub fn WinHttpTimeToSystemTime( 437 pwszTime: LPCWSTR, 438 pst: *mut SYSTEMTIME 439 ) -> BOOL; WinHttpCrackUrl( pwszUrl: LPCWSTR, dwUrlLength: DWORD, dwFlags: DWORD, lpUrlComponents: LPURL_COMPONENTS, ) -> BOOL440 pub fn WinHttpCrackUrl( 441 pwszUrl: LPCWSTR, 442 dwUrlLength: DWORD, 443 dwFlags: DWORD, 444 lpUrlComponents: LPURL_COMPONENTS, 445 ) -> BOOL; WinHttpCreateUrl( lpUrlComponents: LPURL_COMPONENTS, dwFlags: DWORD, pwszUrl: LPWSTR, pdwUrlLength: LPDWORD, ) -> BOOL446 pub fn WinHttpCreateUrl( 447 lpUrlComponents: LPURL_COMPONENTS, 448 dwFlags: DWORD, 449 pwszUrl: LPWSTR, 450 pdwUrlLength: LPDWORD, 451 ) -> BOOL; WinHttpCheckPlatform() -> BOOL452 pub fn WinHttpCheckPlatform() -> BOOL; WinHttpGetDefaultProxyConfiguration( pProxyInfo: *mut WINHTTP_PROXY_INFO, ) -> BOOL453 pub fn WinHttpGetDefaultProxyConfiguration( 454 pProxyInfo: *mut WINHTTP_PROXY_INFO, 455 ) -> BOOL; WinHttpSetDefaultProxyConfiguration( pProxyInfo: *mut WINHTTP_PROXY_INFO, ) -> BOOL456 pub fn WinHttpSetDefaultProxyConfiguration( 457 pProxyInfo: *mut WINHTTP_PROXY_INFO, 458 ) -> BOOL; WinHttpOpen( pszAgentW: LPCWSTR, dwAccessType: DWORD, pszProxyW: LPCWSTR, pszProxyBypassW: LPCWSTR, dwFlags: DWORD, ) -> HINTERNET459 pub fn WinHttpOpen( 460 pszAgentW: LPCWSTR, 461 dwAccessType: DWORD, 462 pszProxyW: LPCWSTR, 463 pszProxyBypassW: LPCWSTR, 464 dwFlags: DWORD, 465 ) -> HINTERNET; WinHttpCloseHandle( hInternet: HINTERNET, ) -> BOOL466 pub fn WinHttpCloseHandle( 467 hInternet: HINTERNET, 468 ) -> BOOL; WinHttpConnect( hSession: HINTERNET, pswzServerName: LPCWSTR, nServerPort: INTERNET_PORT, dwReserved: DWORD, ) -> HINTERNET469 pub fn WinHttpConnect( 470 hSession: HINTERNET, 471 pswzServerName: LPCWSTR, 472 nServerPort: INTERNET_PORT, 473 dwReserved: DWORD, 474 ) -> HINTERNET; WinHttpReadData( hRequest: HINTERNET, lpBuffer: LPVOID, dwNumberOfBytesToRead: DWORD, lpdwNumberOfBytesRead: LPDWORD, ) -> BOOL475 pub fn WinHttpReadData( 476 hRequest: HINTERNET, 477 lpBuffer: LPVOID, 478 dwNumberOfBytesToRead: DWORD, 479 lpdwNumberOfBytesRead: LPDWORD, 480 ) -> BOOL; WinHttpWriteData( hRequest: HINTERNET, lpBuffer: LPCVOID, dwNumberOfBytesToWrite: DWORD, lpdwNumberOfBytesWritten: LPDWORD, ) -> BOOL481 pub fn WinHttpWriteData( 482 hRequest: HINTERNET, 483 lpBuffer: LPCVOID, 484 dwNumberOfBytesToWrite: DWORD, 485 lpdwNumberOfBytesWritten: LPDWORD, 486 ) -> BOOL; WinHttpQueryDataAvailable( hRequest: HINTERNET, lpdwNumberOfBytesAvailable: LPDWORD, ) -> BOOL487 pub fn WinHttpQueryDataAvailable( 488 hRequest: HINTERNET, 489 lpdwNumberOfBytesAvailable: LPDWORD, 490 ) -> BOOL; WinHttpQueryOption( hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD, ) -> BOOL491 pub fn WinHttpQueryOption( 492 hInternet: HINTERNET, 493 dwOption: DWORD, 494 lpBuffer: LPVOID, 495 lpdwBufferLength: LPDWORD, 496 ) -> BOOL; WinHttpSetOption( hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD, ) -> BOOL497 pub fn WinHttpSetOption( 498 hInternet: HINTERNET, 499 dwOption: DWORD, 500 lpBuffer: LPVOID, 501 dwBufferLength: DWORD, 502 ) -> BOOL; WinHttpSetTimeouts( hInternet: HINTERNET, nResolveTimeout: c_int, nConnectTimeout: c_int, nSendTimeout: c_int, nReceiveTimeout: c_int, ) -> BOOL503 pub fn WinHttpSetTimeouts( 504 hInternet: HINTERNET, 505 nResolveTimeout: c_int, 506 nConnectTimeout: c_int, 507 nSendTimeout: c_int, 508 nReceiveTimeout: c_int, 509 ) -> BOOL; WinHttpOpenRequest( hConnect: HINTERNET, pwszVerb: LPCWSTR, pwszObjectName: LPCWSTR, pwszVersion: LPCWSTR, pwszReferrer: LPCWSTR, ppwszAcceptTypes: *mut LPCWSTR, dwFlags: DWORD, ) -> HINTERNET510 pub fn WinHttpOpenRequest( 511 hConnect: HINTERNET, 512 pwszVerb: LPCWSTR, 513 pwszObjectName: LPCWSTR, 514 pwszVersion: LPCWSTR, 515 pwszReferrer: LPCWSTR, 516 ppwszAcceptTypes: *mut LPCWSTR, 517 dwFlags: DWORD, 518 ) -> HINTERNET; WinHttpAddRequestHeaders( hRequest: HINTERNET, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, dwModifiers: DWORD, ) -> BOOL519 pub fn WinHttpAddRequestHeaders( 520 hRequest: HINTERNET, 521 lpszHeaders: LPCWSTR, 522 dwHeadersLength: DWORD, 523 dwModifiers: DWORD, 524 ) -> BOOL; WinHttpSendRequest( hRequest: HINTERNET, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, lpOptional: LPVOID, dwOptionalLength: DWORD, dwTotalLength: DWORD, dwContext: DWORD_PTR, ) -> BOOL525 pub fn WinHttpSendRequest( 526 hRequest: HINTERNET, 527 lpszHeaders: LPCWSTR, 528 dwHeadersLength: DWORD, 529 lpOptional: LPVOID, 530 dwOptionalLength: DWORD, 531 dwTotalLength: DWORD, 532 dwContext: DWORD_PTR, 533 ) -> BOOL; WinHttpSetCredentials( hRequest: HINTERNET, AuthTargets: DWORD, AuthScheme: DWORD, pwszUserName: LPCWSTR, pwszPassword: LPCWSTR, pAuthParams: LPVOID, ) -> BOOL534 pub fn WinHttpSetCredentials( 535 hRequest: HINTERNET, 536 AuthTargets: DWORD, 537 AuthScheme: DWORD, 538 pwszUserName: LPCWSTR, 539 pwszPassword: LPCWSTR, 540 pAuthParams: LPVOID, 541 ) -> BOOL; WinHttpQueryAuthSchemes( hRequest: HINTERNET, lpdwSupportedSchemes: LPDWORD, lpdwFirstScheme: LPDWORD, pdwAuthTarget: LPDWORD, ) -> BOOL542 pub fn WinHttpQueryAuthSchemes( 543 hRequest: HINTERNET, 544 lpdwSupportedSchemes: LPDWORD, 545 lpdwFirstScheme: LPDWORD, 546 pdwAuthTarget: LPDWORD, 547 ) -> BOOL; WinHttpReceiveResponse( hRequest: HINTERNET, lpReserved: LPVOID, ) -> BOOL548 pub fn WinHttpReceiveResponse( 549 hRequest: HINTERNET, 550 lpReserved: LPVOID, 551 ) -> BOOL; WinHttpQueryHeaders( hRequest: HINTERNET, dwInfoLevel: DWORD, pwszName: LPCWSTR, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD, lpdwIndex: LPDWORD, ) -> BOOL552 pub fn WinHttpQueryHeaders( 553 hRequest: HINTERNET, 554 dwInfoLevel: DWORD, 555 pwszName: LPCWSTR, 556 lpBuffer: LPVOID, 557 lpdwBufferLength: LPDWORD, 558 lpdwIndex: LPDWORD, 559 ) -> BOOL; WinHttpDetectAutoProxyConfigUrl( dwAutoDetectFlags: DWORD, ppwstrAutoConfigUrl: *mut LPWSTR, ) -> BOOL560 pub fn WinHttpDetectAutoProxyConfigUrl( 561 dwAutoDetectFlags: DWORD, 562 ppwstrAutoConfigUrl: *mut LPWSTR, 563 ) -> BOOL; WinHttpGetProxyForUrl( hSession: HINTERNET, lpcwszUrl: LPCWSTR, pAutoProxyOptions: *mut WINHTTP_AUTOPROXY_OPTIONS, pProxyInfo: *mut WINHTTP_PROXY_INFO, ) -> BOOL564 pub fn WinHttpGetProxyForUrl( 565 hSession: HINTERNET, 566 lpcwszUrl: LPCWSTR, 567 pAutoProxyOptions: *mut WINHTTP_AUTOPROXY_OPTIONS, 568 pProxyInfo: *mut WINHTTP_PROXY_INFO, 569 ) -> BOOL; WinHttpCreateProxyResolver( hSession: HINTERNET, phResolver: *mut HINTERNET, ) -> DWORD570 pub fn WinHttpCreateProxyResolver( 571 hSession: HINTERNET, 572 phResolver: *mut HINTERNET, 573 ) -> DWORD; WinHttpGetProxyForUrlEx( hResolver: HINTERNET, pcwszUrl: PCWSTR, pAutoProxyOptions: *mut WINHTTP_AUTOPROXY_OPTIONS, pContext: DWORD_PTR, ) -> DWORD574 pub fn WinHttpGetProxyForUrlEx( 575 hResolver: HINTERNET, 576 pcwszUrl: PCWSTR, 577 pAutoProxyOptions: *mut WINHTTP_AUTOPROXY_OPTIONS, 578 pContext: DWORD_PTR, 579 ) -> DWORD; WinHttpGetProxyResult( hResolver: HINTERNET, pProxyResult: *mut WINHTTP_PROXY_RESULT, ) -> DWORD580 pub fn WinHttpGetProxyResult( 581 hResolver: HINTERNET, 582 pProxyResult: *mut WINHTTP_PROXY_RESULT, 583 ) -> DWORD; WinHttpFreeProxyResult( pProxyResult: *mut WINHTTP_PROXY_RESULT, )584 pub fn WinHttpFreeProxyResult( 585 pProxyResult: *mut WINHTTP_PROXY_RESULT, 586 ); WinHttpResetAutoProxy( hSession: HINTERNET, dwFlags: DWORD, ) -> DWORD587 pub fn WinHttpResetAutoProxy( 588 hSession: HINTERNET, 589 dwFlags: DWORD, 590 ) -> DWORD; WinHttpGetIEProxyConfigForCurrentUser( pProxyConfig: *mut WINHTTP_CURRENT_USER_IE_PROXY_CONFIG, ) -> BOOL591 pub fn WinHttpGetIEProxyConfigForCurrentUser( 592 pProxyConfig: *mut WINHTTP_CURRENT_USER_IE_PROXY_CONFIG, 593 ) -> BOOL; 594 } 595 ENUM!{enum WINHTTP_WEB_SOCKET_OPERATION { 596 WINHTTP_WEB_SOCKET_SEND_OPERATION = 0, 597 WINHTTP_WEB_SOCKET_RECEIVE_OPERATION = 1, 598 WINHTTP_WEB_SOCKET_CLOSE_OPERATION = 2, 599 WINHTTP_WEB_SOCKET_SHUTDOWN_OPERATION = 3, 600 }} 601 ENUM!{enum WINHTTP_WEB_SOCKET_BUFFER_TYPE { 602 WINHTTP_WEB_SOCKET_BINARY_MESSAGE_BUFFER_TYPE = 0, 603 WINHTTP_WEB_SOCKET_BINARY_FRAGMENT_BUFFER_TYPE = 1, 604 WINHTTP_WEB_SOCKET_UTF8_MESSAGE_BUFFER_TYPE = 2, 605 WINHTTP_WEB_SOCKET_UTF8_FRAGMENT_BUFFER_TYPE = 3, 606 WINHTTP_WEB_SOCKET_CLOSE_BUFFER_TYPE = 4, 607 }} 608 ENUM!{enum WINHTTP_WEB_SOCKET_CLOSE_STATUS { 609 WINHTTP_WEB_SOCKET_SUCCESS_CLOSE_STATUS = 1000, 610 WINHTTP_WEB_SOCKET_ENDPOINT_TERMINATED_CLOSE_STATUS = 1001, 611 WINHTTP_WEB_SOCKET_PROTOCOL_ERROR_CLOSE_STATUS = 1002, 612 WINHTTP_WEB_SOCKET_INVALID_DATA_TYPE_CLOSE_STATUS = 1003, 613 WINHTTP_WEB_SOCKET_EMPTY_CLOSE_STATUS = 1005, 614 WINHTTP_WEB_SOCKET_ABORTED_CLOSE_STATUS = 1006, 615 WINHTTP_WEB_SOCKET_INVALID_PAYLOAD_CLOSE_STATUS = 1007, 616 WINHTTP_WEB_SOCKET_POLICY_VIOLATION_CLOSE_STATUS = 1008, 617 WINHTTP_WEB_SOCKET_MESSAGE_TOO_BIG_CLOSE_STATUS = 1009, 618 WINHTTP_WEB_SOCKET_UNSUPPORTED_EXTENSIONS_CLOSE_STATUS = 1010, 619 WINHTTP_WEB_SOCKET_SERVER_ERROR_CLOSE_STATUS = 1011, 620 WINHTTP_WEB_SOCKET_SECURE_HANDSHAKE_ERROR_CLOSE_STATUS = 1015, 621 }} 622 extern "system" { WinHttpWebSocketCompleteUpgrade( hRequest: HINTERNET, pContext: DWORD_PTR, ) -> HINTERNET623 pub fn WinHttpWebSocketCompleteUpgrade( 624 hRequest: HINTERNET, 625 pContext: DWORD_PTR, 626 ) -> HINTERNET; WinHttpWebSocketSend( hWebSocket: HINTERNET, eBufferType: WINHTTP_WEB_SOCKET_BUFFER_TYPE, pvBuffer: PVOID, dwBufferLength: DWORD, ) -> DWORD627 pub fn WinHttpWebSocketSend( 628 hWebSocket: HINTERNET, 629 eBufferType: WINHTTP_WEB_SOCKET_BUFFER_TYPE, 630 pvBuffer: PVOID, 631 dwBufferLength: DWORD, 632 ) -> DWORD; WinHttpWebSocketReceive( hWebSocket: HINTERNET, pvBuffer: PVOID, dwBufferLength: DWORD, pdwBytesRead: *mut DWORD, peBufferType: *mut WINHTTP_WEB_SOCKET_BUFFER_TYPE, ) -> DWORD633 pub fn WinHttpWebSocketReceive( 634 hWebSocket: HINTERNET, 635 pvBuffer: PVOID, 636 dwBufferLength: DWORD, 637 pdwBytesRead: *mut DWORD, 638 peBufferType: *mut WINHTTP_WEB_SOCKET_BUFFER_TYPE, 639 ) -> DWORD; WinHttpWebSocketShutdown( hWebSocket: HINTERNET, usStatus: USHORT, pvReason: PVOID, dwReasonLength: DWORD, ) -> DWORD640 pub fn WinHttpWebSocketShutdown( 641 hWebSocket: HINTERNET, 642 usStatus: USHORT, 643 pvReason: PVOID, 644 dwReasonLength: DWORD, 645 ) -> DWORD; WinHttpWebSocketClose( hWebSocket: HINTERNET, usStatus: USHORT, pvReason: PVOID, dwReasonLength: DWORD, ) -> DWORD646 pub fn WinHttpWebSocketClose( 647 hWebSocket: HINTERNET, 648 usStatus: USHORT, 649 pvReason: PVOID, 650 dwReasonLength: DWORD, 651 ) -> DWORD; WinHttpWebSocketQueryCloseStatus( hWebSocket: HINTERNET, pusStatus: *mut USHORT, pvReason: PVOID, dwReasonLength: DWORD, pdwReasonLengthConsumed: *mut DWORD, ) -> DWORD652 pub fn WinHttpWebSocketQueryCloseStatus( 653 hWebSocket: HINTERNET, 654 pusStatus: *mut USHORT, 655 pvReason: PVOID, 656 dwReasonLength: DWORD, 657 pdwReasonLengthConsumed: *mut DWORD, 658 ) -> DWORD; 659 } 660