using System;

// namespace Networking.WinInet
namespace Win32
{
	extension Win32
	{
		// --- Constants ---
		
		public const uint32 DIALENG_OperationComplete = 65536;
		public const uint32 DIALENG_RedialAttempt = 65537;
		public const uint32 DIALENG_RedialWait = 65538;
		public const uint32 INTERNET_INVALID_PORT_NUMBER = 0;
		public const uint32 INTERNET_DEFAULT_FTP_PORT = 21;
		public const uint32 INTERNET_DEFAULT_GOPHER_PORT = 70;
		public const uint32 INTERNET_DEFAULT_SOCKS_PORT = 1080;
		public const uint32 INTERNET_MAX_HOST_NAME_LENGTH = 256;
		public const uint32 INTERNET_MAX_USER_NAME_LENGTH = 128;
		public const uint32 INTERNET_MAX_PASSWORD_LENGTH = 128;
		public const uint32 INTERNET_MAX_PORT_NUMBER_LENGTH = 5;
		public const uint32 INTERNET_MAX_PORT_NUMBER_VALUE = 65535;
		public const uint32 INTERNET_KEEP_ALIVE_UNKNOWN = 4294967295;
		public const uint32 INTERNET_KEEP_ALIVE_ENABLED = 1;
		public const uint32 INTERNET_KEEP_ALIVE_DISABLED = 0;
		public const uint32 INTERNET_REQFLAG_FROM_CACHE = 1;
		public const uint32 INTERNET_REQFLAG_ASYNC = 2;
		public const uint32 INTERNET_REQFLAG_VIA_PROXY = 4;
		public const uint32 INTERNET_REQFLAG_NO_HEADERS = 8;
		public const uint32 INTERNET_REQFLAG_PASSIVE = 16;
		public const uint32 INTERNET_REQFLAG_CACHE_WRITE_DISABLED = 64;
		public const uint32 INTERNET_REQFLAG_NET_TIMEOUT = 128;
		public const uint32 INTERNET_FLAG_IDN_DIRECT = 1;
		public const uint32 INTERNET_FLAG_IDN_PROXY = 2;
		public const uint32 INTERNET_FLAG_RELOAD = 2147483648;
		public const uint32 INTERNET_FLAG_RAW_DATA = 1073741824;
		public const uint32 INTERNET_FLAG_EXISTING_CONNECT = 536870912;
		public const uint32 INTERNET_FLAG_ASYNC = 268435456;
		public const uint32 INTERNET_FLAG_PASSIVE = 134217728;
		public const uint32 INTERNET_FLAG_NO_CACHE_WRITE = 67108864;
		public const uint32 INTERNET_FLAG_DONT_CACHE = 67108864;
		public const uint32 INTERNET_FLAG_MAKE_PERSISTENT = 33554432;
		public const uint32 INTERNET_FLAG_FROM_CACHE = 16777216;
		public const uint32 INTERNET_FLAG_OFFLINE = 16777216;
		public const uint32 INTERNET_FLAG_SECURE = 8388608;
		public const uint32 INTERNET_FLAG_KEEP_CONNECTION = 4194304;
		public const uint32 INTERNET_FLAG_NO_AUTO_REDIRECT = 2097152;
		public const uint32 INTERNET_FLAG_READ_PREFETCH = 1048576;
		public const uint32 INTERNET_FLAG_NO_COOKIES = 524288;
		public const uint32 INTERNET_FLAG_NO_AUTH = 262144;
		public const uint32 INTERNET_FLAG_CACHE_IF_NET_FAIL = 65536;
		public const uint32 INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = 32768;
		public const uint32 INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = 16384;
		public const uint32 INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = 8192;
		public const uint32 INTERNET_FLAG_IGNORE_CERT_CN_INVALID = 4096;
		public const uint32 INTERNET_FLAG_RESYNCHRONIZE = 2048;
		public const uint32 INTERNET_FLAG_HYPERLINK = 1024;
		public const uint32 INTERNET_FLAG_NO_UI = 512;
		public const uint32 INTERNET_FLAG_PRAGMA_NOCACHE = 256;
		public const uint32 INTERNET_FLAG_CACHE_ASYNC = 128;
		public const uint32 INTERNET_FLAG_FORMS_SUBMIT = 64;
		public const uint32 INTERNET_FLAG_FWD_BACK = 32;
		public const uint32 INTERNET_FLAG_NEED_FILE = 16;
		public const uint32 INTERNET_FLAG_MUST_CACHE_REQUEST = 16;
		public const uint32 INTERNET_ERROR_MASK_INSERT_CDROM = 1;
		public const uint32 INTERNET_ERROR_MASK_COMBINED_SEC_CERT = 2;
		public const uint32 INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG = 4;
		public const uint32 INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = 8;
		public const uint32 WININET_API_FLAG_ASYNC = 1;
		public const uint32 WININET_API_FLAG_SYNC = 4;
		public const uint32 WININET_API_FLAG_USE_CONTEXT = 8;
		public const uint32 INTERNET_NO_CALLBACK = 0;
		public const uint32 IDSI_FLAG_KEEP_ALIVE = 1;
		public const uint32 IDSI_FLAG_SECURE = 2;
		public const uint32 IDSI_FLAG_PROXY = 4;
		public const uint32 IDSI_FLAG_TUNNEL = 8;
		public const uint32 INTERNET_PER_CONN_FLAGS_UI = 10;
		public const uint32 PROXY_TYPE_DIRECT = 1;
		public const uint32 PROXY_TYPE_PROXY = 2;
		public const uint32 PROXY_TYPE_AUTO_PROXY_URL = 4;
		public const uint32 PROXY_TYPE_AUTO_DETECT = 8;
		public const uint32 AUTO_PROXY_FLAG_USER_SET = 1;
		public const uint32 AUTO_PROXY_FLAG_ALWAYS_DETECT = 2;
		public const uint32 AUTO_PROXY_FLAG_DETECTION_RUN = 4;
		public const uint32 AUTO_PROXY_FLAG_MIGRATED = 8;
		public const uint32 AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT = 16;
		public const uint32 AUTO_PROXY_FLAG_CACHE_INIT_RUN = 32;
		public const uint32 AUTO_PROXY_FLAG_DETECTION_SUSPECT = 64;
		public const uint32 ISO_FORCE_DISCONNECTED = 1;
		public const uint32 INTERNET_RFC1123_FORMAT = 0;
		public const uint32 INTERNET_RFC1123_BUFSIZE = 30;
		public const uint32 ICU_USERNAME = 1073741824;
		public const uint32 INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4;
		public const uint32 INTERNET_SERVICE_FTP = 1;
		public const uint32 INTERNET_SERVICE_GOPHER = 2;
		public const uint32 INTERNET_SERVICE_HTTP = 3;
		public const uint32 IRF_ASYNC = 1;
		public const uint32 IRF_SYNC = 4;
		public const uint32 IRF_USE_CONTEXT = 8;
		public const uint32 IRF_NO_WAIT = 8;
		public const uint32 ISO_GLOBAL = 1;
		public const uint32 ISO_REGISTRY = 2;
		public const uint32 INTERNET_OPTION_CALLBACK = 1;
		public const uint32 INTERNET_OPTION_CONNECT_TIMEOUT = 2;
		public const uint32 INTERNET_OPTION_CONNECT_RETRIES = 3;
		public const uint32 INTERNET_OPTION_CONNECT_BACKOFF = 4;
		public const uint32 INTERNET_OPTION_SEND_TIMEOUT = 5;
		public const uint32 INTERNET_OPTION_CONTROL_SEND_TIMEOUT = 5;
		public const uint32 INTERNET_OPTION_RECEIVE_TIMEOUT = 6;
		public const uint32 INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT = 6;
		public const uint32 INTERNET_OPTION_DATA_SEND_TIMEOUT = 7;
		public const uint32 INTERNET_OPTION_DATA_RECEIVE_TIMEOUT = 8;
		public const uint32 INTERNET_OPTION_HANDLE_TYPE = 9;
		public const uint32 INTERNET_OPTION_LISTEN_TIMEOUT = 11;
		public const uint32 INTERNET_OPTION_READ_BUFFER_SIZE = 12;
		public const uint32 INTERNET_OPTION_WRITE_BUFFER_SIZE = 13;
		public const uint32 INTERNET_OPTION_ASYNC_ID = 15;
		public const uint32 INTERNET_OPTION_ASYNC_PRIORITY = 16;
		public const uint32 INTERNET_OPTION_PARENT_HANDLE = 21;
		public const uint32 INTERNET_OPTION_KEEP_CONNECTION = 22;
		public const uint32 INTERNET_OPTION_REQUEST_FLAGS = 23;
		public const uint32 INTERNET_OPTION_EXTENDED_ERROR = 24;
		public const uint32 INTERNET_OPTION_OFFLINE_MODE = 26;
		public const uint32 INTERNET_OPTION_CACHE_STREAM_HANDLE = 27;
		public const uint32 INTERNET_OPTION_USERNAME = 28;
		public const uint32 INTERNET_OPTION_PASSWORD = 29;
		public const uint32 INTERNET_OPTION_ASYNC = 30;
		public const uint32 INTERNET_OPTION_SECURITY_FLAGS = 31;
		public const uint32 INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT = 32;
		public const uint32 INTERNET_OPTION_DATAFILE_NAME = 33;
		public const uint32 INTERNET_OPTION_URL = 34;
		public const uint32 INTERNET_OPTION_SECURITY_CERTIFICATE = 35;
		public const uint32 INTERNET_OPTION_SECURITY_KEY_BITNESS = 36;
		public const uint32 INTERNET_OPTION_REFRESH = 37;
		public const uint32 INTERNET_OPTION_PROXY = 38;
		public const uint32 INTERNET_OPTION_SETTINGS_CHANGED = 39;
		public const uint32 INTERNET_OPTION_VERSION = 40;
		public const uint32 INTERNET_OPTION_USER_AGENT = 41;
		public const uint32 INTERNET_OPTION_END_BROWSER_SESSION = 42;
		public const uint32 INTERNET_OPTION_PROXY_USERNAME = 43;
		public const uint32 INTERNET_OPTION_PROXY_PASSWORD = 44;
		public const uint32 INTERNET_OPTION_CONTEXT_VALUE = 45;
		public const uint32 INTERNET_OPTION_CONNECT_LIMIT = 46;
		public const uint32 INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT = 47;
		public const uint32 INTERNET_OPTION_POLICY = 48;
		public const uint32 INTERNET_OPTION_DISCONNECTED_TIMEOUT = 49;
		public const uint32 INTERNET_OPTION_CONNECTED_STATE = 50;
		public const uint32 INTERNET_OPTION_IDLE_STATE = 51;
		public const uint32 INTERNET_OPTION_OFFLINE_SEMANTICS = 52;
		public const uint32 INTERNET_OPTION_SECONDARY_CACHE_KEY = 53;
		public const uint32 INTERNET_OPTION_CALLBACK_FILTER = 54;
		public const uint32 INTERNET_OPTION_CONNECT_TIME = 55;
		public const uint32 INTERNET_OPTION_SEND_THROUGHPUT = 56;
		public const uint32 INTERNET_OPTION_RECEIVE_THROUGHPUT = 57;
		public const uint32 INTERNET_OPTION_REQUEST_PRIORITY = 58;
		public const uint32 INTERNET_OPTION_HTTP_VERSION = 59;
		public const uint32 INTERNET_OPTION_RESET_URLCACHE_SESSION = 60;
		public const uint32 INTERNET_OPTION_ERROR_MASK = 62;
		public const uint32 INTERNET_OPTION_FROM_CACHE_TIMEOUT = 63;
		public const uint32 INTERNET_OPTION_BYPASS_EDITED_ENTRY = 64;
		public const uint32 INTERNET_OPTION_HTTP_DECODING = 65;
		public const uint32 INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO = 67;
		public const uint32 INTERNET_OPTION_CODEPAGE = 68;
		public const uint32 INTERNET_OPTION_CACHE_TIMESTAMPS = 69;
		public const uint32 INTERNET_OPTION_DISABLE_AUTODIAL = 70;
		public const uint32 INTERNET_OPTION_MAX_CONNS_PER_SERVER = 73;
		public const uint32 INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER = 74;
		public const uint32 INTERNET_OPTION_PER_CONNECTION_OPTION = 75;
		public const uint32 INTERNET_OPTION_DIGEST_AUTH_UNLOAD = 76;
		public const uint32 INTERNET_OPTION_IGNORE_OFFLINE = 77;
		public const uint32 INTERNET_OPTION_IDENTITY = 78;
		public const uint32 INTERNET_OPTION_REMOVE_IDENTITY = 79;
		public const uint32 INTERNET_OPTION_ALTER_IDENTITY = 80;
		public const uint32 INTERNET_OPTION_SUPPRESS_BEHAVIOR = 81;
		public const uint32 INTERNET_OPTION_AUTODIAL_MODE = 82;
		public const uint32 INTERNET_OPTION_AUTODIAL_CONNECTION = 83;
		public const uint32 INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84;
		public const uint32 INTERNET_OPTION_AUTH_FLAGS = 85;
		public const uint32 INTERNET_OPTION_COOKIES_3RD_PARTY = 86;
		public const uint32 INTERNET_OPTION_DISABLE_PASSPORT_AUTH = 87;
		public const uint32 INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY = 88;
		public const uint32 INTERNET_OPTION_EXEMPT_CONNECTION_LIMIT = 89;
		public const uint32 INTERNET_OPTION_ENABLE_PASSPORT_AUTH = 90;
		public const uint32 INTERNET_OPTION_HIBERNATE_INACTIVE_WORKER_THREADS = 91;
		public const uint32 INTERNET_OPTION_ACTIVATE_WORKER_THREADS = 92;
		public const uint32 INTERNET_OPTION_RESTORE_WORKER_THREAD_DEFAULTS = 93;
		public const uint32 INTERNET_OPTION_SOCKET_SEND_BUFFER_LENGTH = 94;
		public const uint32 INTERNET_OPTION_PROXY_SETTINGS_CHANGED = 95;
		public const uint32 INTERNET_OPTION_DATAFILE_EXT = 96;
		public const uint32 INTERNET_OPTION_CODEPAGE_PATH = 100;
		public const uint32 INTERNET_OPTION_CODEPAGE_EXTRA = 101;
		public const uint32 INTERNET_OPTION_IDN = 102;
		public const uint32 INTERNET_OPTION_MAX_CONNS_PER_PROXY = 103;
		public const uint32 INTERNET_OPTION_SUPPRESS_SERVER_AUTH = 104;
		public const uint32 INTERNET_OPTION_SERVER_CERT_CHAIN_CONTEXT = 105;
		public const uint32 INTERNET_OPTION_ENABLE_REDIRECT_CACHE_READ = 122;
		public const uint32 INTERNET_OPTION_COMPRESSED_CONTENT_LENGTH = 147;
		public const uint32 INTERNET_OPTION_ENABLE_HTTP_PROTOCOL = 148;
		public const uint32 INTERNET_OPTION_HTTP_PROTOCOL_USED = 149;
		public const uint32 INTERNET_OPTION_ENCODE_EXTRA = 155;
		public const uint32 INTERNET_OPTION_HSTS = 157;
		public const uint32 INTERNET_OPTION_ENTERPRISE_CONTEXT = 159;
		public const uint32 INTERNET_OPTION_CONNECTION_FILTER = 162;
		public const uint32 INTERNET_OPTION_REFERER_TOKEN_BINDING_HOSTNAME = 163;
		public const uint32 INTERNET_OPTION_TOKEN_BINDING_PUBLIC_KEY = 181;
		public const uint32 INTERNET_OPTION_COOKIES_SAME_SITE_LEVEL = 187;
		public const uint32 INTERNET_FIRST_OPTION = 1;
		public const uint32 INTERNET_LAST_OPTION = 187;
		public const uint32 INTERNET_PRIORITY_FOREGROUND = 1000;
		public const uint32 HTTP_COOKIES_SAME_SITE_LEVEL_UNKNOWN = 0;
		public const uint32 HTTP_COOKIES_SAME_SITE_LEVEL_SAME_SITE = 1;
		public const uint32 HTTP_COOKIES_SAME_SITE_LEVEL_CROSS_SITE_LAX = 2;
		public const uint32 HTTP_COOKIES_SAME_SITE_LEVEL_CROSS_SITE = 3;
		public const uint32 HTTP_COOKIES_SAME_SITE_LEVEL_MAX = 3;
		public const uint32 HTTP_PROTOCOL_FLAG_HTTP2 = 2;
		public const uint32 HTTP_PROTOCOL_MASK = 2;
		public const uint32 INTERNET_HANDLE_TYPE_INTERNET = 1;
		public const uint32 INTERNET_HANDLE_TYPE_CONNECT_FTP = 2;
		public const uint32 INTERNET_HANDLE_TYPE_CONNECT_GOPHER = 3;
		public const uint32 INTERNET_HANDLE_TYPE_CONNECT_HTTP = 4;
		public const uint32 INTERNET_HANDLE_TYPE_FTP_FIND = 5;
		public const uint32 INTERNET_HANDLE_TYPE_FTP_FIND_HTML = 6;
		public const uint32 INTERNET_HANDLE_TYPE_FTP_FILE = 7;
		public const uint32 INTERNET_HANDLE_TYPE_FTP_FILE_HTML = 8;
		public const uint32 INTERNET_HANDLE_TYPE_GOPHER_FIND = 9;
		public const uint32 INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML = 10;
		public const uint32 INTERNET_HANDLE_TYPE_GOPHER_FILE = 11;
		public const uint32 INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML = 12;
		public const uint32 INTERNET_HANDLE_TYPE_HTTP_REQUEST = 13;
		public const uint32 INTERNET_HANDLE_TYPE_FILE_REQUEST = 14;
		public const uint32 AUTH_FLAG_DISABLE_NEGOTIATE = 1;
		public const uint32 AUTH_FLAG_ENABLE_NEGOTIATE = 2;
		public const uint32 AUTH_FLAG_DISABLE_BASIC_CLEARCHANNEL = 4;
		public const uint32 AUTH_FLAG_DISABLE_SERVER_AUTH = 8;
		public const uint32 SECURITY_FLAG_UNKNOWNBIT = 2147483648;
		public const uint32 SECURITY_FLAG_FORTEZZA = 134217728;
		public const uint32 SECURITY_FLAG_NORMALBITNESS = 268435456;
		public const uint32 SECURITY_FLAG_SSL = 2;
		public const uint32 SECURITY_FLAG_SSL3 = 4;
		public const uint32 SECURITY_FLAG_PCT = 8;
		public const uint32 SECURITY_FLAG_PCT4 = 16;
		public const uint32 SECURITY_FLAG_IETFSSL4 = 32;
		public const uint32 SECURITY_FLAG_40BIT = 268435456;
		public const uint32 SECURITY_FLAG_128BIT = 536870912;
		public const uint32 SECURITY_FLAG_56BIT = 1073741824;
		public const uint32 SECURITY_FLAG_IGNORE_REVOCATION = 128;
		public const uint32 SECURITY_FLAG_IGNORE_WRONG_USAGE = 512;
		public const uint32 SECURITY_FLAG_IGNORE_WEAK_SIGNATURE = 65536;
		public const uint32 SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS = 16384;
		public const uint32 SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP = 32768;
		public const uint32 SECURITY_FLAG_OPT_IN_WEAK_SIGNATURE = 131072;
		public const uint32 AUTODIAL_MODE_NEVER = 1;
		public const uint32 AUTODIAL_MODE_ALWAYS = 2;
		public const uint32 AUTODIAL_MODE_NO_NETWORK_PRESENT = 4;
		public const uint32 INTERNET_STATUS_RESOLVING_NAME = 10;
		public const uint32 INTERNET_STATUS_NAME_RESOLVED = 11;
		public const uint32 INTERNET_STATUS_CONNECTING_TO_SERVER = 20;
		public const uint32 INTERNET_STATUS_CONNECTED_TO_SERVER = 21;
		public const uint32 INTERNET_STATUS_SENDING_REQUEST = 30;
		public const uint32 INTERNET_STATUS_REQUEST_SENT = 31;
		public const uint32 INTERNET_STATUS_RECEIVING_RESPONSE = 40;
		public const uint32 INTERNET_STATUS_RESPONSE_RECEIVED = 41;
		public const uint32 INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42;
		public const uint32 INTERNET_STATUS_PREFETCH = 43;
		public const uint32 INTERNET_STATUS_CLOSING_CONNECTION = 50;
		public const uint32 INTERNET_STATUS_CONNECTION_CLOSED = 51;
		public const uint32 INTERNET_STATUS_HANDLE_CREATED = 60;
		public const uint32 INTERNET_STATUS_HANDLE_CLOSING = 70;
		public const uint32 INTERNET_STATUS_DETECTING_PROXY = 80;
		public const uint32 INTERNET_STATUS_REQUEST_COMPLETE = 100;
		public const uint32 INTERNET_STATUS_REDIRECT = 110;
		public const uint32 INTERNET_STATUS_INTERMEDIATE_RESPONSE = 120;
		public const uint32 INTERNET_STATUS_USER_INPUT_REQUIRED = 140;
		public const uint32 INTERNET_STATUS_STATE_CHANGE = 200;
		public const uint32 INTERNET_STATUS_COOKIE_SENT = 320;
		public const uint32 INTERNET_STATUS_COOKIE_RECEIVED = 321;
		public const uint32 INTERNET_STATUS_PRIVACY_IMPACTED = 324;
		public const uint32 INTERNET_STATUS_P3P_HEADER = 325;
		public const uint32 INTERNET_STATUS_P3P_POLICYREF = 326;
		public const uint32 INTERNET_STATUS_COOKIE_HISTORY = 327;
		public const uint32 MAX_GOPHER_DISPLAY_TEXT = 128;
		public const uint32 MAX_GOPHER_SELECTOR_TEXT = 256;
		public const uint32 MAX_GOPHER_HOST_NAME = 256;
		public const uint32 MAX_GOPHER_CATEGORY_NAME = 128;
		public const uint32 MAX_GOPHER_ATTRIBUTE_NAME = 128;
		public const uint32 MIN_GOPHER_ATTRIBUTE_LENGTH = 256;
		public const uint32 GOPHER_ATTRIBUTE_ID_BASE = 2882325504;
		public const uint32 GOPHER_CATEGORY_ID_ALL = 2882325505;
		public const uint32 GOPHER_CATEGORY_ID_INFO = 2882325506;
		public const uint32 GOPHER_CATEGORY_ID_ADMIN = 2882325507;
		public const uint32 GOPHER_CATEGORY_ID_VIEWS = 2882325508;
		public const uint32 GOPHER_CATEGORY_ID_ABSTRACT = 2882325509;
		public const uint32 GOPHER_CATEGORY_ID_VERONICA = 2882325510;
		public const uint32 GOPHER_CATEGORY_ID_ASK = 2882325511;
		public const uint32 GOPHER_CATEGORY_ID_UNKNOWN = 2882325512;
		public const uint32 GOPHER_ATTRIBUTE_ID_ALL = 2882325513;
		public const uint32 GOPHER_ATTRIBUTE_ID_ADMIN = 2882325514;
		public const uint32 GOPHER_ATTRIBUTE_ID_MOD_DATE = 2882325515;
		public const uint32 GOPHER_ATTRIBUTE_ID_TTL = 2882325516;
		public const uint32 GOPHER_ATTRIBUTE_ID_SCORE = 2882325517;
		public const uint32 GOPHER_ATTRIBUTE_ID_RANGE = 2882325518;
		public const uint32 GOPHER_ATTRIBUTE_ID_SITE = 2882325519;
		public const uint32 GOPHER_ATTRIBUTE_ID_ORG = 2882325520;
		public const uint32 GOPHER_ATTRIBUTE_ID_LOCATION = 2882325521;
		public const uint32 GOPHER_ATTRIBUTE_ID_GEOG = 2882325522;
		public const uint32 GOPHER_ATTRIBUTE_ID_TIMEZONE = 2882325523;
		public const uint32 GOPHER_ATTRIBUTE_ID_PROVIDER = 2882325524;
		public const uint32 GOPHER_ATTRIBUTE_ID_VERSION = 2882325525;
		public const uint32 GOPHER_ATTRIBUTE_ID_ABSTRACT = 2882325526;
		public const uint32 GOPHER_ATTRIBUTE_ID_VIEW = 2882325527;
		public const uint32 GOPHER_ATTRIBUTE_ID_TREEWALK = 2882325528;
		public const uint32 GOPHER_ATTRIBUTE_ID_UNKNOWN = 2882325529;
		public const uint32 HTTP_MAJOR_VERSION = 1;
		public const uint32 HTTP_MINOR_VERSION = 0;
		public const uint32 HTTP_QUERY_MIME_VERSION = 0;
		public const uint32 HTTP_QUERY_CONTENT_TYPE = 1;
		public const uint32 HTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2;
		public const uint32 HTTP_QUERY_CONTENT_ID = 3;
		public const uint32 HTTP_QUERY_CONTENT_DESCRIPTION = 4;
		public const uint32 HTTP_QUERY_CONTENT_LENGTH = 5;
		public const uint32 HTTP_QUERY_CONTENT_LANGUAGE = 6;
		public const uint32 HTTP_QUERY_ALLOW = 7;
		public const uint32 HTTP_QUERY_PUBLIC = 8;
		public const uint32 HTTP_QUERY_DATE = 9;
		public const uint32 HTTP_QUERY_EXPIRES = 10;
		public const uint32 HTTP_QUERY_LAST_MODIFIED = 11;
		public const uint32 HTTP_QUERY_MESSAGE_ID = 12;
		public const uint32 HTTP_QUERY_URI = 13;
		public const uint32 HTTP_QUERY_DERIVED_FROM = 14;
		public const uint32 HTTP_QUERY_COST = 15;
		public const uint32 HTTP_QUERY_LINK = 16;
		public const uint32 HTTP_QUERY_PRAGMA = 17;
		public const uint32 HTTP_QUERY_VERSION = 18;
		public const uint32 HTTP_QUERY_STATUS_CODE = 19;
		public const uint32 HTTP_QUERY_STATUS_TEXT = 20;
		public const uint32 HTTP_QUERY_RAW_HEADERS = 21;
		public const uint32 HTTP_QUERY_RAW_HEADERS_CRLF = 22;
		public const uint32 HTTP_QUERY_CONNECTION = 23;
		public const uint32 HTTP_QUERY_ACCEPT = 24;
		public const uint32 HTTP_QUERY_ACCEPT_CHARSET = 25;
		public const uint32 HTTP_QUERY_ACCEPT_ENCODING = 26;
		public const uint32 HTTP_QUERY_ACCEPT_LANGUAGE = 27;
		public const uint32 HTTP_QUERY_AUTHORIZATION = 28;
		public const uint32 HTTP_QUERY_CONTENT_ENCODING = 29;
		public const uint32 HTTP_QUERY_FORWARDED = 30;
		public const uint32 HTTP_QUERY_FROM = 31;
		public const uint32 HTTP_QUERY_IF_MODIFIED_SINCE = 32;
		public const uint32 HTTP_QUERY_LOCATION = 33;
		public const uint32 HTTP_QUERY_ORIG_URI = 34;
		public const uint32 HTTP_QUERY_REFERER = 35;
		public const uint32 HTTP_QUERY_RETRY_AFTER = 36;
		public const uint32 HTTP_QUERY_SERVER = 37;
		public const uint32 HTTP_QUERY_TITLE = 38;
		public const uint32 HTTP_QUERY_USER_AGENT = 39;
		public const uint32 HTTP_QUERY_WWW_AUTHENTICATE = 40;
		public const uint32 HTTP_QUERY_PROXY_AUTHENTICATE = 41;
		public const uint32 HTTP_QUERY_ACCEPT_RANGES = 42;
		public const uint32 HTTP_QUERY_SET_COOKIE = 43;
		public const uint32 HTTP_QUERY_COOKIE = 44;
		public const uint32 HTTP_QUERY_REQUEST_METHOD = 45;
		public const uint32 HTTP_QUERY_REFRESH = 46;
		public const uint32 HTTP_QUERY_CONTENT_DISPOSITION = 47;
		public const uint32 HTTP_QUERY_AGE = 48;
		public const uint32 HTTP_QUERY_CACHE_CONTROL = 49;
		public const uint32 HTTP_QUERY_CONTENT_BASE = 50;
		public const uint32 HTTP_QUERY_CONTENT_LOCATION = 51;
		public const uint32 HTTP_QUERY_CONTENT_MD5 = 52;
		public const uint32 HTTP_QUERY_CONTENT_RANGE = 53;
		public const uint32 HTTP_QUERY_ETAG = 54;
		public const uint32 HTTP_QUERY_HOST = 55;
		public const uint32 HTTP_QUERY_IF_MATCH = 56;
		public const uint32 HTTP_QUERY_IF_NONE_MATCH = 57;
		public const uint32 HTTP_QUERY_IF_RANGE = 58;
		public const uint32 HTTP_QUERY_IF_UNMODIFIED_SINCE = 59;
		public const uint32 HTTP_QUERY_MAX_FORWARDS = 60;
		public const uint32 HTTP_QUERY_PROXY_AUTHORIZATION = 61;
		public const uint32 HTTP_QUERY_RANGE = 62;
		public const uint32 HTTP_QUERY_TRANSFER_ENCODING = 63;
		public const uint32 HTTP_QUERY_UPGRADE = 64;
		public const uint32 HTTP_QUERY_VARY = 65;
		public const uint32 HTTP_QUERY_VIA = 66;
		public const uint32 HTTP_QUERY_WARNING = 67;
		public const uint32 HTTP_QUERY_EXPECT = 68;
		public const uint32 HTTP_QUERY_PROXY_CONNECTION = 69;
		public const uint32 HTTP_QUERY_UNLESS_MODIFIED_SINCE = 70;
		public const uint32 HTTP_QUERY_ECHO_REQUEST = 71;
		public const uint32 HTTP_QUERY_ECHO_REPLY = 72;
		public const uint32 HTTP_QUERY_ECHO_HEADERS = 73;
		public const uint32 HTTP_QUERY_ECHO_HEADERS_CRLF = 74;
		public const uint32 HTTP_QUERY_PROXY_SUPPORT = 75;
		public const uint32 HTTP_QUERY_AUTHENTICATION_INFO = 76;
		public const uint32 HTTP_QUERY_PASSPORT_URLS = 77;
		public const uint32 HTTP_QUERY_PASSPORT_CONFIG = 78;
		public const uint32 HTTP_QUERY_X_CONTENT_TYPE_OPTIONS = 79;
		public const uint32 HTTP_QUERY_P3P = 80;
		public const uint32 HTTP_QUERY_X_P2P_PEERDIST = 81;
		public const uint32 HTTP_QUERY_TRANSLATE = 82;
		public const uint32 HTTP_QUERY_X_UA_COMPATIBLE = 83;
		public const uint32 HTTP_QUERY_DEFAULT_STYLE = 84;
		public const uint32 HTTP_QUERY_X_FRAME_OPTIONS = 85;
		public const uint32 HTTP_QUERY_X_XSS_PROTECTION = 86;
		public const uint32 HTTP_QUERY_SET_COOKIE2 = 87;
		public const uint32 HTTP_QUERY_DO_NOT_TRACK = 88;
		public const uint32 HTTP_QUERY_KEEP_ALIVE = 89;
		public const uint32 HTTP_QUERY_HTTP2_SETTINGS = 90;
		public const uint32 HTTP_QUERY_STRICT_TRANSPORT_SECURITY = 91;
		public const uint32 HTTP_QUERY_TOKEN_BINDING = 92;
		public const uint32 HTTP_QUERY_INCLUDE_REFERRED_TOKEN_BINDING_ID = 93;
		public const uint32 HTTP_QUERY_INCLUDE_REFERER_TOKEN_BINDING_ID = 93;
		public const uint32 HTTP_QUERY_PUBLIC_KEY_PINS = 94;
		public const uint32 HTTP_QUERY_PUBLIC_KEY_PINS_REPORT_ONLY = 95;
		public const uint32 HTTP_QUERY_MAX = 95;
		public const uint32 HTTP_QUERY_CUSTOM = 65535;
		public const uint32 HTTP_QUERY_FLAG_REQUEST_HEADERS = 2147483648;
		public const uint32 HTTP_QUERY_FLAG_SYSTEMTIME = 1073741824;
		public const uint32 HTTP_QUERY_FLAG_NUMBER = 536870912;
		public const uint32 HTTP_QUERY_FLAG_COALESCE = 268435456;
		public const uint32 HTTP_QUERY_FLAG_NUMBER64 = 134217728;
		public const uint32 HTTP_QUERY_FLAG_COALESCE_WITH_COMMA = 67108864;
		public const uint32 HTTP_STATUS_MISDIRECTED_REQUEST = 421;
		public const uint32 HTTP_ADDREQ_INDEX_MASK = 65535;
		public const uint32 HTTP_ADDREQ_FLAGS_MASK = 4294901760;
		public const uint32 HSR_ASYNC = 1;
		public const uint32 HSR_SYNC = 4;
		public const uint32 HSR_USE_CONTEXT = 8;
		public const uint32 HSR_INITIATE = 8;
		public const uint32 HSR_DOWNLOAD = 16;
		public const uint32 HSR_CHUNKED = 32;
		public const uint32 INTERNET_COOKIE_IS_SECURE = 1;
		public const uint32 INTERNET_COOKIE_IS_SESSION = 2;
		public const uint32 INTERNET_COOKIE_PROMPT_REQUIRED = 32;
		public const uint32 INTERNET_COOKIE_EVALUATE_P3P = 64;
		public const uint32 INTERNET_COOKIE_APPLY_P3P = 128;
		public const uint32 INTERNET_COOKIE_P3P_ENABLED = 256;
		public const uint32 INTERNET_COOKIE_IS_RESTRICTED = 512;
		public const uint32 INTERNET_COOKIE_IE6 = 1024;
		public const uint32 INTERNET_COOKIE_IS_LEGACY = 2048;
		public const uint32 INTERNET_COOKIE_NON_SCRIPT = 4096;
		public const uint32 INTERNET_COOKIE_HOST_ONLY = 16384;
		public const uint32 INTERNET_COOKIE_APPLY_HOST_ONLY = 32768;
		public const uint32 INTERNET_COOKIE_HOST_ONLY_APPLIED = 524288;
		public const uint32 INTERNET_COOKIE_SAME_SITE_STRICT = 1048576;
		public const uint32 INTERNET_COOKIE_SAME_SITE_LAX = 2097152;
		public const uint32 INTERNET_COOKIE_SAME_SITE_LEVEL_CROSS_SITE = 4194304;
		public const uint32 FLAG_ICC_FORCE_CONNECTION = 1;
		public const uint32 FLAGS_ERROR_UI_FILTER_FOR_ERRORS = 1;
		public const uint32 FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = 2;
		public const uint32 FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = 4;
		public const uint32 FLAGS_ERROR_UI_FLAGS_NO_UI = 8;
		public const uint32 FLAGS_ERROR_UI_SERIALIZE_DIALOGS = 16;
		public const uint32 INTERNET_ERROR_BASE = 12000;
		public const uint32 ERROR_INTERNET_OUT_OF_HANDLES = 12001;
		public const uint32 ERROR_INTERNET_TIMEOUT = 12002;
		public const uint32 ERROR_INTERNET_EXTENDED_ERROR = 12003;
		public const uint32 ERROR_INTERNET_INTERNAL_ERROR = 12004;
		public const uint32 ERROR_INTERNET_INVALID_URL = 12005;
		public const uint32 ERROR_INTERNET_UNRECOGNIZED_SCHEME = 12006;
		public const uint32 ERROR_INTERNET_NAME_NOT_RESOLVED = 12007;
		public const uint32 ERROR_INTERNET_PROTOCOL_NOT_FOUND = 12008;
		public const uint32 ERROR_INTERNET_INVALID_OPTION = 12009;
		public const uint32 ERROR_INTERNET_BAD_OPTION_LENGTH = 12010;
		public const uint32 ERROR_INTERNET_OPTION_NOT_SETTABLE = 12011;
		public const uint32 ERROR_INTERNET_SHUTDOWN = 12012;
		public const uint32 ERROR_INTERNET_INCORRECT_USER_NAME = 12013;
		public const uint32 ERROR_INTERNET_INCORRECT_PASSWORD = 12014;
		public const uint32 ERROR_INTERNET_LOGIN_FAILURE = 12015;
		public const uint32 ERROR_INTERNET_INVALID_OPERATION = 12016;
		public const uint32 ERROR_INTERNET_OPERATION_CANCELLED = 12017;
		public const uint32 ERROR_INTERNET_INCORRECT_HANDLE_TYPE = 12018;
		public const uint32 ERROR_INTERNET_INCORRECT_HANDLE_STATE = 12019;
		public const uint32 ERROR_INTERNET_NOT_PROXY_REQUEST = 12020;
		public const uint32 ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND = 12021;
		public const uint32 ERROR_INTERNET_BAD_REGISTRY_PARAMETER = 12022;
		public const uint32 ERROR_INTERNET_NO_DIRECT_ACCESS = 12023;
		public const uint32 ERROR_INTERNET_NO_CONTEXT = 12024;
		public const uint32 ERROR_INTERNET_NO_CALLBACK = 12025;
		public const uint32 ERROR_INTERNET_REQUEST_PENDING = 12026;
		public const uint32 ERROR_INTERNET_INCORRECT_FORMAT = 12027;
		public const uint32 ERROR_INTERNET_ITEM_NOT_FOUND = 12028;
		public const uint32 ERROR_INTERNET_CANNOT_CONNECT = 12029;
		public const uint32 ERROR_INTERNET_CONNECTION_ABORTED = 12030;
		public const uint32 ERROR_INTERNET_CONNECTION_RESET = 12031;
		public const uint32 ERROR_INTERNET_FORCE_RETRY = 12032;
		public const uint32 ERROR_INTERNET_INVALID_PROXY_REQUEST = 12033;
		public const uint32 ERROR_INTERNET_NEED_UI = 12034;
		public const uint32 ERROR_INTERNET_HANDLE_EXISTS = 12036;
		public const uint32 ERROR_INTERNET_SEC_CERT_DATE_INVALID = 12037;
		public const uint32 ERROR_INTERNET_SEC_CERT_CN_INVALID = 12038;
		public const uint32 ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR = 12039;
		public const uint32 ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR = 12040;
		public const uint32 ERROR_INTERNET_MIXED_SECURITY = 12041;
		public const uint32 ERROR_INTERNET_CHG_POST_IS_NON_SECURE = 12042;
		public const uint32 ERROR_INTERNET_POST_IS_NON_SECURE = 12043;
		public const uint32 ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED = 12044;
		public const uint32 ERROR_INTERNET_INVALID_CA = 12045;
		public const uint32 ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP = 12046;
		public const uint32 ERROR_INTERNET_ASYNC_THREAD_FAILED = 12047;
		public const uint32 ERROR_INTERNET_REDIRECT_SCHEME_CHANGE = 12048;
		public const uint32 ERROR_INTERNET_DIALOG_PENDING = 12049;
		public const uint32 ERROR_INTERNET_RETRY_DIALOG = 12050;
		public const uint32 ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR = 12052;
		public const uint32 ERROR_INTERNET_INSERT_CDROM = 12053;
		public const uint32 ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED = 12054;
		public const uint32 ERROR_INTERNET_SEC_CERT_ERRORS = 12055;
		public const uint32 ERROR_INTERNET_SEC_CERT_NO_REV = 12056;
		public const uint32 ERROR_INTERNET_SEC_CERT_REV_FAILED = 12057;
		public const uint32 ERROR_HTTP_HSTS_REDIRECT_REQUIRED = 12060;
		public const uint32 ERROR_INTERNET_SEC_CERT_WEAK_SIGNATURE = 12062;
		public const uint32 ERROR_FTP_TRANSFER_IN_PROGRESS = 12110;
		public const uint32 ERROR_FTP_DROPPED = 12111;
		public const uint32 ERROR_FTP_NO_PASSIVE_MODE = 12112;
		public const uint32 ERROR_GOPHER_PROTOCOL_ERROR = 12130;
		public const uint32 ERROR_GOPHER_NOT_FILE = 12131;
		public const uint32 ERROR_GOPHER_DATA_ERROR = 12132;
		public const uint32 ERROR_GOPHER_END_OF_DATA = 12133;
		public const uint32 ERROR_GOPHER_INVALID_LOCATOR = 12134;
		public const uint32 ERROR_GOPHER_INCORRECT_LOCATOR_TYPE = 12135;
		public const uint32 ERROR_GOPHER_NOT_GOPHER_PLUS = 12136;
		public const uint32 ERROR_GOPHER_ATTRIBUTE_NOT_FOUND = 12137;
		public const uint32 ERROR_GOPHER_UNKNOWN_LOCATOR = 12138;
		public const uint32 ERROR_HTTP_HEADER_NOT_FOUND = 12150;
		public const uint32 ERROR_HTTP_DOWNLEVEL_SERVER = 12151;
		public const uint32 ERROR_HTTP_INVALID_SERVER_RESPONSE = 12152;
		public const uint32 ERROR_HTTP_INVALID_HEADER = 12153;
		public const uint32 ERROR_HTTP_INVALID_QUERY_REQUEST = 12154;
		public const uint32 ERROR_HTTP_HEADER_ALREADY_EXISTS = 12155;
		public const uint32 ERROR_HTTP_REDIRECT_FAILED = 12156;
		public const uint32 ERROR_HTTP_NOT_REDIRECTED = 12160;
		public const uint32 ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION = 12161;
		public const uint32 ERROR_HTTP_COOKIE_DECLINED = 12162;
		public const uint32 ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION = 12168;
		public const uint32 ERROR_INTERNET_SECURITY_CHANNEL_ERROR = 12157;
		public const uint32 ERROR_INTERNET_UNABLE_TO_CACHE_FILE = 12158;
		public const uint32 ERROR_INTERNET_TCPIP_NOT_INSTALLED = 12159;
		public const uint32 ERROR_INTERNET_DISCONNECTED = 12163;
		public const uint32 ERROR_INTERNET_SERVER_UNREACHABLE = 12164;
		public const uint32 ERROR_INTERNET_PROXY_SERVER_UNREACHABLE = 12165;
		public const uint32 ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT = 12166;
		public const uint32 ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT = 12167;
		public const uint32 ERROR_INTERNET_SEC_INVALID_CERT = 12169;
		public const uint32 ERROR_INTERNET_SEC_CERT_REVOKED = 12170;
		public const uint32 ERROR_INTERNET_FAILED_DUETOSECURITYCHECK = 12171;
		public const uint32 ERROR_INTERNET_NOT_INITIALIZED = 12172;
		public const uint32 ERROR_INTERNET_NEED_MSN_SSPI_PKG = 12173;
		public const uint32 ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = 12174;
		public const uint32 ERROR_INTERNET_DECODING_FAILED = 12175;
		public const uint32 ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED_PROXY = 12187;
		public const uint32 ERROR_INTERNET_SECURE_FAILURE_PROXY = 12188;
		public const uint32 ERROR_INTERNET_HTTP_PROTOCOL_MISMATCH = 12190;
		public const uint32 ERROR_INTERNET_GLOBAL_CALLBACK_FAILED = 12191;
		public const uint32 ERROR_INTERNET_FEATURE_DISABLED = 12192;
		public const uint32 INTERNET_ERROR_LAST = 12192;
		public const uint32 NORMAL_CACHE_ENTRY = 1;
		public const uint32 STICKY_CACHE_ENTRY = 4;
		public const uint32 EDITED_CACHE_ENTRY = 8;
		public const uint32 TRACK_OFFLINE_CACHE_ENTRY = 16;
		public const uint32 TRACK_ONLINE_CACHE_ENTRY = 32;
		public const uint32 SPARSE_CACHE_ENTRY = 65536;
		public const uint32 COOKIE_CACHE_ENTRY = 1048576;
		public const uint32 URLHISTORY_CACHE_ENTRY = 2097152;
		public const uint32 CACHEGROUP_ATTRIBUTE_GET_ALL = 4294967295;
		public const uint32 CACHEGROUP_ATTRIBUTE_BASIC = 1;
		public const uint32 CACHEGROUP_ATTRIBUTE_FLAG = 2;
		public const uint32 CACHEGROUP_ATTRIBUTE_TYPE = 4;
		public const uint32 CACHEGROUP_ATTRIBUTE_QUOTA = 8;
		public const uint32 CACHEGROUP_ATTRIBUTE_GROUPNAME = 16;
		public const uint32 CACHEGROUP_ATTRIBUTE_STORAGE = 32;
		public const uint32 CACHEGROUP_FLAG_NONPURGEABLE = 1;
		public const uint32 CACHEGROUP_FLAG_GIDONLY = 4;
		public const uint32 CACHEGROUP_FLAG_FLUSHURL_ONDELETE = 2;
		public const uint32 CACHEGROUP_SEARCH_ALL = 0;
		public const uint32 CACHEGROUP_SEARCH_BYURL = 1;
		public const uint32 CACHEGROUP_TYPE_INVALID = 1;
		public const uint32 GROUPNAME_MAX_LENGTH = 120;
		public const uint32 GROUP_OWNER_STORAGE_SIZE = 4;
		public const uint32 CACHE_ENTRY_ATTRIBUTE_FC = 4;
		public const uint32 CACHE_ENTRY_HITRATE_FC = 16;
		public const uint32 CACHE_ENTRY_MODTIME_FC = 64;
		public const uint32 CACHE_ENTRY_EXPTIME_FC = 128;
		public const uint32 CACHE_ENTRY_ACCTIME_FC = 256;
		public const uint32 CACHE_ENTRY_SYNCTIME_FC = 512;
		public const uint32 CACHE_ENTRY_HEADERINFO_FC = 1024;
		public const uint32 CACHE_ENTRY_EXEMPT_DELTA_FC = 2048;
		public const uint32 INTERNET_CACHE_GROUP_ADD = 0;
		public const uint32 INTERNET_CACHE_GROUP_REMOVE = 1;
		public const uint32 INTERNET_DIAL_FORCE_PROMPT = 8192;
		public const uint32 INTERNET_DIAL_SHOW_OFFLINE = 16384;
		public const uint32 INTERNET_DIAL_UNATTENDED = 32768;
		public const uint32 INTERENT_GOONLINE_REFRESH = 1;
		public const uint32 INTERENT_GOONLINE_NOPROMPT = 2;
		public const uint32 INTERENT_GOONLINE_MASK = 3;
		public const uint32 INTERNET_CONNECTION_LAN = 2;
		public const uint32 INTERNET_CONNECTION_OFFLINE = 32;
		public const uint32 INTERNET_CUSTOMDIAL_CONNECT = 0;
		public const uint32 INTERNET_CUSTOMDIAL_UNATTENDED = 1;
		public const uint32 INTERNET_CUSTOMDIAL_DISCONNECT = 2;
		public const uint32 INTERNET_CUSTOMDIAL_SHOWOFFLINE = 4;
		public const uint32 INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED = 1;
		public const uint32 INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE = 2;
		public const uint32 INTERNET_CUSTOMDIAL_CAN_HANGUP = 4;
		public const uint32 INTERNET_DIALSTATE_DISCONNECTED = 1;
		public const uint32 INTERNET_IDENTITY_FLAG_PRIVATE_CACHE = 1;
		public const uint32 INTERNET_IDENTITY_FLAG_SHARED_CACHE = 2;
		public const uint32 INTERNET_IDENTITY_FLAG_CLEAR_DATA = 4;
		public const uint32 INTERNET_IDENTITY_FLAG_CLEAR_COOKIES = 8;
		public const uint32 INTERNET_IDENTITY_FLAG_CLEAR_HISTORY = 16;
		public const uint32 INTERNET_IDENTITY_FLAG_CLEAR_CONTENT = 32;
		public const uint32 INTERNET_SUPPRESS_RESET_ALL = 0;
		public const uint32 INTERNET_SUPPRESS_COOKIE_POLICY = 1;
		public const uint32 INTERNET_SUPPRESS_COOKIE_POLICY_RESET = 2;
		public const uint32 PRIVACY_TEMPLATE_NO_COOKIES = 0;
		public const uint32 PRIVACY_TEMPLATE_HIGH = 1;
		public const uint32 PRIVACY_TEMPLATE_MEDIUM_HIGH = 2;
		public const uint32 PRIVACY_TEMPLATE_MEDIUM = 3;
		public const uint32 PRIVACY_TEMPLATE_MEDIUM_LOW = 4;
		public const uint32 PRIVACY_TEMPLATE_LOW = 5;
		public const uint32 PRIVACY_TEMPLATE_CUSTOM = 100;
		public const uint32 PRIVACY_TEMPLATE_ADVANCED = 101;
		public const uint32 PRIVACY_TEMPLATE_MAX = 5;
		public const uint32 PRIVACY_TYPE_FIRST_PARTY = 0;
		public const uint32 PRIVACY_TYPE_THIRD_PARTY = 1;
		public const uint32 MAX_CACHE_ENTRY_INFO_SIZE = 4096;
		public const uint32 INTERNET_REQFLAG_FROM_APP_CACHE = 256;
		public const uint32 INTERNET_FLAG_BGUPDATE = 8;
		public const uint32 INTERNET_FLAG_FTP_FOLDER_VIEW = 4;
		public const uint32 INTERNET_PREFETCH_PROGRESS = 0;
		public const uint32 INTERNET_PREFETCH_COMPLETE = 1;
		public const uint32 INTERNET_PREFETCH_ABORTED = 2;
		public const uint32 ISO_FORCE_OFFLINE = 1;
		public const uint32 DLG_FLAGS_INVALID_CA = 16777216;
		public const uint32 DLG_FLAGS_SEC_CERT_CN_INVALID = 33554432;
		public const uint32 DLG_FLAGS_SEC_CERT_DATE_INVALID = 67108864;
		public const uint32 DLG_FLAGS_WEAK_SIGNATURE = 2097152;
		public const uint32 DLG_FLAGS_INSECURE_FALLBACK = 4194304;
		public const uint32 DLG_FLAGS_SEC_CERT_REV_FAILED = 8388608;
		public const uint32 INTERNET_SERVICE_URL = 0;
		public const uint32 INTERNET_OPTION_CONTEXT_VALUE_OLD = 10;
		public const uint32 INTERNET_OPTION_NET_SPEED = 61;
		public const uint32 INTERNET_OPTION_SECURITY_CONNECTION_INFO = 66;
		public const uint32 INTERNET_OPTION_DETECT_POST_SEND = 71;
		public const uint32 INTERNET_OPTION_DISABLE_NTLM_PREAUTH = 72;
		public const uint32 INTERNET_OPTION_ORIGINAL_CONNECT_FLAGS = 97;
		public const uint32 INTERNET_OPTION_CERT_ERROR_FLAGS = 98;
		public const uint32 INTERNET_OPTION_IGNORE_CERT_ERROR_FLAGS = 99;
		public const uint32 INTERNET_OPTION_SESSION_START_TIME = 106;
		public const uint32 INTERNET_OPTION_PROXY_CREDENTIALS = 107;
		public const uint32 INTERNET_OPTION_EXTENDED_CALLBACKS = 108;
		public const uint32 INTERNET_OPTION_PROXY_FROM_REQUEST = 109;
		public const uint32 INTERNET_OPTION_ALLOW_FAILED_CONNECT_CONTENT = 110;
		public const uint32 INTERNET_OPTION_CACHE_PARTITION = 111;
		public const uint32 INTERNET_OPTION_AUTODIAL_HWND = 112;
		public const uint32 INTERNET_OPTION_SERVER_CREDENTIALS = 113;
		public const uint32 INTERNET_OPTION_WPAD_SLEEP = 114;
		public const uint32 INTERNET_OPTION_FAIL_ON_CACHE_WRITE_ERROR = 115;
		public const uint32 INTERNET_OPTION_DOWNLOAD_MODE = 116;
		public const uint32 INTERNET_OPTION_RESPONSE_RESUMABLE = 117;
		public const uint32 INTERNET_OPTION_CM_HANDLE_COPY_REF = 118;
		public const uint32 INTERNET_OPTION_CONNECTION_INFO = 120;
		public const uint32 INTERNET_OPTION_BACKGROUND_CONNECTIONS = 121;
		public const uint32 INTERNET_OPTION_DO_NOT_TRACK = 123;
		public const uint32 INTERNET_OPTION_USE_MODIFIED_HEADER_FILTER = 124;
		public const uint32 INTERNET_OPTION_WWA_MODE = 125;
		public const uint32 INTERNET_OPTION_UPGRADE_TO_WEB_SOCKET = 126;
		public const uint32 INTERNET_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL = 127;
		public const uint32 INTERNET_OPTION_UNLOAD_NOTIFY_EVENT = 128;
		public const uint32 INTERNET_OPTION_SOCKET_NODELAY = 129;
		public const uint32 INTERNET_OPTION_APP_CACHE = 130;
		public const uint32 INTERNET_OPTION_DEPENDENCY_HANDLE = 131;
		public const uint32 INTERNET_OPTION_USE_FIRST_AVAILABLE_CONNECTION = 132;
		public const uint32 INTERNET_OPTION_TIMED_CONNECTION_LIMIT_BYPASS = 133;
		public const uint32 INTERNET_OPTION_WEB_SOCKET_CLOSE_TIMEOUT = 134;
		public const uint32 INTERNET_OPTION_FLUSH_STATE = 135;
		public const uint32 INTERNET_OPTION_DISALLOW_PREMATURE_EOF = 137;
		public const uint32 INTERNET_OPTION_SOCKET_NOTIFICATION_IOCTL = 138;
		public const uint32 INTERNET_OPTION_CACHE_ENTRY_EXTRA_DATA = 139;
		public const uint32 INTERNET_OPTION_MAX_QUERY_BUFFER_SIZE = 140;
		public const uint32 INTERNET_OPTION_FALSE_START = 141;
		public const uint32 INTERNET_OPTION_USER_PASS_SERVER_ONLY = 142;
		public const uint32 INTERNET_OPTION_SERVER_AUTH_SCHEME = 143;
		public const uint32 INTERNET_OPTION_PROXY_AUTH_SCHEME = 144;
		public const uint32 INTERNET_OPTION_TUNNEL_ONLY = 145;
		public const uint32 INTERNET_OPTION_SOURCE_PORT = 146;
		public const uint32 INTERNET_OPTION_ENABLE_DUO = 148;
		public const uint32 INTERNET_OPTION_DUO_USED = 149;
		public const uint32 INTERNET_OPTION_CHUNK_ENCODE_REQUEST = 150;
		public const uint32 INTERNET_OPTION_SECURE_FAILURE = 151;
		public const uint32 INTERNET_OPTION_NOTIFY_SENDING_COOKIE = 152;
		public const uint32 INTERNET_OPTION_CLIENT_CERT_ISSUER_LIST = 153;
		public const uint32 INTERNET_OPTION_RESET = 154;
		public const uint32 INTERNET_OPTION_SERVER_ADDRESS_INFO = 156;
		public const uint32 INTERNET_OPTION_ENABLE_WBOEXT = 158;
		public const uint32 INTERNET_OPTION_DISABLE_INSECURE_FALLBACK = 160;
		public const uint32 INTERNET_OPTION_ALLOW_INSECURE_FALLBACK = 161;
		public const uint32 INTERNET_OPTION_SET_IN_PRIVATE = 164;
		public const uint32 INTERNET_OPTION_DOWNLOAD_MODE_HANDLE = 165;
		public const uint32 INTERNET_OPTION_EDGE_COOKIES = 166;
		public const uint32 INTERNET_OPTION_NO_HTTP_SERVER_AUTH = 167;
		public const uint32 INTERNET_OPTION_ENABLE_HEADER_CALLBACKS = 168;
		public const uint32 INTERNET_OPTION_PRESERVE_REQUEST_SERVER_CREDENTIALS_ON_REDIRECT = 169;
		public const uint32 INTERNET_OPTION_PRESERVE_REFERER_ON_HTTPS_TO_HTTP_REDIRECT = 170;
		public const uint32 INTERNET_OPTION_TCP_FAST_OPEN = 171;
		public const uint32 INTERNET_OPTION_SYNC_MODE_AUTOMATIC_SESSION_DISABLED = 172;
		public const uint32 INTERNET_OPTION_ENABLE_ZLIB_DEFLATE = 173;
		public const uint32 INTERNET_OPTION_ENCODE_FALLBACK_FOR_REDIRECT_URI = 174;
		public const uint32 INTERNET_OPTION_EDGE_COOKIES_TEMP = 175;
		public const uint32 INTERNET_OPTION_OPT_IN_WEAK_SIGNATURE = 176;
		public const uint32 INTERNET_OPTION_PARSE_LINE_FOLDING = 177;
		public const uint32 INTERNET_OPTION_FORCE_DECODE = 178;
		public const uint32 INTERNET_OPTION_COOKIES_APPLY_HOST_ONLY = 179;
		public const uint32 INTERNET_OPTION_EDGE_MODE = 180;
		public const uint32 INTERNET_OPTION_CANCEL_CACHE_WRITE = 182;
		public const uint32 INTERNET_OPTION_AUTH_SCHEME_SELECTED = 183;
		public const uint32 INTERNET_OPTION_NOCACHE_WRITE_IN_PRIVATE = 184;
		public const uint32 INTERNET_OPTION_ACTIVITY_ID = 185;
		public const uint32 INTERNET_OPTION_REQUEST_TIMES = 186;
		public const uint32 INTERNET_OPTION_GLOBAL_CALLBACK = 188;
		public const uint32 INTERNET_OPTION_ENABLE_TEST_SIGNING = 189;
		public const uint32 INTERNET_OPTION_DISABLE_PROXY_LINK_LOCAL_NAME_RESOLUTION = 190;
		public const uint32 INTERNET_OPTION_HTTP_09 = 191;
		public const uint32 INTERNET_LAST_OPTION_INTERNAL = 191;
		public const uint32 INTERNET_OPTION_OFFLINE_TIMEOUT = 49;
		public const uint32 INTERNET_OPTION_LINE_STATE = 50;
		public const uint32 DUO_PROTOCOL_FLAG_SPDY3 = 1;
		public const uint32 DUO_PROTOCOL_MASK = 1;
		public const uint32 AUTH_FLAG_RESET = 0;
		public const uint32 INTERNET_AUTH_SCHEME_BASIC = 0;
		public const uint32 INTERNET_AUTH_SCHEME_DIGEST = 1;
		public const uint32 INTERNET_AUTH_SCHEME_NTLM = 2;
		public const uint32 INTERNET_AUTH_SCHEME_KERBEROS = 3;
		public const uint32 INTERNET_AUTH_SCHEME_NEGOTIATE = 4;
		public const uint32 INTERNET_AUTH_SCHEME_PASSPORT = 5;
		public const uint32 INTERNET_AUTH_SCHEME_UNKNOWN = 6;
		public const uint32 INTERNET_STATUS_SENDING_COOKIE = 328;
		public const uint32 INTERNET_STATUS_REQUEST_HEADERS_SET = 329;
		public const uint32 INTERNET_STATUS_RESPONSE_HEADERS_SET = 330;
		public const uint32 INTERNET_STATUS_PROXY_CREDENTIALS = 400;
		public const uint32 INTERNET_STATUS_SERVER_CREDENTIALS = 401;
		public const uint32 INTERNET_STATUS_SERVER_CONNECTION_STATE = 410;
		public const uint32 INTERNET_STATUS_END_BROWSER_SESSION = 420;
		public const uint32 INTERNET_STATUS_COOKIE = 430;
		public const uint32 COOKIE_STATE_LB = 0;
		public const uint32 COOKIE_STATE_UB = 5;
		public const uint32 MaxPrivacySettings = 16384;
		public const uint32 INTERNET_STATUS_FILTER_RESOLVING = 1;
		public const uint32 INTERNET_STATUS_FILTER_RESOLVED = 2;
		public const uint32 INTERNET_STATUS_FILTER_CONNECTING = 4;
		public const uint32 INTERNET_STATUS_FILTER_CONNECTED = 8;
		public const uint32 INTERNET_STATUS_FILTER_SENDING = 16;
		public const uint32 INTERNET_STATUS_FILTER_SENT = 32;
		public const uint32 INTERNET_STATUS_FILTER_RECEIVING = 64;
		public const uint32 INTERNET_STATUS_FILTER_RECEIVED = 128;
		public const uint32 INTERNET_STATUS_FILTER_CLOSING = 256;
		public const uint32 INTERNET_STATUS_FILTER_CLOSED = 512;
		public const uint32 INTERNET_STATUS_FILTER_HANDLE_CREATED = 1024;
		public const uint32 INTERNET_STATUS_FILTER_HANDLE_CLOSING = 2048;
		public const uint32 INTERNET_STATUS_FILTER_PREFETCH = 4096;
		public const uint32 INTERNET_STATUS_FILTER_REDIRECT = 8192;
		public const uint32 INTERNET_STATUS_FILTER_STATE_CHANGE = 16384;
		public const uint32 HTTP_ADDREQ_FLAG_RESPONSE_HEADERS = 33554432;
		public const uint32 HTTP_ADDREQ_FLAG_ALLOW_EMPTY_VALUES = 67108864;
		public const uint32 COOKIE_DONT_ALLOW = 1;
		public const uint32 COOKIE_ALLOW = 2;
		public const uint32 COOKIE_ALLOW_ALL = 4;
		public const uint32 COOKIE_DONT_ALLOW_ALL = 8;
		public const uint32 COOKIE_OP_SET = 1;
		public const uint32 COOKIE_OP_MODIFY = 2;
		public const uint32 COOKIE_OP_GET = 4;
		public const uint32 COOKIE_OP_SESSION = 8;
		public const uint32 COOKIE_OP_PERSISTENT = 16;
		public const uint32 COOKIE_OP_3RD_PARTY = 32;
		public const uint32 INTERNET_COOKIE_PERSISTENT_HOST_ONLY = 65536;
		public const uint32 INTERNET_COOKIE_RESTRICTED_ZONE = 131072;
		public const uint32 INTERNET_COOKIE_EDGE_COOKIES = 262144;
		public const uint32 INTERNET_COOKIE_ALL_COOKIES = 536870912;
		public const uint32 INTERNET_COOKIE_NO_CALLBACK = 1073741824;
		public const uint32 INTERNET_COOKIE_ECTX_3RDPARTY = 2147483648;
		public const uint32 FLAGS_ERROR_UI_SHOW_IDN_HOSTNAME = 32;
		public const uint32 ERROR_INTERNET_NO_NEW_CONTAINERS = 12051;
		public const uint32 ERROR_INTERNET_SOURCE_PORT_IN_USE = 12058;
		public const uint32 ERROR_INTERNET_INSECURE_FALLBACK_REQUIRED = 12059;
		public const uint32 ERROR_INTERNET_PROXY_ALERT = 12061;
		public const uint32 ERROR_INTERNET_NO_CM_CONNECTION = 12080;
		public const uint32 ERROR_HTTP_PUSH_STATUS_CODE_NOT_SUPPORTED = 12147;
		public const uint32 ERROR_HTTP_PUSH_RETRY_NOT_SUPPORTED = 12148;
		public const uint32 ERROR_HTTP_PUSH_ENABLE_FAILED = 12149;
		public const uint32 ERROR_INTERNET_DISALLOW_INPRIVATE = 12189;
		public const uint32 ERROR_INTERNET_OFFLINE = 12163;
		public const uint32 INTERNET_INTERNAL_ERROR_BASE = 12900;
		public const uint32 ERROR_INTERNET_INTERNAL_SOCKET_ERROR = 12901;
		public const uint32 ERROR_INTERNET_CONNECTION_AVAILABLE = 12902;
		public const uint32 ERROR_INTERNET_NO_KNOWN_SERVERS = 12903;
		public const uint32 ERROR_INTERNET_PING_FAILED = 12904;
		public const uint32 ERROR_INTERNET_NO_PING_SUPPORT = 12905;
		public const uint32 ERROR_INTERNET_CACHE_SUCCESS = 12906;
		public const uint32 ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION_EX = 12907;
		public const uint32 HTTP_1_1_CACHE_ENTRY = 64;
		public const uint32 STATIC_CACHE_ENTRY = 128;
		public const uint32 MUST_REVALIDATE_CACHE_ENTRY = 256;
		public const uint32 SHORTPATH_CACHE_ENTRY = 512;
		public const uint32 DOWNLOAD_CACHE_ENTRY = 1024;
		public const uint32 REDIRECT_CACHE_ENTRY = 2048;
		public const uint32 COOKIE_ACCEPTED_CACHE_ENTRY = 4096;
		public const uint32 COOKIE_LEASHED_CACHE_ENTRY = 8192;
		public const uint32 COOKIE_DOWNGRADED_CACHE_ENTRY = 16384;
		public const uint32 COOKIE_REJECTED_CACHE_ENTRY = 32768;
		public const uint32 PRIVACY_MODE_CACHE_ENTRY = 131072;
		public const uint32 XDR_CACHE_ENTRY = 262144;
		public const uint32 IMMUTABLE_CACHE_ENTRY = 524288;
		public const uint32 PENDING_DELETE_CACHE_ENTRY = 4194304;
		public const uint32 OTHER_USER_CACHE_ENTRY = 8388608;
		public const uint32 PRIVACY_IMPACTED_CACHE_ENTRY = 33554432;
		public const uint32 POST_RESPONSE_CACHE_ENTRY = 67108864;
		public const uint32 INSTALLED_CACHE_ENTRY = 268435456;
		public const uint32 POST_CHECK_CACHE_ENTRY = 536870912;
		public const uint32 IDENTITY_CACHE_ENTRY = 2147483648;
		public const uint32 ANY_CACHE_ENTRY = 4294967295;
		public const uint32 CACHEGROUP_FLAG_VALID = 7;
		public const uint64 CACHEGROUP_ID_BUILTIN_STICKY = 1152921504606846983uL;
		public const uint32 INTERNET_CACHE_FLAG_ALLOW_COLLISIONS = 256;
		public const uint32 INTERNET_CACHE_FLAG_INSTALLED_ENTRY = 512;
		public const uint32 INTERNET_CACHE_FLAG_ENTRY_OR_MAPPING = 1024;
		public const uint32 INTERNET_CACHE_FLAG_ADD_FILENAME_ONLY = 2048;
		public const uint32 INTERNET_CACHE_FLAG_GET_STRUCT_ONLY = 4096;
		public const uint32 CACHE_ENTRY_TYPE_FC = 4096;
		public const uint32 CACHE_ENTRY_MODIFY_DATA_FC = 2147483648;
		public const uint32 INTERNET_CACHE_CONTAINER_NOSUBDIRS = 1;
		public const uint32 INTERNET_CACHE_CONTAINER_AUTODELETE = 2;
		public const uint32 INTERNET_CACHE_CONTAINER_RESERVED1 = 4;
		public const uint32 INTERNET_CACHE_CONTAINER_NODESKTOPINIT = 8;
		public const uint32 INTERNET_CACHE_CONTAINER_MAP_ENABLED = 16;
		public const uint32 INTERNET_CACHE_CONTAINER_BLOOM_FILTER = 32;
		public const uint32 INTERNET_CACHE_CONTAINER_SHARE_READ = 256;
		public const uint32 INTERNET_CACHE_CONTAINER_SHARE_READ_WRITE = 768;
		public const uint32 CACHE_FIND_CONTAINER_RETURN_NOCHANGE = 1;
		public const uint32 CACHE_HEADER_DATA_CURRENT_SETTINGS_VERSION = 0;
		public const uint32 CACHE_HEADER_DATA_CONLIST_CHANGE_COUNT = 1;
		public const uint32 CACHE_HEADER_DATA_COOKIE_CHANGE_COUNT = 2;
		public const uint32 CACHE_HEADER_DATA_NOTIFICATION_HWND = 3;
		public const uint32 CACHE_HEADER_DATA_NOTIFICATION_MESG = 4;
		public const uint32 CACHE_HEADER_DATA_ROOTGROUP_OFFSET = 5;
		public const uint32 CACHE_HEADER_DATA_GID_LOW = 6;
		public const uint32 CACHE_HEADER_DATA_GID_HIGH = 7;
		public const uint32 CACHE_HEADER_DATA_LAST_SCAVENGE_TIMESTAMP = 8;
		public const uint32 CACHE_HEADER_DATA_CACHE_READ_COUNT_SINCE_LAST_SCAVENGE = 9;
		public const uint32 CACHE_HEADER_DATA_CACHE_WRITE_COUNT_SINCE_LAST_SCAVENGE = 10;
		public const uint32 CACHE_HEADER_DATA_HSTS_CHANGE_COUNT = 11;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_12 = 12;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_13 = 13;
		public const uint32 CACHE_HEADER_DATA_SSL_STATE_COUNT = 14;
		public const uint32 CACHE_HEADER_DATA_DOWNLOAD_PARTIAL = 14;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_15 = 15;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_16 = 16;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_17 = 17;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_18 = 18;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_19 = 19;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_20 = 20;
		public const uint32 CACHE_HEADER_DATA_NOTIFICATION_FILTER = 21;
		public const uint32 CACHE_HEADER_DATA_ROOT_LEAK_OFFSET = 22;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_23 = 23;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_24 = 24;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_25 = 25;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_26 = 26;
		public const uint32 CACHE_HEADER_DATA_ROOT_GROUPLIST_OFFSET = 27;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_28 = 28;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_29 = 29;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_30 = 30;
		public const uint32 CACHE_HEADER_DATA_CACHE_RESERVED_31 = 31;
		public const uint32 CACHE_HEADER_DATA_LAST = 31;
		public const uint32 CACHE_NOTIFY_ADD_URL = 1;
		public const uint32 CACHE_NOTIFY_DELETE_URL = 2;
		public const uint32 CACHE_NOTIFY_UPDATE_URL = 4;
		public const uint32 CACHE_NOTIFY_DELETE_ALL = 8;
		public const uint32 CACHE_NOTIFY_URL_SET_STICKY = 16;
		public const uint32 CACHE_NOTIFY_URL_UNSET_STICKY = 32;
		public const uint32 CACHE_NOTIFY_SET_ONLINE = 256;
		public const uint32 CACHE_NOTIFY_SET_OFFLINE = 512;
		public const uint32 CACHE_NOTIFY_FILTER_CHANGED = 268435456;
		public const uint32 APP_CACHE_LOOKUP_NO_MASTER_ONLY = 1;
		public const uint32 APP_CACHE_ENTRY_TYPE_MASTER = 1;
		public const uint32 APP_CACHE_ENTRY_TYPE_EXPLICIT = 2;
		public const uint32 APP_CACHE_ENTRY_TYPE_FALLBACK = 4;
		public const uint32 APP_CACHE_ENTRY_TYPE_FOREIGN = 8;
		public const uint32 APP_CACHE_ENTRY_TYPE_MANIFEST = 16;
		public const uint32 CACHE_CONFIG_CONTENT_QUOTA_FC = 32768;
		public const uint32 CACHE_CONFIG_TOTAL_CONTENT_QUOTA_FC = 65536;
		public const uint32 CACHE_CONFIG_APPCONTAINER_CONTENT_QUOTA_FC = 131072;
		public const uint32 CACHE_CONFIG_APPCONTAINER_TOTAL_CONTENT_QUOTA_FC = 262144;
		public const uint32 INTERNET_AUTOPROXY_INIT_DEFAULT = 1;
		public const uint32 INTERNET_AUTOPROXY_INIT_DOWNLOADSYNC = 2;
		public const uint32 INTERNET_AUTOPROXY_INIT_QUERYSTATE = 4;
		public const uint32 INTERNET_AUTOPROXY_INIT_ONLYQUERY = 8;
		public const uint32 INTERNET_SUPPRESS_COOKIE_PERSIST = 3;
		public const uint32 INTERNET_SUPPRESS_COOKIE_PERSIST_RESET = 4;
		public const uint32 HTTP_WEB_SOCKET_MAX_CLOSE_REASON_LENGTH = 123;
		public const uint32 HTTP_WEB_SOCKET_MIN_KEEPALIVE_VALUE = 10000;
		public const uint32 INTERNET_GLOBAL_CALLBACK_SENDING_HTTP_HEADERS = 1;
		
