golang.zx2c4.com/wireguard/windows@v0.5.4-0.20230123132234-dcc0eb72a04b/updater/winhttp/syscall_windows.go (about) 1 /* SPDX-License-Identifier: MIT 2 * 3 * Copyright (C) 2019-2022 WireGuard LLC. All Rights Reserved. 4 */ 5 6 package winhttp 7 8 import ( 9 "golang.org/x/sys/windows" 10 ) 11 12 type _HINTERNET windows.Handle 13 14 type Error uint32 15 16 const ( 17 _WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0 18 _WINHTTP_ACCESS_TYPE_NO_PROXY = 1 19 _WINHTTP_ACCESS_TYPE_NAMED_PROXY = 3 20 _WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY = 4 21 22 _WINHTTP_FLAG_ASYNC = 0x10000000 23 24 _WINHTTP_INVALID_STATUS_CALLBACK = ^uintptr(0) 25 26 _WINHTTP_CALLBACK_STATUS_RESOLVING_NAME = 0x00000001 27 _WINHTTP_CALLBACK_STATUS_NAME_RESOLVED = 0x00000002 28 _WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER = 0x00000004 29 _WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER = 0x00000008 30 _WINHTTP_CALLBACK_STATUS_SENDING_REQUEST = 0x00000010 31 _WINHTTP_CALLBACK_STATUS_REQUEST_SENT = 0x00000020 32 _WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE = 0x00000040 33 _WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED = 0x00000080 34 _WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION = 0x00000100 35 _WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED = 0x00000200 36 _WINHTTP_CALLBACK_STATUS_HANDLE_CREATED = 0x00000400 37 _WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING = 0x00000800 38 _WINHTTP_CALLBACK_STATUS_DETECTING_PROXY = 0x00001000 39 _WINHTTP_CALLBACK_STATUS_REDIRECT = 0x00004000 40 _WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE = 0x00008000 41 _WINHTTP_CALLBACK_STATUS_SECURE_FAILURE = 0x00010000 42 _WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE = 0x00020000 43 _WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE = 0x00040000 44 _WINHTTP_CALLBACK_STATUS_READ_COMPLETE = 0x00080000 45 _WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE = 0x00100000 46 _WINHTTP_CALLBACK_STATUS_REQUEST_ERROR = 0x00200000 47 _WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE = 0x00400000 48 _WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE = 0x01000000 49 _WINHTTP_CALLBACK_STATUS_CLOSE_COMPLETE = 0x02000000 50 _WINHTTP_CALLBACK_STATUS_SHUTDOWN_COMPLETE = 0x04000000 51 _WINHTTP_CALLBACK_STATUS_SETTINGS_WRITE_COMPLETE = 0x10000000 52 _WINHTTP_CALLBACK_STATUS_SETTINGS_READ_COMPLETE = 0x20000000 53 54 _WINHTTP_CALLBACK_FLAG_RESOLVE_NAME = _WINHTTP_CALLBACK_STATUS_RESOLVING_NAME | _WINHTTP_CALLBACK_STATUS_NAME_RESOLVED 55 _WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER = _WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER | _WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER 56 _WINHTTP_CALLBACK_FLAG_SEND_REQUEST = _WINHTTP_CALLBACK_STATUS_SENDING_REQUEST | _WINHTTP_CALLBACK_STATUS_REQUEST_SENT 57 _WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE = _WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE | _WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED 58 _WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION = _WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION | _WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED 59 _WINHTTP_CALLBACK_FLAG_HANDLES = _WINHTTP_CALLBACK_STATUS_HANDLE_CREATED | _WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING 60 _WINHTTP_CALLBACK_FLAG_DETECTING_PROXY = _WINHTTP_CALLBACK_STATUS_DETECTING_PROXY 61 _WINHTTP_CALLBACK_FLAG_REDIRECT = _WINHTTP_CALLBACK_STATUS_REDIRECT 62 _WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE = _WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE 63 _WINHTTP_CALLBACK_FLAG_SECURE_FAILURE = _WINHTTP_CALLBACK_STATUS_SECURE_FAILURE 64 _WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE = _WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE 65 _WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE = _WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE 66 _WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE = _WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE 67 _WINHTTP_CALLBACK_FLAG_READ_COMPLETE = _WINHTTP_CALLBACK_STATUS_READ_COMPLETE 68 _WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE = _WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE 69 _WINHTTP_CALLBACK_FLAG_REQUEST_ERROR = _WINHTTP_CALLBACK_STATUS_REQUEST_ERROR 70 _WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE = _WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE 71 _WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS = _WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE | _WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE | _WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE | _WINHTTP_CALLBACK_STATUS_READ_COMPLETE | _WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE | _WINHTTP_CALLBACK_STATUS_REQUEST_ERROR | _WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE 72 _WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS = 0xffffffff 73 74 _INTERNET_DEFAULT_PORT = 0 75 _INTERNET_DEFAULT_HTTP_PORT = 80 76 _INTERNET_DEFAULT_HTTPS_PORT = 443 77 78 _WINHTTP_FLAG_SECURE = 0x00800000 79 _WINHTTP_FLAG_ESCAPE_PERCENT = 0x00000004 80 _WINHTTP_FLAG_NULL_CODEPAGE = 0x00000008 81 _WINHTTP_FLAG_BYPASS_PROXY_CACHE = 0x00000100 82 _WINHTTP_FLAG_REFRESH = _WINHTTP_FLAG_BYPASS_PROXY_CACHE 83 _WINHTTP_FLAG_ESCAPE_DISABLE = 0x00000040 84 _WINHTTP_FLAG_ESCAPE_DISABLE_QUERY = 0x00000080 85 86 _WINHTTP_QUERY_MIME_VERSION = 0 87 _WINHTTP_QUERY_CONTENT_TYPE = 1 88 _WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2 89 _WINHTTP_QUERY_CONTENT_ID = 3 90 _WINHTTP_QUERY_CONTENT_DESCRIPTION = 4 91 _WINHTTP_QUERY_CONTENT_LENGTH = 5 92 _WINHTTP_QUERY_CONTENT_LANGUAGE = 6 93 _WINHTTP_QUERY_ALLOW = 7 94 _WINHTTP_QUERY_PUBLIC = 8 95 _WINHTTP_QUERY_DATE = 9 96 _WINHTTP_QUERY_EXPIRES = 10 97 _WINHTTP_QUERY_LAST_MODIFIED = 11 98 _WINHTTP_QUERY_MESSAGE_ID = 12 99 _WINHTTP_QUERY_URI = 13 100 _WINHTTP_QUERY_DERIVED_FROM = 14 101 _WINHTTP_QUERY_COST = 15 102 _WINHTTP_QUERY_LINK = 16 103 _WINHTTP_QUERY_PRAGMA = 17 104 _WINHTTP_QUERY_VERSION = 18 105 _WINHTTP_QUERY_STATUS_CODE = 19 106 _WINHTTP_QUERY_STATUS_TEXT = 20 107 _WINHTTP_QUERY_RAW_HEADERS = 21 108 _WINHTTP_QUERY_RAW_HEADERS_CRLF = 22 109 _WINHTTP_QUERY_CONNECTION = 23 110 _WINHTTP_QUERY_ACCEPT = 24 111 _WINHTTP_QUERY_ACCEPT_CHARSET = 25 112 _WINHTTP_QUERY_ACCEPT_ENCODING = 26 113 _WINHTTP_QUERY_ACCEPT_LANGUAGE = 27 114 _WINHTTP_QUERY_AUTHORIZATION = 28 115 _WINHTTP_QUERY_CONTENT_ENCODING = 29 116 _WINHTTP_QUERY_FORWARDED = 30 117 _WINHTTP_QUERY_FROM = 31 118 _WINHTTP_QUERY_IF_MODIFIED_SINCE = 32 119 _WINHTTP_QUERY_LOCATION = 33 120 _WINHTTP_QUERY_ORIG_URI = 34 121 _WINHTTP_QUERY_REFERER = 35 122 _WINHTTP_QUERY_RETRY_AFTER = 36 123 _WINHTTP_QUERY_SERVER = 37 124 _WINHTTP_QUERY_TITLE = 38 125 _WINHTTP_QUERY_USER_AGENT = 39 126 _WINHTTP_QUERY_WWW_AUTHENTICATE = 40 127 _WINHTTP_QUERY_PROXY_AUTHENTICATE = 41 128 _WINHTTP_QUERY_ACCEPT_RANGES = 42 129 _WINHTTP_QUERY_SET_COOKIE = 43 130 _WINHTTP_QUERY_COOKIE = 44 131 _WINHTTP_QUERY_REQUEST_METHOD = 45 132 _WINHTTP_QUERY_REFRESH = 46 133 _WINHTTP_QUERY_CONTENT_DISPOSITION = 47 134 _WINHTTP_QUERY_AGE = 48 135 _WINHTTP_QUERY_CACHE_CONTROL = 49 136 _WINHTTP_QUERY_CONTENT_BASE = 50 137 _WINHTTP_QUERY_CONTENT_LOCATION = 51 138 _WINHTTP_QUERY_CONTENT_MD5 = 52 139 _WINHTTP_QUERY_CONTENT_RANGE = 53 140 _WINHTTP_QUERY_ETAG = 54 141 _WINHTTP_QUERY_HOST = 55 142 _WINHTTP_QUERY_IF_MATCH = 56 143 _WINHTTP_QUERY_IF_NONE_MATCH = 57 144 _WINHTTP_QUERY_IF_RANGE = 58 145 _WINHTTP_QUERY_IF_UNMODIFIED_SINCE = 59 146 _WINHTTP_QUERY_MAX_FORWARDS = 60 147 _WINHTTP_QUERY_PROXY_AUTHORIZATION = 61 148 _WINHTTP_QUERY_RANGE = 62 149 _WINHTTP_QUERY_TRANSFER_ENCODING = 63 150 _WINHTTP_QUERY_UPGRADE = 64 151 _WINHTTP_QUERY_VARY = 65 152 _WINHTTP_QUERY_VIA = 66 153 _WINHTTP_QUERY_WARNING = 67 154 _WINHTTP_QUERY_EXPECT = 68 155 _WINHTTP_QUERY_PROXY_CONNECTION = 69 156 _WINHTTP_QUERY_UNLESS_MODIFIED_SINCE = 70 157 _WINHTTP_QUERY_PROXY_SUPPORT = 75 158 _WINHTTP_QUERY_AUTHENTICATION_INFO = 76 159 _WINHTTP_QUERY_PASSPORT_URLS = 77 160 _WINHTTP_QUERY_PASSPORT_CONFIG = 78 161 _WINHTTP_QUERY_MAX = 78 162 _WINHTTP_QUERY_CUSTOM = 65535 163 _WINHTTP_QUERY_FLAG_REQUEST_HEADERS = 0x80000000 164 _WINHTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000 165 _WINHTTP_QUERY_FLAG_NUMBER = 0x20000000 166 _WINHTTP_QUERY_FLAG_NUMBER64 = 0x08000000 167 168 _WINHTTP_FIRST_OPTION = _WINHTTP_OPTION_CALLBACK 169 _WINHTTP_OPTION_CALLBACK = 1 170 _WINHTTP_OPTION_RESOLVE_TIMEOUT = 2 171 _WINHTTP_OPTION_CONNECT_TIMEOUT = 3 172 _WINHTTP_OPTION_CONNECT_RETRIES = 4 173 _WINHTTP_OPTION_SEND_TIMEOUT = 5 174 _WINHTTP_OPTION_RECEIVE_TIMEOUT = 6 175 _WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT = 7 176 _WINHTTP_OPTION_HANDLE_TYPE = 9 177 _WINHTTP_OPTION_READ_BUFFER_SIZE = 12 178 _WINHTTP_OPTION_WRITE_BUFFER_SIZE = 13 179 _WINHTTP_OPTION_PARENT_HANDLE = 21 180 _WINHTTP_OPTION_EXTENDED_ERROR = 24 181 _WINHTTP_OPTION_SECURITY_FLAGS = 31 182 _WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT = 32 183 _WINHTTP_OPTION_URL = 34 184 _WINHTTP_OPTION_SECURITY_KEY_BITNESS = 36 185 _WINHTTP_OPTION_PROXY = 38 186 _WINHTTP_OPTION_PROXY_RESULT_ENTRY = 39 187 _WINHTTP_OPTION_USER_AGENT = 41 188 _WINHTTP_OPTION_CONTEXT_VALUE = 45 189 _WINHTTP_OPTION_CLIENT_CERT_CONTEXT = 47 190 _WINHTTP_OPTION_REQUEST_PRIORITY = 58 191 _WINHTTP_OPTION_HTTP_VERSION = 59 192 _WINHTTP_OPTION_DISABLE_FEATURE = 63 193 _WINHTTP_OPTION_CODEPAGE = 68 194 _WINHTTP_OPTION_MAX_CONNS_PER_SERVER = 73 195 _WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER = 74 196 _WINHTTP_OPTION_AUTOLOGON_POLICY = 77 197 _WINHTTP_OPTION_SERVER_CERT_CONTEXT = 78 198 _WINHTTP_OPTION_ENABLE_FEATURE = 79 199 _WINHTTP_OPTION_WORKER_THREAD_COUNT = 80 200 _WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT = 81 201 _WINHTTP_OPTION_PASSPORT_COBRANDING_URL = 82 202 _WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH = 83 203 _WINHTTP_OPTION_SECURE_PROTOCOLS = 84 204 _WINHTTP_OPTION_ENABLETRACING = 85 205 _WINHTTP_OPTION_PASSPORT_SIGN_OUT = 86 206 _WINHTTP_OPTION_PASSPORT_RETURN_URL = 87 207 _WINHTTP_OPTION_REDIRECT_POLICY = 88 208 _WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS = 89 209 _WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE = 90 210 _WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE = 91 211 _WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE = 92 212 _WINHTTP_OPTION_CONNECTION_INFO = 93 213 _WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST = 94 214 _WINHTTP_OPTION_SPN = 96 215 _WINHTTP_OPTION_GLOBAL_PROXY_CREDS = 97 216 _WINHTTP_OPTION_GLOBAL_SERVER_CREDS = 98 217 _WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT = 99 218 _WINHTTP_OPTION_REJECT_USERPWD_IN_URL = 100 219 _WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS = 101 220 _WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE = 103 221 _WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE = 104 222 _WINHTTP_OPTION_SERVER_SPN_USED = 106 223 _WINHTTP_OPTION_PROXY_SPN_USED = 107 224 _WINHTTP_OPTION_SERVER_CBT = 108 225 _WINHTTP_OPTION_UNSAFE_HEADER_PARSING = 110 226 _WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS = 111 227 _WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET = 114 228 _WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT = 115 229 _WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL = 116 230 _WINHTTP_OPTION_DECOMPRESSION = 118 231 _WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE = 122 232 _WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE = 123 233 _WINHTTP_OPTION_TCP_PRIORITY_HINT = 128 234 _WINHTTP_OPTION_CONNECTION_FILTER = 131 235 _WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL = 133 236 _WINHTTP_OPTION_HTTP_PROTOCOL_USED = 134 237 _WINHTTP_OPTION_KDC_PROXY_SETTINGS = 136 238 _WINHTTP_OPTION_ENCODE_EXTRA = 138 239 _WINHTTP_OPTION_DISABLE_STREAM_QUEUE = 139 240 _WINHTTP_OPTION_IPV6_FAST_FALLBACK = 140 241 _WINHTTP_OPTION_CONNECTION_STATS_V0 = 141 242 _WINHTTP_OPTION_REQUEST_TIMES = 142 243 _WINHTTP_OPTION_EXPIRE_CONNECTION = 143 244 _WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK = 144 245 _WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED = 145 246 _WINHTTP_OPTION_REQUEST_STATS = 146 247 _WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT = 147 248 _WINHTTP_LAST_OPTION = _WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT 249 250 _ICU_ESCAPE = 0x80000000 251 _ICU_ESCAPE_AUTHORITY = 0x00002000 252 _ICU_REJECT_USERPWD = 0x00004000 253 254 _INTERNET_SCHEME_HTTP = 1 255 _INTERNET_SCHEME_HTTPS = 2 256 _INTERNET_SCHEME_FTP = 3 257 _INTERNET_SCHEME_SOCKS = 4 258 259 _WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 = 0x00000008 260 _WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 = 0x00000020 261 _WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 = 0x00000080 262 _WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 = 0x00000200 263 _WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 = 0x00000800 264 _WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 = 0x00002000 265 _WINHTTP_FLAG_SECURE_PROTOCOL_ALL = _WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | _WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | _WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 266 267 _WINHTTP_PROTOCOL_FLAG_HTTP2 = 0x1 268 269 _WINHTTP_ERROR_BASE = 12000 270 _ERROR_WINHTTP_OUT_OF_HANDLES = Error(12000 + 1) 271 _ERROR_WINHTTP_TIMEOUT = Error(12000 + 2) 272 _ERROR_WINHTTP_INTERNAL_ERROR = Error(12000 + 4) 273 _ERROR_WINHTTP_INVALID_URL = Error(12000 + 5) 274 _ERROR_WINHTTP_UNRECOGNIZED_SCHEME = Error(12000 + 6) 275 _ERROR_WINHTTP_NAME_NOT_RESOLVED = Error(12000 + 7) 276 _ERROR_WINHTTP_INVALID_OPTION = Error(12000 + 9) 277 _ERROR_WINHTTP_OPTION_NOT_SETTABLE = Error(12000 + 11) 278 _ERROR_WINHTTP_SHUTDOWN = Error(12000 + 12) 279 _ERROR_WINHTTP_LOGIN_FAILURE = Error(12000 + 15) 280 _ERROR_WINHTTP_OPERATION_CANCELLED = Error(12000 + 17) 281 _ERROR_WINHTTP_INCORRECT_HANDLE_TYPE = Error(12000 + 18) 282 _ERROR_WINHTTP_INCORRECT_HANDLE_STATE = Error(12000 + 19) 283 _ERROR_WINHTTP_CANNOT_CONNECT = Error(12000 + 29) 284 _ERROR_WINHTTP_CONNECTION_ERROR = Error(12000 + 30) 285 _ERROR_WINHTTP_RESEND_REQUEST = Error(12000 + 32) 286 _ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED = Error(12000 + 44) 287 _ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN = Error(12000 + 100) 288 _ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND = Error(12000 + 101) 289 _ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND = Error(12000 + 102) 290 _ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN = Error(12000 + 103) 291 _ERROR_WINHTTP_HEADER_NOT_FOUND = Error(12000 + 150) 292 _ERROR_WINHTTP_INVALID_SERVER_RESPONSE = Error(12000 + 152) 293 _ERROR_WINHTTP_INVALID_HEADER = Error(12000 + 153) 294 _ERROR_WINHTTP_INVALID_QUERY_REQUEST = Error(12000 + 154) 295 _ERROR_WINHTTP_HEADER_ALREADY_EXISTS = Error(12000 + 155) 296 _ERROR_WINHTTP_REDIRECT_FAILED = Error(12000 + 156) 297 _ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR = Error(12000 + 178) 298 _ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT = Error(12000 + 166) 299 _ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT = Error(12000 + 167) 300 _ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE = Error(12000 + 176) 301 _ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR = Error(12000 + 177) 302 _ERROR_WINHTTP_NOT_INITIALIZED = Error(12000 + 172) 303 _ERROR_WINHTTP_SECURE_FAILURE = Error(12000 + 175) 304 _ERROR_WINHTTP_SECURE_CERT_DATE_INVALID = Error(12000 + 37) 305 _ERROR_WINHTTP_SECURE_CERT_CN_INVALID = Error(12000 + 38) 306 _ERROR_WINHTTP_SECURE_INVALID_CA = Error(12000 + 45) 307 _ERROR_WINHTTP_SECURE_CERT_REV_FAILED = Error(12000 + 57) 308 _ERROR_WINHTTP_SECURE_CHANNEL_ERROR = Error(12000 + 157) 309 _ERROR_WINHTTP_SECURE_INVALID_CERT = Error(12000 + 169) 310 _ERROR_WINHTTP_SECURE_CERT_REVOKED = Error(12000 + 170) 311 _ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE = Error(12000 + 179) 312 _ERROR_WINHTTP_AUTODETECTION_FAILED = Error(12000 + 180) 313 _ERROR_WINHTTP_HEADER_COUNT_EXCEEDED = Error(12000 + 181) 314 _ERROR_WINHTTP_HEADER_SIZE_OVERFLOW = Error(12000 + 182) 315 _ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW = Error(12000 + 183) 316 _ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW = Error(12000 + 184) 317 _ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY = Error(12000 + 185) 318 _ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY = Error(12000 + 186) 319 _ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED_PROXY = Error(12000 + 187) 320 _ERROR_WINHTTP_SECURE_FAILURE_PROXY = Error(12000 + 188) 321 _ERROR_WINHTTP_RESERVED_189 = Error(12000 + 189) 322 _ERROR_WINHTTP_HTTP_PROTOCOL_MISMATCH = Error(12000 + 190) 323 _WINHTTP_ERROR_LAST = _WINHTTP_ERROR_BASE + 190 324 ) 325 326 type _URL_COMPONENTS struct { 327 structSize uint32 328 scheme *uint16 329 schemeLength uint32 330 schemeType uint32 331 hostName *uint16 332 hostNameLength uint32 333 port uint16 334 username *uint16 335 usernameLength uint32 336 password *uint16 337 passwordLength uint32 338 urlPath *uint16 339 urlPathLength uint32 340 extraInfo *uint16 341 extraInfoLength uint32 342 } 343 344 //sys winHttpOpen(userAgent *uint16, accessType uint32, proxy *uint16, proxyBypass *uint16, flags uint32) (sessionHandle _HINTERNET, err error) = winhttp.WinHttpOpen 345 //sys winHttpSetStatusCallback(handle _HINTERNET, callback uintptr, notificationFlags uint32, reserved uintptr) (previousCallback uintptr, err error) [failretval==_WINHTTP_INVALID_STATUS_CALLBACK] = winhttp.WinHttpSetStatusCallback 346 //sys winHttpCloseHandle(handle _HINTERNET) (err error) = winhttp.WinHttpCloseHandle 347 //sys winHttpConnect(sessionHandle _HINTERNET, serverName *uint16, serverPort uint16, reserved uint32) (handle _HINTERNET, err error) = winhttp.WinHttpConnect 348 //sys winHttpOpenRequest(connectHandle _HINTERNET, verb *uint16, objectName *uint16, version *uint16, referrer *uint16, acceptTypes **uint16, flags uint32) (requestHandle _HINTERNET, err error) = winhttp.WinHttpOpenRequest 349 //sys winHttpSendRequest(requestHandle _HINTERNET, headers *uint16, headersLength uint32, optional *byte, optionalLength uint32, totalLength uint32, context uintptr) (err error) = winhttp.WinHttpSendRequest 350 //sys winHttpReceiveResponse(requestHandle _HINTERNET, reserved uintptr) (err error) = winhttp.WinHttpReceiveResponse 351 //sys winHttpQueryHeaders(requestHandle _HINTERNET, infoLevel uint32, name *uint16, buffer unsafe.Pointer, bufferLen *uint32, index *uint32) (err error) = winhttp.WinHttpQueryHeaders 352 //sys winHttpQueryDataAvailable(requestHandle _HINTERNET, bytesAvailable *uint32) (err error) = winhttp.WinHttpQueryDataAvailable 353 //sys winHttpReadData(requestHandle _HINTERNET, buffer *byte, bufferSize uint32, bytesRead *uint32) (err error) = winhttp.WinHttpReadData 354 //sys winHttpCrackUrl(url *uint16, urlSize uint32, flags uint32, components *_URL_COMPONENTS) (err error) = winhttp.WinHttpCrackUrl 355 //sys winHttpSetOption(sessionOrRequestHandle _HINTERNET, option uint32, buffer unsafe.Pointer, bufferLen uint32) (err error) = winhttp.WinHttpSetOption