193 lines
5.8 KiB
Plaintext
193 lines
5.8 KiB
Plaintext
/*
|
|
* 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)
|
|
#define vi_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 */
|