You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
6.1 KiB
157 lines
6.1 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 2000.
|
|
//
|
|
// File: httprequest.idl
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
|
|
cpp_quote("//+-------------------------------------------------------------------------")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows")
|
|
cpp_quote("// Copyright (C) Microsoft Corporation, 2000.")
|
|
cpp_quote("//")
|
|
cpp_quote("//--------------------------------------------------------------------------")
|
|
|
|
#include "httprequestid.h"
|
|
|
|
|
|
|
|
|
|
[
|
|
uuid(c92a03cf-b92b-404f-9ac5-58664a592e4c),
|
|
helpstring("Microsoft WinHttpRequest component, version 5.0"),
|
|
lcid(0x0000),
|
|
version(5.0)
|
|
|
|
]
|
|
library WinHttp
|
|
{
|
|
importlib ("stdole32.tlb");
|
|
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), helpstring("WinHttpRequest Options")]
|
|
enum WinHttpRequestOption
|
|
{
|
|
WinHttpRequestOption_UserAgentString,
|
|
WinHttpRequestOption_URL,
|
|
WinHttpRequestOption_URLCodePage,
|
|
WinHttpRequestOption_EscapePercentInURL,
|
|
WinHttpRequestOption_SslErrorIgnoreFlags,
|
|
WinHttpRequestOption_SelectCertificate,
|
|
WinHttpRequestOption_EnableRedirects
|
|
} WinHttpRequestOption;
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(06f29373-5c5a-4b54-b025-6ef1bf8abf0e),
|
|
odl,
|
|
dual,
|
|
oleautomation,
|
|
nonextensible,
|
|
helpstring("IWinHttpRequest Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IWinHttpRequest : IDispatch
|
|
{
|
|
[id(DISPID_HTTPREQUEST_SETPROXY), helpstring("Specify proxy configuration")]
|
|
HRESULT SetProxy([in] HTTPREQUEST_PROXY_SETTING ProxySetting,
|
|
[in, optional] VARIANT varProxyServer,
|
|
[in, optional] VARIANT varBypassList);
|
|
|
|
[id(DISPID_HTTPREQUEST_SETCREDENTIALS), helpstring("Specify authentication credentials")]
|
|
HRESULT SetCredentials([in] BSTR bstrUserName,
|
|
[in] BSTR bstrPassword,
|
|
[in] HTTPREQUEST_SETCREDENTIALS_FLAGS Flags);
|
|
|
|
[id(DISPID_HTTPREQUEST_OPEN), helpstring("Open HTTP connection")]
|
|
HRESULT Open([in] BSTR bstrMethod, [in] BSTR bstrUrl, [in, optional] VARIANT varAsync);
|
|
|
|
[id(DISPID_HTTPREQUEST_SETREQUESTHEADER), helpstring("Add HTTP request header")]
|
|
HRESULT SetRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
|
|
|
|
[id(DISPID_HTTPREQUEST_GETRESPONSEHEADER), helpstring("Get HTTP response header")]
|
|
HRESULT GetResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR * pbstrValue);
|
|
|
|
[id(DISPID_HTTPREQUEST_GETALLRESPONSEHEADERS), helpstring("Get all HTTP response headers")]
|
|
HRESULT GetAllResponseHeaders([out, retval] BSTR * pbstrHeaders);
|
|
|
|
[id(DISPID_HTTPREQUEST_SEND), helpstring("Send HTTP request")]
|
|
HRESULT Send([in, optional] VARIANT varBody);
|
|
|
|
[propget, id(DISPID_HTTPREQUEST_STATUS), helpstring("Get HTTP status code")]
|
|
HRESULT Status([out, retval] long * plStatus);
|
|
|
|
[propget, id(DISPID_HTTPREQUEST_STATUSTEXT), helpstring("Get HTTP status text")]
|
|
HRESULT StatusText([out, retval] BSTR * pbstrStatus);
|
|
|
|
[propget, id(DISPID_HTTPREQUEST_RESPONSETEXT), helpstring("Get response body as a string")]
|
|
HRESULT ResponseText([out, retval] BSTR * pbstrBody);
|
|
|
|
[propget, id(DISPID_HTTPREQUEST_RESPONSEBODY), helpstring("Get response body as a safearray of UI1")]
|
|
HRESULT ResponseBody([out, retval] VARIANT * pvarBody);
|
|
|
|
[propget, id(DISPID_HTTPREQUEST_RESPONSESTREAM), helpstring("Get response body as a stream")]
|
|
HRESULT ResponseStream([out, retval] VARIANT * pvarBody);
|
|
|
|
[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), helpstring("Wait for asynchronous send to complete, with optional timeout (in seconds)")]
|
|
HRESULT WaitForResponse([in, optional] VARIANT Timeout, [out, retval] VARIANT_BOOL * Succeeded);
|
|
|
|
[id(DISPID_HTTPREQUEST_ABORT), helpstring("Abort an asynchronous operation in progress")]
|
|
HRESULT Abort();
|
|
|
|
[id(DISPID_HTTPREQUEST_SETTIMEOUTS), helpstring("Specify timeout settings (in milliseconds)")]
|
|
HRESULT SetTimeouts([in] long ResolveTimeout, [in] long ConnectTimeout, [in] long SendTimeout, [in] long ReceiveTimeout);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(cff7bd4c-6689-4bbe-91c2-0f559e8b88a7),
|
|
odl,
|
|
oleautomation,
|
|
nonextensible,
|
|
helpstring("IWinHttpRequestEvents Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IWinHttpRequestEvents : IUnknown
|
|
{
|
|
void OnResponseStart([in] long Status, [in] BSTR ContentType);
|
|
|
|
void OnResponseDataAvailable([in] SAFEARRAY(unsigned char) * Data);
|
|
|
|
void OnResponseFinished();
|
|
};
|
|
|
|
|
|
// WinHttpRequest Class
|
|
[
|
|
uuid(91e2ead3-ab7e-4d5c-88de-f7fa382172bc),
|
|
helpstring("WinHttpRequest class.")
|
|
]
|
|
coclass WinHttpRequest
|
|
{
|
|
[default] interface IWinHttpRequest;
|
|
[default, source] interface IWinHttpRequestEvents;
|
|
};
|
|
}
|