|  | /* | 
|  | * Copyright 2011 Hans Leidekker for CodeWeavers | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | #include "httprequestid.h" | 
|  |  | 
|  | import "oaidl.idl"; | 
|  |  | 
|  | [ | 
|  | uuid(662901fc-6951-4854-9eb2-d9a2570f2b2e), | 
|  | helpstring("Microsoft WinHTTP Services, version 5.1"), | 
|  | lcid(0x0000), | 
|  | version(5.1) | 
|  | ] | 
|  | library WinHttp { | 
|  |  | 
|  | importlib ("stdole2.tlb"); | 
|  |  | 
|  | typedef [public] LONG   HTTPREQUEST_PROXY_SETTING; | 
|  | const HTTPREQUEST_PROXY_SETTING HTTPREQUEST_PROXYSETTING_DEFAULT    = 0x00000000; | 
|  | const HTTPREQUEST_PROXY_SETTING HTTPREQUEST_PROXYSETTING_PRECONFIG  = 0x00000000; | 
|  | const HTTPREQUEST_PROXY_SETTING HTTPREQUEST_PROXYSETTING_DIRECT     = 0x00000001; | 
|  | const HTTPREQUEST_PROXY_SETTING HTTPREQUEST_PROXYSETTING_PROXY      = 0x00000002; | 
|  |  | 
|  | typedef [public] LONG   HTTPREQUEST_SETCREDENTIALS_FLAGS; | 
|  | const HTTPREQUEST_SETCREDENTIALS_FLAGS  HTTPREQUEST_SETCREDENTIALS_FOR_SERVER   = 0x00000000; | 
|  | const HTTPREQUEST_SETCREDENTIALS_FLAGS  HTTPREQUEST_SETCREDENTIALS_FOR_PROXY    = 0x00000001; | 
|  |  | 
|  | typedef | 
|  | [uuid(12782009-fe90-4877-9730-e5e183669b19)] | 
|  | enum WinHttpRequestOption | 
|  | { | 
|  | WinHttpRequestOption_UserAgentString, | 
|  | WinHttpRequestOption_URL, | 
|  | WinHttpRequestOption_URLCodePage, | 
|  | WinHttpRequestOption_EscapePercentInURL, | 
|  | WinHttpRequestOption_SslErrorIgnoreFlags, | 
|  | WinHttpRequestOption_SelectCertificate, | 
|  | WinHttpRequestOption_EnableRedirects, | 
|  | WinHttpRequestOption_UrlEscapeDisable, | 
|  | WinHttpRequestOption_UrlEscapeDisableQuery, | 
|  | WinHttpRequestOption_SecureProtocols, | 
|  | WinHttpRequestOption_EnableTracing, | 
|  | WinHttpRequestOption_RevertImpersonationOverSsl, | 
|  | WinHttpRequestOption_EnableHttpsToHttpRedirects, | 
|  | WinHttpRequestOption_EnablePassportAuthentication, | 
|  | WinHttpRequestOption_MaxAutomaticRedirects, | 
|  | WinHttpRequestOption_MaxResponseHeaderSize, | 
|  | WinHttpRequestOption_MaxResponseDrainSize, | 
|  | WinHttpRequestOption_EnableHttp1_1, | 
|  | WinHttpRequestOption_EnableCertificateRevocationCheck, | 
|  | WinHttpRequestOption_RejectUserpwd | 
|  | } WinHttpRequestOption; | 
|  |  | 
|  | typedef | 
|  | [uuid(9d8a6df8-13de-4b1f-a330-67c719d62514)] | 
|  | enum WinHttpRequestAutoLogonPolicy | 
|  | { | 
|  | AutoLogonPolicy_Always, | 
|  | AutoLogonPolicy_OnlyIfBypassProxy, | 
|  | AutoLogonPolicy_Never | 
|  | } WinHttpRequestAutoLogonPolicy; | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396b), | 
|  | odl, | 
|  | dual, | 
|  | oleautomation, | 
|  | nonextensible, | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IWinHttpRequest : IDispatch | 
|  | { | 
|  | [id(DISPID_HTTPREQUEST_SETPROXY)] | 
|  | HRESULT SetProxy( | 
|  | [in] HTTPREQUEST_PROXY_SETTING proxy_setting, | 
|  | [in, optional] VARIANT proxy_server, | 
|  | [in, optional] VARIANT bypass_list); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_SETCREDENTIALS)] | 
|  | HRESULT SetCredentials( | 
|  | [in] BSTR username, | 
|  | [in] BSTR password, | 
|  | [in] HTTPREQUEST_SETCREDENTIALS_FLAGS flags); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_OPEN)] | 
|  | HRESULT Open( | 
|  | [in] BSTR method, | 
|  | [in] BSTR url, | 
|  | [in, optional] VARIANT async); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_SETREQUESTHEADER)] | 
|  | HRESULT SetRequestHeader( | 
|  | [in] BSTR header, | 
|  | [in] BSTR value); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_GETRESPONSEHEADER)] | 
|  | HRESULT GetResponseHeader( | 
|  | [in] BSTR header, | 
|  | [out, retval] BSTR *value); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_GETALLRESPONSEHEADERS)] | 
|  | HRESULT GetAllResponseHeaders( | 
|  | [out, retval] BSTR *headers); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_SEND)] | 
|  | HRESULT Send( | 
|  | [in, optional] VARIANT body); | 
|  |  | 
|  | [propget, id(DISPID_HTTPREQUEST_STATUS)] | 
|  | HRESULT Status( | 
|  | [out, retval] LONG *status); | 
|  |  | 
|  | [propget, id(DISPID_HTTPREQUEST_STATUSTEXT)] | 
|  | HRESULT StatusText( | 
|  | [out, retval] BSTR *status); | 
|  |  | 
|  | [propget, id(DISPID_HTTPREQUEST_RESPONSETEXT)] | 
|  | HRESULT ResponseText( | 
|  | [out, retval] BSTR *body); | 
|  |  | 
|  | [propget, id(DISPID_HTTPREQUEST_RESPONSEBODY)] | 
|  | HRESULT ResponseBody( | 
|  | [out, retval] VARIANT *body); | 
|  |  | 
|  | [propget, id(DISPID_HTTPREQUEST_RESPONSESTREAM)] | 
|  | HRESULT ResponseStream( | 
|  | [out, retval] VARIANT *body); | 
|  |  | 
|  | [propget, id(DISPID_HTTPREQUEST_OPTION)] | 
|  | HRESULT Option( | 
|  | [in] WinHttpRequestOption option, | 
|  | [out, retval] VARIANT *value); | 
|  |  | 
|  | [propput, id(DISPID_HTTPREQUEST_OPTION)] | 
|  | HRESULT Option( | 
|  | [in] WinHttpRequestOption option, | 
|  | [in] VARIANT value); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_WAITFORRESPONSE)] | 
|  | HRESULT WaitForResponse( | 
|  | [in, optional] VARIANT timeout, | 
|  | [out, retval] VARIANT_BOOL *succeeded); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_ABORT)] | 
|  | HRESULT Abort(); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_SETTIMEOUTS)] | 
|  | HRESULT SetTimeouts( | 
|  | [in] LONG resolve_timeout, | 
|  | [in] LONG connect_timeout, | 
|  | [in] LONG send_timeout, | 
|  | [in] LONG receive_timeout); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_SETCLIENTCERTIFICATE)] | 
|  | HRESULT SetClientCertificate( | 
|  | [in] BSTR certificate); | 
|  |  | 
|  | [id(DISPID_HTTPREQUEST_SETAUTOLOGONPOLICY)] | 
|  | HRESULT SetAutoLogonPolicy( | 
|  | [in] WinHttpRequestAutoLogonPolicy policy); | 
|  | } | 
|  | [ | 
|  | helpstring("WinHttpRequest Component version 5.1"), | 
|  | threading(apartment), | 
|  | progid("WinHttp.WinHttpRequest.5.1"), | 
|  | uuid(2087c2f4-2cef-4953-a8ab-66779b670495) | 
|  | ] | 
|  | coclass WinHttpRequest { interface IWinHttpRequest; } | 
|  |  | 
|  | } /* WinHttp */ |