/* * 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"; #ifndef __WIDL__ #define threading(model) #define progid(str) #endif [ 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 */