		// --- Typedefs ---
		
		public typealias HTTP_PUSH_WAIT_HANDLE = int;
		
		// --- Enums ---
		
		public enum CACHE_CONFIG : uint32
		{
			FORCE_CLEANUP_FC = 32,
			DISK_CACHE_PATHS_FC = 64,
			SYNC_MODE_FC = 128,
			CONTENT_PATHS_FC = 256,
			HISTORY_PATHS_FC = 1024,
			COOKIES_PATHS_FC = 512,
			QUOTA_FC = 2048,
			USER_MODE_FC = 4096,
			CONTENT_USAGE_FC = 8192,
			STICKY_CONTENT_USAGE_FC = 16384,
		}
		[AllowDuplicates]
		public enum FTP_FLAGS : uint32
		{
			FTP_TRANSFER_TYPE_ASCII = 1,
			FTP_TRANSFER_TYPE_BINARY = 2,
			FTP_TRANSFER_TYPE_UNKNOWN = 0,
			INTERNET_FLAG_TRANSFER_ASCII = 1,
			INTERNET_FLAG_TRANSFER_BINARY = 2,
		}
		public enum INTERNET_CONNECTION : uint32
		{
			CONNECTION_CONFIGURED = 64,
			CONNECTION_LAN_ = 2,
			CONNECTION_MODEM = 1,
			CONNECTION_MODEM_BUSY = 8,
			CONNECTION_OFFLINE_ = 32,
			CONNECTION_PROXY = 4,
			RAS_INSTALLED = 16,
		}
		[AllowDuplicates]
		public enum HTTP_ADDREQ_FLAG : uint32
		{
			ADD = 536870912,
			ADD_IF_NEW = 268435456,
			COALESCE = 1073741824,
			COALESCE_WITH_COMMA = 1073741824,
			COALESCE_WITH_SEMICOLON = 16777216,
			REPLACE = 2147483648,
		}
		public enum INTERNET_COOKIE_FLAGS : uint32
		{
			COOKIE_HTTPONLY = 8192,
			COOKIE_THIRD_PARTY = 16,
			FLAG_RESTRICTED_ZONE = 131072,
		}
		public enum PROXY_AUTO_DETECT_TYPE : uint32
		{
			DHCP = 1,
			DNS_A = 2,
		}
		public enum INTERNET_AUTODIAL : uint32
		{
			FAILIFSECURITYCHECK = 4,
			FORCE_ONLINE = 1,
			FORCE_UNATTENDED = 2,
			OVERRIDE_NET_PRESENT = 8,
		}
		public enum GOPHER_TYPE : uint32
		{
			ASK = 1073741824,
			BINARY = 512,
			BITMAP = 16384,
			CALENDAR = 524288,
			CSO = 4,
			DIRECTORY = 2,
			DOS_ARCHIVE = 32,
			ERROR = 8,
			GIF = 4096,
			GOPHER_PLUS = 2147483648,
			HTML = 131072,
			IMAGE = 8192,
			INDEX_SERVER = 128,
			INLINE = 1048576,
			MAC_BINHEX = 16,
			MOVIE = 32768,
			PDF = 262144,
			REDUNDANT = 1024,
			SOUND = 65536,
			TELNET = 256,
			TEXT_FILE = 1,
			TN3270 = 2048,
			UNIX_UUENCODED = 64,
			UNKNOWN = 536870912,
		}
		public enum INTERNET_PER_CONN : uint32
		{
			AUTOCONFIG_URL = 4,
			AUTODISCOVERY_FLAGS = 5,
			FLAGS = 1,
			PROXY_BYPASS = 3,
			PROXY_SERVER = 2,
			AUTOCONFIG_SECONDARY_URL = 6,
			AUTOCONFIG_RELOAD_DELAY_MINS = 7,
			AUTOCONFIG_LAST_DETECT_TIME = 8,
			AUTOCONFIG_LAST_DETECT_URL = 9,
		}
		public enum INTERNET_ACCESS_TYPE : uint32
		{
			DIRECT = 1,
			PRECONFIG = 0,
			PROXY = 3,
		}
		public enum INTERNET_STATE : uint32
		{
			CONNECTED = 1,
			DISCONNECTED = 2,
			DISCONNECTED_BY_USER = 16,
			IDLE = 256,
			BUSY = 512,
		}
		[AllowDuplicates]
		public enum INTERNET_SCHEME : int32
		{
			PARTIAL = -2,
			UNKNOWN = -1,
			DEFAULT = 0,
			FTP = 1,
			GOPHER = 2,
			HTTP = 3,
			HTTPS = 4,
			FILE = 5,
			NEWS = 6,
			MAILTO = 7,
			SOCKS = 8,
			JAVASCRIPT = 9,
			VBSCRIPT = 10,
			RES = 11,
			FIRST = 1,
			LAST = 11,
		}
		[AllowDuplicates]
		public enum InternetCookieState : int32
		{
			UNKNOWN = 0,
			ACCEPT = 1,
			PROMPT = 2,
			LEASH = 3,
			DOWNGRADE = 4,
			REJECT = 5,
			MAX = 5,
		}
		public enum WPAD_CACHE_DELETE : int32
		{
			CURRENT = 0,
			ALL = 1,
		}
		public enum FORTCMD : int32
		{
			LOGON = 1,
			LOGOFF = 2,
			CHG_PERSONALITY = 3,
		}
		public enum FORTSTAT : int32
		{
			INSTALLED = 1,
			LOGGEDON = 2,
		}
		public enum REQUEST_TIMES : int32
		{
			NameResolutionStart = 0,
			NameResolutionEnd = 1,
			ConnectionEstablishmentStart = 2,
			ConnectionEstablishmentEnd = 3,
			TLSHandshakeStart = 4,
			TLSHandshakeEnd = 5,
			HttpRequestTimeMax = 32,
		}
		public enum HTTP_PUSH_WAIT_TYPE : int32
		{
			EnableComplete = 0,
			ReceiveComplete = 1,
			SendComplete = 2,
		}
		[AllowDuplicates]
		public enum WININET_SYNC_MODE : int32
		{
			NEVER = 0,
			ON_EXPIRY = 1,
			ONCE_PER_SESSION = 2,
			ALWAYS = 3,
			AUTOMATIC = 4,
			DEFAULT = 4,
		}
		public enum APP_CACHE_STATE : int32
		{
			NoUpdateNeeded = 0,
			UpdateNeeded = 1,
			UpdateNeededNew = 2,
			UpdateNeededMasterOnly = 3,
		}
		public enum APP_CACHE_FINALIZE_STATE : int32
		{
			Incomplete = 0,
			ManifestChange = 1,
			Complete = 2,
		}
		public enum URL_CACHE_LIMIT_TYPE : int32
		{
			IE = 0,
			IETotal = 1,
			AppContainer = 2,
			AppContainerTotal = 3,
			Num = 4,
		}
		public enum HTTP_WEB_SOCKET_OPERATION : int32
		{
			SEND_OPERATION = 0,
			RECEIVE_OPERATION = 1,
			CLOSE_OPERATION = 2,
			SHUTDOWN_OPERATION = 3,
		}
		public enum HTTP_WEB_SOCKET_BUFFER_TYPE : int32
		{
			BINARY_MESSAGE_TYPE = 0,
			BINARY_FRAGMENT_TYPE = 1,
			UTF8_MESSAGE_TYPE = 2,
			UTF8_FRAGMENT_TYPE = 3,
			CLOSE_TYPE = 4,
			PING_TYPE = 5,
		}
		public enum HTTP_WEB_SOCKET_CLOSE_STATUS : int32
		{
			SUCCESS_CLOSE_STATUS = 1000,
			ENDPOINT_TERMINATED_CLOSE_STATUS = 1001,
			PROTOCOL_ERROR_CLOSE_STATUS = 1002,
			INVALID_DATA_TYPE_CLOSE_STATUS = 1003,
			EMPTY_CLOSE_STATUS = 1005,
			ABORTED_CLOSE_STATUS = 1006,
			INVALID_PAYLOAD_CLOSE_STATUS = 1007,
			POLICY_VIOLATION_CLOSE_STATUS = 1008,
			MESSAGE_TOO_BIG_CLOSE_STATUS = 1009,
			UNSUPPORTED_EXTENSIONS_CLOSE_STATUS = 1010,
			SERVER_ERROR_CLOSE_STATUS = 1011,
			SECURE_HANDSHAKE_ERROR_CLOSE_STATUS = 1015,
		}
		public enum HTTP_POLICY_EXTENSION_TYPE : int32
		{
			NONE = 0,
			WINHTTP = 1,
			WININET = 2,
		}
		public enum HTTP_POLICY_EXTENSION_VERSION : int32
		{
			POLICY_EXTENSION_VERSION1 = 1,
		}
		
