From 7c938ac2a615dab3a24a9b287d2b5ba327bdfb53 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Fri, 8 Jul 2011 16:45:54 +0200 Subject: [PATCH] include: Add httprequestid.h and httprequest.idl. --- .gitignore | 1 + include/Makefile.in | 2 + include/httprequest.idl | 186 ++++++++++++++++++++++++++++++++++++++++ include/httprequestid.h | 42 +++++++++ 4 files changed, 231 insertions(+) create mode 100644 include/httprequest.idl create mode 100644 include/httprequestid.h diff --git a/.gitignore b/.gitignore index e08d0d85998..63d14330a39 100644 --- a/.gitignore +++ b/.gitignore @@ -178,6 +178,7 @@ include/fusion.h include/gameux.h include/hlink.h include/htiframe.h +include/httprequest.h include/iads.h include/icftypes.h include/iextag.h diff --git a/include/Makefile.in b/include/Makefile.in index b691ffa14d9..c405d64a37c 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -38,6 +38,7 @@ PUBLIC_IDL_H_SRCS = \ gameux.idl \ hlink.idl \ htiframe.idl \ + httprequest.idl \ iads.idl \ icftypes.idl \ iextag.idl \ @@ -286,6 +287,7 @@ SRCDIR_INCLUDES = \ hlguids.h \ htmlhelp.h \ http.h \ + httprequestid.h \ i_cryptasn1tls.h \ icm.h \ icmpapi.h \ diff --git a/include/httprequest.idl b/include/httprequest.idl new file mode 100644 index 00000000000..caa123827fb --- /dev/null +++ b/include/httprequest.idl @@ -0,0 +1,186 @@ +/* + * 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 */ diff --git a/include/httprequestid.h b/include/httprequestid.h new file mode 100644 index 00000000000..9860b1fd6e8 --- /dev/null +++ b/include/httprequestid.h @@ -0,0 +1,42 @@ +/* + * 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 + */ + +#ifndef __WINE_HTTPREQUESTID_H +#define __WINE_HTTPREQUESTID_H + +#define DISPID_HTTPREQUEST_BASE 1 +#define DISPID_HTTPREQUEST_OPEN (DISPID_HTTPREQUEST_BASE) +#define DISPID_HTTPREQUEST_SETREQUESTHEADER (DISPID_HTTPREQUEST_BASE + 1) +#define DISPID_HTTPREQUEST_GETRESPONSEHEADER (DISPID_HTTPREQUEST_BASE + 2) +#define DISPID_HTTPREQUEST_GETALLRESPONSEHEADERS (DISPID_HTTPREQUEST_BASE + 3) +#define DISPID_HTTPREQUEST_SEND (DISPID_HTTPREQUEST_BASE + 4) +#define DISPID_HTTPREQUEST_OPTION (DISPID_HTTPREQUEST_BASE + 5) +#define DISPID_HTTPREQUEST_STATUS (DISPID_HTTPREQUEST_BASE + 6) +#define DISPID_HTTPREQUEST_STATUSTEXT (DISPID_HTTPREQUEST_BASE + 7) +#define DISPID_HTTPREQUEST_RESPONSETEXT (DISPID_HTTPREQUEST_BASE + 8) +#define DISPID_HTTPREQUEST_RESPONSEBODY (DISPID_HTTPREQUEST_BASE + 9) +#define DISPID_HTTPREQUEST_RESPONSESTREAM (DISPID_HTTPREQUEST_BASE + 10) +#define DISPID_HTTPREQUEST_ABORT (DISPID_HTTPREQUEST_BASE + 11) +#define DISPID_HTTPREQUEST_SETPROXY (DISPID_HTTPREQUEST_BASE + 12) +#define DISPID_HTTPREQUEST_SETCREDENTIALS (DISPID_HTTPREQUEST_BASE + 13) +#define DISPID_HTTPREQUEST_WAITFORRESPONSE (DISPID_HTTPREQUEST_BASE + 14) +#define DISPID_HTTPREQUEST_SETTIMEOUTS (DISPID_HTTPREQUEST_BASE + 15) +#define DISPID_HTTPREQUEST_SETCLIENTCERTIFICATE (DISPID_HTTPREQUEST_BASE + 16) +#define DISPID_HTTPREQUEST_SETAUTOLOGONPOLICY (DISPID_HTTPREQUEST_BASE + 17) + +#endif /* __WINE_HTTPREQUESTID_H */