]> git.proxmox.com Git - rustc.git/blame - vendor/winapi/src/um/wininet.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / vendor / winapi / src / um / wininet.rs
CommitLineData
ff7c6d11
XL
1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! Windows Internet Services API procedure declarations, types and constants.
7use ctypes::c_int;
8use shared::basetsd::DWORD_PTR;
9use shared::minwindef::{
10 BOOL, DWORD, FALSE, FILETIME, INT, LPBYTE,
11 LPCVOID, LPDWORD, LPVOID, PBYTE, PDWORD, TRUE, WORD,
12};
13use shared::ntdef::{LONG, LONGLONG, PLONG};
14use shared::windef::HWND;
15use um::minwinbase::{LPWIN32_FIND_DATAA, LPWIN32_FIND_DATAW, SYSTEMTIME};
16use um::winineti::INTERNET_FLAG_BGUPDATE;
17use um::winnt::{
18 CHAR, DWORDLONG, HANDLE, LPCSTR, LPCWSTR,
19 LPSTR, LPWSTR, PCWSTR, PSTR, PWSTR, WCHAR,
20};
21pub type HINTERNET = LPVOID;
22pub type LPHINTERNET = *mut HINTERNET;
23pub type INTERNET_PORT = WORD;
24pub type LPINTERNET_PORT = *mut INTERNET_PORT;
25pub const INTERNET_INVALID_PORT_NUMBER: DWORD = 0;
26pub const INTERNET_DEFAULT_FTP_PORT: DWORD = 21;
27pub const INTERNET_DEFAULT_GOPHER_PORT: DWORD = 70;
28pub const INTERNET_DEFAULT_HTTP_PORT: DWORD = 80;
29pub const INTERNET_DEFAULT_HTTPS_PORT: DWORD = 443;
30pub const INTERNET_DEFAULT_SOCKS_PORT: DWORD = 1080;
31pub const INTERNET_MAX_HOST_NAME_LENGTH: usize = 256;
32pub const INTERNET_MAX_USER_NAME_LENGTH: usize = 128;
33pub const INTERNET_MAX_PASSWORD_LENGTH: usize = 128;
34pub const INTERNET_MAX_PORT_NUMBER_LENGTH: usize = 5;
35pub const INTERNET_MAX_PORT_NUMBER_VALUE: DWORD = 65535;
36pub const INTERNET_MAX_PATH_LENGTH: usize = 2048;
37pub const INTERNET_MAX_SCHEME_LENGTH: usize = 32;
38pub const INTERNET_MAX_URL_LENGTH: usize = INTERNET_MAX_SCHEME_LENGTH + 3
39 + INTERNET_MAX_PATH_LENGTH;
40pub const INTERNET_KEEP_ALIVE_UNKNOWN: DWORD = -1i32 as u32;
41pub const INTERNET_KEEP_ALIVE_ENABLED: DWORD = 1;
42pub const INTERNET_KEEP_ALIVE_DISABLED: DWORD = 0;
43pub const INTERNET_REQFLAG_FROM_CACHE: DWORD = 0x00000001;
44pub const INTERNET_REQFLAG_ASYNC: DWORD = 0x00000002;
45pub const INTERNET_REQFLAG_VIA_PROXY: DWORD = 0x00000004;
46pub const INTERNET_REQFLAG_NO_HEADERS: DWORD = 0x00000008;
47pub const INTERNET_REQFLAG_PASSIVE: DWORD = 0x00000010;
48pub const INTERNET_REQFLAG_CACHE_WRITE_DISABLED: DWORD = 0x00000040;
49pub const INTERNET_REQFLAG_NET_TIMEOUT: DWORD = 0x00000080;
50pub const INTERNET_FLAG_IDN_DIRECT: DWORD = 0x00000001;
51pub const INTERNET_FLAG_IDN_PROXY: DWORD = 0x00000002;
52pub const INTERNET_FLAG_RELOAD: DWORD = 0x80000000;
53pub const INTERNET_FLAG_RAW_DATA: DWORD = 0x40000000;
54pub const INTERNET_FLAG_EXISTING_CONNECT: DWORD = 0x20000000;
55pub const INTERNET_FLAG_ASYNC: DWORD = 0x10000000;
56pub const INTERNET_FLAG_PASSIVE: DWORD = 0x08000000;
57pub const INTERNET_FLAG_NO_CACHE_WRITE: DWORD = 0x04000000;
58pub const INTERNET_FLAG_DONT_CACHE: DWORD = INTERNET_FLAG_NO_CACHE_WRITE;
59pub const INTERNET_FLAG_MAKE_PERSISTENT: DWORD = 0x02000000;
60pub const INTERNET_FLAG_FROM_CACHE: DWORD = 0x01000000;
61pub const INTERNET_FLAG_OFFLINE: DWORD = INTERNET_FLAG_FROM_CACHE;
62pub const INTERNET_FLAG_SECURE: DWORD = 0x00800000;
63pub const INTERNET_FLAG_KEEP_CONNECTION: DWORD = 0x00400000;
64pub const INTERNET_FLAG_NO_AUTO_REDIRECT: DWORD = 0x00200000;
65pub const INTERNET_FLAG_READ_PREFETCH: DWORD = 0x00100000;
66pub const INTERNET_FLAG_NO_COOKIES: DWORD = 0x00080000;
67pub const INTERNET_FLAG_NO_AUTH: DWORD = 0x00040000;
68pub const INTERNET_FLAG_RESTRICTED_ZONE: DWORD = 0x00020000;
69pub const INTERNET_FLAG_CACHE_IF_NET_FAIL: DWORD = 0x00010000;
70pub const INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP: DWORD = 0x00008000;
71pub const INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS: DWORD = 0x00004000;
72pub const INTERNET_FLAG_IGNORE_CERT_DATE_INVALID: DWORD = 0x00002000;
73pub const INTERNET_FLAG_IGNORE_CERT_CN_INVALID: DWORD = 0x00001000;
74pub const INTERNET_FLAG_RESYNCHRONIZE: DWORD = 0x00000800;
75pub const INTERNET_FLAG_HYPERLINK: DWORD = 0x00000400;
76pub const INTERNET_FLAG_NO_UI: DWORD = 0x00000200;
77pub const INTERNET_FLAG_PRAGMA_NOCACHE: DWORD = 0x00000100;
78pub const INTERNET_FLAG_CACHE_ASYNC: DWORD = 0x00000080;
79pub const INTERNET_FLAG_FORMS_SUBMIT: DWORD = 0x00000040;
80pub const INTERNET_FLAG_FWD_BACK: DWORD = 0x00000020;
81pub const INTERNET_FLAG_NEED_FILE: DWORD = 0x00000010;
82pub const INTERNET_FLAG_MUST_CACHE_REQUEST: DWORD = INTERNET_FLAG_NEED_FILE;
83pub const INTERNET_FLAG_TRANSFER_ASCII: DWORD = FTP_TRANSFER_TYPE_ASCII;
84pub const INTERNET_FLAG_TRANSFER_BINARY: DWORD = FTP_TRANSFER_TYPE_BINARY;
85pub const SECURITY_INTERNET_MASK: DWORD = INTERNET_FLAG_IGNORE_CERT_CN_INVALID
86 | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
87 | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP;
88pub const SECURITY_IGNORE_ERROR_MASK: DWORD = INTERNET_FLAG_IGNORE_CERT_CN_INVALID
89 | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | SECURITY_FLAG_IGNORE_UNKNOWN_CA
90 | SECURITY_FLAG_IGNORE_REVOCATION;
91pub const INTERNET_FLAGS_MASK: DWORD = INTERNET_FLAG_RELOAD | INTERNET_FLAG_RAW_DATA
92 | INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_ASYNC | INTERNET_FLAG_PASSIVE
93 | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_MAKE_PERSISTENT | INTERNET_FLAG_FROM_CACHE
94 | INTERNET_FLAG_SECURE | INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_NO_AUTO_REDIRECT
95 | INTERNET_FLAG_READ_PREFETCH | INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_AUTH
96 | INTERNET_FLAG_CACHE_IF_NET_FAIL | SECURITY_INTERNET_MASK | INTERNET_FLAG_RESYNCHRONIZE
97 | INTERNET_FLAG_HYPERLINK | INTERNET_FLAG_NO_UI | INTERNET_FLAG_PRAGMA_NOCACHE
98 | INTERNET_FLAG_CACHE_ASYNC | INTERNET_FLAG_FORMS_SUBMIT | INTERNET_FLAG_NEED_FILE
99 | INTERNET_FLAG_RESTRICTED_ZONE | INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_TRANSFER_ASCII
100 | INTERNET_FLAG_FWD_BACK | INTERNET_FLAG_BGUPDATE;
101pub const INTERNET_ERROR_MASK_INSERT_CDROM: DWORD = 0x1;
102pub const INTERNET_ERROR_MASK_COMBINED_SEC_CERT: DWORD = 0x2;
103pub const INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG: DWORD = 0x4;
104pub const INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY: DWORD = 0x8;
105pub const INTERNET_OPTIONS_MASK: DWORD = !INTERNET_FLAGS_MASK;
106pub const WININET_API_FLAG_ASYNC: DWORD = 0x00000001;
107pub const WININET_API_FLAG_SYNC: DWORD = 0x00000004;
108pub const WININET_API_FLAG_USE_CONTEXT: DWORD = 0x00000008;
109pub const INTERNET_NO_CALLBACK: DWORD = 0;
110ENUM!{enum INTERNET_SCHEME {
111 INTERNET_SCHEME_PARTIAL = -2i32 as u32,
112 INTERNET_SCHEME_UNKNOWN = -1i32 as u32,
113 INTERNET_SCHEME_DEFAULT = 0,
114 INTERNET_SCHEME_FTP,
115 INTERNET_SCHEME_GOPHER,
116 INTERNET_SCHEME_HTTP,
117 INTERNET_SCHEME_HTTPS,
118 INTERNET_SCHEME_FILE,
119 INTERNET_SCHEME_NEWS,
120 INTERNET_SCHEME_MAILTO,
121 INTERNET_SCHEME_SOCKS,
122 INTERNET_SCHEME_JAVASCRIPT,
123 INTERNET_SCHEME_VBSCRIPT,
124 INTERNET_SCHEME_RES,
125 INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP,
126 INTERNET_SCHEME_LAST = INTERNET_SCHEME_RES,
127}}
128pub type LPINTERNET_SCHEME = *mut INTERNET_SCHEME;
129STRUCT!{struct INTERNET_ASYNC_RESULT {
130 dwResult: DWORD_PTR,
131 dwError: DWORD,
132}}
133pub type LPINTERNET_ASYNC_RESULT = *mut INTERNET_ASYNC_RESULT;
134STRUCT!{struct INTERNET_DIAGNOSTIC_SOCKET_INFO {
135 Socket: DWORD_PTR,
136 SourcePort: DWORD,
137 DestPort: DWORD,
138 Flags: DWORD,
139}}
140pub type LPINTERNET_DIAGNOSTIC_SOCKET_INFO = *mut INTERNET_DIAGNOSTIC_SOCKET_INFO;
141pub const IDSI_FLAG_KEEP_ALIVE: DWORD = 0x00000001;
142pub const IDSI_FLAG_SECURE: DWORD = 0x00000002;
143pub const IDSI_FLAG_PROXY: DWORD = 0x00000004;
144pub const IDSI_FLAG_TUNNEL: DWORD = 0x00000008;
145STRUCT!{struct INTERNET_PROXY_INFO {
146 dwAccessType: DWORD,
147 lpszProxy: LPCWSTR,
148 lpszProxyBypass: LPCWSTR,
149}}
150pub type LPINTERNET_PROXY_INFO = *mut INTERNET_PROXY_INFO;
151UNION!{union INTERNET_PER_CONN_OPTIONA_Value {
152 [u32; 2] [u64; 1],
153 dwValue dwValue_mut: DWORD,
154 pszValue pszValue_mut: LPSTR,
155 ftValue ftValue_mut: FILETIME,
156}}
157STRUCT!{struct INTERNET_PER_CONN_OPTIONA {
158 dwOption: DWORD,
159 Value: INTERNET_PER_CONN_OPTIONA_Value,
160}}
161pub type LPINTERNET_PER_CONN_OPTIONA = *mut INTERNET_PER_CONN_OPTIONA;
162UNION!{union INTERNET_PER_CONN_OPTIONW_Value {
163 [u32; 2] [u64; 1],
164 dwValue dwValue_mut: DWORD,
165 pszValue pszValue_mut: LPWSTR,
166 ftValue ftValue_mut: FILETIME,
167}}
168STRUCT!{struct INTERNET_PER_CONN_OPTIONW {
169 dwOption: DWORD,
170 Value: INTERNET_PER_CONN_OPTIONW_Value,
171}}
172pub type LPINTERNET_PER_CONN_OPTIONW = *mut INTERNET_PER_CONN_OPTIONW;
173STRUCT!{struct INTERNET_PER_CONN_OPTION_LISTA {
174 dwSize: DWORD,
175 pszConnection: LPSTR,
176 dwOptionCount: DWORD,
177 dwOptionError: DWORD,
178 pOptions: LPINTERNET_PER_CONN_OPTIONA,
179}}
180pub type LPINTERNET_PER_CONN_OPTION_LISTA = *mut INTERNET_PER_CONN_OPTION_LISTA;
181STRUCT!{struct INTERNET_PER_CONN_OPTION_LISTW {
182 dwSize: DWORD,
183 pszConnection: LPWSTR,
184 dwOptionCount: DWORD,
185 dwOptionError: DWORD,
186 pOptions: LPINTERNET_PER_CONN_OPTIONW,
187}}
188pub type LPINTERNET_PER_CONN_OPTION_LISTW = *mut INTERNET_PER_CONN_OPTION_LISTW;
189pub const INTERNET_PER_CONN_FLAGS: DWORD = 1;
190pub const INTERNET_PER_CONN_PROXY_SERVER: DWORD = 2;
191pub const INTERNET_PER_CONN_PROXY_BYPASS: DWORD = 3;
192pub const INTERNET_PER_CONN_AUTOCONFIG_URL: DWORD = 4;
193pub const INTERNET_PER_CONN_AUTODISCOVERY_FLAGS: DWORD = 5;
194pub const INTERNET_PER_CONN_AUTOCONFIG_SECONDARY_URL: DWORD = 6;
195pub const INTERNET_PER_CONN_AUTOCONFIG_RELOAD_DELAY_MINS: DWORD = 7;
196pub const INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_TIME: DWORD = 8;
197pub const INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_URL: DWORD = 9;
198pub const INTERNET_PER_CONN_FLAGS_UI: DWORD = 10;
199pub const PROXY_TYPE_DIRECT: DWORD = 0x00000001;
200pub const PROXY_TYPE_PROXY: DWORD = 0x00000002;
201pub const PROXY_TYPE_AUTO_PROXY_URL: DWORD = 0x00000004;
202pub const PROXY_TYPE_AUTO_DETECT: DWORD = 0x00000008;
203pub const AUTO_PROXY_FLAG_USER_SET: DWORD = 0x00000001;
204pub const AUTO_PROXY_FLAG_ALWAYS_DETECT: DWORD = 0x00000002;
205pub const AUTO_PROXY_FLAG_DETECTION_RUN: DWORD = 0x00000004;
206pub const AUTO_PROXY_FLAG_MIGRATED: DWORD = 0x00000008;
207pub const AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT: DWORD = 0x00000010;
208pub const AUTO_PROXY_FLAG_CACHE_INIT_RUN: DWORD = 0x00000020;
209pub const AUTO_PROXY_FLAG_DETECTION_SUSPECT: DWORD = 0x00000040;
210STRUCT!{struct INTERNET_VERSION_INFO {
211 dwMajorVersion: DWORD,
212 dwMinorVersion: DWORD,
213}}
214pub type LPINTERNET_VERSION_INFO = *mut INTERNET_VERSION_INFO;
215STRUCT!{struct HTTP_VERSION_INFO {
216 dwMajorVersion: DWORD,
217 dwMinorVersion: DWORD,
218}}
219pub type LPHTTP_VERSION_INFO = *mut HTTP_VERSION_INFO;
220STRUCT!{struct INTERNET_CONNECTED_INFO {
221 dwConnectedState: DWORD,
222 dwFlags: DWORD,
223}}
224pub type LPINTERNET_CONNECTED_INFO = *mut INTERNET_CONNECTED_INFO;
225pub const ISO_FORCE_DISCONNECTED: DWORD = 0x00000001;
226STRUCT!{struct URL_COMPONENTSA {
227 dwStructSize: DWORD,
228 lpszScheme: LPSTR,
229 dwSchemeLength: DWORD,
230 nScheme: INTERNET_SCHEME,
231 lpszHostName: LPSTR,
232 dwHostNameLength: DWORD,
233 nPort: INTERNET_PORT,
234 lpszUserName: LPSTR,
235 dwUserNameLength: DWORD,
236 lpszPassword: LPSTR,
237 dwPasswordLength: DWORD,
238 lpszUrlPath: LPSTR,
239 dwUrlPathLength: DWORD,
240 lpszExtraInfo: LPSTR,
241 dwExtraInfoLength: DWORD,
242}}
243pub type LPURL_COMPONENTSA = *mut URL_COMPONENTSA;
244STRUCT!{struct URL_COMPONENTSW {
245 dwStructSize: DWORD,
246 lpszScheme: LPWSTR,
247 dwSchemeLength: DWORD,
248 nScheme: INTERNET_SCHEME,
249 lpszHostName: LPWSTR,
250 dwHostNameLength: DWORD,
251 nPort: INTERNET_PORT,
252 lpszUserName: LPWSTR,
253 dwUserNameLength: DWORD,
254 lpszPassword: LPWSTR,
255 dwPasswordLength: DWORD,
256 lpszUrlPath: LPWSTR,
257 dwUrlPathLength: DWORD,
258 lpszExtraInfo: LPWSTR,
259 dwExtraInfoLength: DWORD,
260}}
261pub type LPURL_COMPONENTSW = *mut URL_COMPONENTSW;
262STRUCT!{struct INTERNET_CERTIFICATE_INFO {
263 ftExpiry: FILETIME,
264 ftStart: FILETIME,
265 lpszSubjectInfo: LPWSTR,
266 lpszIssuerInfo: LPWSTR,
267 lpszProtocolName: LPWSTR,
268 lpszSignatureAlgName: LPWSTR,
269 lpszEncryptionAlgName: LPWSTR,
270 dwKeySize: DWORD,
271}}
272pub type LPINTERNET_CERTIFICATE_INFO = *mut INTERNET_CERTIFICATE_INFO;
273STRUCT!{struct INTERNET_BUFFERSA {
274 dwStructSize: DWORD,
275 Next: *mut INTERNET_BUFFERSA,
276 lpcszHeader: LPCSTR,
277 dwHeadersLength: DWORD,
278 dwHeadersTotal: DWORD,
279 lpvBuffer: LPVOID,
280 dwBufferLength: DWORD,
281 dwBufferTotal: DWORD,
282 dwOffsetLow: DWORD,
283 dwOffsetHigh: DWORD,
284}}
285pub type LPINTERNET_BUFFERSA = *mut INTERNET_BUFFERSA;
286STRUCT!{struct INTERNET_BUFFERSW {
287 dwStructSize: DWORD,
288 Next: *mut INTERNET_BUFFERSW,
289 lpcszHeader: LPCWSTR,
290 dwHeadersLength: DWORD,
291 dwHeadersTotal: DWORD,
292 lpvBuffer: LPVOID,
293 dwBufferLength: DWORD,
294 dwBufferTotal: DWORD,
295 dwOffsetLow: DWORD,
296 dwOffsetHigh: DWORD,
297}}
298pub type LPINTERNET_BUFFERSW = *mut INTERNET_BUFFERSW;
299pub const INTERNET_RFC1123_FORMAT: DWORD = 0;
300pub const INTERNET_RFC1123_BUFSIZE: DWORD = 30;
301pub const ICU_ESCAPE: DWORD = 0x80000000;
302pub const ICU_USERNAME: DWORD = 0x40000000;
303pub const ICU_NO_ENCODE: DWORD = 0x20000000;
304pub const ICU_DECODE: DWORD = 0x10000000;
305pub const ICU_NO_META: DWORD = 0x08000000;
306pub const ICU_ENCODE_SPACES_ONLY: DWORD = 0x04000000;
307pub const ICU_BROWSER_MODE: DWORD = 0x02000000;
308pub const ICU_ENCODE_PERCENT: DWORD = 0x00001000;
309pub const INTERNET_OPEN_TYPE_PRECONFIG: DWORD = 0;
310pub const INTERNET_OPEN_TYPE_DIRECT: DWORD = 1;
311pub const INTERNET_OPEN_TYPE_PROXY: DWORD = 3;
312pub const INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY: DWORD = 4;
313pub const PRE_CONFIG_INTERNET_ACCESS: DWORD = INTERNET_OPEN_TYPE_PRECONFIG;
314pub const LOCAL_INTERNET_ACCESS: DWORD = INTERNET_OPEN_TYPE_DIRECT;
315pub const CERN_PROXY_INTERNET_ACCESS: DWORD = INTERNET_OPEN_TYPE_PROXY;
316pub const INTERNET_SERVICE_FTP: DWORD = 1;
317pub const INTERNET_SERVICE_GOPHER: DWORD = 2;
318pub const INTERNET_SERVICE_HTTP: DWORD = 3;
319pub const IRF_ASYNC: DWORD = WININET_API_FLAG_ASYNC;
320pub const IRF_SYNC: DWORD = WININET_API_FLAG_SYNC;
321pub const IRF_USE_CONTEXT: DWORD = WININET_API_FLAG_USE_CONTEXT;
322pub const IRF_NO_WAIT: DWORD = 0x00000008;
323pub const ISO_GLOBAL: DWORD = 0x00000001;
324pub const ISO_REGISTRY: DWORD = 0x00000002;
325pub const ISO_VALID_FLAGS: DWORD = ISO_GLOBAL | ISO_REGISTRY;
326pub const INTERNET_OPTION_CALLBACK: DWORD = 1;
327pub const INTERNET_OPTION_CONNECT_TIMEOUT: DWORD = 2;
328pub const INTERNET_OPTION_CONNECT_RETRIES: DWORD = 3;
329pub const INTERNET_OPTION_CONNECT_BACKOFF: DWORD = 4;
330pub const INTERNET_OPTION_SEND_TIMEOUT: DWORD = 5;
331pub const INTERNET_OPTION_CONTROL_SEND_TIMEOUT: DWORD = INTERNET_OPTION_SEND_TIMEOUT;
332pub const INTERNET_OPTION_RECEIVE_TIMEOUT: DWORD = 6;
333pub const INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT: DWORD = INTERNET_OPTION_RECEIVE_TIMEOUT;
334pub const INTERNET_OPTION_DATA_SEND_TIMEOUT: DWORD = 7;
335pub const INTERNET_OPTION_DATA_RECEIVE_TIMEOUT: DWORD = 8;
336pub const INTERNET_OPTION_HANDLE_TYPE: DWORD = 9;
337pub const INTERNET_OPTION_LISTEN_TIMEOUT: DWORD = 11;
338pub const INTERNET_OPTION_READ_BUFFER_SIZE: DWORD = 12;
339pub const INTERNET_OPTION_WRITE_BUFFER_SIZE: DWORD = 13;
340pub const INTERNET_OPTION_ASYNC_ID: DWORD = 15;
341pub const INTERNET_OPTION_ASYNC_PRIORITY: DWORD = 16;
342pub const INTERNET_OPTION_PARENT_HANDLE: DWORD = 21;
343pub const INTERNET_OPTION_KEEP_CONNECTION: DWORD = 22;
344pub const INTERNET_OPTION_REQUEST_FLAGS: DWORD = 23;
345pub const INTERNET_OPTION_EXTENDED_ERROR: DWORD = 24;
346pub const INTERNET_OPTION_OFFLINE_MODE: DWORD = 26;
347pub const INTERNET_OPTION_CACHE_STREAM_HANDLE: DWORD = 27;
348pub const INTERNET_OPTION_USERNAME: DWORD = 28;
349pub const INTERNET_OPTION_PASSWORD: DWORD = 29;
350pub const INTERNET_OPTION_ASYNC: DWORD = 30;
351pub const INTERNET_OPTION_SECURITY_FLAGS: DWORD = 31;
352pub const INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT: DWORD = 32;
353pub const INTERNET_OPTION_DATAFILE_NAME: DWORD = 33;
354pub const INTERNET_OPTION_URL: DWORD = 34;
355pub const INTERNET_OPTION_SECURITY_CERTIFICATE: DWORD = 35;
356pub const INTERNET_OPTION_SECURITY_KEY_BITNESS: DWORD = 36;
357pub const INTERNET_OPTION_REFRESH: DWORD = 37;
358pub const INTERNET_OPTION_PROXY: DWORD = 38;
359pub const INTERNET_OPTION_SETTINGS_CHANGED: DWORD = 39;
360pub const INTERNET_OPTION_VERSION: DWORD = 40;
361pub const INTERNET_OPTION_USER_AGENT: DWORD = 41;
362pub const INTERNET_OPTION_END_BROWSER_SESSION: DWORD = 42;
363pub const INTERNET_OPTION_PROXY_USERNAME: DWORD = 43;
364pub const INTERNET_OPTION_PROXY_PASSWORD: DWORD = 44;
365pub const INTERNET_OPTION_CONTEXT_VALUE: DWORD = 45;
366pub const INTERNET_OPTION_CONNECT_LIMIT: DWORD = 46;
367pub const INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT: DWORD = 47;
368pub const INTERNET_OPTION_POLICY: DWORD = 48;
369pub const INTERNET_OPTION_DISCONNECTED_TIMEOUT: DWORD = 49;
370pub const INTERNET_OPTION_CONNECTED_STATE: DWORD = 50;
371pub const INTERNET_OPTION_IDLE_STATE: DWORD = 51;
372pub const INTERNET_OPTION_OFFLINE_SEMANTICS: DWORD = 52;
373pub const INTERNET_OPTION_SECONDARY_CACHE_KEY: DWORD = 53;
374pub const INTERNET_OPTION_CALLBACK_FILTER: DWORD = 54;
375pub const INTERNET_OPTION_CONNECT_TIME: DWORD = 55;
376pub const INTERNET_OPTION_SEND_THROUGHPUT: DWORD = 56;
377pub const INTERNET_OPTION_RECEIVE_THROUGHPUT: DWORD = 57;
378pub const INTERNET_OPTION_REQUEST_PRIORITY: DWORD = 58;
379pub const INTERNET_OPTION_HTTP_VERSION: DWORD = 59;
380pub const INTERNET_OPTION_RESET_URLCACHE_SESSION: DWORD = 60;
381pub const INTERNET_OPTION_ERROR_MASK: DWORD = 62;
382pub const INTERNET_OPTION_FROM_CACHE_TIMEOUT: DWORD = 63;
383pub const INTERNET_OPTION_BYPASS_EDITED_ENTRY: DWORD = 64;
384pub const INTERNET_OPTION_HTTP_DECODING: DWORD = 65;
385pub const INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO: DWORD = 67;
386pub const INTERNET_OPTION_CODEPAGE: DWORD = 68;
387pub const INTERNET_OPTION_CACHE_TIMESTAMPS: DWORD = 69;
388pub const INTERNET_OPTION_DISABLE_AUTODIAL: DWORD = 70;
389pub const INTERNET_OPTION_MAX_CONNS_PER_SERVER: DWORD = 73;
390pub const INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER: DWORD = 74;
391pub const INTERNET_OPTION_PER_CONNECTION_OPTION: DWORD = 75;
392pub const INTERNET_OPTION_DIGEST_AUTH_UNLOAD: DWORD = 76;
393pub const INTERNET_OPTION_IGNORE_OFFLINE: DWORD = 77;
394pub const INTERNET_OPTION_IDENTITY: DWORD = 78;
395pub const INTERNET_OPTION_REMOVE_IDENTITY: DWORD = 79;
396pub const INTERNET_OPTION_ALTER_IDENTITY: DWORD = 80;
397pub const INTERNET_OPTION_SUPPRESS_BEHAVIOR: DWORD = 81;
398pub const INTERNET_OPTION_AUTODIAL_MODE: DWORD = 82;
399pub const INTERNET_OPTION_AUTODIAL_CONNECTION: DWORD = 83;
400pub const INTERNET_OPTION_CLIENT_CERT_CONTEXT: DWORD = 84;
401pub const INTERNET_OPTION_AUTH_FLAGS: DWORD = 85;
402pub const INTERNET_OPTION_COOKIES_3RD_PARTY: DWORD = 86;
403pub const INTERNET_OPTION_DISABLE_PASSPORT_AUTH: DWORD = 87;
404pub const INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY: DWORD = 88;
405pub const INTERNET_OPTION_EXEMPT_CONNECTION_LIMIT: DWORD = 89;
406pub const INTERNET_OPTION_ENABLE_PASSPORT_AUTH: DWORD = 90;
407pub const INTERNET_OPTION_HIBERNATE_INACTIVE_WORKER_THREADS: DWORD = 91;
408pub const INTERNET_OPTION_ACTIVATE_WORKER_THREADS: DWORD = 92;
409pub const INTERNET_OPTION_RESTORE_WORKER_THREAD_DEFAULTS: DWORD = 93;
410pub const INTERNET_OPTION_SOCKET_SEND_BUFFER_LENGTH: DWORD = 94;
411pub const INTERNET_OPTION_PROXY_SETTINGS_CHANGED: DWORD = 95;
412pub const INTERNET_OPTION_DATAFILE_EXT: DWORD = 96;
413pub const INTERNET_OPTION_CODEPAGE_PATH: DWORD = 100;
414pub const INTERNET_OPTION_CODEPAGE_EXTRA: DWORD = 101;
415pub const INTERNET_OPTION_IDN: DWORD = 102;
416pub const INTERNET_OPTION_MAX_CONNS_PER_PROXY: DWORD = 103;
417pub const INTERNET_OPTION_SUPPRESS_SERVER_AUTH: DWORD = 104;
418pub const INTERNET_OPTION_SERVER_CERT_CHAIN_CONTEXT: DWORD = 105;
419pub const INTERNET_OPTION_ENABLE_REDIRECT_CACHE_READ: DWORD = 122;
420pub const INTERNET_OPTION_ENCODE_EXTRA: DWORD = 155;
421pub const INTERNET_FIRST_OPTION: DWORD = INTERNET_OPTION_CALLBACK;
422pub const INTERNET_LAST_OPTION: DWORD = INTERNET_OPTION_ENCODE_EXTRA;
423pub const INTERNET_PRIORITY_FOREGROUND: DWORD = 1000;
424pub const INTERNET_HANDLE_TYPE_INTERNET: DWORD = 1;
425pub const INTERNET_HANDLE_TYPE_CONNECT_FTP: DWORD = 2;
426pub const INTERNET_HANDLE_TYPE_CONNECT_GOPHER: DWORD = 3;
427pub const INTERNET_HANDLE_TYPE_CONNECT_HTTP: DWORD = 4;
428pub const INTERNET_HANDLE_TYPE_FTP_FIND: DWORD = 5;
429pub const INTERNET_HANDLE_TYPE_FTP_FIND_HTML: DWORD = 6;
430pub const INTERNET_HANDLE_TYPE_FTP_FILE: DWORD = 7;
431pub const INTERNET_HANDLE_TYPE_FTP_FILE_HTML: DWORD = 8;
432pub const INTERNET_HANDLE_TYPE_GOPHER_FIND: DWORD = 9;
433pub const INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML: DWORD = 10;
434pub const INTERNET_HANDLE_TYPE_GOPHER_FILE: DWORD = 11;
435pub const INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML: DWORD = 12;
436pub const INTERNET_HANDLE_TYPE_HTTP_REQUEST: DWORD = 13;
437pub const INTERNET_HANDLE_TYPE_FILE_REQUEST: DWORD = 14;
438pub const AUTH_FLAG_DISABLE_NEGOTIATE: DWORD = 0x00000001;
439pub const AUTH_FLAG_ENABLE_NEGOTIATE: DWORD = 0x00000002;
440pub const AUTH_FLAG_DISABLE_BASIC_CLEARCHANNEL: DWORD = 0x00000004;
441pub const AUTH_FLAG_DISABLE_SERVER_AUTH: DWORD = 0x00000008;
442pub const SECURITY_FLAG_SECURE: DWORD = 0x00000001;
443pub const SECURITY_FLAG_STRENGTH_WEAK: DWORD = 0x10000000;
444pub const SECURITY_FLAG_STRENGTH_MEDIUM: DWORD = 0x40000000;
445pub const SECURITY_FLAG_STRENGTH_STRONG: DWORD = 0x20000000;
446pub const SECURITY_FLAG_UNKNOWNBIT: DWORD = 0x80000000;
447pub const SECURITY_FLAG_FORTEZZA: DWORD = 0x08000000;
448pub const SECURITY_FLAG_NORMALBITNESS: DWORD = SECURITY_FLAG_STRENGTH_WEAK;
449pub const SECURITY_FLAG_SSL: DWORD = 0x00000002;
450pub const SECURITY_FLAG_SSL3: DWORD = 0x00000004;
451pub const SECURITY_FLAG_PCT: DWORD = 0x00000008;
452pub const SECURITY_FLAG_PCT4: DWORD = 0x00000010;
453pub const SECURITY_FLAG_IETFSSL4: DWORD = 0x00000020;
454pub const SECURITY_FLAG_40BIT: DWORD = SECURITY_FLAG_STRENGTH_WEAK;
455pub const SECURITY_FLAG_128BIT: DWORD = SECURITY_FLAG_STRENGTH_STRONG;
456pub const SECURITY_FLAG_56BIT: DWORD = SECURITY_FLAG_STRENGTH_MEDIUM;
457pub const SECURITY_FLAG_IGNORE_REVOCATION: DWORD = 0x00000080;
458pub const SECURITY_FLAG_IGNORE_UNKNOWN_CA: DWORD = 0x00000100;
459pub const SECURITY_FLAG_IGNORE_WRONG_USAGE: DWORD = 0x00000200;
460pub const SECURITY_FLAG_IGNORE_CERT_CN_INVALID: DWORD = INTERNET_FLAG_IGNORE_CERT_CN_INVALID;
461pub const SECURITY_FLAG_IGNORE_CERT_DATE_INVALID: DWORD = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID;
462pub const SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS: DWORD = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS;
463pub const SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP: DWORD = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP;
464pub const SECURITY_SET_MASK: DWORD = SECURITY_FLAG_IGNORE_REVOCATION
465 | SECURITY_FLAG_IGNORE_UNKNOWN_CA | SECURITY_FLAG_IGNORE_CERT_CN_INVALID
466 | SECURITY_FLAG_IGNORE_CERT_DATE_INVALID | SECURITY_FLAG_IGNORE_WRONG_USAGE;
467pub const AUTODIAL_MODE_NEVER: DWORD = 1;
468pub const AUTODIAL_MODE_ALWAYS: DWORD = 2;
469pub const AUTODIAL_MODE_NO_NETWORK_PRESENT: DWORD = 4;
470FN!{stdcall INTERNET_STATUS_CALLBACK(
471 HINTERNET,
472 DWORD_PTR,
473 DWORD,
474 LPVOID,
475 DWORD,
476) -> ()}
477pub type LPINTERNET_STATUS_CALLBACK = *mut INTERNET_STATUS_CALLBACK;
478pub const INTERNET_STATUS_RESOLVING_NAME: DWORD = 10;
479pub const INTERNET_STATUS_NAME_RESOLVED: DWORD = 11;
480pub const INTERNET_STATUS_CONNECTING_TO_SERVER: DWORD = 20;
481pub const INTERNET_STATUS_CONNECTED_TO_SERVER: DWORD = 21;
482pub const INTERNET_STATUS_SENDING_REQUEST: DWORD = 30;
483pub const INTERNET_STATUS_REQUEST_SENT: DWORD = 31;
484pub const INTERNET_STATUS_RECEIVING_RESPONSE: DWORD = 40;
485pub const INTERNET_STATUS_RESPONSE_RECEIVED: DWORD = 41;
486pub const INTERNET_STATUS_CTL_RESPONSE_RECEIVED: DWORD = 42;
487pub const INTERNET_STATUS_PREFETCH: DWORD = 43;
488pub const INTERNET_STATUS_CLOSING_CONNECTION: DWORD = 50;
489pub const INTERNET_STATUS_CONNECTION_CLOSED: DWORD = 51;
490pub const INTERNET_STATUS_HANDLE_CREATED: DWORD = 60;
491pub const INTERNET_STATUS_HANDLE_CLOSING: DWORD = 70;
492pub const INTERNET_STATUS_DETECTING_PROXY: DWORD = 80;
493pub const INTERNET_STATUS_REQUEST_COMPLETE: DWORD = 100;
494pub const INTERNET_STATUS_REDIRECT: DWORD = 110;
495pub const INTERNET_STATUS_INTERMEDIATE_RESPONSE: DWORD = 120;
496pub const INTERNET_STATUS_USER_INPUT_REQUIRED: DWORD = 140;
497pub const INTERNET_STATUS_STATE_CHANGE: DWORD = 200;
498pub const INTERNET_STATUS_COOKIE_SENT: DWORD = 320;
499pub const INTERNET_STATUS_COOKIE_RECEIVED: DWORD = 321;
500pub const INTERNET_STATUS_PRIVACY_IMPACTED: DWORD = 324;
501pub const INTERNET_STATUS_P3P_HEADER: DWORD = 325;
502pub const INTERNET_STATUS_P3P_POLICYREF: DWORD = 326;
503pub const INTERNET_STATUS_COOKIE_HISTORY: DWORD = 327;
504pub const INTERNET_STATE_CONNECTED: DWORD = 0x00000001;
505pub const INTERNET_STATE_DISCONNECTED: DWORD = 0x00000002;
506pub const INTERNET_STATE_DISCONNECTED_BY_USER: DWORD = 0x00000010;
507pub const INTERNET_STATE_IDLE: DWORD = 0x00000100;
508pub const INTERNET_STATE_BUSY: DWORD = 0x00000200;
509ENUM!{enum InternetCookieState {
510 COOKIE_STATE_UNKNOWN = 0x0,
511 COOKIE_STATE_ACCEPT = 0x1,
512 COOKIE_STATE_PROMPT = 0x2,
513 COOKIE_STATE_LEASH = 0x3,
514 COOKIE_STATE_DOWNGRADE = 0x4,
515 COOKIE_STATE_REJECT = 0x5,
516 COOKIE_STATE_MAX = COOKIE_STATE_REJECT,
517}}
518STRUCT!{struct IncomingCookieState {
519 cSession: c_int,
520 cPersistent: c_int,
521 cAccepted: c_int,
522 cLeashed: c_int,
523 cDowngraded: c_int,
524 cBlocked: c_int,
525 pszLocation: LPCSTR,
526}}
527STRUCT!{struct OutgoingCookieState {
528 cSent: c_int,
529 cSuppressed: c_int,
530 pszLocation: LPCSTR,
531}}
532STRUCT!{struct InternetCookieHistory {
533 fAccepted: BOOL,
534 fLeashed: BOOL,
535 fDowngraded: BOOL,
536 fRejected: BOOL,
537}}
538STRUCT!{struct CookieDecision {
539 dwCookieState: DWORD,
540 fAllowSession: BOOL,
541}}
542pub const INTERNET_INVALID_STATUS_CALLBACK: usize = -1isize as usize;
543pub const FTP_TRANSFER_TYPE_UNKNOWN: DWORD = 0x00000000;
544pub const FTP_TRANSFER_TYPE_ASCII: DWORD = 0x00000001;
545pub const FTP_TRANSFER_TYPE_BINARY: DWORD = 0x00000002;
546pub const FTP_TRANSFER_TYPE_MASK: DWORD = FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY;
547pub const MAX_GOPHER_DISPLAY_TEXT: usize = 128;
548pub const MAX_GOPHER_SELECTOR_TEXT: usize = 256;
549pub const MAX_GOPHER_HOST_NAME: usize = INTERNET_MAX_HOST_NAME_LENGTH;
550pub const MAX_GOPHER_LOCATOR_LENGTH: usize = 1 + MAX_GOPHER_DISPLAY_TEXT + 1
551 + MAX_GOPHER_SELECTOR_TEXT + 1 + MAX_GOPHER_HOST_NAME + 1 + INTERNET_MAX_PORT_NUMBER_LENGTH
552 + 1 + 1 + 2;
553STRUCT!{struct GOPHER_FIND_DATAA {
554 DisplayString: [CHAR; MAX_GOPHER_DISPLAY_TEXT+ 1],
555 GopherType: DWORD,
556 SizeLow: DWORD,
557 SizeHigh: DWORD,
558 LastModificationTime: FILETIME,
559 Locator: [CHAR; MAX_GOPHER_LOCATOR_LENGTH + 1],
560}}
561pub type LPGOPHER_FIND_DATAA = *mut GOPHER_FIND_DATAA;
562STRUCT!{struct GOPHER_FIND_DATAW {
563 DisplayString: [WCHAR; MAX_GOPHER_DISPLAY_TEXT+ 1],
564 GopherType: DWORD,
565 SizeLow: DWORD,
566 SizeHigh: DWORD,
567 LastModificationTime: FILETIME,
568 Locator: [WCHAR; MAX_GOPHER_LOCATOR_LENGTH + 1],
569}}
570pub type LPGOPHER_FIND_DATAW = *mut GOPHER_FIND_DATAW;
571pub const GOPHER_TYPE_TEXT_FILE: DWORD = 0x00000001;
572pub const GOPHER_TYPE_DIRECTORY: DWORD = 0x00000002;
573pub const GOPHER_TYPE_CSO: DWORD = 0x00000004;
574pub const GOPHER_TYPE_ERROR: DWORD = 0x00000008;
575pub const GOPHER_TYPE_MAC_BINHEX: DWORD = 0x00000010;
576pub const GOPHER_TYPE_DOS_ARCHIVE: DWORD = 0x00000020;
577pub const GOPHER_TYPE_UNIX_UUENCODED: DWORD = 0x00000040;
578pub const GOPHER_TYPE_INDEX_SERVER: DWORD = 0x00000080;
579pub const GOPHER_TYPE_TELNET: DWORD = 0x00000100;
580pub const GOPHER_TYPE_BINARY: DWORD = 0x00000200;
581pub const GOPHER_TYPE_REDUNDANT: DWORD = 0x00000400;
582pub const GOPHER_TYPE_TN3270: DWORD = 0x00000800;
583pub const GOPHER_TYPE_GIF: DWORD = 0x00001000;
584pub const GOPHER_TYPE_IMAGE: DWORD = 0x00002000;
585pub const GOPHER_TYPE_BITMAP: DWORD = 0x00004000;
586pub const GOPHER_TYPE_MOVIE: DWORD = 0x00008000;
587pub const GOPHER_TYPE_SOUND: DWORD = 0x00010000;
588pub const GOPHER_TYPE_HTML: DWORD = 0x00020000;
589pub const GOPHER_TYPE_PDF: DWORD = 0x00040000;
590pub const GOPHER_TYPE_CALENDAR: DWORD = 0x00080000;
591pub const GOPHER_TYPE_INLINE: DWORD = 0x00100000;
592pub const GOPHER_TYPE_UNKNOWN: DWORD = 0x20000000;
593pub const GOPHER_TYPE_ASK: DWORD = 0x40000000;
594pub const GOPHER_TYPE_GOPHER_PLUS: DWORD = 0x80000000;
595#[inline]
596pub fn IS_GOPHER_FILE(type_: DWORD) -> BOOL {
597 if (type_ & GOPHER_TYPE_FILE_MASK) != 0 { TRUE } else { FALSE }
598}
599#[inline]
600pub fn IS_GOPHER_DIRECTORY(type_: DWORD) -> BOOL {
601 if (type_ & GOPHER_TYPE_DIRECTORY) != 0 { TRUE } else { FALSE }
602}
603#[inline]
604pub fn IS_GOPHER_PHONE_SERVER(type_: DWORD) -> BOOL {
605 if (type_ & GOPHER_TYPE_CSO) != 0 { TRUE } else { FALSE }
606}
607#[inline]
608pub fn IS_GOPHER_ERROR(type_: DWORD) -> BOOL {
609 if (type_ & GOPHER_TYPE_ERROR) != 0 { TRUE } else { FALSE }
610}
611#[inline]
612pub fn IS_GOPHER_INDEX_SERVER(type_: DWORD) -> BOOL {
613 if (type_ & GOPHER_TYPE_INDEX_SERVER) != 0 { TRUE } else { FALSE }
614}
615#[inline]
616pub fn IS_GOPHER_TELNET_SESSION(type_: DWORD) -> BOOL {
617 if (type_ & GOPHER_TYPE_TELNET) != 0 { TRUE } else { FALSE }
618}
619#[inline]
620pub fn IS_GOPHER_BACKUP_SERVER(type_: DWORD) -> BOOL {
621 if (type_ & GOPHER_TYPE_REDUNDANT) != 0 { TRUE } else { FALSE }
622}
623#[inline]
624pub fn IS_GOPHER_TN3270_SESSION(type_: DWORD) -> BOOL {
625 if (type_ & GOPHER_TYPE_TN3270) != 0 { TRUE } else { FALSE }
626}
627#[inline]
628pub fn IS_GOPHER_ASK(type_: DWORD) -> BOOL {
629 if (type_ & GOPHER_TYPE_ASK) != 0 { TRUE } else { FALSE }
630}
631#[inline]
632pub fn IS_GOPHER_PLUS(type_: DWORD) -> BOOL {
633 if (type_ & GOPHER_TYPE_GOPHER_PLUS) != 0 { TRUE } else { FALSE }
634}
635#[inline]
636pub fn IS_GOPHER_TYPE_KNOWN(type_: DWORD) -> BOOL {
637 if (type_ & GOPHER_TYPE_UNKNOWN) != 0 { FALSE } else { TRUE }
638}
639pub const GOPHER_TYPE_FILE_MASK: DWORD = GOPHER_TYPE_TEXT_FILE | GOPHER_TYPE_MAC_BINHEX
640 | GOPHER_TYPE_DOS_ARCHIVE | GOPHER_TYPE_UNIX_UUENCODED | GOPHER_TYPE_BINARY | GOPHER_TYPE_GIF
641 | GOPHER_TYPE_IMAGE | GOPHER_TYPE_BITMAP | GOPHER_TYPE_MOVIE | GOPHER_TYPE_SOUND
642 | GOPHER_TYPE_HTML | GOPHER_TYPE_PDF | GOPHER_TYPE_CALENDAR | GOPHER_TYPE_INLINE;
643STRUCT!{struct GOPHER_ADMIN_ATTRIBUTE_TYPE {
644 Comment: LPCWSTR,
645 EmailAddress: LPCWSTR,
646}}
647pub type LPGOPHER_ADMIN_ATTRIBUTE_TYPE = *mut GOPHER_ADMIN_ATTRIBUTE_TYPE;
648STRUCT!{struct GOPHER_MOD_DATE_ATTRIBUTE_TYPE {
649 DateAndTime: FILETIME,
650}}
651pub type LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE = *mut GOPHER_MOD_DATE_ATTRIBUTE_TYPE;
652STRUCT!{struct GOPHER_TTL_ATTRIBUTE_TYPE {
653 Ttl: DWORD,
654}}
655pub type LPGOPHER_TTL_ATTRIBUTE_TYPE = *mut GOPHER_TTL_ATTRIBUTE_TYPE;
656STRUCT!{struct GOPHER_SCORE_ATTRIBUTE_TYPE {
657 Score: INT,
658}}
659pub type LPGOPHER_SCORE_ATTRIBUTE_TYPE = *mut GOPHER_SCORE_ATTRIBUTE_TYPE;
660STRUCT!{struct GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE {
661 LowerBound: INT,
662 UpperBound: INT,
663}}
664pub type LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE = *mut GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE;
665STRUCT!{struct GOPHER_SITE_ATTRIBUTE_TYPE {
666 Site: LPCWSTR,
667}}
668pub type LPGOPHER_SITE_ATTRIBUTE_TYPE = *mut GOPHER_SITE_ATTRIBUTE_TYPE;
669STRUCT!{struct GOPHER_ORGANIZATION_ATTRIBUTE_TYPE {
670 Organization: LPCWSTR,
671}}
672pub type LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE = *mut GOPHER_ORGANIZATION_ATTRIBUTE_TYPE;
673STRUCT!{struct GOPHER_LOCATION_ATTRIBUTE_TYPE {
674 Location: LPCWSTR,
675}}
676pub type LPGOPHER_LOCATION_ATTRIBUTE_TYPE = *mut GOPHER_LOCATION_ATTRIBUTE_TYPE;
677STRUCT!{struct GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE {
678 DegreesNorth: INT,
679 MinutesNorth: INT,
680 SecondsNorth: INT,
681 DegreesEast: INT,
682 MinutesEast: INT,
683 SecondsEast: INT,
684}}
685pub type LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE =
686 *mut GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE;
687STRUCT!{struct GOPHER_TIMEZONE_ATTRIBUTE_TYPE {
688 Zone: INT,
689}}
690pub type LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE = *mut GOPHER_TIMEZONE_ATTRIBUTE_TYPE;
691STRUCT!{struct GOPHER_PROVIDER_ATTRIBUTE_TYPE {
692 Provider: LPCWSTR,
693}}
694pub type LPGOPHER_PROVIDER_ATTRIBUTE_TYPE = *mut GOPHER_PROVIDER_ATTRIBUTE_TYPE;
695STRUCT!{struct GOPHER_VERSION_ATTRIBUTE_TYPE {
696 Version: LPCWSTR,
697}}
698pub type LPGOPHER_VERSION_ATTRIBUTE_TYPE = *mut GOPHER_VERSION_ATTRIBUTE_TYPE;
699STRUCT!{struct GOPHER_ABSTRACT_ATTRIBUTE_TYPE {
700 ShortAbstract: LPCWSTR,
701 AbstractFile: LPCWSTR,
702}}
703pub type LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE = *mut GOPHER_ABSTRACT_ATTRIBUTE_TYPE;
704STRUCT!{struct GOPHER_VIEW_ATTRIBUTE_TYPE {
705 ContentType: LPCWSTR,
706 Language: LPCWSTR,
707 Size: DWORD,
708}}
709pub type LPGOPHER_VIEW_ATTRIBUTE_TYPE = *mut GOPHER_VIEW_ATTRIBUTE_TYPE;
710STRUCT!{struct GOPHER_VERONICA_ATTRIBUTE_TYPE {
711 TreeWalk: BOOL,
712}}
713pub type LPGOPHER_VERONICA_ATTRIBUTE_TYPE = *mut GOPHER_VERONICA_ATTRIBUTE_TYPE;
714STRUCT!{struct GOPHER_ASK_ATTRIBUTE_TYPE {
715 QuestionType: LPCWSTR,
716 QuestionText: LPCWSTR,
717}}
718pub type LPGOPHER_ASK_ATTRIBUTE_TYPE = *mut GOPHER_ASK_ATTRIBUTE_TYPE;
719STRUCT!{struct GOPHER_UNKNOWN_ATTRIBUTE_TYPE {
720 Text: LPCWSTR,
721}}
722pub type LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE = *mut GOPHER_UNKNOWN_ATTRIBUTE_TYPE;
723UNION!{union GOPHER_ATTRIBUTE_TYPE_AttributeType {
724 [u32; 6] [u64; 3],
725 Admin Admin_mut: GOPHER_ADMIN_ATTRIBUTE_TYPE,
726 ModDate ModDate_mut: GOPHER_MOD_DATE_ATTRIBUTE_TYPE,
727 Ttl Ttl_mut: GOPHER_TTL_ATTRIBUTE_TYPE,
728 Score Score_mut: GOPHER_SCORE_ATTRIBUTE_TYPE,
729 ScoreRange ScoreRange_mut: GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE,
730 Site Site_mut: GOPHER_SITE_ATTRIBUTE_TYPE,
731 Organization Organization_mut: GOPHER_ORGANIZATION_ATTRIBUTE_TYPE,
732 Location Location_mut: GOPHER_LOCATION_ATTRIBUTE_TYPE,
733 GeographicalLocation GeographicalLocation_mut: GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE,
734 TimeZone TimeZone_mut: GOPHER_TIMEZONE_ATTRIBUTE_TYPE,
735 Provider Provider_mut: GOPHER_PROVIDER_ATTRIBUTE_TYPE,
736 Version Version_mut: GOPHER_VERSION_ATTRIBUTE_TYPE,
737 Abstract Abstract_mut: GOPHER_ABSTRACT_ATTRIBUTE_TYPE,
738 View View_mut: GOPHER_VIEW_ATTRIBUTE_TYPE,
739 Veronica Veronica_mut: GOPHER_VERONICA_ATTRIBUTE_TYPE,
740 Ask Ask_mut: GOPHER_ASK_ATTRIBUTE_TYPE,
741 Unknown Unknown_mut: GOPHER_UNKNOWN_ATTRIBUTE_TYPE,
742}}
743STRUCT!{struct GOPHER_ATTRIBUTE_TYPE {
744 CategoryId: DWORD,
745 AttributeId: DWORD,
746 AttributeType: GOPHER_ATTRIBUTE_TYPE_AttributeType,
747}}
748pub type LPGOPHER_ATTRIBUTE_TYPE = *mut GOPHER_ATTRIBUTE_TYPE;
749pub const MAX_GOPHER_CATEGORY_NAME: DWORD = 128;
750pub const MAX_GOPHER_ATTRIBUTE_NAME: DWORD = 128;
751pub const MIN_GOPHER_ATTRIBUTE_LENGTH: DWORD = 256;
752pub const GOPHER_INFO_CATEGORY: &'static str = " + INFO";
753pub const GOPHER_ADMIN_CATEGORY: &'static str = " + ADMIN";
754pub const GOPHER_VIEWS_CATEGORY: &'static str = " + VIEWS";
755pub const GOPHER_ABSTRACT_CATEGORY: &'static str = " + ABSTRACT";
756pub const GOPHER_VERONICA_CATEGORY: &'static str = " + VERONICA";
757pub const GOPHER_ADMIN_ATTRIBUTE: &'static str = "Admin";
758pub const GOPHER_MOD_DATE_ATTRIBUTE: &'static str = "Mod-Date";
759pub const GOPHER_TTL_ATTRIBUTE: &'static str = "TTL";
760pub const GOPHER_SCORE_ATTRIBUTE: &'static str = "Score";
761pub const GOPHER_RANGE_ATTRIBUTE: &'static str = "Score-range";
762pub const GOPHER_SITE_ATTRIBUTE: &'static str = "Site";
763pub const GOPHER_ORG_ATTRIBUTE: &'static str = "Org";
764pub const GOPHER_LOCATION_ATTRIBUTE: &'static str = "Loc";
765pub const GOPHER_GEOG_ATTRIBUTE: &'static str = "Geog";
766pub const GOPHER_TIMEZONE_ATTRIBUTE: &'static str = "TZ";
767pub const GOPHER_PROVIDER_ATTRIBUTE: &'static str = "Provider";
768pub const GOPHER_VERSION_ATTRIBUTE: &'static str = "Version";
769pub const GOPHER_ABSTRACT_ATTRIBUTE: &'static str = "Abstract";
770pub const GOPHER_VIEW_ATTRIBUTE: &'static str = "View";
771pub const GOPHER_TREEWALK_ATTRIBUTE: &'static str = "treewalk";
772pub const GOPHER_ATTRIBUTE_ID_BASE: DWORD = 0xabcccc00;
773pub const GOPHER_CATEGORY_ID_ALL: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 1;
774pub const GOPHER_CATEGORY_ID_INFO: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 2;
775pub const GOPHER_CATEGORY_ID_ADMIN: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 3;
776pub const GOPHER_CATEGORY_ID_VIEWS: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 4;
777pub const GOPHER_CATEGORY_ID_ABSTRACT: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 5;
778pub const GOPHER_CATEGORY_ID_VERONICA: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 6;
779pub const GOPHER_CATEGORY_ID_ASK: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 7;
780pub const GOPHER_CATEGORY_ID_UNKNOWN: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 8;
781pub const GOPHER_ATTRIBUTE_ID_ALL: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 9;
782pub const GOPHER_ATTRIBUTE_ID_ADMIN: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 10;
783pub const GOPHER_ATTRIBUTE_ID_MOD_DATE: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 11;
784pub const GOPHER_ATTRIBUTE_ID_TTL: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 12;
785pub const GOPHER_ATTRIBUTE_ID_SCORE: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 13;
786pub const GOPHER_ATTRIBUTE_ID_RANGE: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 14;
787pub const GOPHER_ATTRIBUTE_ID_SITE: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 15;
788pub const GOPHER_ATTRIBUTE_ID_ORG: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 16;
789pub const GOPHER_ATTRIBUTE_ID_LOCATION: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 17;
790pub const GOPHER_ATTRIBUTE_ID_GEOG: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 18;
791pub const GOPHER_ATTRIBUTE_ID_TIMEZONE: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 19;
792pub const GOPHER_ATTRIBUTE_ID_PROVIDER: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 20;
793pub const GOPHER_ATTRIBUTE_ID_VERSION: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 21;
794pub const GOPHER_ATTRIBUTE_ID_ABSTRACT: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 22;
795pub const GOPHER_ATTRIBUTE_ID_VIEW: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 23;
796pub const GOPHER_ATTRIBUTE_ID_TREEWALK: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 24;
797pub const GOPHER_ATTRIBUTE_ID_UNKNOWN: DWORD = GOPHER_ATTRIBUTE_ID_BASE + 25;
798FN!{stdcall GOPHER_ATTRIBUTE_ENUMERATOR(
799 LPGOPHER_ATTRIBUTE_TYPE,
800 DWORD,
801) -> BOOL}
802pub const HTTP_MAJOR_VERSION: DWORD = 1;
803pub const HTTP_MINOR_VERSION: DWORD = 0;
804pub const HTTP_VERSION: &'static str = "HTTP/1.0";
805pub const HTTP_QUERY_MIME_VERSION: DWORD = 0;
806pub const HTTP_QUERY_CONTENT_TYPE: DWORD = 1;
807pub const HTTP_QUERY_CONTENT_TRANSFER_ENCODING: DWORD = 2;
808pub const HTTP_QUERY_CONTENT_ID: DWORD = 3;
809pub const HTTP_QUERY_CONTENT_DESCRIPTION: DWORD = 4;
810pub const HTTP_QUERY_CONTENT_LENGTH: DWORD = 5;
811pub const HTTP_QUERY_CONTENT_LANGUAGE: DWORD = 6;
812pub const HTTP_QUERY_ALLOW: DWORD = 7;
813pub const HTTP_QUERY_PUBLIC: DWORD = 8;
814pub const HTTP_QUERY_DATE: DWORD = 9;
815pub const HTTP_QUERY_EXPIRES: DWORD = 10;
816pub const HTTP_QUERY_LAST_MODIFIED: DWORD = 11;
817pub const HTTP_QUERY_MESSAGE_ID: DWORD = 12;
818pub const HTTP_QUERY_URI: DWORD = 13;
819pub const HTTP_QUERY_DERIVED_FROM: DWORD = 14;
820pub const HTTP_QUERY_COST: DWORD = 15;
821pub const HTTP_QUERY_LINK: DWORD = 16;
822pub const HTTP_QUERY_PRAGMA: DWORD = 17;
823pub const HTTP_QUERY_VERSION: DWORD = 18;
824pub const HTTP_QUERY_STATUS_CODE: DWORD = 19;
825pub const HTTP_QUERY_STATUS_TEXT: DWORD = 20;
826pub const HTTP_QUERY_RAW_HEADERS: DWORD = 21;
827pub const HTTP_QUERY_RAW_HEADERS_CRLF: DWORD = 22;
828pub const HTTP_QUERY_CONNECTION: DWORD = 23;
829pub const HTTP_QUERY_ACCEPT: DWORD = 24;
830pub const HTTP_QUERY_ACCEPT_CHARSET: DWORD = 25;
831pub const HTTP_QUERY_ACCEPT_ENCODING: DWORD = 26;
832pub const HTTP_QUERY_ACCEPT_LANGUAGE: DWORD = 27;
833pub const HTTP_QUERY_AUTHORIZATION: DWORD = 28;
834pub const HTTP_QUERY_CONTENT_ENCODING: DWORD = 29;
835pub const HTTP_QUERY_FORWARDED: DWORD = 30;
836pub const HTTP_QUERY_FROM: DWORD = 31;
837pub const HTTP_QUERY_IF_MODIFIED_SINCE: DWORD = 32;
838pub const HTTP_QUERY_LOCATION: DWORD = 33;
839pub const HTTP_QUERY_ORIG_URI: DWORD = 34;
840pub const HTTP_QUERY_REFERER: DWORD = 35;
841pub const HTTP_QUERY_RETRY_AFTER: DWORD = 36;
842pub const HTTP_QUERY_SERVER: DWORD = 37;
843pub const HTTP_QUERY_TITLE: DWORD = 38;
844pub const HTTP_QUERY_USER_AGENT: DWORD = 39;
845pub const HTTP_QUERY_WWW_AUTHENTICATE: DWORD = 40;
846pub const HTTP_QUERY_PROXY_AUTHENTICATE: DWORD = 41;
847pub const HTTP_QUERY_ACCEPT_RANGES: DWORD = 42;
848pub const HTTP_QUERY_SET_COOKIE: DWORD = 43;
849pub const HTTP_QUERY_COOKIE: DWORD = 44;
850pub const HTTP_QUERY_REQUEST_METHOD: DWORD = 45;
851pub const HTTP_QUERY_REFRESH: DWORD = 46;
852pub const HTTP_QUERY_CONTENT_DISPOSITION: DWORD = 47;
853pub const HTTP_QUERY_AGE: DWORD = 48;
854pub const HTTP_QUERY_CACHE_CONTROL: DWORD = 49;
855pub const HTTP_QUERY_CONTENT_BASE: DWORD = 50;
856pub const HTTP_QUERY_CONTENT_LOCATION: DWORD = 51;
857pub const HTTP_QUERY_CONTENT_MD5: DWORD = 52;
858pub const HTTP_QUERY_CONTENT_RANGE: DWORD = 53;
859pub const HTTP_QUERY_ETAG: DWORD = 54;
860pub const HTTP_QUERY_HOST: DWORD = 55;
861pub const HTTP_QUERY_IF_MATCH: DWORD = 56;
862pub const HTTP_QUERY_IF_NONE_MATCH: DWORD = 57;
863pub const HTTP_QUERY_IF_RANGE: DWORD = 58;
864pub const HTTP_QUERY_IF_UNMODIFIED_SINCE: DWORD = 59;
865pub const HTTP_QUERY_MAX_FORWARDS: DWORD = 60;
866pub const HTTP_QUERY_PROXY_AUTHORIZATION: DWORD = 61;
867pub const HTTP_QUERY_RANGE: DWORD = 62;
868pub const HTTP_QUERY_TRANSFER_ENCODING: DWORD = 63;
869pub const HTTP_QUERY_UPGRADE: DWORD = 64;
870pub const HTTP_QUERY_VARY: DWORD = 65;
871pub const HTTP_QUERY_VIA: DWORD = 66;
872pub const HTTP_QUERY_WARNING: DWORD = 67;
873pub const HTTP_QUERY_EXPECT: DWORD = 68;
874pub const HTTP_QUERY_PROXY_CONNECTION: DWORD = 69;
875pub const HTTP_QUERY_UNLESS_MODIFIED_SINCE: DWORD = 70;
876pub const HTTP_QUERY_ECHO_REQUEST: DWORD = 71;
877pub const HTTP_QUERY_ECHO_REPLY: DWORD = 72;
878pub const HTTP_QUERY_ECHO_HEADERS: DWORD = 73;
879pub const HTTP_QUERY_ECHO_HEADERS_CRLF: DWORD = 74;
880pub const HTTP_QUERY_PROXY_SUPPORT: DWORD = 75;
881pub const HTTP_QUERY_AUTHENTICATION_INFO: DWORD = 76;
882pub const HTTP_QUERY_PASSPORT_URLS: DWORD = 77;
883pub const HTTP_QUERY_PASSPORT_CONFIG: DWORD = 78;
884pub const HTTP_QUERY_X_CONTENT_TYPE_OPTIONS: DWORD = 79;
885pub const HTTP_QUERY_P3P: DWORD = 80;
886pub const HTTP_QUERY_X_P2P_PEERDIST: DWORD = 81;
887pub const HTTP_QUERY_TRANSLATE: DWORD = 82;
888pub const HTTP_QUERY_X_UA_COMPATIBLE: DWORD = 83;
889pub const HTTP_QUERY_DEFAULT_STYLE: DWORD = 84;
890pub const HTTP_QUERY_X_FRAME_OPTIONS: DWORD = 85;
891pub const HTTP_QUERY_X_XSS_PROTECTION: DWORD = 86;
892pub const HTTP_QUERY_SET_COOKIE2: DWORD = 87;
893pub const HTTP_QUERY_DO_NOT_TRACK: DWORD = 88;
894pub const HTTP_QUERY_KEEP_ALIVE: DWORD = 89;
895pub const HTTP_QUERY_MAX: DWORD = 89;
896pub const HTTP_QUERY_CUSTOM: DWORD = 65535;
897pub const HTTP_QUERY_FLAG_REQUEST_HEADERS: DWORD = 0x80000000;
898pub const HTTP_QUERY_FLAG_SYSTEMTIME: DWORD = 0x40000000;
899pub const HTTP_QUERY_FLAG_NUMBER: DWORD = 0x20000000;
900pub const HTTP_QUERY_FLAG_COALESCE: DWORD = 0x10000000;
901pub const HTTP_QUERY_FLAG_NUMBER64: DWORD = 0x08000000;
902pub const HTTP_QUERY_MODIFIER_FLAGS_MASK: DWORD = HTTP_QUERY_FLAG_REQUEST_HEADERS
903 | HTTP_QUERY_FLAG_SYSTEMTIME | HTTP_QUERY_FLAG_NUMBER | HTTP_QUERY_FLAG_COALESCE
904 | HTTP_QUERY_FLAG_NUMBER64;
905pub const HTTP_QUERY_HEADER_MASK: DWORD = !HTTP_QUERY_MODIFIER_FLAGS_MASK;
906pub const HTTP_STATUS_CONTINUE: DWORD = 100;
907pub const HTTP_STATUS_SWITCH_PROTOCOLS: DWORD = 101;
908pub const HTTP_STATUS_OK: DWORD = 200;
909pub const HTTP_STATUS_CREATED: DWORD = 201;
910pub const HTTP_STATUS_ACCEPTED: DWORD = 202;
911pub const HTTP_STATUS_PARTIAL: DWORD = 203;
912pub const HTTP_STATUS_NO_CONTENT: DWORD = 204;
913pub const HTTP_STATUS_RESET_CONTENT: DWORD = 205;
914pub const HTTP_STATUS_PARTIAL_CONTENT: DWORD = 206;
915pub const HTTP_STATUS_AMBIGUOUS: DWORD = 300;
916pub const HTTP_STATUS_MOVED: DWORD = 301;
917pub const HTTP_STATUS_REDIRECT: DWORD = 302;
918pub const HTTP_STATUS_REDIRECT_METHOD: DWORD = 303;
919pub const HTTP_STATUS_NOT_MODIFIED: DWORD = 304;
920pub const HTTP_STATUS_USE_PROXY: DWORD = 305;
921pub const HTTP_STATUS_REDIRECT_KEEP_VERB: DWORD = 307;
922pub const HTTP_STATUS_BAD_REQUEST: DWORD = 400;
923pub const HTTP_STATUS_DENIED: DWORD = 401;
924pub const HTTP_STATUS_PAYMENT_REQ: DWORD = 402;
925pub const HTTP_STATUS_FORBIDDEN: DWORD = 403;
926pub const HTTP_STATUS_NOT_FOUND: DWORD = 404;
927pub const HTTP_STATUS_BAD_METHOD: DWORD = 405;
928pub const HTTP_STATUS_NONE_ACCEPTABLE: DWORD = 406;
929pub const HTTP_STATUS_PROXY_AUTH_REQ: DWORD = 407;
930pub const HTTP_STATUS_REQUEST_TIMEOUT: DWORD = 408;
931pub const HTTP_STATUS_CONFLICT: DWORD = 409;
932pub const HTTP_STATUS_GONE: DWORD = 410;
933pub const HTTP_STATUS_LENGTH_REQUIRED: DWORD = 411;
934pub const HTTP_STATUS_PRECOND_FAILED: DWORD = 412;
935pub const HTTP_STATUS_REQUEST_TOO_LARGE: DWORD = 413;
936pub const HTTP_STATUS_URI_TOO_LONG: DWORD = 414;
937pub const HTTP_STATUS_UNSUPPORTED_MEDIA: DWORD = 415;
938pub const HTTP_STATUS_RETRY_WITH: DWORD = 449;
939pub const HTTP_STATUS_SERVER_ERROR: DWORD = 500;
940pub const HTTP_STATUS_NOT_SUPPORTED: DWORD = 501;
941pub const HTTP_STATUS_BAD_GATEWAY: DWORD = 502;
942pub const HTTP_STATUS_SERVICE_UNAVAIL: DWORD = 503;
943pub const HTTP_STATUS_GATEWAY_TIMEOUT: DWORD = 504;
944pub const HTTP_STATUS_VERSION_NOT_SUP: DWORD = 505;
945pub const HTTP_STATUS_FIRST: DWORD = HTTP_STATUS_CONTINUE;
946pub const HTTP_STATUS_LAST: DWORD = HTTP_STATUS_VERSION_NOT_SUP;
947pub const HTTP_ADDREQ_INDEX_MASK: DWORD = 0x0000FFFF;
948pub const HTTP_ADDREQ_FLAGS_MASK: DWORD = 0xFFFF0000;
949pub const HTTP_ADDREQ_FLAG_ADD_IF_NEW: DWORD = 0x10000000;
950pub const HTTP_ADDREQ_FLAG_ADD: DWORD = 0x20000000;
951pub const HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA: DWORD = 0x40000000;
952pub const HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON: DWORD = 0x01000000;
953pub const HTTP_ADDREQ_FLAG_COALESCE: DWORD = HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA;
954pub const HTTP_ADDREQ_FLAG_REPLACE: DWORD = 0x80000000;
955pub const HSR_ASYNC: DWORD = WININET_API_FLAG_ASYNC;
956pub const HSR_SYNC: DWORD = WININET_API_FLAG_SYNC;
957pub const HSR_USE_CONTEXT: DWORD = WININET_API_FLAG_USE_CONTEXT;
958pub const HSR_INITIATE: DWORD = 0x00000008;
959pub const HSR_DOWNLOAD: DWORD = 0x00000010;
960pub const HSR_CHUNKED: DWORD = 0x00000020;
961STRUCT!{struct INTERNET_COOKIE2 {
962 pwszName: PWSTR,
963 pwszValue: PWSTR,
964 pwszDomain: PWSTR,
965 pwszPath: PWSTR,
966 dwFlags: DWORD,
967 ftExpires: FILETIME,
968 fExpiresSet: BOOL,
969}}
970pub const INTERNET_COOKIE_IS_SECURE: DWORD = 0x01;
971pub const INTERNET_COOKIE_IS_SESSION: DWORD = 0x02;
972pub const INTERNET_COOKIE_THIRD_PARTY: DWORD = 0x10;
973pub const INTERNET_COOKIE_PROMPT_REQUIRED: DWORD = 0x20;
974pub const INTERNET_COOKIE_EVALUATE_P3P: DWORD = 0x40;
975pub const INTERNET_COOKIE_APPLY_P3P: DWORD = 0x80;
976pub const INTERNET_COOKIE_P3P_ENABLED: DWORD = 0x100;
977pub const INTERNET_COOKIE_IS_RESTRICTED: DWORD = 0x200;
978pub const INTERNET_COOKIE_IE6: DWORD = 0x400;
979pub const INTERNET_COOKIE_IS_LEGACY: DWORD = 0x800;
980pub const INTERNET_COOKIE_NON_SCRIPT: DWORD = 0x00001000;
981pub const INTERNET_COOKIE_HTTPONLY: DWORD = 0x00002000;
982pub const FLAG_ICC_FORCE_CONNECTION: DWORD = 0x00000001;
983pub const FLAGS_ERROR_UI_FILTER_FOR_ERRORS: DWORD = 0x01;
984pub const FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS: DWORD = 0x02;
985pub const FLAGS_ERROR_UI_FLAGS_GENERATE_DATA: DWORD = 0x04;
986pub const FLAGS_ERROR_UI_FLAGS_NO_UI: DWORD = 0x08;
987pub const FLAGS_ERROR_UI_SERIALIZE_DIALOGS: DWORD = 0x10;
988FN!{stdcall PFN_AUTH_NOTIFY(
989 DWORD_PTR,
990 DWORD,
991 LPVOID,
992) -> DWORD}
993STRUCT!{struct INTERNET_AUTH_NOTIFY_DATA {
994 cbStruct: DWORD,
995 dwOptions: DWORD,
996 pfnNotify: PFN_AUTH_NOTIFY,
997 dwContext: DWORD_PTR,
998}}
999pub const INTERNET_ERROR_BASE: DWORD = 12000;
1000pub const ERROR_INTERNET_OUT_OF_HANDLES: DWORD = INTERNET_ERROR_BASE + 1;
1001pub const ERROR_INTERNET_TIMEOUT: DWORD = INTERNET_ERROR_BASE + 2;
1002pub const ERROR_INTERNET_EXTENDED_ERROR: DWORD = INTERNET_ERROR_BASE + 3;
1003pub const ERROR_INTERNET_INTERNAL_ERROR: DWORD = INTERNET_ERROR_BASE + 4;
1004pub const ERROR_INTERNET_INVALID_URL: DWORD = INTERNET_ERROR_BASE + 5;
1005pub const ERROR_INTERNET_UNRECOGNIZED_SCHEME: DWORD = INTERNET_ERROR_BASE + 6;
1006pub const ERROR_INTERNET_NAME_NOT_RESOLVED: DWORD = INTERNET_ERROR_BASE + 7;
1007pub const ERROR_INTERNET_PROTOCOL_NOT_FOUND: DWORD = INTERNET_ERROR_BASE + 8;
1008pub const ERROR_INTERNET_INVALID_OPTION: DWORD = INTERNET_ERROR_BASE + 9;
1009pub const ERROR_INTERNET_BAD_OPTION_LENGTH: DWORD = INTERNET_ERROR_BASE + 10;
1010pub const ERROR_INTERNET_OPTION_NOT_SETTABLE: DWORD = INTERNET_ERROR_BASE + 11;
1011pub const ERROR_INTERNET_SHUTDOWN: DWORD = INTERNET_ERROR_BASE + 12;
1012pub const ERROR_INTERNET_INCORRECT_USER_NAME: DWORD = INTERNET_ERROR_BASE + 13;
1013pub const ERROR_INTERNET_INCORRECT_PASSWORD: DWORD = INTERNET_ERROR_BASE + 14;
1014pub const ERROR_INTERNET_LOGIN_FAILURE: DWORD = INTERNET_ERROR_BASE + 15;
1015pub const ERROR_INTERNET_INVALID_OPERATION: DWORD = INTERNET_ERROR_BASE + 16;
1016pub const ERROR_INTERNET_OPERATION_CANCELLED: DWORD = INTERNET_ERROR_BASE + 17;
1017pub const ERROR_INTERNET_INCORRECT_HANDLE_TYPE: DWORD = INTERNET_ERROR_BASE + 18;
1018pub const ERROR_INTERNET_INCORRECT_HANDLE_STATE: DWORD = INTERNET_ERROR_BASE + 19;
1019pub const ERROR_INTERNET_NOT_PROXY_REQUEST: DWORD = INTERNET_ERROR_BASE + 20;
1020pub const ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND: DWORD = INTERNET_ERROR_BASE + 21;
1021pub const ERROR_INTERNET_BAD_REGISTRY_PARAMETER: DWORD = INTERNET_ERROR_BASE + 22;
1022pub const ERROR_INTERNET_NO_DIRECT_ACCESS: DWORD = INTERNET_ERROR_BASE + 23;
1023pub const ERROR_INTERNET_NO_CONTEXT: DWORD = INTERNET_ERROR_BASE + 24;
1024pub const ERROR_INTERNET_NO_CALLBACK: DWORD = INTERNET_ERROR_BASE + 25;
1025pub const ERROR_INTERNET_REQUEST_PENDING: DWORD = INTERNET_ERROR_BASE + 26;
1026pub const ERROR_INTERNET_INCORRECT_FORMAT: DWORD = INTERNET_ERROR_BASE + 27;
1027pub const ERROR_INTERNET_ITEM_NOT_FOUND: DWORD = INTERNET_ERROR_BASE + 28;
1028pub const ERROR_INTERNET_CANNOT_CONNECT: DWORD = INTERNET_ERROR_BASE + 29;
1029pub const ERROR_INTERNET_CONNECTION_ABORTED: DWORD = INTERNET_ERROR_BASE + 30;
1030pub const ERROR_INTERNET_CONNECTION_RESET: DWORD = INTERNET_ERROR_BASE + 31;
1031pub const ERROR_INTERNET_FORCE_RETRY: DWORD = INTERNET_ERROR_BASE + 32;
1032pub const ERROR_INTERNET_INVALID_PROXY_REQUEST: DWORD = INTERNET_ERROR_BASE + 33;
1033pub const ERROR_INTERNET_NEED_UI: DWORD = INTERNET_ERROR_BASE + 34;
1034pub const ERROR_INTERNET_HANDLE_EXISTS: DWORD = INTERNET_ERROR_BASE + 36;
1035pub const ERROR_INTERNET_SEC_CERT_DATE_INVALID: DWORD = INTERNET_ERROR_BASE + 37;
1036pub const ERROR_INTERNET_SEC_CERT_CN_INVALID: DWORD = INTERNET_ERROR_BASE + 38;
1037pub const ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR: DWORD = INTERNET_ERROR_BASE + 39;
1038pub const ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR: DWORD = INTERNET_ERROR_BASE + 40;
1039pub const ERROR_INTERNET_MIXED_SECURITY: DWORD = INTERNET_ERROR_BASE + 41;
1040pub const ERROR_INTERNET_CHG_POST_IS_NON_SECURE: DWORD = INTERNET_ERROR_BASE + 42;
1041pub const ERROR_INTERNET_POST_IS_NON_SECURE: DWORD = INTERNET_ERROR_BASE + 43;
1042pub const ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED: DWORD = INTERNET_ERROR_BASE + 44;
1043pub const ERROR_INTERNET_INVALID_CA: DWORD = INTERNET_ERROR_BASE + 45;
1044pub const ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP: DWORD = INTERNET_ERROR_BASE + 46;
1045pub const ERROR_INTERNET_ASYNC_THREAD_FAILED: DWORD = INTERNET_ERROR_BASE + 47;
1046pub const ERROR_INTERNET_REDIRECT_SCHEME_CHANGE: DWORD = INTERNET_ERROR_BASE + 48;
1047pub const ERROR_INTERNET_DIALOG_PENDING: DWORD = INTERNET_ERROR_BASE + 49;
1048pub const ERROR_INTERNET_RETRY_DIALOG: DWORD = INTERNET_ERROR_BASE + 50;
1049pub const ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR: DWORD = INTERNET_ERROR_BASE + 52;
1050pub const ERROR_INTERNET_INSERT_CDROM: DWORD = INTERNET_ERROR_BASE + 53;
1051pub const ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED: DWORD = INTERNET_ERROR_BASE + 54;
1052pub const ERROR_INTERNET_SEC_CERT_ERRORS: DWORD = INTERNET_ERROR_BASE + 55;
1053pub const ERROR_INTERNET_SEC_CERT_NO_REV: DWORD = INTERNET_ERROR_BASE + 56;
1054pub const ERROR_INTERNET_SEC_CERT_REV_FAILED: DWORD = INTERNET_ERROR_BASE + 57;
1055pub const ERROR_FTP_TRANSFER_IN_PROGRESS: DWORD = INTERNET_ERROR_BASE + 110;
1056pub const ERROR_FTP_DROPPED: DWORD = INTERNET_ERROR_BASE + 111;
1057pub const ERROR_FTP_NO_PASSIVE_MODE: DWORD = INTERNET_ERROR_BASE + 112;
1058pub const ERROR_GOPHER_PROTOCOL_ERROR: DWORD = INTERNET_ERROR_BASE + 130;
1059pub const ERROR_GOPHER_NOT_FILE: DWORD = INTERNET_ERROR_BASE + 131;
1060pub const ERROR_GOPHER_DATA_ERROR: DWORD = INTERNET_ERROR_BASE + 132;
1061pub const ERROR_GOPHER_END_OF_DATA: DWORD = INTERNET_ERROR_BASE + 133;
1062pub const ERROR_GOPHER_INVALID_LOCATOR: DWORD = INTERNET_ERROR_BASE + 134;
1063pub const ERROR_GOPHER_INCORRECT_LOCATOR_TYPE: DWORD = INTERNET_ERROR_BASE + 135;
1064pub const ERROR_GOPHER_NOT_GOPHER_PLUS: DWORD = INTERNET_ERROR_BASE + 136;
1065pub const ERROR_GOPHER_ATTRIBUTE_NOT_FOUND: DWORD = INTERNET_ERROR_BASE + 137;
1066pub const ERROR_GOPHER_UNKNOWN_LOCATOR: DWORD = INTERNET_ERROR_BASE + 138;
1067pub const ERROR_HTTP_HEADER_NOT_FOUND: DWORD = INTERNET_ERROR_BASE + 150;
1068pub const ERROR_HTTP_DOWNLEVEL_SERVER: DWORD = INTERNET_ERROR_BASE + 151;
1069pub const ERROR_HTTP_INVALID_SERVER_RESPONSE: DWORD = INTERNET_ERROR_BASE + 152;
1070pub const ERROR_HTTP_INVALID_HEADER: DWORD = INTERNET_ERROR_BASE + 153;
1071pub const ERROR_HTTP_INVALID_QUERY_REQUEST: DWORD = INTERNET_ERROR_BASE + 154;
1072pub const ERROR_HTTP_HEADER_ALREADY_EXISTS: DWORD = INTERNET_ERROR_BASE + 155;
1073pub const ERROR_HTTP_REDIRECT_FAILED: DWORD = INTERNET_ERROR_BASE + 156;
1074pub const ERROR_HTTP_NOT_REDIRECTED: DWORD = INTERNET_ERROR_BASE + 160;
1075pub const ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION: DWORD = INTERNET_ERROR_BASE + 161;
1076pub const ERROR_HTTP_COOKIE_DECLINED: DWORD = INTERNET_ERROR_BASE + 162;
1077pub const ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION: DWORD = INTERNET_ERROR_BASE + 168;
1078pub const ERROR_INTERNET_SECURITY_CHANNEL_ERROR: DWORD = INTERNET_ERROR_BASE + 157;
1079pub const ERROR_INTERNET_UNABLE_TO_CACHE_FILE: DWORD = INTERNET_ERROR_BASE + 158;
1080pub const ERROR_INTERNET_TCPIP_NOT_INSTALLED: DWORD = INTERNET_ERROR_BASE + 159;
1081pub const ERROR_INTERNET_DISCONNECTED: DWORD = INTERNET_ERROR_BASE + 163;
1082pub const ERROR_INTERNET_SERVER_UNREACHABLE: DWORD = INTERNET_ERROR_BASE + 164;
1083pub const ERROR_INTERNET_PROXY_SERVER_UNREACHABLE: DWORD = INTERNET_ERROR_BASE + 165;
1084pub const ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT: DWORD = INTERNET_ERROR_BASE + 166;
1085pub const ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT: DWORD = INTERNET_ERROR_BASE + 167;
1086pub const ERROR_INTERNET_SEC_INVALID_CERT: DWORD = INTERNET_ERROR_BASE + 169;
1087pub const ERROR_INTERNET_SEC_CERT_REVOKED: DWORD = INTERNET_ERROR_BASE + 170;
1088pub const ERROR_INTERNET_FAILED_DUETOSECURITYCHECK: DWORD = INTERNET_ERROR_BASE + 171;
1089pub const ERROR_INTERNET_NOT_INITIALIZED: DWORD = INTERNET_ERROR_BASE + 172;
1090pub const ERROR_INTERNET_NEED_MSN_SSPI_PKG: DWORD = INTERNET_ERROR_BASE + 173;
1091pub const ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY: DWORD = INTERNET_ERROR_BASE + 174;
1092pub const ERROR_INTERNET_DECODING_FAILED: DWORD = INTERNET_ERROR_BASE + 175;
1093pub const INTERNET_ERROR_LAST: DWORD = ERROR_INTERNET_DECODING_FAILED;
1094pub const NORMAL_CACHE_ENTRY: DWORD = 0x00000001;
1095pub const STICKY_CACHE_ENTRY: DWORD = 0x00000004;
1096pub const EDITED_CACHE_ENTRY: DWORD = 0x00000008;
1097pub const TRACK_OFFLINE_CACHE_ENTRY: DWORD = 0x00000010;
1098pub const TRACK_ONLINE_CACHE_ENTRY: DWORD = 0x00000020;
1099pub const SPARSE_CACHE_ENTRY: DWORD = 0x00010000;
1100pub const COOKIE_CACHE_ENTRY: DWORD = 0x00100000;
1101pub const URLHISTORY_CACHE_ENTRY: DWORD = 0x00200000;
1102pub const URLCACHE_FIND_DEFAULT_FILTER: DWORD = NORMAL_CACHE_ENTRY | COOKIE_CACHE_ENTRY
1103 | URLHISTORY_CACHE_ENTRY | TRACK_OFFLINE_CACHE_ENTRY | TRACK_ONLINE_CACHE_ENTRY
1104 | STICKY_CACHE_ENTRY;
1105UNION!{union INTERNET_CACHE_ENTRY_INFOA_u {
1106 [u32; 1],
1107 dwReserved dwReserved_mut: DWORD,
1108 dwExemptDelta dwExemptDelta_mut: DWORD,
1109}}
1110STRUCT!{struct INTERNET_CACHE_ENTRY_INFOA {
1111 dwStructSize: DWORD,
1112 lpszSourceUrlName: LPSTR,
1113 lpszLocalFileName: LPSTR,
1114 CacheEntryType: DWORD,
1115 dwUseCount: DWORD,
1116 dwHitRate: DWORD,
1117 dwSizeLow: DWORD,
1118 dwSizeHigh: DWORD,
1119 LastModifiedTime: FILETIME,
1120 ExpireTime: FILETIME,
1121 LastAccessTime: FILETIME,
1122 LastSyncTime: FILETIME,
1123 lpHeaderInfo: LPSTR,
1124 dwHeaderInfoSize: DWORD,
1125 lpszFileExtension: LPSTR,
1126 u: INTERNET_CACHE_ENTRY_INFOA_u,
1127}}
1128pub type LPINTERNET_CACHE_ENTRY_INFOA = *mut INTERNET_CACHE_ENTRY_INFOA;
1129UNION!{union INTERNET_CACHE_ENTRY_INFOW_u {
1130 [u32; 1],
1131 dwReserved dwReserved_mut: DWORD,
1132 dwExemptDelta dwExemptDelta_mut: DWORD,
1133}}
1134STRUCT!{struct INTERNET_CACHE_ENTRY_INFOW {
1135 dwStructSize: DWORD,
1136 lpszSourceUrlName: LPWSTR,
1137 lpszLocalFileName: LPWSTR,
1138 CacheEntryType: DWORD,
1139 dwUseCount: DWORD,
1140 dwHitRate: DWORD,
1141 dwSizeLow: DWORD,
1142 dwSizeHigh: DWORD,
1143 LastModifiedTime: FILETIME,
1144 ExpireTime: FILETIME,
1145 LastAccessTime: FILETIME,
1146 LastSyncTime: FILETIME,
1147 lpHeaderInfo: LPWSTR,
1148 dwHeaderInfoSize: DWORD,
1149 lpszFileExtension: LPWSTR,
1150 u: INTERNET_CACHE_ENTRY_INFOW_u,
1151}}
1152pub type LPINTERNET_CACHE_ENTRY_INFOW = *mut INTERNET_CACHE_ENTRY_INFOW;
1153STRUCT!{struct INTERNET_CACHE_TIMESTAMPS {
1154 ftExpires: FILETIME,
1155 ftLastModified: FILETIME,
1156}}
1157pub type LPINTERNET_CACHE_TIMESTAMPS = *mut INTERNET_CACHE_TIMESTAMPS;
1158pub type GROUPID = LONGLONG;
1159pub const CACHEGROUP_ATTRIBUTE_GET_ALL: DWORD = 0xffffffff;
1160pub const CACHEGROUP_ATTRIBUTE_BASIC: DWORD = 0x00000001;
1161pub const CACHEGROUP_ATTRIBUTE_FLAG: DWORD = 0x00000002;
1162pub const CACHEGROUP_ATTRIBUTE_TYPE: DWORD = 0x00000004;
1163pub const CACHEGROUP_ATTRIBUTE_QUOTA: DWORD = 0x00000008;
1164pub const CACHEGROUP_ATTRIBUTE_GROUPNAME: DWORD = 0x00000010;
1165pub const CACHEGROUP_ATTRIBUTE_STORAGE: DWORD = 0x00000020;
1166pub const CACHEGROUP_FLAG_NONPURGEABLE: DWORD = 0x00000001;
1167pub const CACHEGROUP_FLAG_GIDONLY: DWORD = 0x00000004;
1168pub const CACHEGROUP_FLAG_FLUSHURL_ONDELETE: DWORD = 0x00000002;
1169pub const CACHEGROUP_SEARCH_ALL: DWORD = 0x00000000;
1170pub const CACHEGROUP_SEARCH_BYURL: DWORD = 0x00000001;
1171pub const CACHEGROUP_TYPE_INVALID: DWORD = 0x00000001;
1172pub const CACHEGROUP_READWRITE_MASK: DWORD = CACHEGROUP_ATTRIBUTE_TYPE
1173 | CACHEGROUP_ATTRIBUTE_QUOTA | CACHEGROUP_ATTRIBUTE_GROUPNAME | CACHEGROUP_ATTRIBUTE_STORAGE;
1174pub const GROUPNAME_MAX_LENGTH: usize = 120;
1175pub const GROUP_OWNER_STORAGE_SIZE: usize = 4;
1176STRUCT!{struct INTERNET_CACHE_GROUP_INFOA {
1177 dwGroupSize: DWORD,
1178 dwGroupFlags: DWORD,
1179 dwGroupType: DWORD,
1180 dwDiskUsage: DWORD,
1181 dwDiskQuota: DWORD,
1182 dwOwnerStorage: [DWORD; GROUP_OWNER_STORAGE_SIZE],
1183 szGroupName: [CHAR; GROUPNAME_MAX_LENGTH],
1184}}
1185pub type LPINTERNET_CACHE_GROUP_INFOA = *mut INTERNET_CACHE_GROUP_INFOA;
1186STRUCT!{struct INTERNET_CACHE_GROUP_INFOW {
1187 dwGroupSize: DWORD,
1188 dwGroupFlags: DWORD,
1189 dwGroupType: DWORD,
1190 dwDiskUsage: DWORD,
1191 dwDiskQuota: DWORD,
1192 dwOwnerStorage: [DWORD; GROUP_OWNER_STORAGE_SIZE],
1193 szGroupName: [WCHAR; GROUPNAME_MAX_LENGTH],
1194}}
1195pub type LPINTERNET_CACHE_GROUP_INFOW = *mut INTERNET_CACHE_GROUP_INFOW;
1196pub const CACHE_ENTRY_ATTRIBUTE_FC: DWORD = 0x00000004;
1197pub const CACHE_ENTRY_HITRATE_FC: DWORD = 0x00000010;
1198pub const CACHE_ENTRY_MODTIME_FC: DWORD = 0x00000040;
1199pub const CACHE_ENTRY_EXPTIME_FC: DWORD = 0x00000080;
1200pub const CACHE_ENTRY_ACCTIME_FC: DWORD = 0x00000100;
1201pub const CACHE_ENTRY_SYNCTIME_FC: DWORD = 0x00000200;
1202pub const CACHE_ENTRY_HEADERINFO_FC: DWORD = 0x00000400;
1203pub const CACHE_ENTRY_EXEMPT_DELTA_FC: DWORD = 0x00000800;
1204pub const INTERNET_CACHE_GROUP_ADD: DWORD = 0;
1205pub const INTERNET_CACHE_GROUP_REMOVE: DWORD = 1;
1206pub const INTERNET_DIAL_FORCE_PROMPT: DWORD = 0x2000;
1207pub const INTERNET_DIAL_SHOW_OFFLINE: DWORD = 0x4000;
1208pub const INTERNET_DIAL_UNATTENDED: DWORD = 0x8000;
1209pub const INTERENT_GOONLINE_REFRESH: DWORD = 0x00000001;
1210pub const INTERENT_GOONLINE_NOPROMPT: DWORD = 0x00000002;
1211pub const INTERENT_GOONLINE_MASK: DWORD = 0x00000003;
1212pub const INTERNET_AUTODIAL_FORCE_ONLINE: DWORD = 1;
1213pub const INTERNET_AUTODIAL_FORCE_UNATTENDED: DWORD = 2;
1214pub const INTERNET_AUTODIAL_FAILIFSECURITYCHECK: DWORD = 4;
1215pub const INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT: DWORD = 8;
1216pub const INTERNET_AUTODIAL_FLAGS_MASK: DWORD = INTERNET_AUTODIAL_FORCE_ONLINE
1217 | INTERNET_AUTODIAL_FORCE_UNATTENDED | INTERNET_AUTODIAL_FAILIFSECURITYCHECK
1218 | INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT;
1219pub const PROXY_AUTO_DETECT_TYPE_DHCP: DWORD = 1;
1220pub const PROXY_AUTO_DETECT_TYPE_DNS_A: DWORD = 2;
1221STRUCT!{struct AutoProxyHelperVtbl {
1222 IsResolvable: Option<unsafe extern "system" fn(
1223 lpszHost: LPSTR,
1224 ) -> BOOL>,
1225 GetIPAddress: Option<unsafe extern "system" fn(
1226 lpszIPAddress: LPSTR,
1227 lpdwIPAddressSize: LPDWORD,
1228 ) -> DWORD>,
1229 ResolveHostName: Option<unsafe extern "system" fn(
1230 lpszHostName: LPSTR,
1231 lpszIPAddress: LPSTR,
1232 lpdwIPAddressSize: LPDWORD,
1233 ) -> DWORD>,
1234 IsInNet: Option<unsafe extern "system" fn(
1235 lpszIPAddress: LPSTR,
1236 lpszDest: LPSTR,
1237 lpszMask: LPSTR,
1238 ) -> BOOL>,
1239 IsResolvableEx: Option<unsafe extern "system" fn(
1240 lpszHost: LPSTR,
1241 ) -> BOOL>,
1242 GetIPAddressEx: Option<unsafe extern "system" fn(
1243 lpszIPAddress: LPSTR,
1244 lpdwIPAddressSize: LPDWORD,
1245 ) -> DWORD>,
1246 ResolveHostNameEx: Option<unsafe extern "system" fn(
1247 lpszHostName: LPSTR,
1248 lpszIPAddress: LPSTR,
1249 lpdwIPAddressSize: LPDWORD,
1250 ) -> DWORD>,
1251 IsInNetEx: Option<unsafe extern "system" fn(
1252 lpszIPAddress: LPSTR,
1253 lpszIPPrefix: LPSTR,
1254 ) -> BOOL>,
1255 SortIpList: Option<unsafe extern "system" fn(
1256 lpszIPAddressList: LPSTR,
1257 lpszIPSortedList: LPSTR,
1258 lpdwIPSortedListSize: LPDWORD,
1259 ) -> DWORD>,
1260}}
1261STRUCT!{struct AUTO_PROXY_SCRIPT_BUFFER {
1262 dwStructSize: DWORD,
1263 lpszScriptBuffer: LPSTR,
1264 dwScriptBufferSize: DWORD,
1265}}
1266pub type LPAUTO_PROXY_SCRIPT_BUFFER = *mut AUTO_PROXY_SCRIPT_BUFFER;
1267STRUCT!{struct AutoProxyHelperFunctions {
1268 lpVtbl: *const AutoProxyHelperVtbl,
1269}}
1270FN!{stdcall pfnInternetInitializeAutoProxyDll(
1271 DWORD,
1272 LPSTR,
1273 LPSTR,
1274 *mut AutoProxyHelperFunctions,
1275 LPAUTO_PROXY_SCRIPT_BUFFER,
1276) -> BOOL}
1277FN!{stdcall pfnInternetDeInitializeAutoProxyDll(
1278 LPSTR,
1279 DWORD,
1280) -> BOOL}
1281FN!{stdcall pfnInternetGetProxyInfo(
1282 LPCSTR,
1283 DWORD,
1284 LPSTR,
1285 DWORD,
1286 *mut LPSTR,
1287 LPDWORD,
1288) -> BOOL}
1289ENUM!{enum WPAD_CACHE_DELETE {
1290 WPAD_CACHE_DELETE_CURRENT = 0x0,
1291 WPAD_CACHE_DELETE_ALL = 0x1,
1292}}
1293pub const INTERNET_CONNECTION_MODEM: DWORD = 0x01;
1294pub const INTERNET_CONNECTION_LAN: DWORD = 0x02;
1295pub const INTERNET_CONNECTION_PROXY: DWORD = 0x04;
1296pub const INTERNET_CONNECTION_MODEM_BUSY: DWORD = 0x08;
1297pub const INTERNET_RAS_INSTALLED: DWORD = 0x10;
1298pub const INTERNET_CONNECTION_OFFLINE: DWORD = 0x20;
1299pub const INTERNET_CONNECTION_CONFIGURED: DWORD = 0x40;
1300FN!{stdcall PFN_DIAL_HANDLER(
1301 HWND,
1302 LPCSTR,
1303 DWORD,
1304 LPDWORD,
1305) -> DWORD}
1306pub const INTERNET_CUSTOMDIAL_CONNECT: DWORD = 0;
1307pub const INTERNET_CUSTOMDIAL_UNATTENDED: DWORD = 1;
1308pub const INTERNET_CUSTOMDIAL_DISCONNECT: DWORD = 2;
1309pub const INTERNET_CUSTOMDIAL_SHOWOFFLINE: DWORD = 4;
1310pub const INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED: DWORD = 1;
1311pub const INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE: DWORD = 2;
1312pub const INTERNET_CUSTOMDIAL_CAN_HANGUP: DWORD = 4;
1313pub const INTERNET_DIALSTATE_DISCONNECTED: DWORD = 1;
1314pub const INTERNET_IDENTITY_FLAG_PRIVATE_CACHE: DWORD = 0x01;
1315pub const INTERNET_IDENTITY_FLAG_SHARED_CACHE: DWORD = 0x02;
1316pub const INTERNET_IDENTITY_FLAG_CLEAR_DATA: DWORD = 0x04;
1317pub const INTERNET_IDENTITY_FLAG_CLEAR_COOKIES: DWORD = 0x08;
1318pub const INTERNET_IDENTITY_FLAG_CLEAR_HISTORY: DWORD = 0x10;
1319pub const INTERNET_IDENTITY_FLAG_CLEAR_CONTENT: DWORD = 0x20;
1320pub const INTERNET_SUPPRESS_RESET_ALL: DWORD = 0x00;
1321pub const INTERNET_SUPPRESS_COOKIE_POLICY: DWORD = 0x01;
1322pub const INTERNET_SUPPRESS_COOKIE_POLICY_RESET: DWORD = 0x02;
1323pub const PRIVACY_TEMPLATE_NO_COOKIES: DWORD = 0;
1324pub const PRIVACY_TEMPLATE_HIGH: DWORD = 1;
1325pub const PRIVACY_TEMPLATE_MEDIUM_HIGH: DWORD = 2;
1326pub const PRIVACY_TEMPLATE_MEDIUM: DWORD = 3;
1327pub const PRIVACY_TEMPLATE_MEDIUM_LOW: DWORD = 4;
1328pub const PRIVACY_TEMPLATE_LOW: DWORD = 5;
1329pub const PRIVACY_TEMPLATE_CUSTOM: DWORD = 100;
1330pub const PRIVACY_TEMPLATE_ADVANCED: DWORD = 101;
1331pub const PRIVACY_TEMPLATE_MAX: DWORD = PRIVACY_TEMPLATE_LOW;
1332pub const PRIVACY_TYPE_FIRST_PARTY: DWORD = 0;
1333pub const PRIVACY_TYPE_THIRD_PARTY: DWORD = 1;
1334extern "system" {
1335 pub fn CommitUrlCacheEntryA(
1336 lpszUrlName: LPCSTR,
1337 lpszLocalFileName: LPCSTR,
1338 ExpireTime: FILETIME,
1339 LastModifiedTime: FILETIME,
1340 CacheEntryType: DWORD,
1341 lpHeaderInfo: LPBYTE,
1342 cchHeaderInfo: DWORD,
1343 lpszFileExtension: LPCSTR,
1344 lpszOriginalUrl: LPCSTR,
1345 ) -> BOOL;
1346 pub fn CommitUrlCacheEntryW(
1347 lpszUrlName: LPCWSTR,
1348 lpszLocalFileName: LPCWSTR,
1349 ExpireTime: FILETIME,
1350 LastModifiedTime: FILETIME,
1351 CacheEntryType: DWORD,
1352 lpszHeaderInfo: LPWSTR,
1353 cchHeaderInfo: DWORD,
1354 lpszFileExtension: LPCWSTR,
1355 lpszOriginalUrl: LPCWSTR,
1356 ) -> BOOL;
1357 pub fn CreateMD5SSOHash (
1358 pszChallengeInfo: PWSTR,
1359 pwszRealm: PWSTR,
1360 pwszTarget: PWSTR,
1361 pbHexHash: PBYTE,
1362 ) -> BOOL;
1363 pub fn CreateUrlCacheEntryA(
1364 lpszUrlName: LPCSTR,
1365 dwExpectedFileSize: DWORD,
1366 lpszFileExtension: LPCSTR,
1367 lpszFileName: LPSTR,
1368 dwReserved: DWORD,
1369 ) -> BOOL;
1370 pub fn CreateUrlCacheEntryW(
1371 lpszUrlName: LPCWSTR,
1372 dwExpectedFileSize: DWORD,
1373 lpszFileExtension: LPCWSTR,
1374 lpszFileName: LPWSTR,
1375 dwReserved: DWORD,
1376 ) -> BOOL;
1377 pub fn CreateUrlCacheGroup(
1378 dwFlags: DWORD,
1379 lpReserved: LPVOID,
1380 ) -> GROUPID;
1381 pub fn DeleteUrlCacheEntryA(
1382 lpszUrlName: LPCSTR,
1383 ) -> BOOL;
1384 pub fn DeleteUrlCacheEntryW(
1385 lpszUrlName: LPCWSTR,
1386 ) -> BOOL;
1387 pub fn DeleteUrlCacheGroup(
1388 GroupId: GROUPID,
1389 dwFlags: DWORD,
1390 lpReserved: LPVOID,
1391 ) -> BOOL;
1392 pub fn DeleteWpadCacheForNetworks(
1393 arg0: WPAD_CACHE_DELETE,
1394 ) -> BOOL;
1395 pub fn DetectAutoProxyUrl(
1396 pszAutoProxyUrl: PSTR,
1397 cchAutoProxyUrl: DWORD,
1398 dwDetectFlags: DWORD,
1399 ) -> BOOL;
1400 pub fn FindCloseUrlCache(
1401 hEnumHandle: HANDLE,
1402 ) -> BOOL;
1403 pub fn FindFirstUrlCacheEntryA(
1404 lpszUrlSearchPattern: LPCSTR,
1405 lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
1406 lpcbCacheEntryInfo: LPDWORD,
1407 ) -> HANDLE;
1408 pub fn FindFirstUrlCacheEntryExA(
1409 lpszUrlSearchPattern: LPCSTR,
1410 dwFlags: DWORD,
1411 dwFilter: DWORD,
1412 GroupId: GROUPID,
1413 lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
1414 lpcbCacheEntryInfo: LPDWORD,
1415 lpGroupAttributes: LPVOID,
1416 lpcbGroupAttributes: LPDWORD,
1417 lpReserved: LPVOID,
1418 ) -> HANDLE;
1419 pub fn FindFirstUrlCacheEntryExW(
1420 lpszUrlSearchPattern: LPCWSTR,
1421 dwFlags: DWORD,
1422 dwFilter: DWORD,
1423 GroupId: GROUPID,
1424 lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
1425 lpcbCacheEntryInfo: LPDWORD,
1426 lpGroupAttributes: LPVOID,
1427 lpcbGroupAttributes: LPDWORD,
1428 lpReserved: LPVOID,
1429 ) -> HANDLE;
1430 pub fn FindFirstUrlCacheEntryW(
1431 lpszUrlSearchPattern: LPCWSTR,
1432 lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
1433 lpcbCacheEntryInfo: LPDWORD,
1434 ) -> HANDLE;
1435 pub fn FindFirstUrlCacheGroup(
1436 dwFlags: DWORD,
1437 dwFilter: DWORD,
1438 lpSearchCondition: LPVOID,
1439 dwSearchCondition: DWORD,
1440 lpGroupId: *mut GROUPID,
1441 lpReserved: LPVOID,
1442 ) -> HANDLE;
1443 pub fn FindNextUrlCacheEntryA(
1444 hEnumHandle: HANDLE,
1445 lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
1446 lpcbCacheEntryInfo: LPDWORD,
1447 ) -> BOOL;
1448 pub fn FindNextUrlCacheEntryExA(
1449 hEnumHandle: HANDLE,
1450 lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
1451 lpcbCacheEntryInfo: LPDWORD,
1452 lpGroupAttributes: LPVOID,
1453 lpcbGroupAttributes: LPDWORD,
1454 lpReserved: LPVOID,
1455 ) -> BOOL;
1456 pub fn FindNextUrlCacheEntryExW(
1457 hEnumHandle: HANDLE,
1458 lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
1459 lpcbCacheEntryInfo: LPDWORD,
1460 lpGroupAttributes: LPVOID,
1461 lpcbGroupAttributes: LPDWORD,
1462 lpReserved: LPVOID,
1463 ) -> BOOL;
1464 pub fn FindNextUrlCacheEntryW(
1465 hEnumHandle: HANDLE,
1466 lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
1467 lpcbCacheEntryInfo: LPDWORD,
1468 ) -> BOOL;
1469 pub fn FindNextUrlCacheGroup(
1470 hFind: HANDLE,
1471 lpGroupId: *mut GROUPID,
1472 lpReserved: LPVOID,
1473 ) -> BOOL;
1474 pub fn FtpCommandA(
1475 hConnect: HINTERNET,
1476 fExpectResponse: BOOL,
1477 dwFlags: DWORD,
1478 lpszCommand: LPCSTR,
1479 dwContext: DWORD_PTR,
1480 phFtpCommand: *mut HINTERNET,
1481 ) -> BOOL;
1482 pub fn FtpCommandW(
1483 hConnect: HINTERNET,
1484 fExpectResponse: BOOL,
1485 dwFlags: DWORD,
1486 lpszCommand: LPCWSTR,
1487 dwContext: DWORD_PTR,
1488 phFtpCommand: *mut HINTERNET,
1489 ) -> BOOL;
1490 pub fn FtpCreateDirectoryA(
1491 hConnect: HINTERNET,
1492 lpszDirectory: LPCSTR,
1493 ) -> BOOL;
1494 pub fn FtpCreateDirectoryW(
1495 hConnect: HINTERNET,
1496 lpszDirectory: LPCWSTR,
1497 ) -> BOOL;
1498 pub fn FtpDeleteFileA(
1499 hConnect: HINTERNET,
1500 lpszFileName: LPCSTR,
1501 ) -> BOOL;
1502 pub fn FtpDeleteFileW(
1503 hConnect: HINTERNET,
1504 lpszFileName: LPCWSTR,
1505 ) -> BOOL;
1506 pub fn FtpFindFirstFileA(
1507 hConnect: HINTERNET,
1508 lpszSearchFile: LPCSTR,
1509 lpFindFileData: LPWIN32_FIND_DATAA,
1510 dwFlags: DWORD,
1511 dwContext: DWORD_PTR,
1512 ) -> HINTERNET;
1513 pub fn FtpFindFirstFileW(
1514 hConnect: HINTERNET,
1515 lpszSearchFile: LPCWSTR,
1516 lpFindFileData: LPWIN32_FIND_DATAW,
1517 dwFlags: DWORD,
1518 dwContext: DWORD_PTR,
1519 ) -> HINTERNET;
1520 pub fn FtpGetCurrentDirectoryA(
1521 hConnect: HINTERNET,
1522 lpszCurrentDirectory: LPSTR,
1523 lpdwCurrentDirectory: LPDWORD,
1524 ) -> BOOL;
1525 pub fn FtpGetCurrentDirectoryW(
1526 hConnect: HINTERNET,
1527 lpszCurrentDirectory: LPWSTR,
1528 lpdwCurrentDirectory: LPDWORD,
1529 ) -> BOOL;
1530 pub fn FtpGetFileA(
1531 hConnect: HINTERNET,
1532 lpszRemoteFile: LPCSTR,
1533 lpszNewFile: LPCSTR,
1534 fFailIfExists: BOOL,
1535 dwFlagsAndAttributes: DWORD,
1536 dwFlags: DWORD,
1537 dwContext: DWORD_PTR,
1538 ) -> BOOL;
1539 pub fn FtpGetFileEx(
1540 hFtpSession: HINTERNET,
1541 lpszRemoteFile: LPCSTR,
1542 lpszNewFile: LPCWSTR,
1543 fFailIfExists: BOOL,
1544 dwFlagsAndAttributes: DWORD,
1545 dwFlags: DWORD,
1546 dwContext: DWORD_PTR,
1547 ) -> BOOL;
1548 pub fn FtpGetFileSize(
1549 hFile: HINTERNET,
1550 lpdwFileSizeHigh: LPDWORD,
1551 ) -> DWORD;
1552 pub fn FtpGetFileW(
1553 hConnect: HINTERNET,
1554 lpszRemoteFile: LPCWSTR,
1555 lpszNewFile: LPCWSTR,
1556 fFailIfExists: BOOL,
1557 dwFlagsAndAttributes: DWORD,
1558 dwFlags: DWORD,
1559 dwContext: DWORD_PTR,
1560 ) -> BOOL;
1561 pub fn FtpOpenFileA(
1562 hConnect: HINTERNET,
1563 lpszFileName: LPCSTR,
1564 dwAccess: DWORD,
1565 dwFlags: DWORD,
1566 dwContext: DWORD_PTR,
1567 ) -> HINTERNET;
1568 pub fn FtpOpenFileW(
1569 hConnect: HINTERNET,
1570 lpszFileName: LPCWSTR,
1571 dwAccess: DWORD,
1572 dwFlags: DWORD,
1573 dwContext: DWORD_PTR,
1574 ) -> HINTERNET;
1575 pub fn FtpPutFileA(
1576 hConnect: HINTERNET,
1577 lpszLocalFile: LPCSTR,
1578 lpszNewRemoteFile: LPCSTR,
1579 dwFlags: DWORD,
1580 dwContext: DWORD_PTR,
1581 ) -> BOOL;
1582 pub fn FtpPutFileEx(
1583 hFtpSession: HINTERNET,
1584 lpszLocalFile: LPCWSTR,
1585 lpszNewRemoteFile: LPCSTR,
1586 dwFlags: DWORD,
1587 dwContext: DWORD_PTR,
1588 ) -> BOOL;
1589 pub fn FtpPutFileW(
1590 hConnect: HINTERNET,
1591 lpszLocalFile: LPCWSTR,
1592 lpszNewRemoteFile: LPCWSTR,
1593 dwFlags: DWORD,
1594 dwContext: DWORD_PTR,
1595 ) -> BOOL;
1596 pub fn FtpRemoveDirectoryA(
1597 hConnect: HINTERNET,
1598 lpszDirectory: LPCSTR,
1599 ) -> BOOL;
1600 pub fn FtpRemoveDirectoryW(
1601 hConnect: HINTERNET,
1602 lpszDirectory: LPCWSTR,
1603 ) -> BOOL;
1604 pub fn FtpRenameFileA(
1605 hConnect: HINTERNET,
1606 lpszExisting: LPCSTR,
1607 lpszNew: LPCSTR,
1608 ) -> BOOL;
1609 pub fn FtpRenameFileW(
1610 hConnect: HINTERNET,
1611 lpszExisting: LPCWSTR,
1612 lpszNew: LPCWSTR,
1613 ) -> BOOL;
1614 pub fn FtpSetCurrentDirectoryA(
1615 hConnect: HINTERNET,
1616 lpszDirectory: LPCSTR,
1617 ) -> BOOL;
1618 pub fn FtpSetCurrentDirectoryW(
1619 hConnect: HINTERNET,
1620 lpszDirectory: LPCWSTR,
1621 ) -> BOOL;
1622 pub fn GetUrlCacheEntryInfoA(
1623 lpszUrlName: LPCSTR,
1624 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
1625 lpcbCacheEntryInfo: LPDWORD,
1626 ) -> BOOL;
1627 pub fn GetUrlCacheEntryInfoExA(
1628 lpszUrl: LPCSTR,
1629 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
1630 lpcbCacheEntryInfo: LPDWORD,
1631 lpszRedirectUrl: LPSTR,
1632 lpcbRedirectUrl: LPDWORD,
1633 lpReserved: LPVOID,
1634 dwFlags: DWORD,
1635 ) -> BOOL;
1636 pub fn GetUrlCacheEntryInfoExW(
1637 lpszUrl: LPCWSTR,
1638 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
1639 lpcbCacheEntryInfo: LPDWORD,
1640 lpszRedirectUrl: LPWSTR,
1641 lpcbRedirectUrl: LPDWORD,
1642 lpReserved: LPVOID,
1643 dwFlags: DWORD,
1644 ) -> BOOL;
1645 pub fn GetUrlCacheEntryInfoW(
1646 lpszUrlName: LPCWSTR,
1647 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
1648 lpcbCacheEntryInfo: LPDWORD,
1649 ) -> BOOL;
1650 pub fn GetUrlCacheGroupAttributeA(
1651 gid: GROUPID,
1652 dwFlags: DWORD,
1653 dwAttributes: DWORD,
1654 lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA,
1655 lpcbGroupInfo: LPDWORD,
1656 lpReserved: LPVOID,
1657 ) -> BOOL;
1658 pub fn GetUrlCacheGroupAttributeW(
1659 gid: GROUPID,
1660 dwFlags: DWORD,
1661 dwAttributes: DWORD,
1662 lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW,
1663 lpcbGroupInfo: LPDWORD,
1664 lpReserved: LPVOID,
1665 ) -> BOOL;
1666 pub fn GopherCreateLocatorA(
1667 lpszHost: LPCSTR,
1668 nServerPort: INTERNET_PORT,
1669 lpszDisplayString: LPCSTR,
1670 lpszSelectorString: LPCSTR,
1671 dwGopherType: DWORD,
1672 lpszLocator: LPSTR,
1673 lpdwBufferLength: LPDWORD,
1674 ) -> BOOL;
1675 pub fn GopherCreateLocatorW(
1676 lpszHost: LPCWSTR,
1677 nServerPort: INTERNET_PORT,
1678 lpszDisplayString: LPCWSTR,
1679 lpszSelectorString: LPCWSTR,
1680 dwGopherType: DWORD,
1681 lpszLocator: LPWSTR,
1682 lpdwBufferLength: LPDWORD,
1683 ) -> BOOL;
1684 pub fn GopherFindFirstFileA(
1685 hConnect: HINTERNET,
1686 lpszLocator: LPCSTR,
1687 lpszSearchString: LPCSTR,
1688 lpFindData: LPGOPHER_FIND_DATAA,
1689 dwFlags: DWORD,
1690 dwContext: DWORD_PTR,
1691 ) -> HINTERNET;
1692 pub fn GopherFindFirstFileW(
1693 hConnect: HINTERNET,
1694 lpszLocator: LPCWSTR,
1695 lpszSearchString: LPCWSTR,
1696 lpFindData: LPGOPHER_FIND_DATAW,
1697 dwFlags: DWORD,
1698 dwContext: DWORD_PTR,
1699 ) -> HINTERNET;
1700 pub fn GopherGetAttributeA(
1701 hConnect: HINTERNET,
1702 lpszLocator: LPCSTR,
1703 lpszAttributeName: LPCSTR,
1704 lpBuffer: LPBYTE,
1705 dwBufferLength: DWORD,
1706 lpdwCharactersReturned: LPDWORD,
1707 lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR,
1708 dwContext: DWORD_PTR,
1709 ) -> BOOL;
1710 pub fn GopherGetAttributeW(
1711 hConnect: HINTERNET,
1712 lpszLocator: LPCWSTR,
1713 lpszAttributeName: LPCWSTR,
1714 lpBuffer: LPBYTE,
1715 dwBufferLength: DWORD,
1716 lpdwCharactersReturned: LPDWORD,
1717 lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR,
1718 dwContext: DWORD_PTR,
1719 ) -> BOOL;
1720 pub fn GopherGetLocatorTypeA(
1721 lpszLocator: LPCSTR,
1722 lpdwGopherType: LPDWORD,
1723 ) -> BOOL;
1724 pub fn GopherGetLocatorTypeW(
1725 lpszLocator: LPCWSTR,
1726 lpdwGopherType: LPDWORD,
1727 ) -> BOOL;
1728 pub fn GopherOpenFileA(
1729 hConnect: HINTERNET,
1730 lpszLocator: LPCSTR,
1731 lpszView: LPCSTR,
1732 dwFlags: DWORD,
1733 dwContext: DWORD_PTR,
1734 ) -> HINTERNET;
1735 pub fn GopherOpenFileW(
1736 hConnect: HINTERNET,
1737 lpszLocator: LPCWSTR,
1738 lpszView: LPCWSTR,
1739 dwFlags: DWORD,
1740 dwContext: DWORD_PTR,
1741 ) -> HINTERNET;
1742 pub fn HttpAddRequestHeadersA(
1743 hRequest: HINTERNET,
1744 lpszHeaders: LPCSTR,
1745 dwHeadersLength: DWORD,
1746 dwModifiers: DWORD,
1747 ) -> BOOL;
1748 pub fn HttpAddRequestHeadersW(
1749 hRequest: HINTERNET,
1750 lpszHeaders: LPCWSTR,
1751 dwHeadersLength: DWORD,
1752 dwModifiers: DWORD,
1753 ) -> BOOL;
1754 pub fn HttpEndRequestA(
1755 hRequest: HINTERNET,
1756 lpBuffersOut: LPINTERNET_BUFFERSA,
1757 dwFlags: DWORD,
1758 dwContext: DWORD_PTR,
1759 ) -> BOOL;
1760 pub fn HttpEndRequestW(
1761 hRequest: HINTERNET,
1762 lpBuffersOut: LPINTERNET_BUFFERSW,
1763 dwFlags: DWORD,
1764 dwContext: DWORD_PTR,
1765 ) -> BOOL;
1766 pub fn HttpOpenRequestA(
1767 hConnect: HINTERNET,
1768 lpszVerb: LPCSTR,
1769 lpszObjectName: LPCSTR,
1770 lpszVersion: LPCSTR,
1771 lpszReferrer: LPCSTR,
1772 lplpszAcceptTypes: *mut LPCSTR,
1773 dwFlags: DWORD,
1774 dwContext: DWORD_PTR,
1775 ) -> HINTERNET;
1776 pub fn HttpOpenRequestW(
1777 hConnect: HINTERNET,
1778 lpszVerb: LPCWSTR,
1779 lpszObjectName: LPCWSTR,
1780 lpszVersion: LPCWSTR,
1781 lpszReferrer: LPCWSTR,
1782 lplpszAcceptTypes: *mut LPCWSTR,
1783 dwFlags: DWORD,
1784 dwContext: DWORD_PTR,
1785 ) -> HINTERNET;
1786 pub fn HttpQueryInfoA(
1787 hRequest: HINTERNET,
1788 dwInfoLevel: DWORD,
1789 lpBuffer: LPVOID,
1790 lpdwBufferLength: LPDWORD,
1791 lpdwIndex: LPDWORD,
1792 ) -> BOOL;
1793 pub fn HttpQueryInfoW(
1794 hRequest: HINTERNET,
1795 dwInfoLevel: DWORD,
1796 lpBuffer: LPVOID,
1797 lpdwBufferLength: LPDWORD,
1798 lpdwIndex: LPDWORD,
1799 ) -> BOOL;
1800 pub fn HttpSendRequestA(
1801 hRequest: HINTERNET,
1802 lpszHeaders: LPCSTR,
1803 dwHeadersLength: DWORD,
1804 lpOptional: LPVOID,
1805 dwOptionalLength: DWORD,
1806 ) -> BOOL;
1807 pub fn HttpSendRequestExA(
1808 hRequest: HINTERNET,
1809 lpBuffersIn: LPINTERNET_BUFFERSA,
1810 lpBuffersOut: LPINTERNET_BUFFERSA,
1811 dwFlags: DWORD,
1812 dwContext: DWORD_PTR,
1813 ) -> BOOL;
1814 pub fn HttpSendRequestExW(
1815 hRequest: HINTERNET,
1816 lpBuffersIn: LPINTERNET_BUFFERSW,
1817 lpBuffersOut: LPINTERNET_BUFFERSW,
1818 dwFlags: DWORD,
1819 dwContext: DWORD_PTR,
1820 ) -> BOOL;
1821 pub fn HttpSendRequestW(
1822 hRequest: HINTERNET,
1823 lpszHeaders: LPCWSTR,
1824 dwHeadersLength: DWORD,
1825 lpOptional: LPVOID,
1826 dwOptionalLength: DWORD,
1827 ) -> BOOL;
1828 pub fn InternetAttemptConnect(
1829 dwReserved: DWORD,
1830 ) -> DWORD;
1831 pub fn InternetAutodial(
1832 dwFlags: DWORD,
1833 hwndParent: HWND,
1834 ) -> BOOL;
1835 pub fn InternetAutodialHangup(
1836 dwReserved: DWORD,
1837 ) -> BOOL;
1838 pub fn InternetCanonicalizeUrlA(
1839 lpszUrl: LPCSTR,
1840 lpszBuffer: LPSTR,
1841 lpdwBufferLength: LPDWORD,
1842 dwFlags: DWORD,
1843 ) -> BOOL;
1844 pub fn InternetCanonicalizeUrlW(
1845 lpszUrl: LPCWSTR,
1846 lpszBuffer: LPWSTR,
1847 lpdwBufferLength: LPDWORD,
1848 dwFlags: DWORD,
1849 ) -> BOOL;
1850 pub fn InternetCheckConnectionA(
1851 lpszUrl: LPCSTR,
1852 dwFlags: DWORD,
1853 dwReserved: DWORD,
1854 ) -> BOOL;
1855 pub fn InternetCheckConnectionW(
1856 lpszUrl: LPCWSTR,
1857 dwFlags: DWORD,
1858 dwReserved: DWORD,
1859 ) -> BOOL;
1860 pub fn InternetClearAllPerSiteCookieDecisions() -> BOOL;
1861 pub fn InternetCloseHandle(
1862 hInternet: HINTERNET,
1863 ) -> BOOL;
1864 pub fn InternetCombineUrlA(
1865 lpszBaseUrl: LPCSTR,
1866 lpszRelativeUrl: LPCSTR,
1867 lpszBuffer: LPSTR,
1868 lpdwBufferLength: LPDWORD,
1869 dwFlags: DWORD,
1870 ) -> BOOL;
1871 pub fn InternetCombineUrlW(
1872 lpszBaseUrl: LPCWSTR,
1873 lpszRelativeUrl: LPCWSTR,
1874 lpszBuffer: LPWSTR,
1875 lpdwBufferLength: LPDWORD,
1876 dwFlags: DWORD,
1877 ) -> BOOL;
1878 pub fn InternetConfirmZoneCrossingA(
1879 hWnd: HWND,
1880 szUrlPrev: LPSTR,
1881 szUrlNew: LPSTR,
1882 bPost: BOOL,
1883 ) -> DWORD;
1884 pub fn InternetConfirmZoneCrossingW(
1885 hWnd: HWND,
1886 szUrlPrev: LPWSTR,
1887 szUrlNew: LPWSTR,
1888 bPost: BOOL,
1889 ) -> DWORD;
1890 pub fn InternetConnectA(
1891 hInternet: HINTERNET,
1892 lpszServerName: LPCSTR,
1893 nServerPort: INTERNET_PORT,
1894 lpszUserName: LPCSTR,
1895 lpszPassword: LPCSTR,
1896 dwService: DWORD,
1897 dwFlags: DWORD,
1898 dwContext: DWORD_PTR,
1899 ) -> HINTERNET;
1900 pub fn InternetConnectW(
1901 hInternet: HINTERNET,
1902 lpszServerName: LPCWSTR,
1903 nServerPort: INTERNET_PORT,
1904 lpszUserName: LPCWSTR,
1905 lpszPassword: LPCWSTR,
1906 dwService: DWORD,
1907 dwFlags: DWORD,
1908 dwContext: DWORD_PTR,
1909 ) -> HINTERNET;
1910 pub fn InternetCrackUrlA(
1911 lpszUrl: LPCSTR,
1912 dwUrlLength: DWORD,
1913 dwFlags: DWORD,
1914 lpUrlComponents: LPURL_COMPONENTSA,
1915 ) -> BOOL;
1916 pub fn InternetCrackUrlW(
1917 lpszUrl: LPCWSTR,
1918 dwUrlLength: DWORD,
1919 dwFlags: DWORD,
1920 lpUrlComponents: LPURL_COMPONENTSW,
1921 ) -> BOOL;
1922 pub fn InternetCreateUrlA(
1923 lpUrlComponents: LPURL_COMPONENTSA,
1924 dwFlags: DWORD,
1925 lpszUrl: LPSTR,
1926 lpdwUrlLength: LPDWORD,
1927 ) -> BOOL;
1928 pub fn InternetCreateUrlW(
1929 lpUrlComponents: LPURL_COMPONENTSW,
1930 dwFlags: DWORD,
1931 lpszUrl: LPWSTR,
1932 lpdwUrlLength: LPDWORD,
1933 ) -> BOOL;
1934 pub fn InternetDialA(
1935 hwndParent: HWND,
1936 lpszConnectoid: LPSTR,
1937 dwFlags: DWORD,
1938 lpdwConnection: *mut DWORD_PTR,
1939 dwReserved: DWORD,
1940 ) -> DWORD;
1941 pub fn InternetDialW(
1942 hwndParent: HWND,
1943 lpszConnectoid: LPWSTR,
1944 dwFlags: DWORD,
1945 lpdwConnection: *mut DWORD_PTR,
1946 dwReserved: DWORD,
1947 ) -> DWORD;
1948 pub fn InternetEnumPerSiteCookieDecisionA(
1949 pszSiteName: LPSTR,
1950 pcSiteNameSize: *mut u32,
1951 pdwDecision: *mut u32,
1952 dwIndex: u32,
1953 ) -> BOOL;
1954 pub fn InternetEnumPerSiteCookieDecisionW(
1955 pszSiteName: LPWSTR,
1956 pcSiteNameSize: *mut u32,
1957 pdwDecision: *mut u32,
1958 dwIndex: u32,
1959 ) -> BOOL;
1960 pub fn InternetErrorDlg(
1961 hWnd: HWND,
1962 hRequest: HINTERNET,
1963 dwError: DWORD,
1964 dwFlags: DWORD,
1965 lppvData: *mut LPVOID,
1966 ) -> DWORD;
1967 pub fn InternetFindNextFileA(
1968 hFind: HINTERNET,
1969 lpvFindData: LPVOID,
1970 ) -> BOOL;
1971 pub fn InternetFindNextFileW(
1972 hFind: HINTERNET,
1973 lpvFindData: LPVOID,
1974 ) -> BOOL;
1975 pub fn InternetFreeCookies(
1976 pCookies: *mut INTERNET_COOKIE2,
1977 dwCookieCount: DWORD,
1978 ) -> ();
1979 pub fn InternetGetConnectedState(
1980 lpdwFlags: LPDWORD,
1981 dwReserved: DWORD,
1982 ) -> BOOL;
1983 pub fn InternetGetConnectedStateExA(
1984 lpdwFlags: LPDWORD,
1985 lpszConnectionName: LPSTR,
1986 cchNameLen: DWORD,
1987 dwReserved: DWORD,
1988 ) -> BOOL;
1989 pub fn InternetGetConnectedStateExW(
1990 lpdwFlags: LPDWORD,
1991 lpszConnectionName: LPWSTR,
1992 cchNameLen: DWORD,
1993 dwReserved: DWORD,
1994 ) -> BOOL;
1995 pub fn InternetGetCookieA(
1996 lpszUrl: LPCSTR,
1997 lpszCookieName: LPCSTR,
1998 lpszCookieData: LPSTR,
1999 lpdwSize: LPDWORD,
2000 ) -> BOOL;
2001 pub fn InternetGetCookieEx2(
2002 pcwszUrl: PCWSTR,
2003 pcwszCookieName: PCWSTR,
2004 dwFlags: DWORD,
2005 ppCookies: *mut *mut INTERNET_COOKIE2,
2006 pdwCookieCount: PDWORD,
2007 ) -> DWORD;
2008 pub fn InternetGetCookieExA(
2009 lpszUrl: LPCSTR,
2010 lpszCookieName: LPCSTR,
2011 lpszCookieData: LPSTR,
2012 lpdwSize: LPDWORD,
2013 dwFlags: DWORD,
2014 lpReserved: LPVOID,
2015 ) -> BOOL;
2016 pub fn InternetGetCookieExW(
2017 lpszUrl: LPCWSTR,
2018 lpszCookieName: LPCWSTR,
2019 lpszCookieData: LPWSTR,
2020 lpdwSize: LPDWORD,
2021 dwFlags: DWORD,
2022 lpReserved: LPVOID,
2023 ) -> BOOL;
2024 pub fn InternetGetCookieW(
2025 lpszUrl: LPCWSTR,
2026 lpszCookieName: LPCWSTR,
2027 lpszCookieData: LPWSTR,
2028 lpdwSize: LPDWORD,
2029 ) -> BOOL;
2030 pub fn InternetGetLastResponseInfoA(
2031 lpdwError: LPDWORD,
2032 lpszBuffer: LPSTR,
2033 lpdwBufferLength: LPDWORD,
2034 ) -> BOOL;
2035 pub fn InternetGetLastResponseInfoW(
2036 lpdwError: LPDWORD,
2037 lpszBuffer: LPWSTR,
2038 lpdwBufferLength: LPDWORD,
2039 ) -> BOOL;
2040 pub fn InternetGetPerSiteCookieDecisionA(
2041 pchHostName: LPCSTR,
2042 pResult: *mut u32,
2043 ) -> BOOL;
2044 pub fn InternetGetPerSiteCookieDecisionW(
2045 pchHostName: LPCWSTR,
2046 pResult: *mut u32,
2047 ) -> BOOL;
2048 pub fn InternetGoOnlineA(
2049 lpszURL: LPCSTR,
2050 hwndParent: HWND,
2051 dwFlags: DWORD,
2052 ) -> BOOL;
2053 pub fn InternetGoOnlineW(
2054 lpszURL: LPCWSTR,
2055 hwndParent: HWND,
2056 dwFlags: DWORD,
2057 ) -> BOOL;
2058 pub fn InternetHangUp(
2059 dwConnection: DWORD_PTR,
2060 dwReserved: DWORD,
2061 ) -> DWORD;
2062 pub fn InternetInitializeAutoProxyDll(
2063 dwReserved: DWORD,
2064 ) -> BOOL;
2065 pub fn InternetLockRequestFile(
2066 hInternet: HINTERNET,
2067 lphLockRequestInfo: *mut HANDLE,
2068 ) -> BOOL;
2069 pub fn InternetOpenA(
2070 lpszAgent: LPCSTR,
2071 dwAccessType: DWORD,
2072 lpszProxy: LPCSTR,
2073 lpszProxyBypass: LPCSTR,
2074 dwFlags: DWORD,
2075 ) -> HINTERNET;
2076 pub fn InternetOpenUrlA(
2077 hInternet: HINTERNET,
2078 lpszUrl: LPCSTR,
2079 lpszHeaders: LPCSTR,
2080 dwHeadersLength: DWORD,
2081 dwFlags: DWORD,
2082 dwContext: DWORD_PTR,
2083 ) -> HINTERNET;
2084 pub fn InternetOpenUrlW(
2085 hInternet: HINTERNET,
2086 lpszUrl: LPCWSTR,
2087 lpszHeaders: LPCWSTR,
2088 dwHeadersLength: DWORD,
2089 dwFlags: DWORD,
2090 dwContext: DWORD_PTR,
2091 ) -> HINTERNET;
2092 pub fn InternetOpenW(
2093 lpszAgent: LPCWSTR,
2094 dwAccessType: DWORD,
2095 lpszProxy: LPCWSTR,
2096 lpszProxyBypass: LPCWSTR,
2097 dwFlags: DWORD,
2098 ) -> HINTERNET;
2099 pub fn InternetQueryDataAvailable(
2100 hFile: HINTERNET,
2101 lpdwNumberOfBytesAvailable: LPDWORD,
2102 dwFlags: DWORD,
2103 dwContext: DWORD_PTR,
2104 ) -> BOOL;
2105 pub fn InternetQueryOptionA(
2106 hInternet: HINTERNET,
2107 dwOption: DWORD,
2108 lpBuffer: LPVOID,
2109 lpdwBufferLength: LPDWORD,
2110 ) -> BOOL;
2111 pub fn InternetQueryOptionW(
2112 hInternet: HINTERNET,
2113 dwOption: DWORD,
2114 lpBuffer: LPVOID,
2115 lpdwBufferLength: LPDWORD,
2116 ) -> BOOL;
2117 pub fn InternetReadFile(
2118 hFile: HINTERNET,
2119 lpBuffer: LPVOID,
2120 dwNumberOfBytesToRead: DWORD,
2121 lpdwNumberOfBytesRead: LPDWORD,
2122 ) -> BOOL;
2123 pub fn InternetReadFileExA(
2124 hFile: HINTERNET,
2125 lpBuffersOut: LPINTERNET_BUFFERSA,
2126 dwFlags: DWORD,
2127 dwContext: DWORD_PTR,
2128 ) -> BOOL;
2129 pub fn InternetReadFileExW(
2130 hFile: HINTERNET,
2131 lpBuffersOut: LPINTERNET_BUFFERSW,
2132 dwFlags: DWORD,
2133 dwContext: DWORD_PTR,
2134 ) -> BOOL;
2135 pub fn InternetSetCookieA(
2136 lpszUrl: LPCSTR,
2137 lpszCookieName: LPCSTR,
2138 lpszCookieData: LPCSTR,
2139 ) -> BOOL;
2140 pub fn InternetSetCookieEx2(
2141 pcwszUrl: PCWSTR,
2142 pCookie: *const INTERNET_COOKIE2,
2143 pcwszP3PPolicy: PCWSTR,
2144 dwFlags: DWORD,
2145 pdwCookieState: PDWORD,
2146 ) -> DWORD;
2147 pub fn InternetSetCookieExA(
2148 lpszUrl: LPCSTR,
2149 lpszCookieName: LPCSTR,
2150 lpszCookieData: LPCSTR,
2151 dwFlags: DWORD,
2152 dwReserved: DWORD_PTR,
2153 ) -> DWORD;
2154 pub fn InternetSetCookieExW(
2155 lpszUrl: LPCWSTR,
2156 lpszCookieName: LPCWSTR,
2157 lpszCookieData: LPCWSTR,
2158 dwFlags: DWORD,
2159 dwReserved: DWORD_PTR,
2160 ) -> DWORD;
2161 pub fn InternetSetCookieW(
2162 lpszUrl: LPCWSTR,
2163 lpszCookieName: LPCWSTR,
2164 lpszCookieData: LPCWSTR,
2165 ) -> BOOL;
2166 pub fn InternetSetDialStateA(
2167 lpszConnectoid: LPCSTR,
2168 dwState: DWORD,
2169 dwReserved: DWORD,
2170 ) -> BOOL;
2171 pub fn InternetSetDialStateW(
2172 lpszConnectoid: LPCWSTR,
2173 dwState: DWORD,
2174 dwReserved: DWORD,
2175 ) -> BOOL;
2176 pub fn InternetSetFilePointer(
2177 hFile: HINTERNET,
2178 lDistanceToMove: LONG,
2179 lpDistanceToMoveHigh: PLONG,
2180 dwMoveMethod: DWORD,
2181 dwContext: DWORD_PTR,
2182 ) -> DWORD;
2183 pub fn InternetSetOptionA(
2184 hInternet: HINTERNET,
2185 dwOption: DWORD,
2186 lpBuffer: LPVOID,
2187 dwBufferLength: DWORD,
2188 ) -> BOOL;
2189 pub fn InternetSetOptionExA(
2190 hInternet: HINTERNET,
2191 dwOption: DWORD,
2192 lpBuffer: LPVOID,
2193 dwBufferLength: DWORD,
2194 dwFlags: DWORD,
2195 ) -> BOOL;
2196 pub fn InternetSetOptionExW(
2197 hInternet: HINTERNET,
2198 dwOption: DWORD,
2199 lpBuffer: LPVOID,
2200 dwBufferLength: DWORD,
2201 dwFlags: DWORD,
2202 ) -> BOOL;
2203 pub fn InternetSetOptionW(
2204 hInternet: HINTERNET,
2205 dwOption: DWORD,
2206 lpBuffer: LPVOID,
2207 dwBufferLength: DWORD,
2208 ) -> BOOL;
2209 pub fn InternetSetPerSiteCookieDecisionA(
2210 pchHostName: LPCSTR,
2211 dwDecision: DWORD,
2212 ) -> BOOL;
2213 pub fn InternetSetPerSiteCookieDecisionW(
2214 pchHostName: LPCWSTR,
2215 dwDecision: DWORD,
2216 ) -> BOOL;
2217 pub fn InternetSetStatusCallbackA(
2218 hInternet: HINTERNET,
2219 lpfnInternetCallback: INTERNET_STATUS_CALLBACK,
2220 ) -> INTERNET_STATUS_CALLBACK;
2221 pub fn InternetSetStatusCallbackW(
2222 hInternet: HINTERNET,
2223 lpfnInternetCallback: INTERNET_STATUS_CALLBACK,
2224 ) -> INTERNET_STATUS_CALLBACK;
2225 pub fn InternetTimeFromSystemTimeA(
2226 pst: *const SYSTEMTIME,
2227 dwRFC: DWORD,
2228 lpszTime: LPSTR,
2229 cbTime: DWORD,
2230 ) -> BOOL;
2231 pub fn InternetTimeFromSystemTimeW(
2232 pst: *const SYSTEMTIME,
2233 dwRFC: DWORD,
2234 lpszTime: LPWSTR,
2235 cbTime: DWORD,
2236 ) -> BOOL;
2237 pub fn InternetTimeToSystemTimeA(
2238 lpszTime: LPCSTR,
2239 pst: *mut SYSTEMTIME,
2240 dwReserved: DWORD,
2241 ) -> BOOL;
2242 pub fn InternetTimeToSystemTimeW(
2243 lpszTime: LPCWSTR,
2244 pst: *mut SYSTEMTIME,
2245 dwReserved: DWORD,
2246 ) -> BOOL;
2247 pub fn InternetUnlockRequestFile(
2248 hLockRequestInfo: HANDLE,
2249 ) -> BOOL;
2250 pub fn InternetWriteFile(
2251 hFile: HINTERNET,
2252 lpBuffer: LPCVOID,
2253 dwNumberOfBytesToWrite: DWORD,
2254 lpdwNumberOfBytesWritten: LPDWORD,
2255 ) -> BOOL;
2256 pub fn PrivacyGetZonePreferenceW(
2257 dwZone: DWORD,
2258 dwType: DWORD,
2259 pdwTemplate: LPDWORD,
2260 pszBuffer: LPWSTR,
2261 pdwBufferLength: LPDWORD,
2262 ) -> DWORD;
2263 pub fn PrivacySetZonePreferenceW(
2264 dwZone: DWORD,
2265 dwType: DWORD,
2266 dwTemplate: DWORD,
2267 pszPreference: LPCWSTR,
2268 ) -> DWORD;
2269 pub fn ReadUrlCacheEntryStream(
2270 hUrlCacheStream: HANDLE,
2271 dwLocation: DWORD,
2272 lpBuffer: LPVOID,
2273 lpdwLen: LPDWORD,
2274 Reserved: DWORD,
2275 ) -> BOOL;
2276 pub fn ReadUrlCacheEntryStreamEx(
2277 hUrlCacheStream: HANDLE,
2278 qwLocation: DWORDLONG,
2279 lpBuffer: LPVOID,
2280 lpdwLen: LPDWORD,
2281 ) -> BOOL;
2282 pub fn ResumeSuspendedDownload(
2283 hRequest: HINTERNET,
2284 dwResultCode: DWORD,
2285 ) -> BOOL;
2286 pub fn RetrieveUrlCacheEntryFileA(
2287 lpszUrlName: LPCSTR,
2288 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
2289 lpcbCacheEntryInfo: LPDWORD,
2290 dwReserved: DWORD,
2291 ) -> BOOL;
2292 pub fn RetrieveUrlCacheEntryFileW(
2293 lpszUrlName: LPCWSTR,
2294 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
2295 lpcbCacheEntryInfo: LPDWORD,
2296 dwReserved: DWORD,
2297 ) -> BOOL;
2298 pub fn RetrieveUrlCacheEntryStreamA(
2299 lpszUrlName: LPCSTR,
2300 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
2301 lpcbCacheEntryInfo: LPDWORD,
2302 fRandomRead: BOOL,
2303 dwReserved: DWORD,
2304 ) -> HANDLE;
2305 pub fn RetrieveUrlCacheEntryStreamW(
2306 lpszUrlName: LPCWSTR,
2307 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
2308 lpcbCacheEntryInfo: LPDWORD,
2309 fRandomRead: BOOL,
2310 dwReserved: DWORD,
2311 ) -> HANDLE;
2312 pub fn SetUrlCacheEntryGroupA(
2313 lpszUrlName: LPCSTR,
2314 dwFlags: DWORD,
2315 GroupId: GROUPID,
2316 pbGroupAttributes: LPBYTE,
2317 cbGroupAttributes: DWORD,
2318 lpReserved: LPVOID,
2319 ) -> BOOL;
2320 pub fn SetUrlCacheEntryGroupW(
2321 lpszUrlName: LPCWSTR,
2322 dwFlags: DWORD,
2323 GroupId: GROUPID,
2324 pbGroupAttributes: LPBYTE,
2325 cbGroupAttributes: DWORD,
2326 lpReserved: LPVOID,
2327 ) -> BOOL;
2328 pub fn SetUrlCacheEntryInfoA(
2329 lpszUrlName: LPCSTR,
2330 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA,
2331 dwFieldControl: DWORD,
2332 ) -> BOOL;
2333 pub fn SetUrlCacheEntryInfoW(
2334 lpszUrlName: LPCWSTR,
2335 lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW,
2336 dwFieldControl: DWORD,
2337 ) -> BOOL;
2338 pub fn SetUrlCacheGroupAttributeA(
2339 gid: GROUPID,
2340 dwFlags: DWORD,
2341 dwAttributes: DWORD,
2342 lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA,
2343 lpReserved: LPVOID,
2344 ) -> BOOL;
2345 pub fn SetUrlCacheGroupAttributeW(
2346 gid: GROUPID,
2347 dwFlags: DWORD,
2348 dwAttributes: DWORD,
2349 lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW,
2350 lpReserved: LPVOID,
2351 ) -> BOOL;
2352 pub fn UnlockUrlCacheEntryFileA(
2353 lpszUrlName: LPCSTR,
2354 dwReserved: DWORD,
2355 ) -> BOOL;
2356 pub fn UnlockUrlCacheEntryFileW(
2357 lpszUrlName: LPCWSTR,
2358 dwReserved: DWORD,
2359 ) -> BOOL;
2360 pub fn UnlockUrlCacheEntryStream(
2361 hUrlCacheStream: HANDLE,
2362 Reserved: DWORD,
2363 ) -> BOOL;
2364}