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