		// --- Function Pointers ---
		
		public function void LPINTERNET_STATUS_CALLBACK(void* hInternet, uint dwContext, uint32 dwInternetStatus, void* lpvStatusInformation, uint32 dwStatusInformationLength);
		public function BOOL GOPHER_ATTRIBUTE_ENUMERATOR(ref GOPHER_ATTRIBUTE_TYPE lpAttributeInfo, uint32 dwError);
		public function uint32 PFN_AUTH_NOTIFY(uint param0, uint32 param1, void* param2);
		public function BOOL pfnInternetInitializeAutoProxyDll(uint32 dwVersion, PSTR lpszDownloadedTempFile, PSTR lpszMime, out AutoProxyHelperFunctions lpAutoProxyCallbacks, out AUTO_PROXY_SCRIPT_BUFFER lpAutoProxyScriptBuffer);
		public function BOOL pfnInternetDeInitializeAutoProxyDll(PSTR lpszMime, uint32 dwReserved);
		public function BOOL pfnInternetGetProxyInfo(PSTR lpszUrl, uint32 dwUrlLength, PSTR lpszUrlHostName, uint32 dwUrlHostNameLength, out PSTR lplpszProxyHostName, out uint32 lpdwProxyHostNameLength);
		public function uint32 PFN_DIAL_HANDLER(HWND param0, PSTR param1, uint32 param2, out uint32 param3);
		public function BOOL CACHE_OPERATOR(out INTERNET_CACHE_ENTRY_INFOA pcei, out uint32 pcbcei, void* pOpData);
		public function uint32 HTTP_POLICY_EXTENSION_INIT(HTTP_POLICY_EXTENSION_VERSION Version, HTTP_POLICY_EXTENSION_TYPE Type, void* pvData, uint32 cbData);
		public function uint32 HTTP_POLICY_EXTENSION_SHUTDOWN(HTTP_POLICY_EXTENSION_TYPE Type);
		
