diff --git a/dlls/wmp/oleobj.c b/dlls/wmp/oleobj.c index 8dcdfbdce21..acf38f32233 100644 --- a/dlls/wmp/oleobj.c +++ b/dlls/wmp/oleobj.c @@ -219,6 +219,8 @@ static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, v { WindowsMediaPlayer *This = impl_from_IOleObject(iface); + *ppv = NULL; + if(IsEqualGUID(riid, &IID_IUnknown)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IOleObject_iface; @@ -267,9 +269,14 @@ static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, v }else if(IsEqualGUID(riid, &IID_IOleControl)) { TRACE("(%p)->(IID_IOleControl %p)\n", This, ppv); *ppv = &This->IOleControl_iface; + }else if(IsEqualGUID(riid, &IID_IMarshal)) { + TRACE("(%p)->(IID_IMarshal %p)\n", This, ppv); + return E_NOINTERFACE; + }else if(IsEqualGUID(riid, &IID_IQuickActivate)) { + TRACE("(%p)->(IID_IQuickActivate %p)\n", This, ppv); + return E_NOINTERFACE; }else { FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - *ppv = NULL; return E_NOINTERFACE; } diff --git a/dlls/wmp/tests/oleobj.c b/dlls/wmp/tests/oleobj.c index b008af15890..3242d0c0b80 100644 --- a/dlls/wmp/tests/oleobj.c +++ b/dlls/wmp/tests/oleobj.c @@ -848,6 +848,9 @@ static void test_QI(IUnknown *unk) hres = IUnknown_QueryInterface(unk, &IID_IQuickActivate, (void**)&tmp); ok(hres == E_NOINTERFACE, "Got IQuickActivate iface when no expected\n"); + hres = IUnknown_QueryInterface(unk, &IID_IMarshal, (void**)&tmp); + ok(hres == E_NOINTERFACE, "Could not get IMarshal iface: %08x\n", hres); + hres = IUnknown_QueryInterface(unk, &IID_IOleInPlaceObjectWindowless, (void**)&tmp); ok(hres == S_OK, "Could not get IOleInPlaceObjectWindowless iface: %08x\n", hres); IUnknown_Release(tmp);