mshtml: Implement HTMLDocument_QueryInterface for IHTMLDOMNode, IHTMLElement and IHTMLElement2.

Jacek Caban jacek at codeweavers.com
Sun Jul 1 10:42:53 CDT 2007


Robert Shearman wrote:
>
> I suspect that you'll get different results when you do the same test
> on a loaded HTML document, even though this violates COM rules.
>

No, load state doesn't change anything. I've attached a test.

Jacek
-------------- next part --------------
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 09f905a..44c98c2 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -74,6 +74,27 @@ static void test_node_name(IUnknown *unk, const char *exname)
     SysFreeString(name);
 }
 
+static void test_QueryInterface(IUnknown *unk)
+{
+    IUnknown *qi;
+    HRESULT hres;
+
+    qi = (void*)0xdeadbeef;
+    hres = IUnknown_QueryInterface(unk, &IID_IRunnableObject, (void**)&qi);
+    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
+    ok(qi == NULL, "runnable=%p, ezpected NULL\n", qi);
+
+    qi = (void*)0xdeadbeef;
+    hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMNode, (void**)&qi);
+    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
+    ok(qi == NULL, "runnable=%p, ezpected NULL\n", qi);
+
+    qi = (void*)0xdeadbeef;
+    hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMNode2, (void**)&qi);
+    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
+    ok(qi == NULL, "runnable=%p, ezpected NULL\n", qi);
+}
+
 static void test_doc_elem(IHTMLDocument2 *doc)
 {
     IHTMLElement *elem;
@@ -90,6 +111,8 @@ static void test_doc_elem(IHTMLDocument2 *doc)
     test_node_name((IUnknown*)elem, "HTML");
 
     IHTMLElement_Release(elem);
+
+    test_QueryInterface((IUnknown*)doc);
 }
 
 static IHTMLDocument2 *notif_doc;


More information about the wine-devel mailing list