		// --- Structs ---
		
		[CRepr]
		public struct INTERNET_ASYNC_RESULT
		{
			public uint dwResult;
			public uint32 dwError;
		}
		[CRepr]
		public struct INTERNET_DIAGNOSTIC_SOCKET_INFO
		{
			public uint Socket;
			public uint32 SourcePort;
			public uint32 DestPort;
			public uint32 Flags;
		}
		[CRepr]
		public struct INTERNET_PROXY_INFO
		{
			public INTERNET_ACCESS_TYPE dwAccessType;
			public int8* lpszProxy;
			public int8* lpszProxyBypass;
		}
		[CRepr]
		public struct INTERNET_PER_CONN_OPTIONA
		{
			public INTERNET_PER_CONN dwOption;
			public _Value_e__Union Value;
			
			[CRepr, Union]
			public struct _Value_e__Union
			{
				public uint32 dwValue;
				public PSTR pszValue;
				public FILETIME ftValue;
			}
		}
		[CRepr]
		public struct INTERNET_PER_CONN_OPTIONW
		{
			public INTERNET_PER_CONN dwOption;
			public _Value_e__Union Value;
			
			[CRepr, Union]
			public struct _Value_e__Union
			{
				public uint32 dwValue;
				public PWSTR pszValue;
				public FILETIME ftValue;
			}
		}
		[CRepr]
		public struct INTERNET_PER_CONN_OPTION_LISTA
		{
			public uint32 dwSize;
			public PSTR pszConnection;
			public uint32 dwOptionCount;
			public uint32 dwOptionError;
			public INTERNET_PER_CONN_OPTIONA* pOptions;
		}
		[CRepr]
		public struct INTERNET_PER_CONN_OPTION_LISTW
		{
			public uint32 dwSize;
			public PWSTR pszConnection;
			public uint32 dwOptionCount;
			public uint32 dwOptionError;
			public INTERNET_PER_CONN_OPTIONW* pOptions;
		}
		[CRepr]
		public struct INTERNET_VERSION_INFO
		{
			public uint32 dwMajorVersion;
			public uint32 dwMinorVersion;
		}
		[CRepr]
		public struct INTERNET_CONNECTED_INFO
		{
			public INTERNET_STATE dwConnectedState;
			public uint32 dwFlags;
		}
		[CRepr]
		public struct URL_COMPONENTSA
		{
			public uint32 dwStructSize;
			public PSTR lpszScheme;
			public uint32 dwSchemeLength;
			public INTERNET_SCHEME nScheme;
			public PSTR lpszHostName;
			public uint32 dwHostNameLength;
			public uint16 nPort;
			public PSTR lpszUserName;
			public uint32 dwUserNameLength;
			public PSTR lpszPassword;
			public uint32 dwPasswordLength;
			public PSTR lpszUrlPath;
			public uint32 dwUrlPathLength;
			public PSTR lpszExtraInfo;
			public uint32 dwExtraInfoLength;
		}
		[CRepr]
		public struct URL_COMPONENTSW
		{
			public uint32 dwStructSize;
			public PWSTR lpszScheme;
			public uint32 dwSchemeLength;
			public INTERNET_SCHEME nScheme;
			public PWSTR lpszHostName;
			public uint32 dwHostNameLength;
			public uint16 nPort;
			public PWSTR lpszUserName;
			public uint32 dwUserNameLength;
			public PWSTR lpszPassword;
			public uint32 dwPasswordLength;
			public PWSTR lpszUrlPath;
			public uint32 dwUrlPathLength;
			public PWSTR lpszExtraInfo;
			public uint32 dwExtraInfoLength;
		}
		[CRepr]
		public struct INTERNET_CERTIFICATE_INFO
		{
			public FILETIME ftExpiry;
			public FILETIME ftStart;
			public int8* lpszSubjectInfo;
			public int8* lpszIssuerInfo;
			public int8* lpszProtocolName;
			public int8* lpszSignatureAlgName;
			public int8* lpszEncryptionAlgName;
			public uint32 dwKeySize;
		}
		[CRepr]
		public struct INTERNET_BUFFERSA
		{
			public uint32 dwStructSize;
			public INTERNET_BUFFERSA* Next;
			public PSTR lpcszHeader;
			public uint32 dwHeadersLength;
			public uint32 dwHeadersTotal;
			public void* lpvBuffer;
			public uint32 dwBufferLength;
			public uint32 dwBufferTotal;
			public uint32 dwOffsetLow;
			public uint32 dwOffsetHigh;
		}
		[CRepr]
		public struct INTERNET_BUFFERSW
		{
			public uint32 dwStructSize;
			public INTERNET_BUFFERSW* Next;
			public PWSTR lpcszHeader;
			public uint32 dwHeadersLength;
			public uint32 dwHeadersTotal;
			public void* lpvBuffer;
			public uint32 dwBufferLength;
			public uint32 dwBufferTotal;
			public uint32 dwOffsetLow;
			public uint32 dwOffsetHigh;
		}
		[CRepr]
		public struct IncomingCookieState
		{
			public int32 cSession;
			public int32 cPersistent;
			public int32 cAccepted;
			public int32 cLeashed;
			public int32 cDowngraded;
			public int32 cBlocked;
			public PSTR pszLocation;
		}
		[CRepr]
		public struct OutgoingCookieState
		{
			public int32 cSent;
			public int32 cSuppressed;
			public PSTR pszLocation;
		}
		[CRepr]
		public struct InternetCookieHistory
		{
			public BOOL fAccepted;
			public BOOL fLeashed;
			public BOOL fDowngraded;
			public BOOL fRejected;
		}
		[CRepr]
		public struct CookieDecision
		{
			public uint32 dwCookieState;
			public BOOL fAllowSession;
		}
		[CRepr]
		public struct GOPHER_FIND_DATAA
		{
			public CHAR[129] DisplayString;
			public GOPHER_TYPE GopherType;
			public uint32 SizeLow;
			public uint32 SizeHigh;
			public FILETIME LastModificationTime;
			public CHAR[654] Locator;
		}
		[CRepr]
		public struct GOPHER_FIND_DATAW
		{
			public char16[129] DisplayString;
			public GOPHER_TYPE GopherType;
			public uint32 SizeLow;
			public uint32 SizeHigh;
			public FILETIME LastModificationTime;
			public char16[654] Locator;
		}
		[CRepr]
		public struct GOPHER_ADMIN_ATTRIBUTE_TYPE
		{
			public int8* Comment;
			public int8* EmailAddress;
		}
		[CRepr]
		public struct GOPHER_MOD_DATE_ATTRIBUTE_TYPE
		{
			public FILETIME DateAndTime;
		}
		[CRepr]
		public struct GOPHER_TTL_ATTRIBUTE_TYPE
		{
			public uint32 Ttl;
		}
		[CRepr]
		public struct GOPHER_SCORE_ATTRIBUTE_TYPE
		{
			public int32 Score;
		}
		[CRepr]
		public struct GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE
		{
			public int32 LowerBound;
			public int32 UpperBound;
		}
		[CRepr]
		public struct GOPHER_SITE_ATTRIBUTE_TYPE
		{
			public int8* Site;
		}
		[CRepr]
		public struct GOPHER_ORGANIZATION_ATTRIBUTE_TYPE
		{
			public int8* Organization;
		}
		[CRepr]
		public struct GOPHER_LOCATION_ATTRIBUTE_TYPE
		{
			public int8* Location;
		}
		[CRepr]
		public struct GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE
		{
			public int32 DegreesNorth;
			public int32 MinutesNorth;
			public int32 SecondsNorth;
			public int32 DegreesEast;
			public int32 MinutesEast;
			public int32 SecondsEast;
		}
		[CRepr]
		public struct GOPHER_TIMEZONE_ATTRIBUTE_TYPE
		{
			public int32 Zone;
		}
		[CRepr]
		public struct GOPHER_PROVIDER_ATTRIBUTE_TYPE
		{
			public int8* Provider;
		}
		[CRepr]
		public struct GOPHER_VERSION_ATTRIBUTE_TYPE
		{
			public int8* Version;
		}
		[CRepr]
		public struct GOPHER_ABSTRACT_ATTRIBUTE_TYPE
		{
			public int8* ShortAbstract;
			public int8* AbstractFile;
		}
		[CRepr]
		public struct GOPHER_VIEW_ATTRIBUTE_TYPE
		{
			public int8* ContentType;
			public int8* Language;
			public uint32 Size;
		}
		[CRepr]
		public struct GOPHER_VERONICA_ATTRIBUTE_TYPE
		{
			public BOOL TreeWalk;
		}
		[CRepr]
		public struct GOPHER_ASK_ATTRIBUTE_TYPE
		{
			public int8* QuestionType;
			public int8* QuestionText;
		}
		[CRepr]
		public struct GOPHER_UNKNOWN_ATTRIBUTE_TYPE
		{
			public int8* Text;
		}
		[CRepr]
		public struct GOPHER_ATTRIBUTE_TYPE
		{
			public uint32 CategoryId;
			public uint32 AttributeId;
			public _AttributeType_e__Union AttributeType;
			
