Jacek Caban : mshtml: Added PluginHost's IBindHost stub implementation.
Module: wine Branch: master Commit: 4479194e48dfa55c2f277db0a1f8ef8c753aca6c URL: http://source.winehq.org/git/wine.git/?a=commit;h=4479194e48dfa55c2f277db0a1... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Mon Dec 6 18:51:05 2010 +0100 mshtml: Added PluginHost's IBindHost stub implementation. --- dlls/mshtml/pluginhost.c | 59 +++++++++++++++++++++++++++++++++++++++++++ dlls/mshtml/pluginhost.h | 1 + dlls/mshtml/tests/activex.c | 1 + 3 files changed, 61 insertions(+), 0 deletions(-) diff --git a/dlls/mshtml/pluginhost.c b/dlls/mshtml/pluginhost.c index 4b8f1b1..f652b82 100644 --- a/dlls/mshtml/pluginhost.c +++ b/dlls/mshtml/pluginhost.c @@ -126,6 +126,9 @@ static HRESULT WINAPI PHClientSite_QueryInterface(IOleClientSite *iface, REFIID }else if(IsEqualGUID(&IID_IOleControlSite, riid)) { TRACE("(%p)->(IID_IOleControlSite %p)\n", This, ppv); *ppv = &This->IOleControlSite_iface; + }else if(IsEqualGUID(&IID_IBindHost, riid)) { + TRACE("(%p)->(IID_IBindHost %p)\n", This, ppv); + *ppv = &This->IBindHost_iface; }else { WARN("Unsupported interface %s\n", debugstr_guid(riid)); *ppv = NULL; @@ -633,6 +636,61 @@ static const IOleControlSiteVtbl OleControlSiteVtbl = { PHControlSite_ShowPropertyFrame }; +static inline PluginHost *impl_from_IBindHost(IBindHost *iface) +{ + return CONTAINING_RECORD(iface, PluginHost, IBindHost_iface); +} + +static HRESULT WINAPI PHBindHost_QueryInterface(IBindHost *iface, REFIID riid, void **ppv) +{ + PluginHost *This = impl_from_IBindHost(iface); + return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, riid, ppv); +} + +static ULONG WINAPI PHBindHost_AddRef(IBindHost *iface) +{ + PluginHost *This = impl_from_IBindHost(iface); + return IOleClientSite_AddRef(&This->IOleClientSite_iface); +} + +static ULONG WINAPI PHBindHost_Release(IBindHost *iface) +{ + PluginHost *This = impl_from_IBindHost(iface); + return IOleClientSite_Release(&This->IOleClientSite_iface); +} + +static HRESULT WINAPI PHBindHost_CreateMoniker(IBindHost *iface, LPOLESTR szName, IBindCtx *pBC, IMoniker **ppmk, DWORD dwReserved) +{ + PluginHost *This = impl_from_IBindHost(iface); + FIXME("(%p)->(%s %p %p %x)\n", This, debugstr_w(szName), pBC, ppmk, dwReserved); + return E_NOTIMPL; +} + +static HRESULT WINAPI PHBindHost_MonikerBindToStorage(IBindHost *iface, IMoniker *pMk, IBindCtx *pBC, + IBindStatusCallback *pBSC, REFIID riid, void **ppvObj) +{ + PluginHost *This = impl_from_IBindHost(iface); + FIXME("(%p)->(%p %p %p %s %p)\n", This, pMk, pBC, pBSC, debugstr_guid(riid), ppvObj); + return E_NOTIMPL; +} + +static HRESULT WINAPI PHBindHost_MonikerBindToObject(IBindHost *iface, IMoniker *pMk, IBindCtx *pBC, + IBindStatusCallback *pBSC, REFIID riid, void **ppvObj) +{ + PluginHost *This = impl_from_IBindHost(iface); + FIXME("(%p)->(%p %p %p %s %p)\n", This, pMk, pBC, pBSC, debugstr_guid(riid), ppvObj); + return E_NOTIMPL; +} + +static const IBindHostVtbl BindHostVtbl = { + PHBindHost_QueryInterface, + PHBindHost_AddRef, + PHBindHost_Release, + PHBindHost_CreateMoniker, + PHBindHost_MonikerBindToStorage, + PHBindHost_MonikerBindToObject +}; + HRESULT create_plugin_host(IUnknown *unk, PluginHost **ret) { PluginHost *host; @@ -647,6 +705,7 @@ HRESULT create_plugin_host(IUnknown *unk, PluginHost **ret) host->IDispatch_iface.lpVtbl = &DispatchVtbl; host->IOleInPlaceSiteEx_iface.lpVtbl = &OleInPlaceSiteExVtbl; host->IOleControlSite_iface.lpVtbl = &OleControlSiteVtbl; + host->IBindHost_iface.lpVtbl = &BindHostVtbl; host->ref = 1; diff --git a/dlls/mshtml/pluginhost.h b/dlls/mshtml/pluginhost.h index 316ce57..2e87ea3 100644 --- a/dlls/mshtml/pluginhost.h +++ b/dlls/mshtml/pluginhost.h @@ -25,6 +25,7 @@ typedef struct { IDispatch IDispatch_iface; IOleInPlaceSiteEx IOleInPlaceSiteEx_iface; IOleControlSite IOleControlSite_iface; + IBindHost IBindHost_iface; LONG ref; diff --git a/dlls/mshtml/tests/activex.c b/dlls/mshtml/tests/activex.c index aa8c0e1..51a6b84 100644 --- a/dlls/mshtml/tests/activex.c +++ b/dlls/mshtml/tests/activex.c @@ -97,6 +97,7 @@ static const REFIID pluginhost_iids[] = { &IID_IOleInPlaceSite, &IID_IOleInPlaceSiteEx, &IID_IOleControlSite, + &IID_IBindHost, NULL };
participants (1)
-
Alexandre Julliard