File Annotation

Not logged in
9b639cf2d6 2015-05-05        kinaba: /***********************************************************************\
9b639cf2d6 2015-05-05        kinaba: *                                winhttp.d                              *
9b639cf2d6 2015-05-05        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *                       Windows API header module                       *
9b639cf2d6 2015-05-05        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *                  Translated from Windows SDK Headers                  *
9b639cf2d6 2015-05-05        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *                       Placed into public domain                       *
9b639cf2d6 2015-05-05        kinaba: \***********************************************************************/
9b639cf2d6 2015-05-05        kinaba: module win32.winhttp;
9b639cf2d6 2015-05-05        kinaba: pragma(lib, "winhttp");
9b639cf2d6 2015-05-05        kinaba: // FIXME: Grouping of constants. Windows SDK doesn't make this entirely clear
9b639cf2d6 2015-05-05        kinaba: // FIXME: Verify WINHTTP_STATUS_CALLBACK function declaration works correctly
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: import win32.w32api;
9b639cf2d6 2015-05-05        kinaba: import win32.winbase;
9b639cf2d6 2015-05-05        kinaba: import win32.windef;
9b639cf2d6 2015-05-05        kinaba: import win32.winsock2;	// Selective Imports BUG (: SOCKADDR_STORAGE;)
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: alias HINTERNET = void*;
9b639cf2d6 2015-05-05        kinaba: alias LPHINTERNET = HINTERNET*;
9b639cf2d6 2015-05-05        kinaba: alias INTERNET_PORT = WORD;
9b639cf2d6 2015-05-05        kinaba: alias LPINTERNET_PORT = INTERNET_PORT*;
9b639cf2d6 2015-05-05        kinaba: alias INTERNET_SCHEME = int;
9b639cf2d6 2015-05-05        kinaba: alias LPINTERNET_SCHEME = INTERNET_SCHEME*;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // Protocol 'Manifests'
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	INTERNET_DEFAULT_PORT       = 0,
9b639cf2d6 2015-05-05        kinaba: 	INTERNET_DEFAULT_HTTP_PORT  = 80,
9b639cf2d6 2015-05-05        kinaba: 	INTERNET_DEFAULT_HTTPS_PORT = 443
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // WinHttpOpen() Flags:
9b639cf2d6 2015-05-05        kinaba: enum DWORD WINHTTP_FLAG_ASYNC = 0x10000000;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // WinHttpOpenRequest() Flags:
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_SECURE               = 0x00800000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_ESCAPE_PERCENT       = 0x00000004,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_NULL_CODEPAGE        = 0x00000008,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_BYPASS_PROXY_CACHE   = 0x00000100,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_REFRESH              = WINHTTP_FLAG_BYPASS_PROXY_CACHE,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_ESCAPE_DISABLE       = 0x00000040,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_ESCAPE_DISABLE_QUERY = 0x00000080,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	SECURITY_FLAG_IGNORE_UNKNOWN_CA        = 0x00000100,
9b639cf2d6 2015-05-05        kinaba: 	SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000,
9b639cf2d6 2015-05-05        kinaba: 	SECURITY_FLAG_IGNORE_CERT_CN_INVALID   = 0x00001000,
9b639cf2d6 2015-05-05        kinaba: 	SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE  = 0x00000200
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WINHTTP_ASYNC_RESULT {
9b639cf2d6 2015-05-05        kinaba:     DWORD_PTR dwResult;
9b639cf2d6 2015-05-05        kinaba:     DWORD dwError;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias LPWINHTTP_ASYNC_RESULT = WINHTTP_ASYNC_RESULT*;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct HTTP_VERSION_INFO {
9b639cf2d6 2015-05-05        kinaba:     DWORD dwMajorVersion;
9b639cf2d6 2015-05-05        kinaba:     DWORD dwMinorVersion;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias LPHTTP_VERSION_INFO = HTTP_VERSION_INFO*;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // URL Scheme
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	INTERNET_SCHEME_HTTP  = 1,
9b639cf2d6 2015-05-05        kinaba: 	INTERNET_SCHEME_HTTPS = 2,
9b639cf2d6 2015-05-05        kinaba: 	INTERNET_SCHEME_FTP   = 3,
9b639cf2d6 2015-05-05        kinaba: 	INTERNET_SCHEME_SOCKS = 4
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct URL_COMPONENTS {
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwStructSize;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszScheme;
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwSchemeLength;
9b639cf2d6 2015-05-05        kinaba:     INTERNET_SCHEME nScheme;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszHostName;
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwHostNameLength;
9b639cf2d6 2015-05-05        kinaba:     INTERNET_PORT nPort;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszUserName;
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwUserNameLength;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszPassword;
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwPasswordLength;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszUrlPath;
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwUrlPathLength;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszExtraInfo;
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwExtraInfoLength;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias LPURL_COMPONENTS = URL_COMPONENTS*;
9b639cf2d6 2015-05-05        kinaba: alias URL_COMPONENTSW = URL_COMPONENTS;
9b639cf2d6 2015-05-05        kinaba: alias LPURL_COMPONENTSW = URL_COMPONENTS*;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WINHTTP_PROXY_INFO {
9b639cf2d6 2015-05-05        kinaba:     DWORD  dwAccessType;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR lpszProxy;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR lpszProxyBypass;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias LPWINHTTP_PROXY_INFO = WINHTTP_PROXY_INFO*;
9b639cf2d6 2015-05-05        kinaba: alias WINHTTP_PROXY_INFOW = WINHTTP_PROXY_INFO;
9b639cf2d6 2015-05-05        kinaba: alias LPWINHTTP_PROXY_INFOW = WINHTTP_PROXY_INFO*;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WINHTTP_AUTOPROXY_OPTIONS {
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwFlags;
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwAutoDetectFlags;
9b639cf2d6 2015-05-05        kinaba:     LPCWSTR lpszAutoConfigUrl;
9b639cf2d6 2015-05-05        kinaba:     LPVOID  lpvReserved;
9b639cf2d6 2015-05-05        kinaba:     DWORD   dwReserved;
9b639cf2d6 2015-05-05        kinaba:     BOOL    fAutoLogonIfChallenged;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_AUTO_DETECT           = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_CONFIG_URL            = 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_HOST_KEEPCASE         = 0x00000004,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_HOST_LOWERCASE        = 0x00000008,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_RUN_INPROCESS         = 0x00010000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY   = 0x00020000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_NO_DIRECTACCESS       = 0x00040000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_NO_CACHE_CLIENT       = 0x00080000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_NO_CACHE_SVC          = 0x00100000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOPROXY_SORT_RESULTS          = 0x00400000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // dwAutoDetectFlags
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTO_DETECT_TYPE_DHCP           = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTO_DETECT_TYPE_DNS_A          = 0x00000002
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WINHTTP_CERTIFICATE_INFO {
9b639cf2d6 2015-05-05        kinaba:     FILETIME ftExpiry;
9b639cf2d6 2015-05-05        kinaba:     FILETIME ftStart;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR lpszSubjectInfo;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR lpszIssuerInfo;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR lpszProtocolName;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR lpszSignatureAlgName;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR lpszEncryptionAlgName;
9b639cf2d6 2015-05-05        kinaba:     DWORD dwKeySize;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // This structure is only defined #if _WS2DEF_ defined (from <ws2def.h>) - per Windows SDK
9b639cf2d6 2015-05-05        kinaba: struct WINHTTP_CONNECTION_INFO {
9b639cf2d6 2015-05-05        kinaba:     DWORD cbSize;
9b639cf2d6 2015-05-05        kinaba:     SOCKADDR_STORAGE LocalAddress;
9b639cf2d6 2015-05-05        kinaba:     SOCKADDR_STORAGE RemoteAddress;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // WinHttpTimeFromSystemTime
9b639cf2d6 2015-05-05        kinaba: enum DWORD WINHTTP_TIME_FORMAT_BUFSIZE  = 62;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // CrackUrl, CombineUrl
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	ICU_NO_ENCODE           = 0x20000000,
9b639cf2d6 2015-05-05        kinaba: 	ICU_DECODE              = 0x10000000,
9b639cf2d6 2015-05-05        kinaba: 	ICU_NO_META             = 0x08000000,
9b639cf2d6 2015-05-05        kinaba: 	ICU_ENCODE_SPACES_ONLY  = 0x04000000,
9b639cf2d6 2015-05-05        kinaba: 	ICU_BROWSER_MODE        = 0x02000000,
9b639cf2d6 2015-05-05        kinaba: 	ICU_ENCODE_PERCENT      = 0x00001000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: // WinHttpCrackUrl, WinHttpCreateUrl
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	ICU_ESCAPE            = 0x80000000,
9b639cf2d6 2015-05-05        kinaba: 	ICU_ESCAPE_AUTHORITY  = 0x00002000,
9b639cf2d6 2015-05-05        kinaba: 	ICU_REJECT_USERPWD    = 0x00004000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ACCESS_TYPE_DEFAULT_PROXY             = 0,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ACCESS_TYPE_NO_PROXY                  = 1,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ACCESS_TYPE_NAMED_PROXY               = 3,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY           = 4
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: // WinHttpOpen 'prettifiers'
9b639cf2d6 2015-05-05        kinaba: enum LPCWSTR WINHTTP_NO_PROXY_NAME         = null;
9b639cf2d6 2015-05-05        kinaba: enum LPCWSTR WINHTTP_NO_PROXY_BYPASS       = null;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum LPVOID WINHTTP_NO_CLIENT_CERT_CONTEXT = null;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // WinHttp{Query|Set}Option
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FIRST_OPTION                         = WINHTTP_OPTION_CALLBACK,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CALLBACK                      = 1,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_RESOLVE_TIMEOUT               = 2,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CONNECT_TIMEOUT               = 3,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CONNECT_RETRIES               = 4,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SEND_TIMEOUT                  = 5,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_RECEIVE_TIMEOUT               = 6,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT      = 7,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_HANDLE_TYPE                   = 9,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_READ_BUFFER_SIZE             = 12,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_WRITE_BUFFER_SIZE            = 13,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PARENT_HANDLE                = 21,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_EXTENDED_ERROR               = 24,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SECURITY_FLAGS               = 31,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT  = 32,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_URL                          = 34,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SECURITY_KEY_BITNESS         = 36,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PROXY                        = 38,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PROXY_RESULT_ENTRY           = 39,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_USER_AGENT                   = 41,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CONTEXT_VALUE                = 45,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CLIENT_CERT_CONTEXT          = 47,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_REQUEST_PRIORITY             = 58,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_HTTP_VERSION                 = 59,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_DISABLE_FEATURE              = 63,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CODEPAGE                     = 68,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_MAX_CONNS_PER_SERVER         = 73,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER     = 74,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_AUTOLOGON_POLICY             = 77,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SERVER_CERT_CONTEXT          = 78,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_ENABLE_FEATURE               = 79,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_WORKER_THREAD_COUNT          = 80,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT     = 81,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PASSPORT_COBRANDING_URL      = 82,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH      = 83,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SECURE_PROTOCOLS             = 84,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_ENABLETRACING                = 85,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PASSPORT_SIGN_OUT            = 86,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PASSPORT_RETURN_URL          = 87,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_REDIRECT_POLICY              = 88,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS = 89,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE     = 90,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE     = 91,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE      = 92,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CONNECTION_INFO              = 93,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST      = 94,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SPN                          = 96,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_GLOBAL_PROXY_CREDS           = 97,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_GLOBAL_SERVER_CREDS          = 98,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT            = 99,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_REJECT_USERPWD_IN_URL          = 100,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS  = 101,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE = 103,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE      = 104,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SERVER_SPN_USED              = 106,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PROXY_SPN_USED               = 107,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SERVER_CBT                   = 108,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_UNSAFE_HEADER_PARSING          = 110,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS = 111,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET          = 114,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT       = 115,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL  = 116,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_DECOMPRESSION                  = 118,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE = 122,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE    = 123,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	//WINHTTP_LAST_OPTION => Moved outside of enum - static if() constraints within enums
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_USERNAME                      = 0x1000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PASSWORD                      = 0x1001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PROXY_USERNAME                = 0x1002,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_PROXY_PASSWORD                = 0x1003,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CONNS_PER_SERVER_UNLIMITED    = 0xFFFFFFFF,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM = 0,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW    = 1,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH   = 2,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTOLOGON_SECURITY_LEVEL_DEFAULT = WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_REDIRECT_POLICY_NEVER                      = 0,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP     = 1,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS                     = 2,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_REDIRECT_POLICY_LAST      = WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT   = WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DISABLE_PASSPORT_AUTH    = 0x00000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ENABLE_PASSPORT_AUTH     = 0x10000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DISABLE_PASSPORT_KEYRING = 0x20000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ENABLE_PASSPORT_KEYRING  = 0x40000000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DISABLE_COOKIES                   = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DISABLE_REDIRECTS                 = 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DISABLE_AUTHENTICATION            = 0x00000004,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DISABLE_KEEP_ALIVE                = 0x00000008,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ENABLE_SSL_REVOCATION             = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION   = 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DISABLE_SPN_SERVER_PORT           = 0x00000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ENABLE_SPN_SERVER_PORT            = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_OPTION_SPN_MASK                   = WINHTTP_ENABLE_SPN_SERVER_PORT
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // Windows 8.1 SDK:
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x602) {
9b639cf2d6 2015-05-05        kinaba: 	enum DWORD WINHTTP_LAST_OPTION            = WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE;
9b639cf2d6 2015-05-05        kinaba: } else {	// Windows 7.0A SDK:
9b639cf2d6 2015-05-05        kinaba: 	enum DWORD WINHTTP_LAST_OPTION            = WINHTTP_OPTION_SERVER_CBT;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DECOMPRESSION_FLAG_GZIP    = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DECOMPRESSION_FLAG_DEFLATE = 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_DECOMPRESSION_FLAG_ALL = (WINHTTP_DECOMPRESSION_FLAG_GZIP | WINHTTP_DECOMPRESSION_FLAG_DEFLATE)
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WINHTTP_CREDS {
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszUserName;
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszPassword;
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszRealm;
9b639cf2d6 2015-05-05        kinaba:     DWORD dwAuthScheme;
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszHostName;
9b639cf2d6 2015-05-05        kinaba:     DWORD dwPort;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias PWINHTTP_CREDS = WINHTTP_CREDS*;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WINHTTP_CREDS_EX {
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszUserName;
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszPassword;
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszRealm;
9b639cf2d6 2015-05-05        kinaba:     DWORD dwAuthScheme;
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszHostName;
9b639cf2d6 2015-05-05        kinaba:     DWORD dwPort;
9b639cf2d6 2015-05-05        kinaba:     LPSTR lpszUrl;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias PWINHTTP_CREDS_EX = WINHTTP_CREDS_EX*;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_HANDLE_TYPE_SESSION                = 1,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_HANDLE_TYPE_CONNECT                = 2,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_HANDLE_TYPE_REQUEST                = 3,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTH_SCHEME_BASIC      = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTH_SCHEME_NTLM       = 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTH_SCHEME_PASSPORT   = 0x00000004,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTH_SCHEME_DIGEST     = 0x00000008,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTH_SCHEME_NEGOTIATE  = 0x00000010,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTH_TARGET_SERVER = 0x00000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_AUTH_TARGET_PROXY  = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	SECURITY_FLAG_SECURE                    = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	SECURITY_FLAG_STRENGTH_WEAK             = 0x10000000,
9b639cf2d6 2015-05-05        kinaba: 	SECURITY_FLAG_STRENGTH_MEDIUM           = 0x40000000,
9b639cf2d6 2015-05-05        kinaba: 	SECURITY_FLAG_STRENGTH_STRONG           = 0x20000000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_FLAG_CERT_REV_FAILED         = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CERT            = 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_FLAG_CERT_REVOKED            = 0x00000004,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA              = 0x00000008,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID         = 0x00000010,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID       = 0x00000020,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_FLAG_CERT_WRONG_USAGE        = 0x00000040,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_FLAG_SECURITY_CHANNEL_ERROR  = 0x80000000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_SECURE_PROTOCOL_SSL2   = 0x00000008,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_SECURE_PROTOCOL_SSL3   = 0x00000020,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_SECURE_PROTOCOL_TLS1   = 0x00000080,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 = 0x00000200,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 = 0x00000800,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_FLAG_SECURE_PROTOCOL_ALL    = (WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 |
9b639cf2d6 2015-05-05        kinaba: 												 WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 |
9b639cf2d6 2015-05-05        kinaba: 												 WINHTTP_FLAG_SECURE_PROTOCOL_TLS1)
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: alias extern(Windows) int fnWINHTTP_STATUS_CALLBACK(HINTERNET hInternet, DWORD_PTR dwContext,
9b639cf2d6 2015-05-05        kinaba:                           DWORD dwInternetStatus, LPVOID lpvStatusInformation,DWORD dwStatusInformationLength);
9b639cf2d6 2015-05-05        kinaba: alias WINHTTP_STATUS_CALLBACK = fnWINHTTP_STATUS_CALLBACK*;
9b639cf2d6 2015-05-05        kinaba: alias LPWINHTTP_STATUS_CALLBACK = WINHTTP_STATUS_CALLBACK*;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_RESOLVING_NAME          = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_NAME_RESOLVED           = 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER    = 0x00000004,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER     = 0x00000008,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_SENDING_REQUEST         = 0x00000010,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_REQUEST_SENT            = 0x00000020,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE      = 0x00000040,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED       = 0x00000080,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION      = 0x00000100,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED       = 0x00000200,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_HANDLE_CREATED          = 0x00000400,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING          = 0x00000800,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_DETECTING_PROXY         = 0x00001000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_REDIRECT                = 0x00004000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE   = 0x00008000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_SECURE_FAILURE          = 0x00010000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE       = 0x00020000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE          = 0x00040000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_READ_COMPLETE           = 0x00080000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE          = 0x00100000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_REQUEST_ERROR           = 0x00200000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE    = 0x00400000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE = 0x01000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_CLOSE_COMPLETE          = 0x02000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_STATUS_SHUTDOWN_COMPLETE       = 0x04000000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	API_RECEIVE_RESPONSE        = 1,
9b639cf2d6 2015-05-05        kinaba: 	API_QUERY_DATA_AVAILABLE    = 2,
9b639cf2d6 2015-05-05        kinaba: 	API_READ_DATA               = 3,
9b639cf2d6 2015-05-05        kinaba: 	API_WRITE_DATA              = 4,
9b639cf2d6 2015-05-05        kinaba: 	API_SEND_REQUEST            = 5
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_RESOLVE_NAME            = (WINHTTP_CALLBACK_STATUS_RESOLVING_NAME | WINHTTP_CALLBACK_STATUS_NAME_RESOLVED),
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER       = (WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER | WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER),
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_SEND_REQUEST            = (WINHTTP_CALLBACK_STATUS_SENDING_REQUEST | WINHTTP_CALLBACK_STATUS_REQUEST_SENT),
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE        = (WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE | WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED),
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION        = (WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION | WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED),
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_HANDLES                 = (WINHTTP_CALLBACK_STATUS_HANDLE_CREATED | WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING),
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_DETECTING_PROXY         = WINHTTP_CALLBACK_STATUS_DETECTING_PROXY,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_REDIRECT                = WINHTTP_CALLBACK_STATUS_REDIRECT,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE   = WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_SECURE_FAILURE          = WINHTTP_CALLBACK_STATUS_SECURE_FAILURE,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE    = WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE       = WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE          = WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_READ_COMPLETE           = WINHTTP_CALLBACK_STATUS_READ_COMPLETE,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE          = WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_CALLBACK_FLAG_REQUEST_ERROR           = WINHTTP_CALLBACK_STATUS_REQUEST_ERROR
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum DWORD WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE  = WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // Windows 8+/2012+
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x602)	{
9b639cf2d6 2015-05-05        kinaba:   enum DWORD WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS        =  (WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_READ_COMPLETE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR);
9b639cf2d6 2015-05-05        kinaba: } else {
9b639cf2d6 2015-05-05        kinaba:   enum DWORD WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS        =  (WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_READ_COMPLETE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR
9b639cf2d6 2015-05-05        kinaba:                                                         | WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum DWORD  WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS      =  0xffffffff;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum WINHTTP_INVALID_STATUS_CALLBACK        = (cast(WINHTTP_STATUS_CALLBACK)(-1L));
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_MIME_VERSION               = 0,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_TYPE               = 1,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING  = 2,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_ID                 = 3,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_DESCRIPTION        = 4,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_LENGTH             = 5,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_LANGUAGE           = 6,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_ALLOW                      = 7,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_PUBLIC                     = 8,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_DATE                       = 9,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_EXPIRES                    = 10,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_LAST_MODIFIED              = 11,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_MESSAGE_ID                 = 12,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_URI                        = 13,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_DERIVED_FROM               = 14,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_COST                       = 15,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_LINK                       = 16,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_PRAGMA                     = 17,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_VERSION                    = 18,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_STATUS_CODE                = 19,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_STATUS_TEXT                = 20,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_RAW_HEADERS                = 21,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_RAW_HEADERS_CRLF           = 22,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONNECTION                 = 23,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_ACCEPT                     = 24,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_ACCEPT_CHARSET             = 25,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_ACCEPT_ENCODING            = 26,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_ACCEPT_LANGUAGE            = 27,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_AUTHORIZATION              = 28,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_ENCODING           = 29,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_FORWARDED                  = 30,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_FROM                       = 31,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_IF_MODIFIED_SINCE          = 32,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_LOCATION                   = 33,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_ORIG_URI                   = 34,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_REFERER                    = 35,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_RETRY_AFTER                = 36,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_SERVER                     = 37,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_TITLE                      = 38,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_USER_AGENT                 = 39,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_WWW_AUTHENTICATE           = 40,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_PROXY_AUTHENTICATE         = 41,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_ACCEPT_RANGES              = 42,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_SET_COOKIE                 = 43,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_COOKIE                     = 44,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_REQUEST_METHOD             = 45,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_REFRESH                    = 46,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_DISPOSITION        = 47,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	// HTTP 1.1 defined headers
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_AGE                        = 48,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CACHE_CONTROL              = 49,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_BASE               = 50,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_LOCATION           = 51,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_MD5                = 52,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CONTENT_RANGE              = 53,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_ETAG                       = 54,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_HOST                       = 55,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_IF_MATCH                   = 56,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_IF_NONE_MATCH              = 57,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_IF_RANGE                   = 58,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_IF_UNMODIFIED_SINCE        = 59,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_MAX_FORWARDS               = 60,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_PROXY_AUTHORIZATION        = 61,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_RANGE                      = 62,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_TRANSFER_ENCODING          = 63,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_UPGRADE                    = 64,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_VARY                       = 65,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_VIA                        = 66,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_WARNING                    = 67,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_EXPECT                     = 68,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_PROXY_CONNECTION           = 69,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_UNLESS_MODIFIED_SINCE      = 70,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_PROXY_SUPPORT              = 75,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_AUTHENTICATION_INFO        = 76,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_PASSPORT_URLS              = 77,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_PASSPORT_CONFIG            = 78,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_MAX                        = 78,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_CUSTOM                     = 65535,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_FLAG_REQUEST_HEADERS         = 0x80000000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_FLAG_SYSTEMTIME              = 0x40000000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_QUERY_FLAG_NUMBER                  = 0x20000000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_CONTINUE            = 100,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_SWITCH_PROTOCOLS    = 101,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_OK                  = 200,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_CREATED             = 201,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_ACCEPTED            = 202,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_PARTIAL             = 203,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_NO_CONTENT          = 204,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_RESET_CONTENT       = 205,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_PARTIAL_CONTENT     = 206,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_WEBDAV_MULTI_STATUS = 207,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_AMBIGUOUS           = 300,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_MOVED               = 301,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_REDIRECT            = 302,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_REDIRECT_METHOD     = 303,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_NOT_MODIFIED        = 304,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_USE_PROXY           = 305,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_REDIRECT_KEEP_VERB  = 307,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_BAD_REQUEST       = 400,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_DENIED            = 401,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_PAYMENT_REQ       = 402,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_FORBIDDEN         = 403,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_NOT_FOUND         = 404,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_BAD_METHOD        = 405,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_NONE_ACCEPTABLE   = 406,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_PROXY_AUTH_REQ    = 407,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_REQUEST_TIMEOUT   = 408,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_CONFLICT          = 409,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_GONE              = 410,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_LENGTH_REQUIRED   = 411,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_PRECOND_FAILED    = 412,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_REQUEST_TOO_LARGE = 413,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_URI_TOO_LONG      = 414,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_UNSUPPORTED_MEDIA = 415,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_RETRY_WITH        = 449,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_SERVER_ERROR      = 500,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_NOT_SUPPORTED     = 501,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_BAD_GATEWAY       = 502,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_SERVICE_UNAVAIL   = 503,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_GATEWAY_TIMEOUT   = 504,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_VERSION_NOT_SUP   = 505,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_FIRST             = HTTP_STATUS_CONTINUE,
9b639cf2d6 2015-05-05        kinaba: 	HTTP_STATUS_LAST              = HTTP_STATUS_VERSION_NOT_SUP
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum LPCWSTR WINHTTP_NO_REFERER             = null;
9b639cf2d6 2015-05-05        kinaba: enum LPCWSTR * WINHTTP_DEFAULT_ACCEPT_TYPES = null;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ADDREQ_INDEX_MASK     = 0x0000FFFF,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ADDREQ_FLAGS_MASK     = 0xFFFF0000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ADDREQ_FLAG_ADD        = 0x20000000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA       = 0x40000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON   = 0x01000000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ADDREQ_FLAG_COALESCE                  = WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ADDREQ_FLAG_REPLACE    = 0x80000000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH = 0
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum LPCWSTR WINHTTP_NO_ADDITIONAL_HEADERS = null;
9b639cf2d6 2015-05-05        kinaba: enum LPVOID WINHTTP_NO_REQUEST_DATA        = null;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum LPCWSTR WINHTTP_HEADER_NAME_BY_INDEX  = null;
9b639cf2d6 2015-05-05        kinaba: enum LPVOID WINHTTP_NO_OUTPUT_BUFFER       = null;
9b639cf2d6 2015-05-05        kinaba: enum LPDWORD WINHTTP_NO_HEADER_INDEX       = null;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WINHTTP_CURRENT_USER_IE_PROXY_CONFIG {
9b639cf2d6 2015-05-05        kinaba:     BOOL    fAutoDetect;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszAutoConfigUrl;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszProxy;
9b639cf2d6 2015-05-05        kinaba:     LPWSTR  lpszProxyBypass;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // WinHttp API error returns
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ERROR_BASE                   = 12000,
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_OUT_OF_HANDLES         = (WINHTTP_ERROR_BASE + 1),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_TIMEOUT                = (WINHTTP_ERROR_BASE + 2),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_INTERNAL_ERROR         = (WINHTTP_ERROR_BASE + 4),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_INVALID_URL            = (WINHTTP_ERROR_BASE + 5),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_UNRECOGNIZED_SCHEME    = (WINHTTP_ERROR_BASE + 6),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_NAME_NOT_RESOLVED      = (WINHTTP_ERROR_BASE + 7),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_INVALID_OPTION         = (WINHTTP_ERROR_BASE + 9),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_OPTION_NOT_SETTABLE    = (WINHTTP_ERROR_BASE + 11),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SHUTDOWN               = (WINHTTP_ERROR_BASE + 12),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_LOGIN_FAILURE          = (WINHTTP_ERROR_BASE + 15),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_OPERATION_CANCELLED    = (WINHTTP_ERROR_BASE + 17),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_INCORRECT_HANDLE_TYPE  = (WINHTTP_ERROR_BASE + 18),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_INCORRECT_HANDLE_STATE = (WINHTTP_ERROR_BASE + 19),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CANNOT_CONNECT         = (WINHTTP_ERROR_BASE + 29),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CONNECTION_ERROR       = (WINHTTP_ERROR_BASE + 30),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_RESEND_REQUEST         = (WINHTTP_ERROR_BASE + 32),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED = (WINHTTP_ERROR_BASE, + 44),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN = (WINHTTP_ERROR_BASE + 100),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND = (WINHTTP_ERROR_BASE + 101),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND  = (WINHTTP_ERROR_BASE + 102),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN  = (WINHTTP_ERROR_BASE + 103),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_HEADER_NOT_FOUND           = (WINHTTP_ERROR_BASE + 150),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_INVALID_SERVER_RESPONSE    = (WINHTTP_ERROR_BASE + 152),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_INVALID_HEADER             = (WINHTTP_ERROR_BASE + 153),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_INVALID_QUERY_REQUEST      = (WINHTTP_ERROR_BASE + 154),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_HEADER_ALREADY_EXISTS      = (WINHTTP_ERROR_BASE + 155),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_REDIRECT_FAILED            = (WINHTTP_ERROR_BASE + 156),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR  = (WINHTTP_ERROR_BASE + 178),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT     = (WINHTTP_ERROR_BASE + 166),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT = (WINHTTP_ERROR_BASE + 167),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE     = (WINHTTP_ERROR_BASE + 176),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR    = (WINHTTP_ERROR_BASE + 177),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_NOT_INITIALIZED        = (WINHTTP_ERROR_BASE + 172),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_FAILURE         = (WINHTTP_ERROR_BASE + 175),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_CERT_DATE_INVALID  = (WINHTTP_ERROR_BASE + 37),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_CERT_CN_INVALID    = (WINHTTP_ERROR_BASE + 38),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_INVALID_CA         = (WINHTTP_ERROR_BASE + 45),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_CERT_REV_FAILED    = (WINHTTP_ERROR_BASE + 57),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_CHANNEL_ERROR      = (WINHTTP_ERROR_BASE + 157),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_INVALID_CERT       = (WINHTTP_ERROR_BASE + 169),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_CERT_REVOKED       = (WINHTTP_ERROR_BASE + 170),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE   = (WINHTTP_ERROR_BASE + 179),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_AUTODETECTION_FAILED                  = (WINHTTP_ERROR_BASE + 180),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_HEADER_COUNT_EXCEEDED                 = (WINHTTP_ERROR_BASE + 181),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_HEADER_SIZE_OVERFLOW                  = (WINHTTP_ERROR_BASE + 182),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 183),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW               = (WINHTTP_ERROR_BASE + 184),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY            = (WINHTTP_ERROR_BASE + 185),
9b639cf2d6 2015-05-05        kinaba: 	ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY     = (WINHTTP_ERROR_BASE + 186),
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_ERROR_LAST                                  = (WINHTTP_ERROR_BASE + 186)
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_RESET_STATE                  = 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_RESET_SWPAD_CURRENT_NETWORK  = 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_RESET_SWPAD_ALL              = 0x00000004,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_RESET_SCRIPT_CACHE           = 0x00000008,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_RESET_ALL                    = 0x0000FFFF,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_RESET_NOTIFY_NETWORK_CHANGED = 0x00010000,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_RESET_OUT_OF_PROC            = 0x00020000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_WEB_SOCKET_MAX_CLOSE_REASON_LENGTH = 123,
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_WEB_SOCKET_MIN_KEEPALIVE_VALUE     = 15000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // Version(Windows8) || Version(Windows2012):
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x602)
9b639cf2d6 2015-05-05        kinaba: {
9b639cf2d6 2015-05-05        kinaba: 	enum WINHTTP_WEB_SOCKET_OPERATION : DWORD
9b639cf2d6 2015-05-05        kinaba: 	{
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_SEND_OPERATION                   = 0,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_RECEIVE_OPERATION                = 1,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_CLOSE_OPERATION                  = 2,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_SHUTDOWN_OPERATION               = 3
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	enum WINHTTP_WEB_SOCKET_BUFFER_TYPE : DWORD
9b639cf2d6 2015-05-05        kinaba: 	{
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_BINARY_MESSAGE_BUFFER_TYPE       = 0,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_BINARY_FRAGMENT_BUFFER_TYPE      = 1,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_UTF8_MESSAGE_BUFFER_TYPE         = 2,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_UTF8_FRAGMENT_BUFFER_TYPE        = 3,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_CLOSE_BUFFER_TYPE                = 4
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	enum WINHTTP_WEB_SOCKET_CLOSE_STATUS : DWORD
9b639cf2d6 2015-05-05        kinaba: 	{
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_SUCCESS_CLOSE_STATUS                = 1000,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_ENDPOINT_TERMINATED_CLOSE_STATUS    = 1001,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_PROTOCOL_ERROR_CLOSE_STATUS         = 1002,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_INVALID_DATA_TYPE_CLOSE_STATUS      = 1003,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_EMPTY_CLOSE_STATUS                  = 1005,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_ABORTED_CLOSE_STATUS                = 1006,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_INVALID_PAYLOAD_CLOSE_STATUS        = 1007,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_POLICY_VIOLATION_CLOSE_STATUS       = 1008,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_MESSAGE_TOO_BIG_CLOSE_STATUS        = 1009,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_UNSUPPORTED_EXTENSIONS_CLOSE_STATUS = 1010,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_SERVER_ERROR_CLOSE_STATUS           = 1011,
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_SECURE_HANDSHAKE_ERROR_CLOSE_STATUS = 1015
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	struct WINHTTP_PROXY_RESULT_ENTRY {
9b639cf2d6 2015-05-05        kinaba: 		BOOL            fProxy;
9b639cf2d6 2015-05-05        kinaba: 		BOOL            fBypass;
9b639cf2d6 2015-05-05        kinaba: 		INTERNET_SCHEME ProxyScheme;
9b639cf2d6 2015-05-05        kinaba: 		PWSTR           pwszProxy;
9b639cf2d6 2015-05-05        kinaba: 		INTERNET_PORT   ProxyPort;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	struct WINHTTP_PROXY_RESULT {
9b639cf2d6 2015-05-05        kinaba: 		DWORD cEntries;
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_PROXY_RESULT_ENTRY *pEntries;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	struct WINHTTP_WEB_SOCKET_ASYNC_RESULT {
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_ASYNC_RESULT AsyncResult;
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_OPERATION Operation;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	struct WINHTTP_WEB_SOCKET_STATUS {
9b639cf2d6 2015-05-05        kinaba: 		DWORD dwBytesTransferred;
9b639cf2d6 2015-05-05        kinaba: 		WINHTTP_WEB_SOCKET_BUFFER_TYPE eBufferType;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: extern (Windows) {
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpAddRequestHeaders(HINTERNET hRequest, LPCWSTR pwszHeaders, DWORD dwHeadersLength, DWORD dwModifiers);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpCheckPlatform();
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpCloseHandle(HINTERNET hInternet);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	HINTERNET WinHttpConnect(HINTERNET hSession, LPCWSTR pswzServerName, INTERNET_PORT nServerPort, DWORD dwReserved);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpCrackUrl(LPCWSTR pwszUrl, DWORD dwUrlLength, DWORD dwFlags, LPURL_COMPONENTS lpUrlComponents);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpCreateUrl(LPURL_COMPONENTS lpUrlComponents, DWORD dwFlags, LPWSTR pwszUrl, LPDWORD lpdwUrlLength);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpDetectAutoProxyConfigUrl(DWORD dwAutoDetectFlags, LPWSTR *ppwszAutoConfigUrl);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpGetDefaultProxyConfiguration(WINHTTP_PROXY_INFO *pProxyInfo);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpGetIEProxyConfigForCurrentUser(WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *pProxyConfig);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpGetProxyForUrl(HINTERNET hSession,  LPCWSTR lpcwszUrl,
9b639cf2d6 2015-05-05        kinaba: 	                           WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions, WINHTTP_PROXY_INFO *pProxyInfo);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	HINTERNET WinHttpOpen(LPCWSTR pwszUserAgent, DWORD dwAccessType, LPCWSTR pwszProxyName,
9b639cf2d6 2015-05-05        kinaba: 	                      LPCWSTR pwszProxyBypass, DWORD dwFlags);
9b639cf2d6 2015-05-05        kinaba: 	HINTERNET WinHttpOpenRequest(HINTERNET hConnect, LPCWSTR pwszVerb, LPCWSTR pwszObjectName,
9b639cf2d6 2015-05-05        kinaba: 	                             LPCWSTR pwszVersion, LPCWSTR pwszReferrer,
9b639cf2d6 2015-05-05        kinaba: 	                             LPCWSTR *ppwszAcceptTypes, DWORD dwFlags);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpQueryAuthSchemes(HINTERNET hRequest, LPDWORD lpdwSupportedSchemes,
9b639cf2d6 2015-05-05        kinaba: 	                             LPDWORD lpdwFirstScheme, LPDWORD pdwAuthTarget);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpQueryDataAvailable(HINTERNET hRequest, LPDWORD lpdwNumberOfBytesAvailable);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpQueryHeaders(HINTERNET hRequest, DWORD dwInfoLevel, LPCWSTR pwszName,
9b639cf2d6 2015-05-05        kinaba:                              LPVOID lpBuffer, LPDWORD lpdwBufferLength, LPDWORD lpdwIndex);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpQueryOption(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer,
9b639cf2d6 2015-05-05        kinaba: 	                        LPDWORD lpdwBufferLength);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpReadData(HINTERNET hRequest, LPVOID lpBuffer, DWORD dwNumberOfBytesToRead,
9b639cf2d6 2015-05-05        kinaba: 	                     LPDWORD lpdwNumberOfBytesRead);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpReceiveResponse(HINTERNET hRequest, LPVOID lpReserved);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpSendRequest(HINTERNET hRequest, LPCWSTR pwszHeaders, DWORD dwHeadersLength,
9b639cf2d6 2015-05-05        kinaba: 	                        LPVOID lpOptional, DWORD dwOptionalLength, DWORD dwTotalLength, DWORD_PTR dwContext);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpSetCredentials(HINTERNET hRequest, DWORD AuthTargets, DWORD AuthScheme,
9b639cf2d6 2015-05-05        kinaba:                                LPCWSTR pwszUserName, LPCWSTR pwszPassword, LPVOID pAuthParams);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpSetDefaultProxyConfiguration(WINHTTP_PROXY_INFO *pProxyInfo);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpSetOption(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength);
9b639cf2d6 2015-05-05        kinaba: 	WINHTTP_STATUS_CALLBACK WinHttpSetStatusCallback(HINTERNET hInternet,
9b639cf2d6 2015-05-05        kinaba: 	                                                 WINHTTP_STATUS_CALLBACK lpfnInternetCallback,
9b639cf2d6 2015-05-05        kinaba: 	                                                 DWORD dwNotificationFlags, DWORD_PTR dwReserved);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpSetTimeouts(HINTERNET hInternet, int dwResolveTimeout, int dwConnectTimeout,
9b639cf2d6 2015-05-05        kinaba: 	                        int dwSendTimeout, int dwReceiveTimeout);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpTimeFromSystemTime(const SYSTEMTIME *pst, LPWSTR pwszTime);
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpTimeToSystemTime(LPCWSTR pwszTime, SYSTEMTIME *pst);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	BOOL WinHttpWriteData(HINTERNET hRequest, LPCVOID lpBuffer, DWORD dwNumberOfBytesToWrite,
9b639cf2d6 2015-05-05        kinaba: 	                      LPDWORD lpdwNumberOfBytesWritten);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba:   // Version(Windows8) || Version(Windows2012):
9b639cf2d6 2015-05-05        kinaba:   static if (_WIN32_WINNT >= 0x602)	{
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpCreateProxyResolver(HINTERNET hSession, HINTERNET *phResolver);
9b639cf2d6 2015-05-05        kinaba: 	void WinHttpFreeProxyResult(WINHTTP_PROXY_RESULT *pProxyResult);
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpGetProxyForUrlEx(HINTERNET hResolver, PCWSTR pcwszUrl,
9b639cf2d6 2015-05-05        kinaba: 	                              WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions, DWORD_PTR pContext);
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpGetProxyResult(HINTERNET hResolver, WINHTTP_PROXY_RESULT *pProxyResult);
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpResetAutoProxy(HINTERNET hSession, DWORD dwFlags);
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpWebSocketClose(HINTERNET hWebSocket, USHORT usStatus, PVOID pvReason, DWORD dwReasonLength);
9b639cf2d6 2015-05-05        kinaba: 	HINTERNET WinHttpWebSocketCompleteUpgrade(HINTERNET hRequest, DWORD_PTR pContext);
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpWebSocketQueryCloseStatus(HINTERNET hWebSocket, USHORT *pusStatus, PVOID pvReason,
9b639cf2d6 2015-05-05        kinaba: 	                                       DWORD dwReasonLength, DWORD *pdwReasonLengthConsumed);
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpWebSocketReceive(HINTERNET hWebSocket, PVOID pvBuffer,  DWORD dwBufferLength,
9b639cf2d6 2015-05-05        kinaba: 	                              DWORD *pdwBytesRead, WINHTTP_WEB_SOCKET_BUFFER_TYPE *peBufferType);
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpWebSocketSend(HINTERNET hWebSocket, WINHTTP_WEB_SOCKET_BUFFER_TYPE eBufferType,
9b639cf2d6 2015-05-05        kinaba: 	                           PVOID pvBuffer, DWORD dwBufferLength);
9b639cf2d6 2015-05-05        kinaba: 	DWORD WinHttpWebSocketShutdown(HINTERNET hWebSocket, USHORT usStatus, PVOID pvReason, DWORD dwReasonLength);
9b639cf2d6 2015-05-05        kinaba:   }
9b639cf2d6 2015-05-05        kinaba: }