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