			[CRepr, Union]
			public struct _AttributeType_e__Union
			{
				public GOPHER_ADMIN_ATTRIBUTE_TYPE Admin;
				public GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
				public GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
				public GOPHER_SCORE_ATTRIBUTE_TYPE Score;
				public GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
				public GOPHER_SITE_ATTRIBUTE_TYPE Site;
				public GOPHER_ORGANIZATION_ATTRIBUTE_TYPE Organization;
				public GOPHER_LOCATION_ATTRIBUTE_TYPE Location;
				public GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation;
				public GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
				public GOPHER_PROVIDER_ATTRIBUTE_TYPE Provider;
				public GOPHER_VERSION_ATTRIBUTE_TYPE Version;
				public GOPHER_ABSTRACT_ATTRIBUTE_TYPE Abstract;
				public GOPHER_VIEW_ATTRIBUTE_TYPE View;
				public GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
				public GOPHER_ASK_ATTRIBUTE_TYPE Ask;
				public GOPHER_UNKNOWN_ATTRIBUTE_TYPE Unknown;
			}
		}
		[CRepr]
		public struct INTERNET_COOKIE2
		{
			public PWSTR pwszName;
			public PWSTR pwszValue;
			public PWSTR pwszDomain;
			public PWSTR pwszPath;
			public uint32 dwFlags;
			public FILETIME ftExpires;
			public BOOL fExpiresSet;
		}
		[CRepr]
		public struct INTERNET_AUTH_NOTIFY_DATA
		{
			public uint32 cbStruct;
			public uint32 dwOptions;
			public PFN_AUTH_NOTIFY pfnNotify;
			public uint dwContext;
		}
		[CRepr]
		public struct INTERNET_CACHE_ENTRY_INFOA
		{
			public uint32 dwStructSize;
			public PSTR lpszSourceUrlName;
			public PSTR lpszLocalFileName;
			public uint32 CacheEntryType;
			public uint32 dwUseCount;
			public uint32 dwHitRate;
			public uint32 dwSizeLow;
			public uint32 dwSizeHigh;
			public FILETIME LastModifiedTime;
			public FILETIME ExpireTime;
			public FILETIME LastAccessTime;
			public FILETIME LastSyncTime;
			public PSTR lpHeaderInfo;
			public uint32 dwHeaderInfoSize;
			public PSTR lpszFileExtension;
			public _Anonymous_e__Union Anonymous;
			
