Jacek Caban : shdocvw: Silence common invalid QueryInterface FIXMEs.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Oct 2 15:01:29 CDT 2006
Module: wine
Branch: master
Commit: 8302f073b6d81ea496e6242715c8c24c83e2d9d9
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=8302f073b6d81ea496e6242715c8c24c83e2d9d9
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Oct 2 21:07:31 2006 +0200
shdocvw: Silence common invalid QueryInterface FIXMEs.
---
dlls/shdocvw/tests/webbrowser.c | 16 ++++++++++++++++
dlls/shdocvw/webbrowser.c | 6 ++++++
2 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index a21d732..0525dd5 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -936,6 +936,21 @@ static void test_Extent(IUnknown *unk)
IOleObject_Release(oleobj);
}
+static void test_QueryInterface(IUnknown *unk)
+{
+ IQuickActivate *qa = (IQuickActivate*)0xdeadbeef;
+ IRunnableObject *runnable = (IRunnableObject*)0xdeadbeef;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IQuickActivate, (void**)&qa);
+ ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
+ ok(qa == NULL, "qa=%p, ezpected NULL\n", qa);
+
+ hres = IUnknown_QueryInterface(unk, &IID_IRunnableObject, (void**)&runnable);
+ ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
+ ok(runnable == NULL, "runnable=%p, ezpected NULL\n", runnable);
+}
+
static void test_WebBrowser(void)
{
IUnknown *unk = NULL;
@@ -948,6 +963,7 @@ static void test_WebBrowser(void)
if(FAILED(hres))
return;
+ test_QueryInterface(unk);
test_ClassInfo(unk);
test_ClientSite(unk, &ClientSite);
test_Extent(unk);
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index 3740aab..9a61613 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -99,6 +99,12 @@ static HRESULT WINAPI WebBrowser_QueryIn
}else if(IsEqualGUID(&IID_IHlinkFrame, riid)) {
TRACE("(%p)->(IID_IHlinkFrame %p)\n", This, ppv);
*ppv = HLINKFRAME(This);
+ }else if(IsEqualGUID(&IID_IQuickActivate, riid)) {
+ TRACE("(%p)->(IID_IQuickActivate %p) returning NULL\n", This, ppv);
+ return E_NOINTERFACE;
+ }else if(IsEqualGUID(&IID_IRunnableObject, riid)) {
+ TRACE("(%p)->(IID_IRunnableObject %p) returning NULL\n", This, ppv);
+ return E_NOINTERFACE;
}
if(*ppv) {
More information about the wine-cvs
mailing list