Module: wine Branch: master Commit: 778c6455705161bd54c2e54e986909c501f56d91 URL: http://source.winehq.org/git/wine.git/?a=commit;h=778c6455705161bd54c2e54e98...
Author: Jacek Caban jacek@codeweavers.com Date: Fri May 10 10:42:20 2013 +0200
ieframe: Added stub IExternalConnection interface to InternetExplorer object.
---
dlls/ieframe/ie.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ dlls/ieframe/ieframe.h | 1 + 2 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/dlls/ieframe/ie.c b/dlls/ieframe/ie.c index afbd2e9..42602f9 100644 --- a/dlls/ieframe/ie.c +++ b/dlls/ieframe/ie.c @@ -51,6 +51,9 @@ static HRESULT WINAPI InternetExplorer_QueryInterface(IWebBrowser2 *iface, REFII }else if(IsEqualGUID(&IID_IConnectionPointContainer, riid)) { TRACE("(%p)->(IID_IConnectionPointContainer %p)\n", This, ppv); *ppv = &This->doc_host->doc_host.cps.IConnectionPointContainer_iface; + }else if(IsEqualGUID(&IID_IExternalConnection, riid)) { + TRACE("(%p)->(IID_IExternalConnection %p)\n", This, ppv); + *ppv = &This->IExternalConnection_iface; }else if(IsEqualGUID(&IID_IServiceProvider, riid)) { TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv); *ppv = &This->IServiceProvider_iface; @@ -705,6 +708,52 @@ static const IWebBrowser2Vtbl InternetExplorerVtbl = InternetExplorer_put_Resizable };
+static inline InternetExplorer *impl_from_IExternalConnection(IExternalConnection *iface) +{ + return CONTAINING_RECORD(iface, InternetExplorer, IExternalConnection_iface); +} + +static HRESULT WINAPI ExternalConnection_QueryInterface(IExternalConnection *iface, REFIID riid, void **ppv) +{ + InternetExplorer *This = impl_from_IExternalConnection(iface); + return IWebBrowser2_QueryInterface(&This->IWebBrowser2_iface, riid, ppv); +} + +static ULONG WINAPI ExternalConnection_AddRef(IExternalConnection *iface) +{ + InternetExplorer *This = impl_from_IExternalConnection(iface); + return IWebBrowser2_AddRef(&This->IWebBrowser2_iface); +} + +static ULONG WINAPI ExternalConnection_Release(IExternalConnection *iface) +{ + InternetExplorer *This = impl_from_IExternalConnection(iface); + return IWebBrowser2_Release(&This->IWebBrowser2_iface); +} + +static DWORD WINAPI ExternalConnection_AddConnection(IExternalConnection *iface, DWORD extconn, DWORD reserved) +{ + InternetExplorer *This = impl_from_IExternalConnection(iface); + FIXME("(%p)\n", This); + return 2; +} + +static DWORD WINAPI ExternalConnection_ReleaseConnection(IExternalConnection *iface, DWORD extconn, + DWORD reserved, BOOL fLastReleaseCloses) +{ + InternetExplorer *This = impl_from_IExternalConnection(iface); + FIXME("(%p)\n", This); + return 1; +} + +static const IExternalConnectionVtbl ExternalConnectionVtbl = { + ExternalConnection_QueryInterface, + ExternalConnection_AddRef, + ExternalConnection_Release, + ExternalConnection_AddConnection, + ExternalConnection_ReleaseConnection +}; + static inline InternetExplorer *impl_from_IServiceProvider(IServiceProvider *iface) { return CONTAINING_RECORD(iface, InternetExplorer, IServiceProvider_iface); @@ -755,5 +804,6 @@ static const IServiceProviderVtbl ServiceProviderVtbl = void InternetExplorer_WebBrowser_Init(InternetExplorer *This) { This->IWebBrowser2_iface.lpVtbl = &InternetExplorerVtbl; + This->IExternalConnection_iface.lpVtbl = &ExternalConnectionVtbl; This->IServiceProvider_iface.lpVtbl = &ServiceProviderVtbl; } diff --git a/dlls/ieframe/ieframe.h b/dlls/ieframe/ieframe.h index bbb3e4c..709789c 100644 --- a/dlls/ieframe/ieframe.h +++ b/dlls/ieframe/ieframe.h @@ -224,6 +224,7 @@ typedef struct {
struct InternetExplorer { IWebBrowser2 IWebBrowser2_iface; + IExternalConnection IExternalConnection_iface; IServiceProvider IServiceProvider_iface; HlinkFrame hlink_frame;