			public uint32 dwReserved { get => Anonymous.dwReserved; set mut => Anonymous.dwReserved = value; }
			public uint32 dwExemptDelta { get => Anonymous.dwExemptDelta; set mut => Anonymous.dwExemptDelta = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public uint32 dwReserved;
				public uint32 dwExemptDelta;
			}
		}
		[CRepr]
		public struct INTERNET_CACHE_ENTRY_INFOW
		{
			public uint32 dwStructSize;
			public PWSTR lpszSourceUrlName;
			public PWSTR lpszLocalFileName;
			public uint32 CacheEntryType;
			public uint32 dwUseCount;
			public uint32 dwHitRate;
			public uint32 dwSizeLow;
			public uint32 dwSizeHigh;
			public FILETIME LastModifiedTime;
			public FILETIME ExpireTime;
			public FILETIME LastAccessTime;
			public FILETIME LastSyncTime;
			public PWSTR lpHeaderInfo;
			public uint32 dwHeaderInfoSize;
			public PWSTR lpszFileExtension;
			public _Anonymous_e__Union Anonymous;
			
			public uint32 dwReserved { get => Anonymous.dwReserved; set mut => Anonymous.dwReserved = value; }
			public uint32 dwExemptDelta { get => Anonymous.dwExemptDelta; set mut => Anonymous.dwExemptDelta = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public uint32 dwReserved;
				public uint32 dwExemptDelta;
			}
		}
		[CRepr]
		public struct INTERNET_CACHE_TIMESTAMPS
		{
			public FILETIME ftExpires;
			public FILETIME ftLastModified;
		}
		[CRepr]
		public struct INTERNET_CACHE_GROUP_INFOA
		{
			public uint32 dwGroupSize;
			public uint32 dwGroupFlags;
			public uint32 dwGroupType;
			public uint32 dwDiskUsage;
			public uint32 dwDiskQuota;
			public uint32[4] dwOwnerStorage;
			public CHAR[120] szGroupName;
		}
		[CRepr]
		public struct INTERNET_CACHE_GROUP_INFOW
		{
			public uint32 dwGroupSize;
			public uint32 dwGroupFlags;
			public uint32 dwGroupType;
			public uint32 dwDiskUsage;
			public uint32 dwDiskQuota;
			public uint32[4] dwOwnerStorage;
			public char16[120] szGroupName;
		}
		[CRepr]
		public struct AutoProxyHelperVtbl
		{
			public int IsResolvable;
			public int GetIPAddress;
			public int ResolveHostName;
			public int IsInNet;
			public int IsResolvableEx;
			public int GetIPAddressEx;
			public int ResolveHostNameEx;
			public int IsInNetEx;
			public int SortIpList;
		}
		[CRepr]
		public struct AUTO_PROXY_SCRIPT_BUFFER
		{
			public uint32 dwStructSize;
			public PSTR lpszScriptBuffer;
			public uint32 dwScriptBufferSize;
		}
		[CRepr]
		public struct AutoProxyHelperFunctions
		{
			public AutoProxyHelperVtbl* lpVtbl;
		}
		[CRepr]
		public struct INTERNET_PREFETCH_STATUS
		{
			public uint32 dwStatus;
			public uint32 dwSize;
		}
		[CRepr]
		public struct INTERNET_SECURITY_INFO
		{
			public uint32 dwSize;
			public CERT_CONTEXT* pCertificate;
			public CERT_CHAIN_CONTEXT* pcCertChain;
			public SecPkgContext_ConnectionInfo connectionInfo;
			public SecPkgContext_CipherInfo cipherInfo;
			public CERT_CHAIN_CONTEXT* pcUnverifiedCertChain;
			public SecPkgContext_Bindings channelBindingToken;
		}
		[CRepr]
		public struct INTERNET_SECURITY_CONNECTION_INFO
		{
			public uint32 dwSize;
			public BOOL fSecure;
			public SecPkgContext_ConnectionInfo connectionInfo;
			public SecPkgContext_CipherInfo cipherInfo;
		}
		[CRepr]
		public struct INTERNET_DOWNLOAD_MODE_HANDLE
		{
			public PWSTR pcwszFileName;
			public HANDLE* phFile;
		}
		[CRepr]
		public struct HTTP_REQUEST_TIMES
		{
			public uint32 cTimes;
			public uint64[32] rgTimes;
		}
		[CRepr]
		public struct INTERNET_SERVER_CONNECTION_STATE
		{
			public PWSTR lpcwszHostName;
			public BOOL fProxy;
			public uint32 dwCounter;
			public uint32 dwConnectionLimit;
			public uint32 dwAvailableCreates;
			public uint32 dwAvailableKeepAlives;
			public uint32 dwActiveConnections;
			public uint32 dwWaiters;
		}
		[CRepr]
		public struct INTERNET_END_BROWSER_SESSION_DATA
		{
			public void* lpBuffer;
			public uint32 dwBufferLength;
		}
		[CRepr]
		public struct INTERNET_CALLBACK_COOKIE
		{
			public PWSTR pcwszName;
			public PWSTR pcwszValue;
			public PWSTR pcwszDomain;
			public PWSTR pcwszPath;
			public FILETIME ftExpires;
			public uint32 dwFlags;
		}
		[CRepr]
		public struct INTERNET_CREDENTIALS
		{
			public PWSTR lpcwszHostName;
			public uint32 dwPort;
			public uint32 dwScheme;
			public PWSTR lpcwszUrl;
			public PWSTR lpcwszRealm;
			public BOOL fAuthIdentity;
			public _Anonymous_e__Union Anonymous;
			
			public void* pAuthIdentityOpaque { get => Anonymous.pAuthIdentityOpaque; set mut => Anonymous.pAuthIdentityOpaque = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public _Anonymous_e__Struct Anonymous;
				public void* pAuthIdentityOpaque;
				
				public PWSTR lpcwszUserName { get => Anonymous.lpcwszUserName; set mut => Anonymous.lpcwszUserName = value; }
				public PWSTR lpcwszPassword { get => Anonymous.lpcwszPassword; set mut => Anonymous.lpcwszPassword = value; }
				
				[CRepr]
				public struct _Anonymous_e__Struct
				{
					public PWSTR lpcwszUserName;
					public PWSTR lpcwszPassword;
				}
			}
		}
		[CRepr]
		public struct HTTP_PUSH_TRANSPORT_SETTING
		{
			public Guid TransportSettingId;
			public Guid BrokerEventId;
		}
		[CRepr]
		public struct HTTP_PUSH_NOTIFICATION_STATUS
		{
			public BOOL ChannelStatusValid;
			public uint32 ChannelStatus;
		}
		[CRepr]
		public struct INTERNET_COOKIE
		{
			public uint32 cbSize;
			public PSTR pszName;
			public PSTR pszData;
			public PSTR pszDomain;
			public PSTR pszPath;
			public FILETIME* pftExpires;
			public uint32 dwFlags;
			public PSTR pszUrl;
			public PSTR pszP3PPolicy;
		}
		[CRepr]
		public struct COOKIE_DLG_INFO
		{
			public PWSTR pszServer;
			public INTERNET_COOKIE* pic;
			public uint32 dwStopWarning;
			public int32 cx;
			public int32 cy;
			public PWSTR pszHeader;
			public uint32 dwOperation;
		}
		[CRepr]
		public struct INTERNET_CACHE_CONFIG_PATH_ENTRYA
		{
			public CHAR[260] CachePath;
			public uint32 dwCacheSize;
		}
		[CRepr]
		public struct INTERNET_CACHE_CONFIG_PATH_ENTRYW
		{
			public char16[260] CachePath;
			public uint32 dwCacheSize;
		}
		[CRepr]
		public struct INTERNET_CACHE_CONFIG_INFOA
		{
			public uint32 dwStructSize;
			public uint32 dwContainer;
			public uint32 dwQuota;
			public uint32 dwReserved4;
			public BOOL fPerUser;
			public uint32 dwSyncMode;
			public uint32 dwNumCachePaths;
			public _Anonymous_e__Union Anonymous;
			public uint32 dwNormalUsage;
			public uint32 dwExemptUsage;
			
			public INTERNET_CACHE_CONFIG_PATH_ENTRYA[0] CachePaths { get => Anonymous.CachePaths; set mut => Anonymous.CachePaths = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public _Anonymous_e__Struct Anonymous;
				public INTERNET_CACHE_CONFIG_PATH_ENTRYA[0] CachePaths;
				
				public CHAR[260] CachePath { get => Anonymous.CachePath; set mut => Anonymous.CachePath = value; }
				public uint32 dwCacheSize { get => Anonymous.dwCacheSize; set mut => Anonymous.dwCacheSize = value; }
				
				[CRepr]
				public struct _Anonymous_e__Struct
				{
					public CHAR[260] CachePath;
					public uint32 dwCacheSize;
				}
			}
		}
		[CRepr]
		public struct INTERNET_CACHE_CONFIG_INFOW
		{
			public uint32 dwStructSize;
			public uint32 dwContainer;
			public uint32 dwQuota;
			public uint32 dwReserved4;
			public BOOL fPerUser;
			public uint32 dwSyncMode;
			public uint32 dwNumCachePaths;
			public _Anonymous_e__Union Anonymous;
			public uint32 dwNormalUsage;
			public uint32 dwExemptUsage;
			
			public INTERNET_CACHE_CONFIG_PATH_ENTRYW[0] CachePaths { get => Anonymous.CachePaths; set mut => Anonymous.CachePaths = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public _Anonymous_e__Struct Anonymous;
				public INTERNET_CACHE_CONFIG_PATH_ENTRYW[0] CachePaths;
				
				public char16[260] CachePath { get => Anonymous.CachePath; set mut => Anonymous.CachePath = value; }
				public uint32 dwCacheSize { get => Anonymous.dwCacheSize; set mut => Anonymous.dwCacheSize = value; }
				
				[CRepr]
				public struct _Anonymous_e__Struct
				{
					public char16[260] CachePath;
					public uint32 dwCacheSize;
				}
			}
		}
		[CRepr]
		public struct INTERNET_CACHE_CONTAINER_INFOA
		{
			public uint32 dwCacheVersion;
			public PSTR lpszName;
			public PSTR lpszCachePrefix;
			public PSTR lpszVolumeLabel;
			public PSTR lpszVolumeTitle;
		}
		[CRepr]
		public struct INTERNET_CACHE_CONTAINER_INFOW
		{
			public uint32 dwCacheVersion;
			public PWSTR lpszName;
			public PWSTR lpszCachePrefix;
			public PWSTR lpszVolumeLabel;
			public PWSTR lpszVolumeTitle;
		}
		[CRepr]
		public struct APP_CACHE_DOWNLOAD_ENTRY
		{
			public PWSTR pwszUrl;
			public uint32 dwEntryType;
		}
		[CRepr]
		public struct APP_CACHE_DOWNLOAD_LIST
		{
			public uint32 dwEntryCount;
			public APP_CACHE_DOWNLOAD_ENTRY* pEntries;
		}
		[CRepr]
		public struct APP_CACHE_GROUP_INFO
		{
			public PWSTR pwszManifestUrl;
			public FILETIME ftLastAccessTime;
			public uint64 ullSize;
		}
		[CRepr]
		public struct APP_CACHE_GROUP_LIST
		{
			public uint32 dwAppCacheGroupCount;
			public APP_CACHE_GROUP_INFO* pAppCacheGroups;
		}
		[CRepr]
		public struct URLCACHE_ENTRY_INFO
		{
			public PWSTR pwszSourceUrlName;
			public PWSTR pwszLocalFileName;
			public uint32 dwCacheEntryType;
			public uint32 dwUseCount;
			public uint32 dwHitRate;
			public uint32 dwSizeLow;
			public uint32 dwSizeHigh;
			public FILETIME ftLastModifiedTime;
			public FILETIME ftExpireTime;
			public FILETIME ftLastAccessTime;
			public FILETIME ftLastSyncTime;
			public uint8* pbHeaderInfo;
			public uint32 cbHeaderInfoSize;
			public uint8* pbExtraData;
			public uint32 cbExtraDataSize;
		}
		[CRepr]
		public struct WININET_PROXY_INFO
		{
			public BOOL fProxy;
			public BOOL fBypass;
			public INTERNET_SCHEME ProxyScheme;
			public PWSTR pwszProxy;
			public uint16 ProxyPort;
		}
		[CRepr]
		public struct WININET_PROXY_INFO_LIST
		{
			public uint32 dwProxyInfoCount;
			public WININET_PROXY_INFO* pProxyInfo;
		}
		[CRepr]
		public struct HTTP_WEB_SOCKET_ASYNC_RESULT
		{
			public INTERNET_ASYNC_RESULT AsyncResult;
			public HTTP_WEB_SOCKET_OPERATION Operation;
			public HTTP_WEB_SOCKET_BUFFER_TYPE BufferType;
			public uint32 dwBytesTransferred;
		}
		[CRepr]
		public struct ProofOfPossessionCookieInfo
		{
			public PWSTR name;
			public PWSTR data;
			public uint32 flags;
			public PWSTR p3pHeader;
		}
		
		// --- COM Class IDs ---
		
		public const Guid CLSID_ProofOfPossessionCookieInfoManager = .(0xa9927f85, 0xa304, 0x4390, 0x8b, 0x23, 0xa7, 0x5f, 0x1c, 0x66, 0x86, 0x00);
		
		// --- COM Interfaces ---
		
