mshtml: Added QueryService(SID_SBindHost) implementation.

This commit is contained in:
Jacek Caban 2010-12-10 16:37:39 +01:00 committed by Alexandre Julliard
parent 06f3b1a343
commit 3314bd8f8a
2 changed files with 23 additions and 0 deletions

View File

@ -838,6 +838,12 @@ static ULONG WINAPI PHServiceProvider_Release(IServiceProvider *iface)
static HRESULT WINAPI PHServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
{
PluginHost *This = impl_from_IServiceProvider(iface);
if(IsEqualGUID(guidService, &SID_SBindHost)) {
TRACE("SID_SBindHost service\n");
return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, riid, ppv);
}
FIXME("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
return E_NOINTERFACE;
}

View File

@ -330,6 +330,8 @@ static HRESULT WINAPI PersistPropertyBag_InitNew(IPersistPropertyBag *face)
static HRESULT WINAPI PersistPropertyBag_Load(IPersistPropertyBag *face, IPropertyBag *pPropBag, IErrorLog *pErrorLog)
{
IBindHost *bind_host, *bind_host2;
IServiceProvider *sp;
VARIANT v;
HRESULT hres;
@ -384,6 +386,21 @@ static HRESULT WINAPI PersistPropertyBag_Load(IPersistPropertyBag *face, IProper
ok(V_BSTR(&v) == (BSTR)0xdeadbeef, "V_BSTR(v) = %p\n", V_BSTR(&v));
set_plugin_readystate(READYSTATE_INTERACTIVE);
hres = IOleClientSite_QueryInterface(client_site, &IID_IBindHost, (void**)&bind_host);
ok(hres == S_OK, "Could not get IBindHost iface: %08x\n", hres);
hres = IOleClientSite_QueryInterface(client_site, &IID_IServiceProvider, (void**)&sp);
ok(hres == S_OK, "Could not get IServiceProvider iface: %08x\n", hres);
hres = IServiceProvider_QueryService(sp, &IID_IBindHost, &SID_SBindHost, (void**)&bind_host2);
ok(hres == S_OK, "QueryService(SID_SBindHost) failed: %08x\n", hres);
IServiceProvider_Release(sp);
ok(iface_cmp((IUnknown*)bind_host, (IUnknown*)bind_host2), "bind_host != bind_host2\n");
IBindHost_Release(bind_host2);
IBindHost_Release(bind_host);
set_plugin_readystate(READYSTATE_COMPLETE);
return S_OK;