Jacek Caban : mshtml: Better stub for ITravelLogClient::FindWindowByIndex.

Alexandre Julliard julliard at winehq.org
Fri Jan 20 13:09:31 CST 2012


Module: wine
Branch: master
Commit: 50a86f5f2564219f53495f79b6fa72874e098306
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=50a86f5f2564219f53495f79b6fa72874e098306

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jan 20 15:10:39 2012 +0100

mshtml: Better stub for ITravelLogClient::FindWindowByIndex.

---

 dlls/mshtml/htmlwindow.c    |    7 +++++--
 dlls/mshtml/tests/htmldoc.c |   37 ++++++++++++++++++++++++++++++++++++-
 2 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c
index 7848b76..1d6ed5d 100644
--- a/dlls/mshtml/htmlwindow.c
+++ b/dlls/mshtml/htmlwindow.c
@@ -1977,8 +1977,11 @@ static ULONG WINAPI TravelLogClient_Release(ITravelLogClient *iface)
 static HRESULT WINAPI TravelLogClient_FindWindowByIndex(ITravelLogClient *iface, DWORD dwID, IUnknown **ppunk)
 {
     HTMLWindow *This = impl_from_ITravelLogClient(iface);
-    FIXME("(%p)->(%d %p)\n", This, dwID, ppunk);
-    return E_NOTIMPL;
+
+    FIXME("(%p)->(%d %p) semi-stub\n", This, dwID, ppunk);
+
+    *ppunk = NULL;
+    return E_FAIL;
 }
 
 static HRESULT WINAPI TravelLogClient_GetWindowData(ITravelLogClient *iface, IStream *pStream, LPWINDOWDATA pWinData)
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index 0177c16..55e3ac7 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -6239,6 +6239,38 @@ static void test_target_container(IHTMLDocument2 *doc)
     IOleContainer_Release(doc_ole_container);
 }
 
+static void test_travellog(IHTMLDocument2 *doc)
+{
+    ITravelLogClient *travellog_client;
+    IHTMLWindow2 *window, *top_window;
+    IUnknown *unk;
+    HRESULT hres;
+
+    window = NULL;
+    hres = IHTMLDocument2_get_parentWindow(doc, &window);
+    ok(hres == S_OK, "get_parentWindow failed: %08x\n", hres);
+    ok(window != NULL, "window = NULL\n");
+
+    hres = IHTMLWindow2_get_top(window, &top_window);
+    IHTMLWindow2_Release(window);
+    ok(hres == S_OK, "get_top failed: %08x\n", hres);
+
+    hres = IHTMLWindow2_QueryInterface(top_window, &IID_ITravelLogClient, (void**)&travellog_client);
+    IHTMLWindow2_Release(top_window);
+    if(hres == E_NOINTERFACE) {
+        win_skip("ITravelLogClient not supported\n");
+        return;
+    }
+    ok(hres == S_OK, "Could not get ITraveLogClient iface: %08x\n", hres);
+
+    unk = (void*)0xdeadbeef;
+    hres = ITravelLogClient_FindWindowByIndex(travellog_client, 0, &unk);
+    ok(hres == E_FAIL, "FindWindowByIndex failed: %08x\n", hres);
+    ok(!unk, "unk != NULL\n");
+
+    ITravelLogClient_Release(travellog_client);
+}
+
 static void test_StreamLoad(IHTMLDocument2 *doc)
 {
     IPersistStreamInit *init;
@@ -6613,10 +6645,13 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
     test_IsDirty(doc, S_FALSE);
     test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
     test_GetCurMoniker((IUnknown*)doc, http_mon, NULL);
+    test_travellog(doc);
 
     nav_url = nav_serv_url = "http://www.winehq.org/"; /* for valid prev nav_url */
-    if(support_wbapp)
+    if(support_wbapp) {
         test_put_href(doc, FALSE, "#test", "http://www.winehq.org/#test", FALSE, TRUE);
+        test_travellog(doc);
+    }
     test_put_href(doc, FALSE, NULL, "javascript:external&&undefined", TRUE, FALSE);
 
     test_put_href(doc, FALSE, NULL, "about:blank", FALSE, FALSE);




More information about the wine-cvs mailing list