		[CRepr]
		public struct IDialEventSink : IUnknown
		{
			public const new Guid IID = .(0x2d86f4ff, 0x6e2d, 0x4488, 0xb2, 0xe9, 0x69, 0x34, 0xaf, 0xd4, 0x1b, 0xea);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT OnEvent(uint32 dwEvent, uint32 dwStatus) mut => VT.OnEvent(ref this, dwEvent, dwStatus);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialEventSink self, uint32 dwEvent, uint32 dwStatus) OnEvent;
			}
		}
		[CRepr]
		public struct IDialEngine : IUnknown
		{
			public const new Guid IID = .(0x39fd782b, 0x7905, 0x40d5, 0x91, 0x48, 0x3c, 0x9b, 0x19, 0x04, 0x23, 0xd5);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Initialize(PWSTR pwzConnectoid, ref IDialEventSink pIDES) mut => VT.Initialize(ref this, pwzConnectoid, ref pIDES);
			public HRESULT GetProperty(PWSTR pwzProperty, PWSTR pwzValue, uint32 dwBufSize) mut => VT.GetProperty(ref this, pwzProperty, pwzValue, dwBufSize);
			public HRESULT SetProperty(PWSTR pwzProperty, PWSTR pwzValue) mut => VT.SetProperty(ref this, pwzProperty, pwzValue);
			public HRESULT Dial() mut => VT.Dial(ref this);
			public HRESULT HangUp() mut => VT.HangUp(ref this);
			public HRESULT GetConnectedState(out uint32 pdwState) mut => VT.GetConnectedState(ref this, out pdwState);
			public HRESULT GetConnectHandle(out uint pdwHandle) mut => VT.GetConnectHandle(ref this, out pdwHandle);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialEngine self, PWSTR pwzConnectoid, ref IDialEventSink pIDES) Initialize;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialEngine self, PWSTR pwzProperty, PWSTR pwzValue, uint32 dwBufSize) GetProperty;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialEngine self, PWSTR pwzProperty, PWSTR pwzValue) SetProperty;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialEngine self) Dial;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialEngine self) HangUp;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialEngine self, out uint32 pdwState) GetConnectedState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialEngine self, out uint pdwHandle) GetConnectHandle;
			}
		}
		[CRepr]
		public struct IDialBranding : IUnknown
		{
			public const new Guid IID = .(0x8aecafa9, 0x4306, 0x43cc, 0x8c, 0x5a, 0x76, 0x5f, 0x29, 0x79, 0xcc, 0x16);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Initialize(PWSTR pwzConnectoid) mut => VT.Initialize(ref this, pwzConnectoid);
			public HRESULT GetBitmap(uint32 dwIndex, out HBITMAP phBitmap) mut => VT.GetBitmap(ref this, dwIndex, out phBitmap);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialBranding self, PWSTR pwzConnectoid) Initialize;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IDialBranding self, uint32 dwIndex, out HBITMAP phBitmap) GetBitmap;
			}
		}
		[CRepr]
		public struct IProofOfPossessionCookieInfoManager : IUnknown
		{
			public const new Guid IID = .(0xcdaece56, 0x4edf, 0x43df, 0xb1, 0x13, 0x88, 0xe4, 0x55, 0x6f, 0xa1, 0xbb);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetCookieInfoForUri(PWSTR uri, out uint32 cookieInfoCount, ProofOfPossessionCookieInfo** cookieInfo) mut => VT.GetCookieInfoForUri(ref this, uri, out cookieInfoCount, cookieInfo);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IProofOfPossessionCookieInfoManager self, PWSTR uri, out uint32 cookieInfoCount, ProofOfPossessionCookieInfo** cookieInfo) GetCookieInfoForUri;
			}
		}
		[CRepr]
		public struct IProofOfPossessionCookieInfoManager2 : IUnknown
		{
			public const new Guid IID = .(0x15e41407, 0xb42f, 0x4ae7, 0x99, 0x66, 0x34, 0xa0, 0x87, 0xb2, 0xd7, 0x13);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetCookieInfoWithUriForAccount(ref IInspectable webAccount, PWSTR uri, out uint32 cookieInfoCount, ProofOfPossessionCookieInfo** cookieInfo) mut => VT.GetCookieInfoWithUriForAccount(ref this, ref webAccount, uri, out cookieInfoCount, cookieInfo);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IProofOfPossessionCookieInfoManager2 self, ref IInspectable webAccount, PWSTR uri, out uint32 cookieInfoCount, ProofOfPossessionCookieInfo** cookieInfo) GetCookieInfoWithUriForAccount;
			}
		}
		
		// --- Functions ---
		
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetTimeFromSystemTimeA(in SYSTEMTIME pst, uint32 dwRFC, PSTR lpszTime, uint32 cbTime);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetTimeFromSystemTimeW(in SYSTEMTIME pst, uint32 dwRFC, PWSTR lpszTime, uint32 cbTime);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetTimeFromSystemTime(in SYSTEMTIME pst, uint32 dwRFC, PSTR lpszTime, uint32 cbTime);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetTimeToSystemTimeA(PSTR lpszTime, out SYSTEMTIME pst, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetTimeToSystemTimeW(PWSTR lpszTime, out SYSTEMTIME pst, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetTimeToSystemTime(PSTR lpszTime, out SYSTEMTIME pst, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCrackUrlA(uint8* lpszUrl, uint32 dwUrlLength, WIN_HTTP_CREATE_URL_FLAGS dwFlags, out URL_COMPONENTSA lpUrlComponents);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCrackUrlW(char16* lpszUrl, uint32 dwUrlLength, WIN_HTTP_CREATE_URL_FLAGS dwFlags, out URL_COMPONENTSW lpUrlComponents);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCreateUrlA(ref URL_COMPONENTSA lpUrlComponents, uint32 dwFlags, uint8* lpszUrl, out uint32 lpdwUrlLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCreateUrlW(ref URL_COMPONENTSW lpUrlComponents, uint32 dwFlags, char16* lpszUrl, out uint32 lpdwUrlLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCanonicalizeUrlA(PSTR lpszUrl, uint8* lpszBuffer, out uint32 lpdwBufferLength, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCanonicalizeUrlW(PWSTR lpszUrl, char16* lpszBuffer, out uint32 lpdwBufferLength, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCombineUrlA(PSTR lpszBaseUrl, PSTR lpszRelativeUrl, uint8* lpszBuffer, out uint32 lpdwBufferLength, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCombineUrlW(PWSTR lpszBaseUrl, PWSTR lpszRelativeUrl, char16* lpszBuffer, out uint32 lpdwBufferLength, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* InternetOpenA(PSTR lpszAgent, uint32 dwAccessType, PSTR lpszProxy, PSTR lpszProxyBypass, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* InternetOpenW(PWSTR lpszAgent, uint32 dwAccessType, PWSTR lpszProxy, PWSTR lpszProxyBypass, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCloseHandle(void* hInternet);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* InternetConnectA(void* hInternet, PSTR lpszServerName, uint16 nServerPort, PSTR lpszUserName, PSTR lpszPassword, uint32 dwService, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* InternetConnectW(void* hInternet, PWSTR lpszServerName, uint16 nServerPort, PWSTR lpszUserName, PWSTR lpszPassword, uint32 dwService, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* InternetOpenUrlA(void* hInternet, PSTR lpszUrl, uint8* lpszHeaders, uint32 dwHeadersLength, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* InternetOpenUrlW(void* hInternet, PWSTR lpszUrl, char16* lpszHeaders, uint32 dwHeadersLength, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetReadFile(void* hFile, void* lpBuffer, uint32 dwNumberOfBytesToRead, out uint32 lpdwNumberOfBytesRead);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetReadFileExA(void* hFile, out INTERNET_BUFFERSA lpBuffersOut, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetReadFileExW(void* hFile, out INTERNET_BUFFERSW lpBuffersOut, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetSetFilePointer(void* hFile, int32 lDistanceToMove, int32* lpDistanceToMoveHigh, uint32 dwMoveMethod, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetWriteFile(void* hFile, void* lpBuffer, uint32 dwNumberOfBytesToWrite, out uint32 lpdwNumberOfBytesWritten);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetQueryDataAvailable(void* hFile, uint32* lpdwNumberOfBytesAvailable, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetFindNextFileA(void* hFind, void* lpvFindData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetFindNextFileW(void* hFind, void* lpvFindData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetQueryOptionA(void* hInternet, uint32 dwOption, void* lpBuffer, out uint32 lpdwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetQueryOptionW(void* hInternet, uint32 dwOption, void* lpBuffer, out uint32 lpdwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetOptionA(void* hInternet, uint32 dwOption, void* lpBuffer, uint32 dwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetOptionW(void* hInternet, uint32 dwOption, void* lpBuffer, uint32 dwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetOptionExA(void* hInternet, uint32 dwOption, void* lpBuffer, uint32 dwBufferLength, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetOptionExW(void* hInternet, uint32 dwOption, void* lpBuffer, uint32 dwBufferLength, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetLockRequestFile(void* hInternet, out HANDLE lphLockRequestInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetUnlockRequestFile(HANDLE hLockRequestInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetLastResponseInfoA(out uint32 lpdwError, uint8* lpszBuffer, out uint32 lpdwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetLastResponseInfoW(out uint32 lpdwError, char16* lpszBuffer, out uint32 lpdwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern LPINTERNET_STATUS_CALLBACK InternetSetStatusCallbackA(void* hInternet, LPINTERNET_STATUS_CALLBACK lpfnInternetCallback);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern LPINTERNET_STATUS_CALLBACK InternetSetStatusCallbackW(void* hInternet, LPINTERNET_STATUS_CALLBACK lpfnInternetCallback);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern LPINTERNET_STATUS_CALLBACK InternetSetStatusCallback(void* hInternet, LPINTERNET_STATUS_CALLBACK lpfnInternetCallback);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* FtpFindFirstFileA(void* hConnect, PSTR lpszSearchFile, WIN32_FIND_DATAA* lpFindFileData, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* FtpFindFirstFileW(void* hConnect, PWSTR lpszSearchFile, WIN32_FIND_DATAW* lpFindFileData, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpGetFileA(void* hConnect, PSTR lpszRemoteFile, PSTR lpszNewFile, BOOL fFailIfExists, uint32 dwFlagsAndAttributes, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpGetFileW(void* hConnect, PWSTR lpszRemoteFile, PWSTR lpszNewFile, BOOL fFailIfExists, uint32 dwFlagsAndAttributes, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpPutFileA(void* hConnect, PSTR lpszLocalFile, PSTR lpszNewRemoteFile, FTP_FLAGS dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpPutFileW(void* hConnect, PWSTR lpszLocalFile, PWSTR lpszNewRemoteFile, FTP_FLAGS dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpGetFileEx(void* hFtpSession, PSTR lpszRemoteFile, PWSTR lpszNewFile, BOOL fFailIfExists, uint32 dwFlagsAndAttributes, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpPutFileEx(void* hFtpSession, PWSTR lpszLocalFile, PSTR lpszNewRemoteFile, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpDeleteFileA(void* hConnect, PSTR lpszFileName);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpDeleteFileW(void* hConnect, PWSTR lpszFileName);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpRenameFileA(void* hConnect, PSTR lpszExisting, PSTR lpszNew);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpRenameFileW(void* hConnect, PWSTR lpszExisting, PWSTR lpszNew);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* FtpOpenFileA(void* hConnect, PSTR lpszFileName, uint32 dwAccess, FTP_FLAGS dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* FtpOpenFileW(void* hConnect, PWSTR lpszFileName, uint32 dwAccess, FTP_FLAGS dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpCreateDirectoryA(void* hConnect, PSTR lpszDirectory);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpCreateDirectoryW(void* hConnect, PWSTR lpszDirectory);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpRemoveDirectoryA(void* hConnect, PSTR lpszDirectory);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpRemoveDirectoryW(void* hConnect, PWSTR lpszDirectory);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpSetCurrentDirectoryA(void* hConnect, PSTR lpszDirectory);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpSetCurrentDirectoryW(void* hConnect, PWSTR lpszDirectory);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpGetCurrentDirectoryA(void* hConnect, uint8* lpszCurrentDirectory, out uint32 lpdwCurrentDirectory);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpGetCurrentDirectoryW(void* hConnect, char16* lpszCurrentDirectory, out uint32 lpdwCurrentDirectory);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpCommandA(void* hConnect, BOOL fExpectResponse, FTP_FLAGS dwFlags, PSTR lpszCommand, uint dwContext, void** phFtpCommand);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FtpCommandW(void* hConnect, BOOL fExpectResponse, FTP_FLAGS dwFlags, PWSTR lpszCommand, uint dwContext, void** phFtpCommand);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 FtpGetFileSize(void* hFile, uint32* lpdwFileSizeHigh);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GopherCreateLocatorA(PSTR lpszHost, uint16 nServerPort, PSTR lpszDisplayString, PSTR lpszSelectorString, uint32 dwGopherType, uint8* lpszLocator, out uint32 lpdwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GopherCreateLocatorW(PWSTR lpszHost, uint16 nServerPort, PWSTR lpszDisplayString, PWSTR lpszSelectorString, uint32 dwGopherType, char16* lpszLocator, out uint32 lpdwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GopherGetLocatorTypeA(PSTR lpszLocator, out uint32 lpdwGopherType);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GopherGetLocatorTypeW(PWSTR lpszLocator, out uint32 lpdwGopherType);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* GopherFindFirstFileA(void* hConnect, PSTR lpszLocator, PSTR lpszSearchString, GOPHER_FIND_DATAA* lpFindData, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* GopherFindFirstFileW(void* hConnect, PWSTR lpszLocator, PWSTR lpszSearchString, GOPHER_FIND_DATAW* lpFindData, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* GopherOpenFileA(void* hConnect, PSTR lpszLocator, PSTR lpszView, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* GopherOpenFileW(void* hConnect, PWSTR lpszLocator, PWSTR lpszView, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GopherGetAttributeA(void* hConnect, PSTR lpszLocator, PSTR lpszAttributeName, uint8* lpBuffer, uint32 dwBufferLength, out uint32 lpdwCharactersReturned, GOPHER_ATTRIBUTE_ENUMERATOR lpfnEnumerator, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GopherGetAttributeW(void* hConnect, PWSTR lpszLocator, PWSTR lpszAttributeName, uint8* lpBuffer, uint32 dwBufferLength, out uint32 lpdwCharactersReturned, GOPHER_ATTRIBUTE_ENUMERATOR lpfnEnumerator, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* HttpOpenRequestA(void* hConnect, PSTR lpszVerb, PSTR lpszObjectName, PSTR lpszVersion, PSTR lpszReferrer, PSTR* lplpszAcceptTypes, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* HttpOpenRequestW(void* hConnect, PWSTR lpszVerb, PWSTR lpszObjectName, PWSTR lpszVersion, PWSTR lpszReferrer, PWSTR* lplpszAcceptTypes, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpAddRequestHeadersA(void* hRequest, uint8* lpszHeaders, uint32 dwHeadersLength, HTTP_ADDREQ_FLAG dwModifiers);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpAddRequestHeadersW(void* hRequest, char16* lpszHeaders, uint32 dwHeadersLength, HTTP_ADDREQ_FLAG dwModifiers);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpSendRequestA(void* hRequest, uint8* lpszHeaders, uint32 dwHeadersLength, void* lpOptional, uint32 dwOptionalLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpSendRequestW(void* hRequest, char16* lpszHeaders, uint32 dwHeadersLength, void* lpOptional, uint32 dwOptionalLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpSendRequestExA(void* hRequest, INTERNET_BUFFERSA* lpBuffersIn, INTERNET_BUFFERSA* lpBuffersOut, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpSendRequestExW(void* hRequest, INTERNET_BUFFERSW* lpBuffersIn, INTERNET_BUFFERSW* lpBuffersOut, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpEndRequestA(void* hRequest, INTERNET_BUFFERSA* lpBuffersOut, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpEndRequestW(void* hRequest, INTERNET_BUFFERSW* lpBuffersOut, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpQueryInfoA(void* hRequest, uint32 dwInfoLevel, void* lpBuffer, out uint32 lpdwBufferLength, uint32* lpdwIndex);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpQueryInfoW(void* hRequest, uint32 dwInfoLevel, void* lpBuffer, out uint32 lpdwBufferLength, uint32* lpdwIndex);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetCookieA(PSTR lpszUrl, PSTR lpszCookieName, PSTR lpszCookieData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetCookieW(PWSTR lpszUrl, PWSTR lpszCookieName, PWSTR lpszCookieData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetCookieA(PSTR lpszUrl, PSTR lpszCookieName, uint8* lpszCookieData, out uint32 lpdwSize);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetCookieW(PWSTR lpszUrl, PWSTR lpszCookieName, char16* lpszCookieData, out uint32 lpdwSize);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetSetCookieExA(PSTR lpszUrl, PSTR lpszCookieName, PSTR lpszCookieData, uint32 dwFlags, uint dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetSetCookieExW(PWSTR lpszUrl, PWSTR lpszCookieName, PWSTR lpszCookieData, uint32 dwFlags, uint dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetCookieExA(PSTR lpszUrl, PSTR lpszCookieName, uint8* lpszCookieData, out uint32 lpdwSize, INTERNET_COOKIE_FLAGS dwFlags, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetCookieExW(PWSTR lpszUrl, PWSTR lpszCookieName, char16* lpszCookieData, out uint32 lpdwSize, INTERNET_COOKIE_FLAGS dwFlags, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void InternetFreeCookies(INTERNET_COOKIE2* pCookies, uint32 dwCookieCount);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetGetCookieEx2(PWSTR pcwszUrl, PWSTR pcwszCookieName, uint32 dwFlags, out INTERNET_COOKIE2* ppCookies, out uint32 pdwCookieCount);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetSetCookieEx2(PWSTR pcwszUrl, in INTERNET_COOKIE2 pCookie, PWSTR pcwszP3PPolicy, uint32 dwFlags, out uint32 pdwCookieState);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetAttemptConnect(uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCheckConnectionA(PSTR lpszUrl, uint32 dwFlags, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetCheckConnectionW(PWSTR lpszUrl, uint32 dwFlags, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL ResumeSuspendedDownload(void* hRequest, uint32 dwResultCode);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetErrorDlg(HWND hWnd, void* hRequest, uint32 dwError, uint32 dwFlags, void** lppvData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetConfirmZoneCrossingA(HWND hWnd, PSTR szUrlPrev, PSTR szUrlNew, BOOL bPost);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetConfirmZoneCrossingW(HWND hWnd, PWSTR szUrlPrev, PWSTR szUrlNew, BOOL bPost);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetConfirmZoneCrossing(HWND hWnd, PSTR szUrlPrev, PSTR szUrlNew, BOOL bPost);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL CreateUrlCacheEntryA(PSTR lpszUrlName, uint32 dwExpectedFileSize, PSTR lpszFileExtension, uint8* lpszFileName, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL CreateUrlCacheEntryW(PWSTR lpszUrlName, uint32 dwExpectedFileSize, PWSTR lpszFileExtension, char16* lpszFileName, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL CommitUrlCacheEntryA(PSTR lpszUrlName, PSTR lpszLocalFileName, FILETIME ExpireTime, FILETIME LastModifiedTime, uint32 CacheEntryType, uint8* lpHeaderInfo, uint32 cchHeaderInfo, PSTR lpszFileExtension, PSTR lpszOriginalUrl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL CommitUrlCacheEntryW(PWSTR lpszUrlName, PWSTR lpszLocalFileName, FILETIME ExpireTime, FILETIME LastModifiedTime, uint32 CacheEntryType, char16* lpszHeaderInfo, uint32 cchHeaderInfo, PWSTR lpszFileExtension, PWSTR lpszOriginalUrl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL RetrieveUrlCacheEntryFileA(PSTR lpszUrlName, INTERNET_CACHE_ENTRY_INFOA* lpCacheEntryInfo, out uint32 lpcbCacheEntryInfo, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL RetrieveUrlCacheEntryFileW(PWSTR lpszUrlName, INTERNET_CACHE_ENTRY_INFOW* lpCacheEntryInfo, out uint32 lpcbCacheEntryInfo, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL UnlockUrlCacheEntryFileA(PSTR lpszUrlName, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL UnlockUrlCacheEntryFileW(PWSTR lpszUrlName, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL UnlockUrlCacheEntryFile(PSTR lpszUrlName, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE RetrieveUrlCacheEntryStreamA(PSTR lpszUrlName, INTERNET_CACHE_ENTRY_INFOA* lpCacheEntryInfo, out uint32 lpcbCacheEntryInfo, BOOL fRandomRead, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE RetrieveUrlCacheEntryStreamW(PWSTR lpszUrlName, INTERNET_CACHE_ENTRY_INFOW* lpCacheEntryInfo, out uint32 lpcbCacheEntryInfo, BOOL fRandomRead, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL ReadUrlCacheEntryStream(HANDLE hUrlCacheStream, uint32 dwLocation, void* lpBuffer, out uint32 lpdwLen, uint32 Reserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL ReadUrlCacheEntryStreamEx(HANDLE hUrlCacheStream, uint64 qwLocation, void* lpBuffer, out uint32 lpdwLen);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL UnlockUrlCacheEntryStream(HANDLE hUrlCacheStream, uint32 Reserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheEntryInfoA(PSTR lpszUrlName, INTERNET_CACHE_ENTRY_INFOA* lpCacheEntryInfo, uint32* lpcbCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheEntryInfoW(PWSTR lpszUrlName, INTERNET_CACHE_ENTRY_INFOW* lpCacheEntryInfo, uint32* lpcbCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE FindFirstUrlCacheGroup(uint32 dwFlags, uint32 dwFilter, void* lpSearchCondition, uint32 dwSearchCondition, out int64 lpGroupId, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FindNextUrlCacheGroup(HANDLE hFind, out int64 lpGroupId, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheGroupAttributeA(int64 gid, uint32 dwFlags, uint32 dwAttributes, out INTERNET_CACHE_GROUP_INFOA lpGroupInfo, out uint32 lpcbGroupInfo, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheGroupAttributeW(int64 gid, uint32 dwFlags, uint32 dwAttributes, out INTERNET_CACHE_GROUP_INFOW lpGroupInfo, out uint32 lpcbGroupInfo, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheGroupAttributeA(int64 gid, uint32 dwFlags, uint32 dwAttributes, ref INTERNET_CACHE_GROUP_INFOA lpGroupInfo, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheGroupAttributeW(int64 gid, uint32 dwFlags, uint32 dwAttributes, ref INTERNET_CACHE_GROUP_INFOW lpGroupInfo, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheEntryInfoExA(PSTR lpszUrl, INTERNET_CACHE_ENTRY_INFOA* lpCacheEntryInfo, uint32* lpcbCacheEntryInfo, PSTR lpszRedirectUrl, out uint32 lpcbRedirectUrl, void* lpReserved, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheEntryInfoExW(PWSTR lpszUrl, INTERNET_CACHE_ENTRY_INFOW* lpCacheEntryInfo, uint32* lpcbCacheEntryInfo, PWSTR lpszRedirectUrl, out uint32 lpcbRedirectUrl, void* lpReserved, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheEntryInfoA(PSTR lpszUrlName, ref INTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, uint32 dwFieldControl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheEntryInfoW(PWSTR lpszUrlName, ref INTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, uint32 dwFieldControl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern int64 CreateUrlCacheGroup(uint32 dwFlags, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DeleteUrlCacheGroup(int64 GroupId, uint32 dwFlags, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheEntryGroupA(PSTR lpszUrlName, uint32 dwFlags, int64 GroupId, out uint8 pbGroupAttributes, uint32 cbGroupAttributes, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheEntryGroupW(PWSTR lpszUrlName, uint32 dwFlags, int64 GroupId, out uint8 pbGroupAttributes, uint32 cbGroupAttributes, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheEntryGroup(PSTR lpszUrlName, uint32 dwFlags, int64 GroupId, out uint8 pbGroupAttributes, uint32 cbGroupAttributes, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE FindFirstUrlCacheEntryExA(PSTR lpszUrlSearchPattern, uint32 dwFlags, uint32 dwFilter, int64 GroupId, INTERNET_CACHE_ENTRY_INFOA* lpFirstCacheEntryInfo, out uint32 lpcbCacheEntryInfo, void* lpGroupAttributes, out uint32 lpcbGroupAttributes, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE FindFirstUrlCacheEntryExW(PWSTR lpszUrlSearchPattern, uint32 dwFlags, uint32 dwFilter, int64 GroupId, INTERNET_CACHE_ENTRY_INFOW* lpFirstCacheEntryInfo, out uint32 lpcbCacheEntryInfo, void* lpGroupAttributes, out uint32 lpcbGroupAttributes, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FindNextUrlCacheEntryExA(HANDLE hEnumHandle, INTERNET_CACHE_ENTRY_INFOA* lpNextCacheEntryInfo, out uint32 lpcbCacheEntryInfo, void* lpGroupAttributes, out uint32 lpcbGroupAttributes, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FindNextUrlCacheEntryExW(HANDLE hEnumHandle, INTERNET_CACHE_ENTRY_INFOW* lpNextCacheEntryInfo, out uint32 lpcbCacheEntryInfo, void* lpGroupAttributes, out uint32 lpcbGroupAttributes, void* lpReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE FindFirstUrlCacheEntryA(PSTR lpszUrlSearchPattern, INTERNET_CACHE_ENTRY_INFOA* lpFirstCacheEntryInfo, out uint32 lpcbCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE FindFirstUrlCacheEntryW(PWSTR lpszUrlSearchPattern, INTERNET_CACHE_ENTRY_INFOW* lpFirstCacheEntryInfo, out uint32 lpcbCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FindNextUrlCacheEntryA(HANDLE hEnumHandle, INTERNET_CACHE_ENTRY_INFOA* lpNextCacheEntryInfo, out uint32 lpcbCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FindNextUrlCacheEntryW(HANDLE hEnumHandle, INTERNET_CACHE_ENTRY_INFOW* lpNextCacheEntryInfo, out uint32 lpcbCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FindCloseUrlCache(HANDLE hEnumHandle);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DeleteUrlCacheEntryA(PSTR lpszUrlName);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DeleteUrlCacheEntryW(PWSTR lpszUrlName);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DeleteUrlCacheEntry(PSTR lpszUrlName);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetDialA(HWND hwndParent, PSTR lpszConnectoid, uint32 dwFlags, out uint lpdwConnection, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetDialW(HWND hwndParent, PWSTR lpszConnectoid, uint32 dwFlags, out uint lpdwConnection, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetDial(HWND hwndParent, PSTR lpszConnectoid, uint32 dwFlags, out uint32 lpdwConnection, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetHangUp(uint dwConnection, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGoOnlineA(PSTR lpszURL, HWND hwndParent, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGoOnlineW(PWSTR lpszURL, HWND hwndParent, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGoOnline(PSTR lpszURL, HWND hwndParent, uint32 dwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetAutodial(INTERNET_AUTODIAL dwFlags, HWND hwndParent);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetAutodialHangup(uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetConnectedState(out INTERNET_CONNECTION lpdwFlags, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetConnectedStateExA(INTERNET_CONNECTION* lpdwFlags, uint8* lpszConnectionName, uint32 cchNameLen, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetConnectedStateExW(INTERNET_CONNECTION* lpdwFlags, char16* lpszConnectionName, uint32 cchNameLen, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DeleteWpadCacheForNetworks(WPAD_CACHE_DELETE param0);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetInitializeAutoProxyDll(uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DetectAutoProxyUrl(uint8* pszAutoProxyUrl, uint32 cchAutoProxyUrl, PROXY_AUTO_DETECT_TYPE dwDetectFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL CreateMD5SSOHash(PWSTR pszChallengeInfo, PWSTR pwszRealm, PWSTR pwszTarget, out uint8 pbHexHash);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetConnectedStateEx(out INTERNET_CONNECTION lpdwFlags, uint8* lpszConnectionName, uint32 dwNameLen, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetDialStateA(PSTR lpszConnectoid, uint32 dwState, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetDialStateW(PWSTR lpszConnectoid, uint32 dwState, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetDialState(PSTR lpszConnectoid, uint32 dwState, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetPerSiteCookieDecisionA(PSTR pchHostName, uint32 dwDecision);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSetPerSiteCookieDecisionW(PWSTR pchHostName, uint32 dwDecision);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetPerSiteCookieDecisionA(PSTR pchHostName, out uint32 pResult);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetPerSiteCookieDecisionW(PWSTR pchHostName, out uint32 pResult);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetClearAllPerSiteCookieDecisions();
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetEnumPerSiteCookieDecisionA(uint8* pszSiteName, out uint32 pcSiteNameSize, out uint32 pdwDecision, uint32 dwIndex);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetEnumPerSiteCookieDecisionW(char16* pszSiteName, out uint32 pcSiteNameSize, out uint32 pdwDecision, uint32 dwIndex);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 PrivacySetZonePreferenceW(uint32 dwZone, uint32 dwType, uint32 dwTemplate, PWSTR pszPreference);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 PrivacyGetZonePreferenceW(uint32 dwZone, uint32 dwType, uint32* pdwTemplate, char16* pszBuffer, uint32* pdwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 HttpIsHostHstsEnabled(PWSTR pcwszUrl, out BOOL pfIsHsts);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetAlgIdToStringA(uint32 ai, uint8* lpstr, out uint32 lpdwstrLength, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetAlgIdToStringW(uint32 ai, char16* lpstr, out uint32 lpdwstrLength, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSecurityProtocolToStringA(uint32 dwProtocol, uint8* lpstr, out uint32 lpdwstrLength, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetSecurityProtocolToStringW(uint32 dwProtocol, char16* lpstr, out uint32 lpdwstrLength, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetSecurityInfoByURLA(PSTR lpszURL, out CERT_CHAIN_CONTEXT* ppCertChain, out uint32 pdwSecureFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetSecurityInfoByURLW(PWSTR lpszURL, out CERT_CHAIN_CONTEXT* ppCertChain, out uint32 pdwSecureFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetGetSecurityInfoByURL(PSTR lpszURL, out CERT_CHAIN_CONTEXT* ppCertChain, out uint32 pdwSecureFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 ShowSecurityInfo(HWND hWndParent, ref INTERNET_SECURITY_INFO pSecurityInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 ShowX509EncodedCertificate(HWND hWndParent, ref uint8 lpCert, uint32 cbCert);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 ShowClientAuthCerts(HWND hWndParent);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 ParseX509EncodedCertificateForListBoxEntry(ref uint8 lpCert, uint32 cbCert, uint8* lpszListBoxEntry, out uint32 lpdwListBoxEntry);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetShowSecurityInfoByURLA(PSTR lpszURL, HWND hwndParent);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetShowSecurityInfoByURLW(PWSTR lpszURL, HWND hwndParent);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetShowSecurityInfoByURL(PSTR lpszURL, HWND hwndParent);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetFortezzaCommand(uint32 dwCommand, HWND hwnd, uint dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetQueryFortezzaStatus(out uint32 pdwStatus, uint dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetWriteFileExA(void* hFile, ref INTERNET_BUFFERSA lpBuffersIn, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL InternetWriteFileExW(void* hFile, ref INTERNET_BUFFERSW lpBuffersIn, uint32 dwFlags, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern int32 FindP3PPolicySymbol(PSTR pszSymbol);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 HttpGetServerCredentials(PWSTR pwszUrl, out PWSTR ppwszUserName, out PWSTR ppwszPassword);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 HttpPushEnable(void* hRequest, ref HTTP_PUSH_TRANSPORT_SETTING pTransportSetting, out HTTP_PUSH_WAIT_HANDLE phWait);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 HttpPushWait(HTTP_PUSH_WAIT_HANDLE hWait, HTTP_PUSH_WAIT_TYPE eType, HTTP_PUSH_NOTIFICATION_STATUS* pNotificationStatus);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void HttpPushClose(HTTP_PUSH_WAIT_HANDLE hWait);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpCheckDavComplianceA(PSTR lpszUrl, PSTR lpszComplianceToken, out int32 lpfFound, HWND hWnd, void* lpvReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpCheckDavComplianceW(PWSTR lpszUrl, PWSTR lpszComplianceToken, out int32 lpfFound, HWND hWnd, void* lpvReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL IsUrlCacheEntryExpiredA(PSTR lpszUrlName, uint32 dwFlags, out FILETIME pftLastModified);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL IsUrlCacheEntryExpiredW(PWSTR lpszUrlName, uint32 dwFlags, out FILETIME pftLastModified);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL CreateUrlCacheEntryExW(PWSTR lpszUrlName, uint32 dwExpectedFileSize, PWSTR lpszFileExtension, char16* lpszFileName, uint32 dwReserved, BOOL fPreserveIncomingFileName);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 GetUrlCacheEntryBinaryBlob(PWSTR pwszUrlName, out uint32 dwType, out FILETIME pftExpireTime, out FILETIME pftAccessTime, out FILETIME pftModifiedTime, uint8** ppbBlob, out uint32 pcbBlob);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 CommitUrlCacheEntryBinaryBlob(PWSTR pwszUrlName, uint32 dwType, FILETIME ftExpireTime, FILETIME ftModifiedTime, uint8* pbBlob, uint32 cbBlob);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL CreateUrlCacheContainerA(PSTR Name, PSTR lpCachePrefix, PSTR lpszCachePath, uint32 KBCacheLimit, uint32 dwContainerType, uint32 dwOptions, void* pvBuffer, out uint32 cbBuffer);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL CreateUrlCacheContainerW(PWSTR Name, PWSTR lpCachePrefix, PWSTR lpszCachePath, uint32 KBCacheLimit, uint32 dwContainerType, uint32 dwOptions, void* pvBuffer, out uint32 cbBuffer);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DeleteUrlCacheContainerA(PSTR Name, uint32 dwOptions);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DeleteUrlCacheContainerW(PWSTR Name, uint32 dwOptions);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE FindFirstUrlCacheContainerA(out uint32 pdwModified, out INTERNET_CACHE_CONTAINER_INFOA lpContainerInfo, out uint32 lpcbContainerInfo, uint32 dwOptions);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HANDLE FindFirstUrlCacheContainerW(out uint32 pdwModified, out INTERNET_CACHE_CONTAINER_INFOW lpContainerInfo, out uint32 lpcbContainerInfo, uint32 dwOptions);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FindNextUrlCacheContainerA(HANDLE hEnumHandle, out INTERNET_CACHE_CONTAINER_INFOA lpContainerInfo, out uint32 lpcbContainerInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FindNextUrlCacheContainerW(HANDLE hEnumHandle, out INTERNET_CACHE_CONTAINER_INFOW lpContainerInfo, out uint32 lpcbContainerInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FreeUrlCacheSpaceA(PSTR lpszCachePath, uint32 dwSize, uint32 dwFilter);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL FreeUrlCacheSpaceW(PWSTR lpszCachePath, uint32 dwSize, uint32 dwFilter);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheFreeGlobalSpace(uint64 ullTargetSize, uint32 dwFilter);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheGetGlobalCacheSize(uint32 dwFilter, out uint64 pullSize, out uint64 pullLimit);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheConfigInfoA(out INTERNET_CACHE_CONFIG_INFOA lpCacheConfigInfo, out uint32 lpcbCacheConfigInfo, CACHE_CONFIG dwFieldControl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheConfigInfoW(out INTERNET_CACHE_CONFIG_INFOW lpCacheConfigInfo, out uint32 lpcbCacheConfigInfo, CACHE_CONFIG dwFieldControl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheConfigInfoA(ref INTERNET_CACHE_CONFIG_INFOA lpCacheConfigInfo, uint32 dwFieldControl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheConfigInfoW(ref INTERNET_CACHE_CONFIG_INFOW lpCacheConfigInfo, uint32 dwFieldControl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 RunOnceUrlCache(HWND hwnd, HINSTANCE hinst, PSTR lpszCmd, int32 nCmdShow);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 DeleteIE3Cache(HWND hwnd, HINSTANCE hinst, PSTR lpszCmd, int32 nCmdShow);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL UpdateUrlCacheContentPath(PSTR szNewPath);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL RegisterUrlCacheNotification(HWND hWnd, uint32 uMsg, int64 gid, uint32 dwOpsFilter, uint32 dwReserved);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetUrlCacheHeaderData(uint32 nIdx, out uint32 lpdwData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL SetUrlCacheHeaderData(uint32 nIdx, uint32 dwData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL IncrementUrlCacheHeaderData(uint32 nIdx, out uint32 lpdwData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL LoadUrlCacheContent();
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheLookup(PWSTR pwszUrl, uint32 dwFlags, void** phAppCache);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheCheckManifest(PWSTR pwszMasterUrl, PWSTR pwszManifestUrl, in uint8 pbManifestData, uint32 dwManifestDataSize, in uint8 pbManifestResponseHeaders, uint32 dwManifestResponseHeadersSize, out APP_CACHE_STATE peState, void** phNewAppCache);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheGetDownloadList(void* hAppCache, out APP_CACHE_DOWNLOAD_LIST pDownloadList);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void AppCacheFreeDownloadList(out APP_CACHE_DOWNLOAD_LIST pDownloadList);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheFinalize(void* hAppCache, in uint8 pbManifestData, uint32 dwManifestDataSize, out APP_CACHE_FINALIZE_STATE peState);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheGetFallbackUrl(void* hAppCache, PWSTR pwszUrl, out PWSTR ppwszFallbackUrl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheGetManifestUrl(void* hAppCache, out PWSTR ppwszManifestUrl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheDuplicateHandle(void* hAppCache, void** phDuplicatedAppCache);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void AppCacheCloseHandle(void* hAppCache);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void AppCacheFreeGroupList(out APP_CACHE_GROUP_LIST pAppCacheGroupList);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheGetGroupList(out APP_CACHE_GROUP_LIST pAppCacheGroupList);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheGetInfo(void* hAppCache, out APP_CACHE_GROUP_INFO pAppCacheInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheDeleteGroup(PWSTR pwszManifestUrl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheFreeSpace(FILETIME ftCutOff);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheGetIEGroupList(out APP_CACHE_GROUP_LIST pAppCacheGroupList);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheDeleteIEGroup(PWSTR pwszManifestUrl);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheFreeIESpace(FILETIME ftCutOff);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 AppCacheCreateAndCommitFile(void* hAppCache, PWSTR pwszSourceFilePath, PWSTR pwszUrl, in uint8 pbResponseHeaders, uint32 dwResponseHeadersSize);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 HttpOpenDependencyHandle(void* hRequestHandle, BOOL fBackground, void** phDependencyHandle);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void HttpCloseDependencyHandle(void* hDependencyHandle);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 HttpDuplicateDependencyHandle(void* hDependencyHandle, void** phDuplicatedDependencyHandle);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 HttpIndicatePageLoadComplete(void* hDependencyHandle);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void UrlCacheFreeEntryInfo(out URLCACHE_ENTRY_INFO pCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheGetEntryInfo(void* hAppCache, PWSTR pcwszUrl, URLCACHE_ENTRY_INFO* pCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void UrlCacheCloseEntryHandle(void* hEntryFile);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheRetrieveEntryFile(void* hAppCache, PWSTR pcwszUrl, out URLCACHE_ENTRY_INFO pCacheEntryInfo, void** phEntryFile);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheReadEntryStream(void* hUrlCacheStream, uint64 ullLocation, void* pBuffer, uint32 dwBufferLen, out uint32 pdwBufferLen);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheRetrieveEntryStream(void* hAppCache, PWSTR pcwszUrl, BOOL fRandomRead, out URLCACHE_ENTRY_INFO pCacheEntryInfo, void** phEntryStream);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheUpdateEntryExtraData(void* hAppCache, PWSTR pcwszUrl, in uint8 pbExtraData, uint32 cbExtraData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheCreateContainer(PWSTR pwszName, PWSTR pwszPrefix, PWSTR pwszDirectory, uint64 ullLimit, uint32 dwOptions);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheCheckEntriesExist(PWSTR* rgpwszUrls, uint32 cEntries, BOOL* rgfExist);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheGetContentPaths(out PWSTR* pppwszDirectories, out uint32 pcDirectories);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheGetGlobalLimit(URL_CACHE_LIMIT_TYPE limitType, out uint64 pullLimit);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheSetGlobalLimit(URL_CACHE_LIMIT_TYPE limitType, uint64 ullLimit);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheReloadSettings();
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheContainerSetEntryMaximumAge(PWSTR pwszPrefix, uint32 dwEntryMaxAge);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheFindFirstEntry(PWSTR pwszPrefix, uint32 dwFlags, uint32 dwFilter, int64 GroupId, out URLCACHE_ENTRY_INFO pCacheEntryInfo, out HANDLE phFind);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheFindNextEntry(HANDLE hFind, out URLCACHE_ENTRY_INFO pCacheEntryInfo);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 UrlCacheServer();
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL ReadGuidsForConnectedNetworks(uint32* pcNetworks, PWSTR** pppwszNetworkGuids, BSTR** pppbstrNetworkNames, PWSTR** pppwszGWMacs, uint32* pcGatewayMacs, uint32* pdwFlags);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL IsHostInProxyBypassList(INTERNET_SCHEME tScheme, uint8* lpszHost, uint32 cchHost);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void InternetFreeProxyInfoList(out WININET_PROXY_INFO_LIST pProxyInfoList);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetGetProxyForUrl(void* hInternet, PWSTR pcwszUrl, out WININET_PROXY_INFO_LIST pProxyInfoList);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL DoConnectoidsExist();
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL GetDiskInfoA(PSTR pszPath, uint32* pdwClusterSize, uint64* pdlAvail, uint64* pdlTotal);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL PerformOperationOverUrlCacheA(PSTR pszUrlSearchPattern, uint32 dwFlags, uint32 dwFilter, int64 GroupId, void* pReserved1, out uint32 pdwReserved2, void* pReserved3, CACHE_OPERATOR op, void* pOperatorData);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL IsProfilesEnabled();
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternalInternetGetCookie(PSTR lpszUrl, uint8* lpszCookieData, out uint32 lpdwDataSize);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL ImportCookieFileA(PSTR szFilename);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL ImportCookieFileW(PWSTR szFilename);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL ExportCookieFileA(PSTR szFilename, BOOL fAppend);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL ExportCookieFileW(PWSTR szFilename, BOOL fAppend);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL IsDomainLegalCookieDomainA(PSTR pchDomain, PSTR pchFullDomain);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL IsDomainLegalCookieDomainW(PWSTR pchDomain, PWSTR pchFullDomain);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void* HttpWebSocketCompleteUpgrade(void* hRequest, uint dwContext);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpWebSocketSend(void* hWebSocket, HTTP_WEB_SOCKET_BUFFER_TYPE BufferType, void* pvBuffer, uint32 dwBufferLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpWebSocketReceive(void* hWebSocket, void* pvBuffer, uint32 dwBufferLength, out uint32 pdwBytesRead, out HTTP_WEB_SOCKET_BUFFER_TYPE pBufferType);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpWebSocketClose(void* hWebSocket, uint16 usStatus, void* pvReason, uint32 dwReasonLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpWebSocketShutdown(void* hWebSocket, uint16 usStatus, void* pvReason, uint32 dwReasonLength);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL HttpWebSocketQueryCloseStatus(void* hWebSocket, out uint16 pusStatus, void* pvReason, uint32 dwReasonLength, out uint32 pdwReasonLengthConsumed);
		[Import("wininet.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 InternetConvertUrlFromWireToWideChar(uint8* pcszUrl, uint32 cchUrl, PWSTR pcwszBaseUrl, uint32 dwCodePageHost, uint32 dwCodePagePath, BOOL fEncodePathExtra, uint32 dwCodePageExtra, out PWSTR ppwszConvertedUrl);
	}
}
