1 /**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * Authors: Stewart Gordon
7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8 * Source: $(DRUNTIMESRC src/core/sys/windows/_wininet.d)
9 */
10 module core.sys.windows.wininet;
version(Windows)11 version (Windows):
12
13 version (ANSI) {} else version = Unicode;
14 pragma(lib, "wininet");
15
16 // FIXME: check types and grouping of constants
17
18 import core.sys.windows.winbase, core.sys.windows.windef;
19
20 enum {
21 INTERNET_INVALID_PORT_NUMBER = 0,
22 INTERNET_DEFAULT_FTP_PORT = 21,
23 INTERNET_DEFAULT_GOPHER_PORT = 70,
24 INTERNET_DEFAULT_HTTP_PORT = 80,
25 INTERNET_DEFAULT_HTTPS_PORT = 443,
26 INTERNET_DEFAULT_SOCKS_PORT = 1080
27 }
28
29 enum size_t
30 MAX_CACHE_ENTRY_INFO_SIZE = 4096,
31 INTERNET_MAX_HOST_NAME_LENGTH = 256,
32 INTERNET_MAX_USER_NAME_LENGTH = 128,
33 INTERNET_MAX_PASSWORD_LENGTH = 128,
34 INTERNET_MAX_PORT_NUMBER_LENGTH = 5,
35 INTERNET_MAX_PORT_NUMBER_VALUE = 65535,
36 INTERNET_MAX_PATH_LENGTH = 2048,
37 INTERNET_MAX_SCHEME_LENGTH = 32,
38 INTERNET_MAX_URL_LENGTH = INTERNET_MAX_SCHEME_LENGTH
39 + "://".length
40 + INTERNET_MAX_PATH_LENGTH;
41
42 enum : DWORD {
43 INTERNET_KEEP_ALIVE_UNKNOWN = DWORD.max,
44 INTERNET_KEEP_ALIVE_DISABLED = 0,
45 INTERNET_KEEP_ALIVE_ENABLED
46 }
47
48 enum {
49 INTERNET_REQFLAG_FROM_CACHE = 1,
50 INTERNET_REQFLAG_ASYNC = 2
51 }
52
53 enum DWORD
54 INTERNET_FLAG_RELOAD = 0x80000000,
55 INTERNET_FLAG_RAW_DATA = 0x40000000,
56 INTERNET_FLAG_EXISTING_CONNECT = 0x20000000,
57 INTERNET_FLAG_ASYNC = 0x10000000,
58 INTERNET_FLAG_PASSIVE = 0x08000000,
59 INTERNET_FLAG_NO_CACHE_WRITE = 0x04000000,
60 INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE,
61 INTERNET_FLAG_MAKE_PERSISTENT = 0x02000000,
62 INTERNET_FLAG_OFFLINE = 0x01000000,
63 INTERNET_FLAG_SECURE = 0x00800000,
64 INTERNET_FLAG_KEEP_CONNECTION = 0x00400000,
65 INTERNET_FLAG_NO_AUTO_REDIRECT = 0x00200000,
66 INTERNET_FLAG_READ_PREFETCH = 0x00100000,
67 INTERNET_FLAG_NO_COOKIES = 0x00080000,
68 INTERNET_FLAG_NO_AUTH = 0x00040000,
69 INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = 0x00008000,
70 INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = 0x00004000,
71 INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000,
72 INTERNET_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000,
73 INTERNET_FLAG_RESYNCHRONIZE = 0x00000800,
74 INTERNET_FLAG_HYPERLINK = 0x00000400,
75 INTERNET_FLAG_NO_UI = 0x00000200,
76 INTERNET_FLAG_PRAGMA_NOCACHE = 0x00000100,
77 INTERNET_FLAG_MUST_CACHE_REQUEST = 0x00000010,
78 INTERNET_FLAG_TRANSFER_ASCII = FTP_TRANSFER_TYPE_ASCII,
79 INTERNET_FLAG_TRANSFER_BINARY = FTP_TRANSFER_TYPE_BINARY,
80
81 SECURITY_INTERNET_MASK = 0x0000F000,
82 SECURITY_SET_MASK = SECURITY_INTERNET_MASK,
83
84 INTERNET_FLAGS_MASK = 0xFFFCFE13,
85 INTERNET_OPTIONS_MASK = ~INTERNET_FLAGS_MASK;
86
87 enum INTERNET_NO_CALLBACK = 0;
88 enum INTERNET_RFC1123_FORMAT = 0;
89 enum size_t INTERNET_RFC1123_BUFSIZE = 30;
90
91 enum DWORD
92 ICU_ESCAPE = 0x80000000,
93 ICU_USERNAME = 0x40000000,
94 ICU_NO_ENCODE = 0x20000000,
95 ICU_DECODE = 0x10000000,
96 ICU_NO_META = 0x08000000,
97 ICU_ENCODE_SPACES_ONLY = 0x04000000,
98 ICU_BROWSER_MODE = 0x02000000;
99
100 enum {
101 INTERNET_OPEN_TYPE_PRECONFIG = 0,
102 INTERNET_OPEN_TYPE_DIRECT = 1,
103 INTERNET_OPEN_TYPE_PROXY = 3,
104 PRE_CONFIG_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PRECONFIG,
105 LOCAL_INTERNET_ACCESS = INTERNET_OPEN_TYPE_DIRECT,
106 GATEWAY_INTERNET_ACCESS = 2,
107 CERN_PROXY_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PROXY,
108 }
109
110 enum ISO_GLOBAL = 1;
111 enum ISO_REGISTRY = 2;
112 enum ISO_VALID_FLAGS = ISO_GLOBAL | ISO_REGISTRY;
113
114 enum {
115 INTERNET_OPTION_CALLBACK = 1,
116 INTERNET_OPTION_CONNECT_TIMEOUT,
117 INTERNET_OPTION_CONNECT_RETRIES,
118 INTERNET_OPTION_CONNECT_BACKOFF,
119 INTERNET_OPTION_SEND_TIMEOUT,
120 INTERNET_OPTION_CONTROL_SEND_TIMEOUT = INTERNET_OPTION_SEND_TIMEOUT,
121 INTERNET_OPTION_RECEIVE_TIMEOUT,
122 INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT = INTERNET_OPTION_RECEIVE_TIMEOUT,
123 INTERNET_OPTION_DATA_SEND_TIMEOUT,
124 INTERNET_OPTION_DATA_RECEIVE_TIMEOUT,
125 INTERNET_OPTION_HANDLE_TYPE,
126 INTERNET_OPTION_CONTEXT_VALUE,
127 INTERNET_OPTION_LISTEN_TIMEOUT,
128 INTERNET_OPTION_READ_BUFFER_SIZE,
129 INTERNET_OPTION_WRITE_BUFFER_SIZE, // = 13
130 INTERNET_OPTION_ASYNC_ID = 15,
131 INTERNET_OPTION_ASYNC_PRIORITY, // = 16
132 INTERNET_OPTION_PARENT_HANDLE = 21,
133 INTERNET_OPTION_KEEP_CONNECTION,
134 INTERNET_OPTION_REQUEST_FLAGS,
135 INTERNET_OPTION_EXTENDED_ERROR, // = 24
136 INTERNET_OPTION_OFFLINE_MODE = 26,
137 INTERNET_OPTION_CACHE_STREAM_HANDLE,
138 INTERNET_OPTION_USERNAME,
139 INTERNET_OPTION_PASSWORD,
140 INTERNET_OPTION_ASYNC,
141 INTERNET_OPTION_SECURITY_FLAGS,
142 INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT,
143 INTERNET_OPTION_DATAFILE_NAME,
144 INTERNET_OPTION_URL,
145 INTERNET_OPTION_SECURITY_CERTIFICATE,
146 INTERNET_OPTION_SECURITY_KEY_BITNESS,
147 INTERNET_OPTION_REFRESH,
148 INTERNET_OPTION_PROXY,
149 INTERNET_OPTION_SETTINGS_CHANGED,
150 INTERNET_OPTION_VERSION,
151 INTERNET_OPTION_USER_AGENT,
152 INTERNET_OPTION_END_BROWSER_SESSION,
153 INTERNET_OPTION_PROXY_USERNAME,
154 INTERNET_OPTION_PROXY_PASSWORD, // = 44
155 INTERNET_FIRST_OPTION = INTERNET_OPTION_CALLBACK,
156 // why?
157 INTERNET_LAST_OPTION = INTERNET_OPTION_USER_AGENT
158 }
159
160 enum INTERNET_PRIORITY_FOREGROUND = 1000;
161
162 enum {
163 INTERNET_HANDLE_TYPE_INTERNET = 1,
164 INTERNET_HANDLE_TYPE_CONNECT_FTP,
165 INTERNET_HANDLE_TYPE_CONNECT_GOPHER,
166 INTERNET_HANDLE_TYPE_CONNECT_HTTP,
167 INTERNET_HANDLE_TYPE_FTP_FIND,
168 INTERNET_HANDLE_TYPE_FTP_FIND_HTML,
169 INTERNET_HANDLE_TYPE_FTP_FILE,
170 INTERNET_HANDLE_TYPE_FTP_FILE_HTML,
171 INTERNET_HANDLE_TYPE_GOPHER_FIND,
172 INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML,
173 INTERNET_HANDLE_TYPE_GOPHER_FILE,
174 INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML,
175 INTERNET_HANDLE_TYPE_HTTP_REQUEST
176 }
177
178 enum DWORD
179 SECURITY_FLAG_SECURE = 0x00000001,
180 SECURITY_FLAG_SSL = 0x00000002,
181 SECURITY_FLAG_SSL3 = 0x00000004,
182 SECURITY_FLAG_PCT = 0x00000008,
183 SECURITY_FLAG_PCT4 = 0x00000010,
184 SECURITY_FLAG_IETFSSL4 = 0x00000020,
185 SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080,
186 SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100,
187 SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200,
188 SECURITY_FLAG_40BIT = 0x10000000,
189 SECURITY_FLAG_128BIT = 0x20000000,
190 SECURITY_FLAG_56BIT = 0x40000000,
191 SECURITY_FLAG_UNKNOWNBIT = 0x80000000,
192 SECURITY_FLAG_NORMALBITNESS = SECURITY_FLAG_40BIT,
193 SECURITY_FLAG_IGNORE_CERT_CN_INVALID = INTERNET_FLAG_IGNORE_CERT_CN_INVALID,
194 SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID,
195 SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS,
196 SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP;
197
198 enum {
199 INTERNET_SERVICE_FTP = 1,
200 INTERNET_SERVICE_GOPHER,
201 INTERNET_SERVICE_HTTP
202 }
203
204 enum {
205 INTERNET_STATUS_RESOLVING_NAME = 10,
206 INTERNET_STATUS_NAME_RESOLVED = 11,
207 INTERNET_STATUS_CONNECTING_TO_SERVER = 20,
208 INTERNET_STATUS_CONNECTED_TO_SERVER = 21,
209 INTERNET_STATUS_SENDING_REQUEST = 30,
210 INTERNET_STATUS_REQUEST_SENT = 31,
211 INTERNET_STATUS_RECEIVING_RESPONSE = 40,
212 INTERNET_STATUS_RESPONSE_RECEIVED = 41,
213 INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42,
214 INTERNET_STATUS_PREFETCH = 43,
215 INTERNET_STATUS_CLOSING_CONNECTION = 50,
216 INTERNET_STATUS_CONNECTION_CLOSED = 51,
217 INTERNET_STATUS_HANDLE_CREATED = 60,
218 INTERNET_STATUS_HANDLE_CLOSING = 70,
219 INTERNET_STATUS_REQUEST_COMPLETE = 100,
220 INTERNET_STATUS_REDIRECT = 110
221 }
222
223 enum {
224 FTP_TRANSFER_TYPE_UNKNOWN = 0,
225 FTP_TRANSFER_TYPE_ASCII = 1,
226 FTP_TRANSFER_TYPE_BINARY = 2,
227 FTP_TRANSFER_TYPE_MASK = 3
228 }
229
230 enum size_t
231 MAX_GOPHER_DISPLAY_TEXT = 128,
232 MAX_GOPHER_SELECTOR_TEXT = 256,
233 MAX_GOPHER_HOST_NAME = INTERNET_MAX_HOST_NAME_LENGTH,
234 MAX_GOPHER_LOCATOR_LENGTH
235 = 1 + MAX_GOPHER_DISPLAY_TEXT + 1 + MAX_GOPHER_SELECTOR_TEXT + 1
236 + MAX_GOPHER_HOST_NAME + 1 + INTERNET_MAX_PORT_NUMBER_LENGTH + 4;
237
238 enum DWORD
239 GOPHER_TYPE_TEXT_FILE = 0x00000001,
240 GOPHER_TYPE_DIRECTORY = 0x00000002,
241 GOPHER_TYPE_CSO = 0x00000004,
242 GOPHER_TYPE_ERROR = 0x00000008,
243 GOPHER_TYPE_MAC_BINHEX = 0x00000010,
244 GOPHER_TYPE_DOS_ARCHIVE = 0x00000020,
245 GOPHER_TYPE_UNIX_UUENCODED = 0x00000040,
246 GOPHER_TYPE_INDEX_SERVER = 0x00000080,
247 GOPHER_TYPE_TELNET = 0x00000100,
248 GOPHER_TYPE_BINARY = 0x00000200,
249 GOPHER_TYPE_REDUNDANT = 0x00000400,
250 GOPHER_TYPE_TN3270 = 0x00000800,
251 GOPHER_TYPE_GIF = 0x00001000,
252 GOPHER_TYPE_IMAGE = 0x00002000,
253 GOPHER_TYPE_BITMAP = 0x00004000,
254 GOPHER_TYPE_MOVIE = 0x00008000,
255 GOPHER_TYPE_SOUND = 0x00010000,
256 GOPHER_TYPE_HTML = 0x00020000,
257 GOPHER_TYPE_PDF = 0x00040000,
258 GOPHER_TYPE_CALENDAR = 0x00080000,
259 GOPHER_TYPE_INLINE = 0x00100000,
260 GOPHER_TYPE_UNKNOWN = 0x20000000,
261 GOPHER_TYPE_ASK = 0x40000000,
262 GOPHER_TYPE_GOPHER_PLUS = 0x80000000,
263 GOPHER_TYPE_FILE_MASK = 0x001FF271;
264
IS_GOPHER_FILE(DWORD t)265 BOOL IS_GOPHER_FILE(DWORD t) {
266 return !!(t & GOPHER_TYPE_FILE_MASK);
267 }
268
IS_GOPHER_DIRECTORY(DWORD t)269 BOOL IS_GOPHER_DIRECTORY(DWORD t) {
270 return !!(t & GOPHER_TYPE_DIRECTORY);
271 }
272
IS_GOPHER_PHONE_SERVER(DWORD t)273 BOOL IS_GOPHER_PHONE_SERVER(DWORD t) {
274 return !!(t & GOPHER_TYPE_CSO);
275 }
276
IS_GOPHER_ERROR(DWORD t)277 BOOL IS_GOPHER_ERROR(DWORD t) {
278 return !!(t & GOPHER_TYPE_ERROR);
279 }
280
IS_GOPHER_INDEX_SERVER(DWORD t)281 BOOL IS_GOPHER_INDEX_SERVER(DWORD t) {
282 return !!(t & GOPHER_TYPE_INDEX_SERVER);
283 }
284
IS_GOPHER_TELNET_SESSION(DWORD t)285 BOOL IS_GOPHER_TELNET_SESSION(DWORD t) {
286 return !!(t & GOPHER_TYPE_TELNET);
287 }
288
IS_GOPHER_BACKUP_SERVER(DWORD t)289 BOOL IS_GOPHER_BACKUP_SERVER(DWORD t) {
290 return !!(t & GOPHER_TYPE_REDUNDANT);
291 }
292
IS_GOPHER_TN3270_SESSION(DWORD t)293 BOOL IS_GOPHER_TN3270_SESSION(DWORD t) {
294 return !!(t & GOPHER_TYPE_TN3270);
295 }
296
IS_GOPHER_ASK(DWORD t)297 BOOL IS_GOPHER_ASK(DWORD t) {
298 return !!(t & GOPHER_TYPE_ASK);
299 }
300
IS_GOPHER_PLUS(DWORD t)301 BOOL IS_GOPHER_PLUS(DWORD t) {
302 return !!(t & GOPHER_TYPE_GOPHER_PLUS);
303 }
304
IS_GOPHER_TYPE_KNOWN(DWORD t)305 BOOL IS_GOPHER_TYPE_KNOWN(DWORD t) {
306 return !(t & GOPHER_TYPE_UNKNOWN);
307 }
308
309 enum size_t
310 MAX_GOPHER_CATEGORY_NAME = 128,
311 MAX_GOPHER_ATTRIBUTE_NAME = 128,
312 MIN_GOPHER_ATTRIBUTE_LENGTH = 256;
313
314 const TCHAR[]
315 GOPHER_INFO_CATEGORY = "+INFO",
316 GOPHER_ADMIN_CATEGORY = "+ADMIN",
317 GOPHER_VIEWS_CATEGORY = "+VIEWS",
318 GOPHER_ABSTRACT_CATEGORY = "+ABSTRACT",
319 GOPHER_VERONICA_CATEGORY = "+VERONICA",
320 GOPHER_ADMIN_ATTRIBUTE = "Admin",
321 GOPHER_MOD_DATE_ATTRIBUTE = "Mod-Date",
322 GOPHER_TTL_ATTRIBUTE = "TTL",
323 GOPHER_SCORE_ATTRIBUTE = "Score",
324 GOPHER_RANGE_ATTRIBUTE = "Score-range",
325 GOPHER_SITE_ATTRIBUTE = "Site",
326 GOPHER_ORG_ATTRIBUTE = "Org",
327 GOPHER_LOCATION_ATTRIBUTE = "Loc",
328 GOPHER_GEOG_ATTRIBUTE = "Geog",
329 GOPHER_TIMEZONE_ATTRIBUTE = "TZ",
330 GOPHER_PROVIDER_ATTRIBUTE = "Provider",
331 GOPHER_VERSION_ATTRIBUTE = "Version",
332 GOPHER_ABSTRACT_ATTRIBUTE = "Abstract",
333 GOPHER_VIEW_ATTRIBUTE = "View",
334 GOPHER_TREEWALK_ATTRIBUTE = "treewalk";
335
336 enum : DWORD {
337 GOPHER_ATTRIBUTE_ID_BASE = 0xABCCCC00,
338 GOPHER_CATEGORY_ID_ALL,
339 GOPHER_CATEGORY_ID_INFO,
340 GOPHER_CATEGORY_ID_ADMIN,
341 GOPHER_CATEGORY_ID_VIEWS,
342 GOPHER_CATEGORY_ID_ABSTRACT,
343 GOPHER_CATEGORY_ID_VERONICA,
344 GOPHER_CATEGORY_ID_ASK,
345 GOPHER_CATEGORY_ID_UNKNOWN,
346 GOPHER_ATTRIBUTE_ID_ALL,
347 GOPHER_ATTRIBUTE_ID_ADMIN,
348 GOPHER_ATTRIBUTE_ID_MOD_DATE,
349 GOPHER_ATTRIBUTE_ID_TTL,
350 GOPHER_ATTRIBUTE_ID_SCORE,
351 GOPHER_ATTRIBUTE_ID_RANGE,
352 GOPHER_ATTRIBUTE_ID_SITE,
353 GOPHER_ATTRIBUTE_ID_ORG,
354 GOPHER_ATTRIBUTE_ID_LOCATION,
355 GOPHER_ATTRIBUTE_ID_GEOG,
356 GOPHER_ATTRIBUTE_ID_TIMEZONE,
357 GOPHER_ATTRIBUTE_ID_PROVIDER,
358 GOPHER_ATTRIBUTE_ID_VERSION,
359 GOPHER_ATTRIBUTE_ID_ABSTRACT,
360 GOPHER_ATTRIBUTE_ID_VIEW,
361 GOPHER_ATTRIBUTE_ID_TREEWALK,
362 GOPHER_ATTRIBUTE_ID_UNKNOWN
363 }
364
365 enum HTTP_MAJOR_VERSION = 1;
366 enum HTTP_MINOR_VERSION = 0;
367 const TCHAR[] HTTP_VERSION = "HTTP/1.0";
368
369 enum : DWORD {
370 HTTP_QUERY_MIME_VERSION,
371 HTTP_QUERY_CONTENT_TYPE,
372 HTTP_QUERY_CONTENT_TRANSFER_ENCODING,
373 HTTP_QUERY_CONTENT_ID,
374 HTTP_QUERY_CONTENT_DESCRIPTION,
375 HTTP_QUERY_CONTENT_LENGTH,
376 HTTP_QUERY_CONTENT_LANGUAGE,
377 HTTP_QUERY_ALLOW,
378 HTTP_QUERY_PUBLIC,
379 HTTP_QUERY_DATE,
380 HTTP_QUERY_EXPIRES,
381 HTTP_QUERY_LAST_MODIFIED,
382 HTTP_QUERY_MESSAGE_ID,
383 HTTP_QUERY_URI,
384 HTTP_QUERY_DERIVED_FROM,
385 HTTP_QUERY_COST,
386 HTTP_QUERY_LINK,
387 HTTP_QUERY_PRAGMA,
388 HTTP_QUERY_VERSION,
389 HTTP_QUERY_STATUS_CODE,
390 HTTP_QUERY_STATUS_TEXT,
391 HTTP_QUERY_RAW_HEADERS,
392 HTTP_QUERY_RAW_HEADERS_CRLF,
393 HTTP_QUERY_CONNECTION,
394 HTTP_QUERY_ACCEPT,
395 HTTP_QUERY_ACCEPT_CHARSET,
396 HTTP_QUERY_ACCEPT_ENCODING,
397 HTTP_QUERY_ACCEPT_LANGUAGE,
398 HTTP_QUERY_AUTHORIZATION,
399 HTTP_QUERY_CONTENT_ENCODING,
400 HTTP_QUERY_FORWARDED,
401 HTTP_QUERY_FROM,
402 HTTP_QUERY_IF_MODIFIED_SINCE,
403 HTTP_QUERY_LOCATION,
404 HTTP_QUERY_ORIG_URI,
405 HTTP_QUERY_REFERER,
406 HTTP_QUERY_RETRY_AFTER,
407 HTTP_QUERY_SERVER,
408 HTTP_QUERY_TITLE,
409 HTTP_QUERY_USER_AGENT,
410 HTTP_QUERY_WWW_AUTHENTICATE,
411 HTTP_QUERY_PROXY_AUTHENTICATE,
412 HTTP_QUERY_ACCEPT_RANGES,
413 HTTP_QUERY_SET_COOKIE,
414 HTTP_QUERY_COOKIE,
415 HTTP_QUERY_REQUEST_METHOD,
416 HTTP_QUERY_MAX = 45,
417 HTTP_QUERY_CUSTOM = 65535
418 }
419
420 enum DWORD
421 HTTP_QUERY_FLAG_REQUEST_HEADERS = 0x80000000,
422 HTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000,
423 HTTP_QUERY_FLAG_NUMBER = 0x20000000,
424 HTTP_QUERY_FLAG_COALESCE = 0x10000000,
425 HTTP_QUERY_MODIFIER_FLAGS_MASK = 0xF0000000,
426 HTTP_QUERY_HEADER_MASK = ~HTTP_QUERY_MODIFIER_FLAGS_MASK;
427
428 enum {
429 HTTP_STATUS_OK = 200,
430 HTTP_STATUS_CREATED,
431 HTTP_STATUS_ACCEPTED,
432 HTTP_STATUS_PARTIAL,
433 HTTP_STATUS_NO_CONTENT, // = 204
434 HTTP_STATUS_AMBIGUOUS = 300,
435 HTTP_STATUS_MOVED,
436 HTTP_STATUS_REDIRECT,
437 HTTP_STATUS_REDIRECT_METHOD,
438 HTTP_STATUS_NOT_MODIFIED, // = 304
439 HTTP_STATUS_BAD_REQUEST = 400,
440 HTTP_STATUS_DENIED,
441 HTTP_STATUS_PAYMENT_REQ,
442 HTTP_STATUS_FORBIDDEN,
443 HTTP_STATUS_NOT_FOUND,
444 HTTP_STATUS_BAD_METHOD,
445 HTTP_STATUS_NONE_ACCEPTABLE,
446 HTTP_STATUS_PROXY_AUTH_REQ,
447 HTTP_STATUS_REQUEST_TIMEOUT,
448 HTTP_STATUS_CONFLICT,
449 HTTP_STATUS_GONE,
450 HTTP_STATUS_AUTH_REFUSED, // = 411
451 HTTP_STATUS_SERVER_ERROR = 500,
452 HTTP_STATUS_NOT_SUPPORTED,
453 HTTP_STATUS_BAD_GATEWAY,
454 HTTP_STATUS_SERVICE_UNAVAIL,
455 HTTP_STATUS_GATEWAY_TIMEOUT // = 504
456 }
457
458 enum {
459 INTERNET_PREFETCH_PROGRESS,
460 INTERNET_PREFETCH_COMPLETE,
461 INTERNET_PREFETCH_ABORTED
462 }
463
464 enum FLAGS_ERROR_UI_FILTER_FOR_ERRORS = 0x01;
465 enum FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = 0x02;
466 enum FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = 0x04;
467 enum FLAGS_ERROR_UI_FLAGS_NO_UI = 0x08;
468
469 enum DWORD
470 HTTP_ADDREQ_INDEX_MASK = 0x0000FFFF,
471 HTTP_ADDREQ_FLAGS_MASK = 0xFFFF0000,
472 HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000,
473 HTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000,
474 HTTP_ADDREQ_FLAG_ADD = 0x20000000,
475 HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000,
476 HTTP_ADDREQ_FLAG_COALESCE = HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA,
477 HTTP_ADDREQ_FLAG_REPLACE = 0x80000000;
478
479 enum {
480 INTERNET_ERROR_BASE = 12000,
481 ERROR_INTERNET_OUT_OF_HANDLES,
482 ERROR_INTERNET_TIMEOUT,
483 ERROR_INTERNET_EXTENDED_ERROR,
484 ERROR_INTERNET_INTERNAL_ERROR,
485 ERROR_INTERNET_INVALID_URL,
486 ERROR_INTERNET_UNRECOGNIZED_SCHEME,
487 ERROR_INTERNET_NAME_NOT_RESOLVED,
488 ERROR_INTERNET_PROTOCOL_NOT_FOUND,
489 ERROR_INTERNET_INVALID_OPTION,
490 ERROR_INTERNET_BAD_OPTION_LENGTH,
491 ERROR_INTERNET_OPTION_NOT_SETTABLE,
492 ERROR_INTERNET_SHUTDOWN,
493 ERROR_INTERNET_INCORRECT_USER_NAME,
494 ERROR_INTERNET_INCORRECT_PASSWORD,
495 ERROR_INTERNET_LOGIN_FAILURE,
496 ERROR_INTERNET_INVALID_OPERATION,
497 ERROR_INTERNET_OPERATION_CANCELLED,
498 ERROR_INTERNET_INCORRECT_HANDLE_TYPE,
499 ERROR_INTERNET_INCORRECT_HANDLE_STATE,
500 ERROR_INTERNET_NOT_PROXY_REQUEST,
501 ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND,
502 ERROR_INTERNET_BAD_REGISTRY_PARAMETER,
503 ERROR_INTERNET_NO_DIRECT_ACCESS,
504 ERROR_INTERNET_NO_CONTEXT,
505 ERROR_INTERNET_NO_CALLBACK,
506 ERROR_INTERNET_REQUEST_PENDING,
507 ERROR_INTERNET_INCORRECT_FORMAT,
508 ERROR_INTERNET_ITEM_NOT_FOUND,
509 ERROR_INTERNET_CANNOT_CONNECT,
510 ERROR_INTERNET_CONNECTION_ABORTED,
511 ERROR_INTERNET_CONNECTION_RESET,
512 ERROR_INTERNET_FORCE_RETRY,
513 ERROR_INTERNET_INVALID_PROXY_REQUEST,
514 ERROR_INTERNET_NEED_UI, // = INTERNET_ERROR_BASE + 34
515 ERROR_INTERNET_HANDLE_EXISTS = INTERNET_ERROR_BASE + 36,
516 ERROR_INTERNET_SEC_CERT_DATE_INVALID,
517 ERROR_INTERNET_SEC_CERT_CN_INVALID,
518 ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR,
519 ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR,
520 ERROR_INTERNET_MIXED_SECURITY,
521 ERROR_INTERNET_CHG_POST_IS_NON_SECURE,
522 ERROR_INTERNET_POST_IS_NON_SECURE,
523 ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED,
524 ERROR_INTERNET_INVALID_CA,
525 ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP,
526 ERROR_INTERNET_ASYNC_THREAD_FAILED,
527 ERROR_INTERNET_REDIRECT_SCHEME_CHANGE, // = INTERNET_ERROR_BASE + 48
528
529 ERROR_FTP_TRANSFER_IN_PROGRESS = INTERNET_ERROR_BASE + 110,
530 ERROR_FTP_DROPPED, // = INTERNET_ERROR_BASE + 111
531 ERROR_GOPHER_PROTOCOL_ERROR = INTERNET_ERROR_BASE + 130,
532 ERROR_GOPHER_NOT_FILE,
533 ERROR_GOPHER_DATA_ERROR,
534 ERROR_GOPHER_END_OF_DATA,
535 ERROR_GOPHER_INVALID_LOCATOR,
536 ERROR_GOPHER_INCORRECT_LOCATOR_TYPE,
537 ERROR_GOPHER_NOT_GOPHER_PLUS,
538 ERROR_GOPHER_ATTRIBUTE_NOT_FOUND,
539 ERROR_GOPHER_UNKNOWN_LOCATOR, // = INTERNET_ERROR_BASE + 138,
540 ERROR_HTTP_HEADER_NOT_FOUND = INTERNET_ERROR_BASE + 150,
541 ERROR_HTTP_DOWNLEVEL_SERVER,
542 ERROR_HTTP_INVALID_SERVER_RESPONSE,
543 ERROR_HTTP_INVALID_HEADER,
544 ERROR_HTTP_INVALID_QUERY_REQUEST,
545 ERROR_HTTP_HEADER_ALREADY_EXISTS,
546 ERROR_HTTP_REDIRECT_FAILED,
547 ERROR_INTERNET_SECURITY_CHANNEL_ERROR,
548 ERROR_INTERNET_UNABLE_TO_CACHE_FILE,
549 ERROR_INTERNET_TCPIP_NOT_INSTALLED,
550 ERROR_HTTP_NOT_REDIRECTED, // = INTERNET_ERROR_BASE + 160
551 // why?
552 INTERNET_ERROR_LAST = ERROR_INTERNET_TCPIP_NOT_INSTALLED
553 }
554
555
556 enum NORMAL_CACHE_ENTRY = 0x000001;
557 enum STABLE_CACHE_ENTRY = 0x000002;
558 enum STICKY_CACHE_ENTRY = 0x000004;
559 enum SPARSE_CACHE_ENTRY = 0x010000;
560 enum OCX_CACHE_ENTRY = 0x020000;
561 enum COOKIE_CACHE_ENTRY = 0x100000;
562 enum URLHISTORY_CACHE_ENTRY = 0x200000;
563
564 enum CACHE_ENTRY_ATTRIBUTE_FC = 0x0004;
565 enum CACHE_ENTRY_HITRATE_FC = 0x0010;
566 enum CACHE_ENTRY_MODTIME_FC = 0x0040;
567 enum CACHE_ENTRY_EXPTIME_FC = 0x0080;
568 enum CACHE_ENTRY_ACCTIME_FC = 0x0100;
569 enum CACHE_ENTRY_SYNCTIME_FC = 0x0200;
570 enum CACHE_ENTRY_HEADERINFO_FC = 0x0400;
571
572 enum {
573 WININET_API_FLAG_ASYNC = 1,
574 WININET_API_FLAG_SYNC = 4,
575 WININET_API_FLAG_USE_CONTEXT = 8
576 }
577
578 // FIXME: how should these really be grouped?
579 enum {
580 IRF_ASYNC = WININET_API_FLAG_ASYNC,
581 IRF_SYNC = WININET_API_FLAG_SYNC,
582 IRF_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT,
583 }
584 enum IRF_NO_WAIT = 8;
585
586 enum {
587 HSR_ASYNC = WININET_API_FLAG_ASYNC,
588 HSR_SYNC = WININET_API_FLAG_SYNC,
589 HSR_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT,
590 }
591
592 enum HSR_INITIATE = 8;
593 enum HSR_DOWNLOAD = 16;
594 enum HSR_CHUNKED = 32;
595
596 enum INTERNET_DIAL_UNATTENDED = 0x8000;
597 enum INTERNET_DIALSTATE_DISCONNECTED = 1;
598 enum INTERENT_GOONLINE_REFRESH = 1;
599 enum INTERENT_GOONLINE_MASK = 1;
600 enum INTERNET_AUTODIAL_FORCE_ONLINE = 1;
601 enum INTERNET_AUTODIAL_FORCE_UNATTENDED = 2;
602 enum INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4;
603 enum INTERNET_CONNECTION_MODEM = 0x01;
604 enum INTERNET_CONNECTION_LAN = 0x02;
605 enum INTERNET_CONNECTION_PROXY = 0x04;
606 enum INTERNET_CONNECTION_MODEM_BUSY = 0x08;
607 enum INTERNET_RAS_INSTALLED = 0x10;
608 enum INTERNET_CONNECTION_OFFLINE = 0x20;
609 enum INTERNET_CONNECTION_CONFIGURED = 0x40;
610
611 enum {
612 CACHEGROUP_SEARCH_ALL = 0,
613 CACHEGROUP_SEARCH_BYURL = 1
614 }
615
616 enum {
617 INTERNET_CACHE_GROUP_ADD = 0,
618 INTERNET_CACHE_GROUP_REMOVE = 1
619 }
620
621 mixin DECLARE_HANDLE!("HINTERNET"); // doesn't work - bug
622 /*struct HINTERNET {
623 HANDLE h;
624 alias h this;
625 }*/
626 alias HINTERNET* LPHINTERNET;
627
628 alias LONGLONG GROUPID;
629 alias WORD INTERNET_PORT;
630 alias WORD* LPINTERNET_PORT;
631
632 enum INTERNET_SCHEME {
633 INTERNET_SCHEME_PARTIAL = -2,
634 INTERNET_SCHEME_UNKNOWN,
635 INTERNET_SCHEME_DEFAULT,
636 INTERNET_SCHEME_FTP,
637 INTERNET_SCHEME_GOPHER,
638 INTERNET_SCHEME_HTTP,
639 INTERNET_SCHEME_HTTPS,
640 INTERNET_SCHEME_FILE,
641 INTERNET_SCHEME_NEWS,
642 INTERNET_SCHEME_MAILTO,
643 INTERNET_SCHEME_SOCKS,
644 INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP,
645 INTERNET_SCHEME_LAST = INTERNET_SCHEME_SOCKS
646 }
647 alias INTERNET_SCHEME* LPINTERNET_SCHEME;
648
649 struct INTERNET_ASYNC_RESULT {
650 DWORD_PTR dwResult;
651 DWORD dwError;
652 }
653 alias INTERNET_ASYNC_RESULT* LPINTERNET_ASYNC_RESULT;
654
655 struct INTERNET_PREFETCH_STATUS {
656 DWORD dwStatus;
657 DWORD dwSize;
658 }
659 alias INTERNET_PREFETCH_STATUS* LPINTERNET_PREFETCH_STATUS;
660
661 struct INTERNET_PROXY_INFO {
662 DWORD dwAccessType;
663 LPCTSTR lpszProxy;
664 LPCTSTR lpszProxyBypass;
665 }
666 alias INTERNET_PROXY_INFO* LPINTERNET_PROXY_INFO;
667
668 struct INTERNET_VERSION_INFO {
669 DWORD dwMajorVersion;
670 DWORD dwMinorVersion;
671 }
672 alias INTERNET_VERSION_INFO* LPINTERNET_VERSION_INFO;
673
674 struct URL_COMPONENTSA {
675 DWORD dwStructSize = URL_COMPONENTSA.sizeof;
676 LPSTR lpszScheme;
677 DWORD dwSchemeLength;
678 INTERNET_SCHEME nScheme;
679 LPSTR lpszHostName;
680 DWORD dwHostNameLength;
681 INTERNET_PORT nPort;
682 LPSTR lpszUserName;
683 DWORD dwUserNameLength;
684 LPSTR lpszPassword;
685 DWORD dwPasswordLength;
686 LPSTR lpszUrlPath;
687 DWORD dwUrlPathLength;
688 LPSTR lpszExtraInfo;
689 DWORD dwExtraInfoLength;
690 }
691 alias URL_COMPONENTSA* LPURL_COMPONENTSA;
692
693 struct URL_COMPONENTSW {
694 DWORD dwStructSize = URL_COMPONENTSW.sizeof;
695 LPWSTR lpszScheme;
696 DWORD dwSchemeLength;
697 INTERNET_SCHEME nScheme;
698 LPWSTR lpszHostName;
699 DWORD dwHostNameLength;
700 INTERNET_PORT nPort;
701 LPWSTR lpszUserName;
702 DWORD dwUserNameLength;
703 LPWSTR lpszPassword;
704 DWORD dwPasswordLength;
705 LPWSTR lpszUrlPath;
706 DWORD dwUrlPathLength;
707 LPWSTR lpszExtraInfo;
708 DWORD dwExtraInfoLength;
709 }
710 alias URL_COMPONENTSW* LPURL_COMPONENTSW;
711
712 struct INTERNET_CERTIFICATE_INFO {
713 FILETIME ftExpiry;
714 FILETIME ftStart;
715 LPTSTR lpszSubjectInfo;
716 LPTSTR lpszIssuerInfo;
717 LPTSTR lpszProtocolName;
718 LPTSTR lpszSignatureAlgName;
719 LPTSTR lpszEncryptionAlgName;
720 DWORD dwKeySize;
721 }
722 alias INTERNET_CERTIFICATE_INFO* LPINTERNET_CERTIFICATE_INFO;
723
724 extern (Windows) alias void function(HINTERNET, DWORD_PTR, DWORD, PVOID, DWORD)
725 INTERNET_STATUS_CALLBACK;
726 alias INTERNET_STATUS_CALLBACK* LPINTERNET_STATUS_CALLBACK;
727
728 enum INTERNET_INVALID_STATUS_CALLBACK
729 = cast(INTERNET_STATUS_CALLBACK) -1;
730
731 struct GOPHER_FIND_DATAA {
732 CHAR[MAX_GOPHER_DISPLAY_TEXT+1] DisplayString = 0;
733 DWORD GopherType;
734 DWORD SizeLow;
735 DWORD SizeHigh;
736 FILETIME LastModificationTime;
737 CHAR[MAX_GOPHER_LOCATOR_LENGTH+1] Locator = 0;
738 }
739 alias GOPHER_FIND_DATAA* LPGOPHER_FIND_DATAA;
740
741 struct GOPHER_FIND_DATAW {
742 WCHAR[MAX_GOPHER_DISPLAY_TEXT+1] DisplayString = 0;
743 DWORD GopherType;
744 DWORD SizeLow;
745 DWORD SizeHigh;
746 FILETIME LastModificationTime;
747 WCHAR[MAX_GOPHER_LOCATOR_LENGTH+1] Locator = 0;
748 }
749 alias GOPHER_FIND_DATAW* LPGOPHER_FIND_DATAW;
750
751 struct GOPHER_ADMIN_ATTRIBUTE_TYPE {
752 LPCTSTR Comment;
753 LPCTSTR EmailAddress;
754 }
755 alias GOPHER_ADMIN_ATTRIBUTE_TYPE* LPGOPHER_ADMIN_ATTRIBUTE_TYPE;
756
757 struct GOPHER_MOD_DATE_ATTRIBUTE_TYPE {
758 FILETIME DateAndTime;
759 }
760 alias GOPHER_MOD_DATE_ATTRIBUTE_TYPE* LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE;
761
762 struct GOPHER_TTL_ATTRIBUTE_TYPE {
763 DWORD Ttl;
764 }
765 alias GOPHER_TTL_ATTRIBUTE_TYPE* LPGOPHER_TTL_ATTRIBUTE_TYPE;
766
767 struct GOPHER_SCORE_ATTRIBUTE_TYPE {
768 INT Score;
769 }
770 alias GOPHER_SCORE_ATTRIBUTE_TYPE* LPGOPHER_SCORE_ATTRIBUTE_TYPE;
771
772 struct GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE {
773 INT LowerBound;
774 INT UpperBound;
775 }
776 alias GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE* LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE;
777
778 struct GOPHER_SITE_ATTRIBUTE_TYPE {
779 LPCTSTR Site;
780 }
781 alias GOPHER_SITE_ATTRIBUTE_TYPE* LPGOPHER_SITE_ATTRIBUTE_TYPE;
782
783 struct GOPHER_ORGANIZATION_ATTRIBUTE_TYPE {
784 LPCTSTR Organization;
785 }
786 alias GOPHER_ORGANIZATION_ATTRIBUTE_TYPE* LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE;
787
788 struct GOPHER_LOCATION_ATTRIBUTE_TYPE {
789 LPCTSTR Location;
790 }
791 alias GOPHER_LOCATION_ATTRIBUTE_TYPE* LPGOPHER_LOCATION_ATTRIBUTE_TYPE;
792
793 struct GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE {
794 INT DegreesNorth;
795 INT MinutesNorth;
796 INT SecondsNorth;
797 INT DegreesEast;
798 INT MinutesEast;
799 INT SecondsEast;
800 }
801 alias GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE*
802 LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE;
803
804 struct GOPHER_TIMEZONE_ATTRIBUTE_TYPE {
805 INT Zone;
806 }
807 alias GOPHER_TIMEZONE_ATTRIBUTE_TYPE* LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE;
808
809 struct GOPHER_PROVIDER_ATTRIBUTE_TYPE {
810 LPCTSTR Provider;
811 }
812 alias GOPHER_PROVIDER_ATTRIBUTE_TYPE* LPGOPHER_PROVIDER_ATTRIBUTE_TYPE;
813
814 struct GOPHER_VERSION_ATTRIBUTE_TYPE {
815 LPCTSTR Version;
816 }
817 alias GOPHER_VERSION_ATTRIBUTE_TYPE* LPGOPHER_VERSION_ATTRIBUTE_TYPE;
818
819 struct GOPHER_ABSTRACT_ATTRIBUTE_TYPE {
820 LPCTSTR ShortAbstract;
821 LPCTSTR AbstractFile;
822 }
823 alias GOPHER_ABSTRACT_ATTRIBUTE_TYPE* LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE;
824
825 struct GOPHER_VIEW_ATTRIBUTE_TYPE {
826 LPCTSTR ContentType;
827 LPCTSTR Language;
828 DWORD Size;
829 }
830 alias GOPHER_VIEW_ATTRIBUTE_TYPE* LPGOPHER_VIEW_ATTRIBUTE_TYPE;
831
832 struct GOPHER_VERONICA_ATTRIBUTE_TYPE {
833 BOOL TreeWalk;
834 }
835 alias GOPHER_VERONICA_ATTRIBUTE_TYPE* LPGOPHER_VERONICA_ATTRIBUTE_TYPE;
836
837 struct GOPHER_ASK_ATTRIBUTE_TYPE {
838 LPCTSTR QuestionType;
839 LPCTSTR QuestionText;
840 }
841 alias GOPHER_ASK_ATTRIBUTE_TYPE* LPGOPHER_ASK_ATTRIBUTE_TYPE;
842
843 struct GOPHER_UNKNOWN_ATTRIBUTE_TYPE {
844 LPCTSTR Text;
845 }
846 alias GOPHER_UNKNOWN_ATTRIBUTE_TYPE* LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE;
847
848 struct GOPHER_ATTRIBUTE_TYPE {
849 DWORD CategoryId;
850 DWORD AttributeId;
851 union {
852 GOPHER_ADMIN_ATTRIBUTE_TYPE Admin;
853 GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
854 GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
855 GOPHER_SCORE_ATTRIBUTE_TYPE Score;
856 GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
857 GOPHER_SITE_ATTRIBUTE_TYPE Site;
858 GOPHER_ORGANIZATION_ATTRIBUTE_TYPE Organization;
859 GOPHER_LOCATION_ATTRIBUTE_TYPE Location;
860 GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation;
861 GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
862 GOPHER_PROVIDER_ATTRIBUTE_TYPE Provider;
863 GOPHER_VERSION_ATTRIBUTE_TYPE Version;
864 GOPHER_ABSTRACT_ATTRIBUTE_TYPE Abstract;
865 GOPHER_VIEW_ATTRIBUTE_TYPE View;
866 GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
867 GOPHER_ASK_ATTRIBUTE_TYPE Ask;
868 GOPHER_UNKNOWN_ATTRIBUTE_TYPE Unknown;
869 } /+AttributeType;+/
870 }
871 alias GOPHER_ATTRIBUTE_TYPE* LPGOPHER_ATTRIBUTE_TYPE;
872
873 extern (Windows)
874 alias BOOL function(LPGOPHER_ATTRIBUTE_TYPE, DWORD)
875 GOPHER_ATTRIBUTE_ENUMERATOR;
876
877 struct INTERNET_CACHE_ENTRY_INFOA {
878 DWORD dwStructSize = INTERNET_CACHE_ENTRY_INFOA.sizeof;
879 LPSTR lpszSourceUrlName;
880 LPSTR lpszLocalFileName;
881 DWORD CacheEntryType;
882 DWORD dwUseCount;
883 DWORD dwHitRate;
884 DWORD dwSizeLow;
885 DWORD dwSizeHigh;
886 FILETIME LastModifiedTime;
887 FILETIME ExpireTime;
888 FILETIME LastAccessTime;
889 FILETIME LastSyncTime;
890 PBYTE lpHeaderInfo;
891 DWORD dwHeaderInfoSize;
892 LPSTR lpszFileExtension;
893 DWORD dwReserved;
894 }
895 alias INTERNET_CACHE_ENTRY_INFOA* LPINTERNET_CACHE_ENTRY_INFOA;
896
897 struct INTERNET_CACHE_ENTRY_INFOW {
898 DWORD dwStructSize = INTERNET_CACHE_ENTRY_INFOW.sizeof;
899 LPWSTR lpszSourceUrlName;
900 LPWSTR lpszLocalFileName;
901 DWORD CacheEntryType;
902 DWORD dwUseCount;
903 DWORD dwHitRate;
904 DWORD dwSizeLow;
905 DWORD dwSizeHigh;
906 FILETIME LastModifiedTime;
907 FILETIME ExpireTime;
908 FILETIME LastAccessTime;
909 FILETIME LastSyncTime;
910 PBYTE lpHeaderInfo;
911 DWORD dwHeaderInfoSize;
912 LPWSTR lpszFileExtension;
913 DWORD dwReserved;
914 }
915 alias INTERNET_CACHE_ENTRY_INFOW* LPINTERNET_CACHE_ENTRY_INFOW;
916
917 struct INTERNET_BUFFERSA {
918 DWORD dwStructSize = INTERNET_BUFFERSA.sizeof;
919 INTERNET_BUFFERSA* Next;
920 LPCSTR lpcszHeader;
921 DWORD dwHeadersLength;
922 DWORD dwHeadersTotal;
923 LPVOID lpvBuffer;
924 DWORD dwBufferLength;
925 DWORD dwBufferTotal;
926 DWORD dwOffsetLow;
927 DWORD dwOffsetHigh;
928 }
929 alias INTERNET_BUFFERSA* LPINTERNET_BUFFERSA;
930
931 struct INTERNET_BUFFERSW {
932 DWORD dwStructSize = INTERNET_BUFFERSW.sizeof;
933 INTERNET_BUFFERSW* Next;
934 LPCWSTR lpcszHeader;
935 DWORD dwHeadersLength;
936 DWORD dwHeadersTotal;
937 LPVOID lpvBuffer;
938 DWORD dwBufferLength;
939 DWORD dwBufferTotal;
940 DWORD dwOffsetLow;
941 DWORD dwOffsetHigh;
942 }
943 alias INTERNET_BUFFERSW* LPINTERNET_BUFFERSW;
944
945 enum size_t
946 GROUP_OWNER_STORAGE_SIZE = 4,
947 GROUPNAME_MAX_LENGTH = 120;
948
949 struct INTERNET_CACHE_GROUP_INFOA {
950 DWORD dwGroupSize;
951 DWORD dwGroupFlags;
952 DWORD dwGroupType;
953 DWORD dwDiskUsage;
954 DWORD dwDiskQuota;
955 DWORD[GROUP_OWNER_STORAGE_SIZE] dwOwnerStorage;
956 CHAR[GROUPNAME_MAX_LENGTH] szGroupName = 0;
957 }
958 alias INTERNET_CACHE_GROUP_INFOA* LPINTERNET_CACHE_GROUP_INFOA;
959
960 struct INTERNET_CACHE_GROUP_INFOW {
961 DWORD dwGroupSize;
962 DWORD dwGroupFlags;
963 DWORD dwGroupType;
964 DWORD dwDiskUsage;
965 DWORD dwDiskQuota;
966 DWORD[GROUP_OWNER_STORAGE_SIZE] dwOwnerStorage;
967 WCHAR[GROUPNAME_MAX_LENGTH] szGroupName = 0;
968 }
969 alias INTERNET_CACHE_GROUP_INFOW* LPINTERNET_CACHE_GROUP_INFOW;
970
971 extern (Windows) {
972 BOOL InternetTimeFromSystemTime(SYSTEMTIME*, DWORD, LPSTR, DWORD);
973 BOOL InternetTimeToSystemTime(LPCSTR, SYSTEMTIME*, DWORD);
974 BOOL InternetDebugGetLocalTime(SYSTEMTIME*, PDWORD);
975 BOOL InternetCrackUrlA(LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA);
976 BOOL InternetCrackUrlW(LPCWSTR, DWORD, DWORD, LPURL_COMPONENTSW);
977 BOOL InternetCreateUrlA(LPURL_COMPONENTSA, DWORD, LPSTR, PDWORD);
978 BOOL InternetCreateUrlW(LPURL_COMPONENTSW, DWORD, LPWSTR, PDWORD);
979 BOOL InternetCanonicalizeUrlA(LPCSTR, LPSTR, PDWORD, DWORD);
980 BOOL InternetCanonicalizeUrlW(LPCWSTR, LPWSTR, PDWORD, DWORD);
981 BOOL InternetCheckConnectionA(LPCSTR, DWORD, DWORD);
982 BOOL InternetCheckConnectionW(LPCWSTR, DWORD, DWORD);
983 BOOL InternetCombineUrlA(LPCSTR, LPCSTR, LPSTR, PDWORD, DWORD);
984 BOOL InternetCombineUrlW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, DWORD);
985 HINTERNET InternetOpenA(LPCSTR, DWORD, LPCSTR, LPCSTR, DWORD);
986 HINTERNET InternetOpenW(LPCWSTR, DWORD, LPCWSTR, LPCWSTR, DWORD);
987 BOOL InternetCloseHandle(HINTERNET);
988 HINTERNET InternetConnectA(HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR,
989 LPCSTR, DWORD, DWORD, DWORD_PTR);
990 HINTERNET InternetConnectW(HINTERNET, LPCWSTR, INTERNET_PORT, LPCWSTR,
991 LPCWSTR, DWORD, DWORD, DWORD_PTR);
992 HINTERNET InternetOpenUrlA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD,
993 DWORD_PTR);
994 HINTERNET InternetOpenUrlW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD,
995 DWORD_PTR);
996 BOOL InternetReadFile(HINTERNET, PVOID, DWORD, PDWORD);
997 DWORD InternetSetFilePointer(HINTERNET, LONG, PVOID, DWORD, DWORD_PTR);
998 BOOL InternetWriteFile(HINTERNET, LPCVOID, DWORD, PDWORD);
999 BOOL InternetQueryDataAvailable(HINTERNET, PDWORD, DWORD, DWORD_PTR);
1000 BOOL InternetFindNextFileA(HINTERNET, PVOID);
1001 BOOL InternetFindNextFileW(HINTERNET, PVOID);
1002 BOOL InternetQueryOptionA(HINTERNET, DWORD, PVOID, PDWORD);
1003 BOOL InternetQueryOptionW(HINTERNET, DWORD, PVOID, PDWORD);
1004 BOOL InternetSetOptionA(HINTERNET, DWORD, PVOID, DWORD);
1005 BOOL InternetSetOptionW(HINTERNET, DWORD, PVOID, DWORD);
1006 BOOL InternetSetOptionExA(HINTERNET, DWORD, PVOID, DWORD, DWORD);
1007 BOOL InternetSetOptionExW(HINTERNET, DWORD, PVOID, DWORD, DWORD);
1008 BOOL InternetGetLastResponseInfoA(PDWORD, LPSTR, PDWORD);
1009 BOOL InternetGetLastResponseInfoW(PDWORD, LPWSTR, PDWORD);
1010 INTERNET_STATUS_CALLBACK InternetSetStatusCallback(HINTERNET,
1011 INTERNET_STATUS_CALLBACK);
1012 DWORD FtpGetFileSize(HINTERNET, LPDWORD);
1013 HINTERNET FtpFindFirstFileA(HINTERNET, LPCSTR, LPWIN32_FIND_DATAA, DWORD,
1014 DWORD_PTR);
1015 HINTERNET FtpFindFirstFileW(HINTERNET, LPCWSTR, LPWIN32_FIND_DATAW, DWORD,
1016 DWORD_PTR);
1017 BOOL FtpGetFileA(HINTERNET, LPCSTR, LPCSTR, BOOL, DWORD, DWORD, DWORD_PTR);
1018 BOOL FtpGetFileW(HINTERNET, LPCWSTR, LPCWSTR, BOOL, DWORD, DWORD, DWORD_PTR);
1019 BOOL FtpPutFileA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD_PTR);
1020 BOOL FtpPutFileW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD_PTR);
1021 BOOL FtpDeleteFileA(HINTERNET, LPCSTR);
1022 BOOL FtpDeleteFileW(HINTERNET, LPCWSTR);
1023 BOOL FtpRenameFileA(HINTERNET, LPCSTR, LPCSTR);
1024 BOOL FtpRenameFileW(HINTERNET, LPCWSTR, LPCWSTR);
1025 HINTERNET FtpOpenFileA(HINTERNET, LPCSTR, DWORD, DWORD, DWORD_PTR);
1026 HINTERNET FtpOpenFileW(HINTERNET, LPCWSTR, DWORD, DWORD, DWORD_PTR);
1027 BOOL FtpCreateDirectoryA(HINTERNET, LPCSTR);
1028 BOOL FtpCreateDirectoryW(HINTERNET, LPCWSTR);
1029 BOOL FtpRemoveDirectoryA(HINTERNET, LPCSTR);
1030 BOOL FtpRemoveDirectoryW(HINTERNET, LPCWSTR);
1031 BOOL FtpSetCurrentDirectoryA(HINTERNET, LPCSTR);
1032 BOOL FtpSetCurrentDirectoryW(HINTERNET, LPCWSTR);
1033 BOOL FtpGetCurrentDirectoryA(HINTERNET, LPSTR, PDWORD);
1034 BOOL FtpGetCurrentDirectoryW(HINTERNET, LPWSTR, PDWORD);
1035 BOOL FtpCommandA(HINTERNET, BOOL, DWORD, LPCSTR, DWORD_PTR, HINTERNET*);
1036 BOOL FtpCommandW(HINTERNET, BOOL, DWORD, LPCWSTR, DWORD_PTR, HINTERNET*);
1037 BOOL GopherCreateLocatorA(LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD,
1038 LPSTR, PDWORD);
1039 BOOL GopherCreateLocatorW(LPCWSTR, INTERNET_PORT, LPCWSTR, LPCWSTR, DWORD,
1040 LPWSTR, PDWORD);
1041 BOOL GopherGetLocatorTypeA(LPCSTR, PDWORD);
1042 BOOL GopherGetLocatorTypeW(LPCWSTR, PDWORD);
1043 HINTERNET GopherFindFirstFileA(HINTERNET, LPCSTR, LPCSTR,
1044 LPGOPHER_FIND_DATAA, DWORD, DWORD_PTR);
1045 HINTERNET GopherFindFirstFileW(HINTERNET, LPCWSTR, LPCWSTR,
1046 LPGOPHER_FIND_DATAW, DWORD, DWORD_PTR);
1047 HINTERNET GopherOpenFileA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD_PTR);
1048 HINTERNET GopherOpenFileW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD_PTR);
1049 BOOL GopherGetAttributeA(HINTERNET, LPCSTR, LPCSTR, LPBYTE, DWORD,
1050 PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD_PTR);
1051 BOOL GopherGetAttributeW(HINTERNET, LPCWSTR, LPCWSTR, LPBYTE, DWORD,
1052 PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD_PTR);
1053 HINTERNET HttpOpenRequestA(HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR,
1054 LPCSTR*, DWORD, DWORD_PTR);
1055 HINTERNET HttpOpenRequestW(HINTERNET, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR,
1056 LPCWSTR*, DWORD, DWORD_PTR);
1057 BOOL HttpAddRequestHeadersA(HINTERNET, LPCSTR, DWORD, DWORD);
1058 BOOL HttpAddRequestHeadersW(HINTERNET, LPCWSTR, DWORD, DWORD);
1059 BOOL HttpSendRequestA(HINTERNET, LPCSTR, DWORD, PVOID, DWORD);
1060 BOOL HttpSendRequestW(HINTERNET, LPCWSTR, DWORD, PVOID, DWORD);
1061 BOOL HttpQueryInfoA(HINTERNET, DWORD, PVOID, PDWORD, PDWORD);
1062 BOOL HttpQueryInfoW(HINTERNET, DWORD, PVOID, PDWORD, PDWORD);
1063 BOOL InternetSetCookieA(LPCSTR, LPCSTR, LPCSTR);
1064 BOOL InternetSetCookieW(LPCWSTR, LPCWSTR, LPCWSTR);
1065 BOOL InternetGetCookieA(LPCSTR, LPCSTR, LPSTR, PDWORD);
1066 BOOL InternetGetCookieW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD);
1067 DWORD InternetAttemptConnect(DWORD);
1068 DWORD InternetErrorDlg(HWND, HINTERNET, DWORD, DWORD, PVOID*);
1069 DWORD InternetConfirmZoneCrossing(HWND, LPSTR, LPSTR, BOOL);
1070 BOOL CreateUrlCacheEntryA(LPCSTR, DWORD, LPCSTR, LPSTR, DWORD);
1071 BOOL CreateUrlCacheEntryW(LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD);
1072 BOOL CommitUrlCacheEntryA(LPCSTR, LPCSTR, FILETIME, FILETIME, DWORD,
1073 LPBYTE, DWORD, LPCSTR, DWORD);
1074 BOOL CommitUrlCacheEntryW(LPCWSTR, LPCWSTR, FILETIME, FILETIME, DWORD,
1075 LPBYTE, DWORD, LPCWSTR, DWORD);
1076 BOOL RetrieveUrlCacheEntryFileA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA,
1077 PDWORD, DWORD);
1078 BOOL RetrieveUrlCacheEntryFileW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW,
1079 PDWORD, DWORD);
1080 BOOL UnlockUrlCacheEntryFile(LPCSTR, DWORD);
1081 HANDLE RetrieveUrlCacheEntryStreamA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA,
1082 PDWORD, BOOL, DWORD);
1083 HANDLE RetrieveUrlCacheEntryStreamW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW,
1084 PDWORD, BOOL, DWORD);
1085 BOOL ReadUrlCacheEntryStream(HANDLE, DWORD, PVOID, PDWORD, DWORD);
1086 BOOL UnlockUrlCacheEntryStream(HANDLE, DWORD);
1087 BOOL GetUrlCacheEntryInfoA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, PDWORD);
1088 BOOL GetUrlCacheEntryInfoW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, PDWORD);
1089 BOOL SetUrlCacheEntryInfoA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, DWORD);
1090 BOOL SetUrlCacheEntryInfoW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, DWORD);
1091 HANDLE FindFirstUrlCacheEntryA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA,
1092 PDWORD);
1093 HANDLE FindFirstUrlCacheEntryW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW,
1094 PDWORD);
1095 BOOL FindNextUrlCacheEntryA(HANDLE, LPINTERNET_CACHE_ENTRY_INFOA, PDWORD);
1096 BOOL FindNextUrlCacheEntryW(HANDLE, LPINTERNET_CACHE_ENTRY_INFOW, PDWORD);
1097 BOOL FindCloseUrlCache(HANDLE);
1098 BOOL DeleteUrlCacheEntry(LPCSTR);
1099 DWORD AuthenticateUser(PVOID*, LPSTR, LPSTR, DWORD, LPSTR, DWORD, LPSTR,
1100 LPSTR);
1101 BOOL HttpSendRequestExA(HINTERNET, LPINTERNET_BUFFERSA,
1102 LPINTERNET_BUFFERSA, DWORD, DWORD_PTR);
1103 BOOL HttpSendRequestExW(HINTERNET, LPINTERNET_BUFFERSW,
1104 LPINTERNET_BUFFERSW, DWORD, DWORD_PTR);
1105 BOOL HttpEndRequestA(HINTERNET, LPINTERNET_BUFFERSA, DWORD, DWORD_PTR);
1106 BOOL HttpEndRequestW(HINTERNET, LPINTERNET_BUFFERSW, DWORD, DWORD_PTR);
1107 DWORD InternetDial(HWND, LPTSTR, DWORD, LPDWORD, DWORD);
1108 DWORD InternetHangUp(DWORD_PTR, DWORD);
1109 BOOL InternetGoOnline(LPTSTR, HWND, DWORD);
1110 BOOL InternetAutodial(DWORD, DWORD);
1111 BOOL InternetAutodialHangup(DWORD);
1112 BOOL InternetGetConnectedState(LPDWORD, DWORD);
1113 BOOL InternetSetDialState(LPCTSTR, DWORD, DWORD);
1114 BOOL InternetReadFileExA(HINTERNET, LPINTERNET_BUFFERSA, DWORD, DWORD_PTR);
1115 BOOL InternetReadFileExW(HINTERNET, LPINTERNET_BUFFERSW, DWORD, DWORD_PTR);
1116 GROUPID CreateUrlCacheGroup(DWORD, LPVOID);
1117 BOOL DeleteUrlCacheGroup(GROUPID, DWORD, LPVOID);
1118 HANDLE FindFirstUrlCacheGroup(DWORD, DWORD, LPVOID, DWORD, GROUPID*,
1119 LPVOID);
1120 BOOL FindNextUrlCacheGroup(HANDLE, GROUPID*, LPVOID);
1121 BOOL GetUrlCacheGroupAttributeA(GROUPID, DWORD, DWORD,
1122 LPINTERNET_CACHE_GROUP_INFOA, LPDWORD, LPVOID);
1123 BOOL GetUrlCacheGroupAttributeW(GROUPID, DWORD, DWORD,
1124 LPINTERNET_CACHE_GROUP_INFOW, LPDWORD, LPVOID);
1125 BOOL SetUrlCacheGroupAttributeA(GROUPID, DWORD, DWORD,
1126 LPINTERNET_CACHE_GROUP_INFOA, LPVOID);
1127 BOOL SetUrlCacheGroupAttributeW(GROUPID, DWORD, DWORD,
1128 LPINTERNET_CACHE_GROUP_INFOW, LPVOID);
1129 }
1130
1131 version (Unicode) {
1132 alias URL_COMPONENTSW URL_COMPONENTS;
1133 alias LPURL_COMPONENTSW LPURL_COMPONENTS;
1134 alias GOPHER_FIND_DATAW GOPHER_FIND_DATA;
1135 alias LPGOPHER_FIND_DATAW LPGOPHER_FIND_DATA;
1136 alias INTERNET_CACHE_ENTRY_INFOW INTERNET_CACHE_ENTRY_INFO;
1137 alias LPINTERNET_CACHE_ENTRY_INFOW LPINTERNET_CACHE_ENTRY_INFO;
1138 alias INTERNET_BUFFERSW INTERNET_BUFFERS;
1139 alias INTERNET_CACHE_GROUP_INFOW INTERNET_CACHE_GROUP_INFO;
1140 alias LPINTERNET_CACHE_GROUP_INFOW LPINTERNET_CACHE_GROUP_INFO;
1141 alias InternetCrackUrlW InternetCrackUrl;
1142 alias InternetCreateUrlW InternetCreateUrl;
1143 alias InternetCanonicalizeUrlW InternetCanonicalizeUrl;
1144 alias InternetCheckConnectionW InternetCheckConnection;
1145 alias InternetCombineUrlW InternetCombineUrl;
1146 alias InternetOpenW InternetOpen;
1147 alias InternetConnectW InternetConnect;
1148 alias InternetOpenUrlW InternetOpenUrl;
1149 alias InternetFindNextFileW InternetFindNextFile;
1150 alias InternetQueryOptionW InternetQueryOption;
1151 alias InternetSetOptionW InternetSetOption;
1152 alias InternetSetOptionExW InternetSetOptionEx;
1153 alias InternetGetLastResponseInfoW InternetGetLastResponseInfo;
1154 alias InternetReadFileExW InternetReadFileEx;
1155 alias FtpFindFirstFileW FtpFindFirstFile;
1156 alias FtpGetFileW FtpGetFile;
1157 alias FtpPutFileW FtpPutFile;
1158 alias FtpDeleteFileW FtpDeleteFile;
1159 alias FtpRenameFileW FtpRenameFile;
1160 alias FtpOpenFileW FtpOpenFile;
1161 alias FtpCreateDirectoryW FtpCreateDirectory;
1162 alias FtpRemoveDirectoryW FtpRemoveDirectory;
1163 alias FtpSetCurrentDirectoryW FtpSetCurrentDirectory;
1164 alias FtpGetCurrentDirectoryW FtpGetCurrentDirectory;
1165 alias FtpCommandW FtpCommand;
1166 alias GopherGetLocatorTypeW GopherGetLocatorType;
1167 alias GopherCreateLocatorW GopherCreateLocator;
1168 alias GopherFindFirstFileW GopherFindFirstFile;
1169 alias GopherOpenFileW GopherOpenFile;
1170 alias GopherGetAttributeW GopherGetAttribute;
1171 alias HttpSendRequestW HttpSendRequest;
1172 alias HttpOpenRequestW HttpOpenRequest;
1173 alias HttpAddRequestHeadersW HttpAddRequestHeaders;
1174 alias HttpQueryInfoW HttpQueryInfo;
1175 alias InternetSetCookieW InternetSetCookie;
1176 alias InternetGetCookieW InternetGetCookie;
1177 alias CreateUrlCacheEntryW CreateUrlCacheEntry;
1178 alias RetrieveUrlCacheEntryStreamW RetrieveUrlCacheEntryStream;
1179 alias FindNextUrlCacheEntryW FindNextUrlCacheEntry;
1180 alias CommitUrlCacheEntryW CommitUrlCacheEntry;
1181 alias GetUrlCacheEntryInfoW GetUrlCacheEntryInfo;
1182 alias SetUrlCacheEntryInfoW SetUrlCacheEntryInfo;
1183 alias FindFirstUrlCacheEntryW FindFirstUrlCacheEntry;
1184 alias RetrieveUrlCacheEntryFileW RetrieveUrlCacheEntryFile;
1185 alias HttpSendRequestExW HttpSendRequestEx;
1186 alias HttpEndRequestW HttpEndRequest;
1187 alias GetUrlCacheGroupAttributeW GetUrlCacheGroupAttribute;
1188 alias SetUrlCacheGroupAttributeW SetUrlCacheGroupAttribute;
1189 } else {
1190 alias URL_COMPONENTSA URL_COMPONENTS;
1191 alias LPURL_COMPONENTSA LPURL_COMPONENTS;
1192 alias GOPHER_FIND_DATAA GOPHER_FIND_DATA;
1193 alias LPGOPHER_FIND_DATAA LPGOPHER_FIND_DATA;
1194 alias INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFO;
1195 alias LPINTERNET_CACHE_ENTRY_INFOA LPINTERNET_CACHE_ENTRY_INFO;
1196 alias INTERNET_BUFFERSA INTERNET_BUFFERS;
1197 alias INTERNET_CACHE_GROUP_INFOA INTERNET_CACHE_GROUP_INFO;
1198 alias LPINTERNET_CACHE_GROUP_INFOA LPINTERNET_CACHE_GROUP_INFO;
1199 alias GopherGetAttributeA GopherGetAttribute;
1200 alias InternetCrackUrlA InternetCrackUrl;
1201 alias InternetCreateUrlA InternetCreateUrl;
1202 alias InternetCanonicalizeUrlA InternetCanonicalizeUrl;
1203 alias InternetCheckConnectionA InternetCheckConnection;
1204 alias InternetCombineUrlA InternetCombineUrl;
1205 alias InternetOpenA InternetOpen;
1206 alias InternetConnectA InternetConnect;
1207 alias InternetOpenUrlA InternetOpenUrl;
1208 alias InternetFindNextFileA InternetFindNextFile;
1209 alias InternetQueryOptionA InternetQueryOption;
1210 alias InternetSetOptionA InternetSetOption;
1211 alias InternetSetOptionExA InternetSetOptionEx;
1212 alias InternetGetLastResponseInfoA InternetGetLastResponseInfo;
1213 alias InternetReadFileExA InternetReadFileEx;
1214 alias FtpFindFirstFileA FtpFindFirstFile;
1215 alias FtpGetFileA FtpGetFile;
1216 alias FtpPutFileA FtpPutFile;
1217 alias FtpDeleteFileA FtpDeleteFile;
1218 alias FtpRenameFileA FtpRenameFile;
1219 alias FtpOpenFileA FtpOpenFile;
1220 alias FtpCreateDirectoryA FtpCreateDirectory;
1221 alias FtpRemoveDirectoryA FtpRemoveDirectory;
1222 alias FtpSetCurrentDirectoryA FtpSetCurrentDirectory;
1223 alias FtpGetCurrentDirectoryA FtpGetCurrentDirectory;
1224 alias FtpCommandA FtpCommand;
1225 alias GopherGetLocatorTypeA GopherGetLocatorType;
1226 alias GopherCreateLocatorA GopherCreateLocator;
1227 alias GopherFindFirstFileA GopherFindFirstFile;
1228 alias GopherOpenFileA GopherOpenFile;
1229 alias HttpSendRequestA HttpSendRequest;
1230 alias HttpOpenRequestA HttpOpenRequest;
1231 alias HttpAddRequestHeadersA HttpAddRequestHeaders;
1232 alias HttpQueryInfoA HttpQueryInfo;
1233 alias InternetSetCookieA InternetSetCookie;
1234 alias InternetGetCookieA InternetGetCookie;
1235 alias CreateUrlCacheEntryA CreateUrlCacheEntry;
1236 alias RetrieveUrlCacheEntryStreamA RetrieveUrlCacheEntryStream;
1237 alias FindNextUrlCacheEntryA FindNextUrlCacheEntry;
1238 alias CommitUrlCacheEntryA CommitUrlCacheEntry;
1239 alias GetUrlCacheEntryInfoA GetUrlCacheEntryInfo;
1240 alias SetUrlCacheEntryInfoA SetUrlCacheEntryInfo;
1241 alias FindFirstUrlCacheEntryA FindFirstUrlCacheEntry;
1242 alias RetrieveUrlCacheEntryFileA RetrieveUrlCacheEntryFile;
1243 alias HttpSendRequestExA HttpSendRequestEx;
1244 alias HttpEndRequestA HttpEndRequest;
1245 alias GetUrlCacheGroupAttributeA GetUrlCacheGroupAttribute;
1246 alias SetUrlCacheGroupAttributeA SetUrlCacheGroupAttribute;
1247 }
1248
1249 alias INTERNET_BUFFERS* LPINTERNET_BUFFERS;
1250