Thomas Mullaly : mshtml: Added support for IDispatch Html document events.

Alexandre Julliard julliard at winehq.org
Fri May 20 12:44:29 CDT 2011


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

Author: Thomas Mullaly <tmullaly at codeweavers.com>
Date:   Wed May 11 17:15:10 2011 -0400

mshtml: Added support for IDispatch Html document events.

---

 dlls/mshtml/htmldoc.c       |    2 +-
 dlls/mshtml/tests/events.c  |   10 +++++-----
 dlls/mshtml/tests/htmldoc.c |   22 ++++++++++++++++------
 3 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index f7a70ca..6ecb39b 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -1866,7 +1866,7 @@ static void init_doc(HTMLDocument *doc, IUnknown *unk_impl, IDispatchEx *dispex)
     HTMLDocument_Hlink_Init(doc);
 
     ConnectionPointContainer_Init(&doc->cp_container, (IUnknown*)&doc->IHTMLDocument2_iface);
-    ConnectionPoint_Init(&doc->cp_dispatch, &doc->cp_container, &IID_IDispatch, NULL);
+    ConnectionPoint_Init(&doc->cp_dispatch, &doc->cp_container, &IID_IDispatch, &HTMLDocumentEvents_data);
     ConnectionPoint_Init(&doc->cp_propnotif, &doc->cp_container, &IID_IPropertyNotifySink, NULL);
     ConnectionPoint_Init(&doc->cp_htmldocevents, &doc->cp_container, &DIID_HTMLDocumentEvents, &HTMLDocumentEvents_data);
     ConnectionPoint_Init(&doc->cp_htmldocevents2, &doc->cp_container, &DIID_HTMLDocumentEvents2, NULL);
diff --git a/dlls/mshtml/tests/events.c b/dlls/mshtml/tests/events.c
index 212f0a1..fa2fb6f 100644
--- a/dlls/mshtml/tests/events.c
+++ b/dlls/mshtml/tests/events.c
@@ -1460,7 +1460,7 @@ static void test_onclick(IHTMLDocument2 *doc)
         CHECK_CALLED(div_onclick_attached);
         CHECK_CALLED(body_onclick);
         CHECK_CALLED(document_onclick);
-        todo_wine CHECK_CALLED(invoke_onclick);
+        CHECK_CALLED(invoke_onclick);
     }
 
     xy_todo = TRUE;
@@ -1478,7 +1478,7 @@ static void test_onclick(IHTMLDocument2 *doc)
     CHECK_CALLED(div_onclick_attached);
     CHECK_CALLED(body_onclick);
     CHECK_CALLED(document_onclick);
-    todo_wine CHECK_CALLED(invoke_onclick);
+    CHECK_CALLED(invoke_onclick);
 
     SET_EXPECT(div_onclick);
     SET_EXPECT(div_onclick_attached);
@@ -1493,7 +1493,7 @@ static void test_onclick(IHTMLDocument2 *doc)
     CHECK_CALLED(div_onclick_attached);
     CHECK_CALLED(body_onclick);
     CHECK_CALLED(document_onclick);
-    todo_wine CHECK_CALLED(invoke_onclick);
+    CHECK_CALLED(invoke_onclick);
 
     cp_cookie = register_cp((IUnknown*)doc, &DIID_HTMLDocumentEvents, (IUnknown*)&doccp_obj);
     elem_attach_event((IUnknown*)div, "onclick", (IDispatch*)&div_onclick_disp);
@@ -1518,7 +1518,7 @@ static void test_onclick(IHTMLDocument2 *doc)
     CHECK_CALLED(document_onclick);
     CHECK_CALLED(doc_onclick_attached);
     CHECK_CALLED(doccp_onclick);
-    todo_wine CHECK_CALLED(invoke_onclick);
+    CHECK_CALLED(invoke_onclick);
 
     unregister_cp((IUnknown*)doc, &DIID_HTMLDocumentEvents, cp_cookie);
 
@@ -1546,7 +1546,7 @@ static void test_onclick(IHTMLDocument2 *doc)
     CHECK_CALLED(div_onclick_attached);
     CHECK_CALLED(body_onclick);
     CHECK_CALLED(document_onclick);
-    todo_wine CHECK_CALLED(invoke_onclick);
+    CHECK_CALLED(invoke_onclick);
 
     IHTMLElement_Release(div);
     IHTMLElement_Release(body);
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index aa8c43b..f22bdbd 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -74,6 +74,12 @@ DEFINE_OLEGUID(CGID_DocHostCmdPriv, 0x000214D4L, 0, 0);
         expect_ ## func = called_ ## func = FALSE; \
     }while(0)
 
+#define CHECK_NOT_CALLED(func) \
+    do { \
+        ok(!called_ ## func, "unexpected " #func "\n"); \
+        expect_ ## func = called_ ## func = FALSE; \
+    }while(0)
+
 #define CHECK_CALLED_BROKEN(func) \
     do { \
         ok(called_ ## func || broken(!called_ ## func), "expected " #func "\n"); \
@@ -4014,7 +4020,7 @@ static void test_Load(IPersistMoniker *persist, IMoniker *mon)
         container_locked = TRUE;
     }
     CHECK_CALLED(OnChanged_READYSTATE);
-    todo_wine CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
+    CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
     SET_CALLED(IsSystemMoniker); /* IE7 */
     SET_CALLED(Exec_ShellDocView_84);
     if(mon == &Moniker)
@@ -4145,8 +4151,8 @@ static void test_download(DWORD flags)
         CHECK_CALLED(UnlockRequest);
     }
     if(!(flags & DWL_EMPTY))
-        todo_wine CHECK_CALLED(Invoke_OnReadyStateChange_Interactive);
-    todo_wine CHECK_CALLED(Invoke_OnReadyStateChange_Complete);
+        CHECK_CALLED(Invoke_OnReadyStateChange_Interactive);
+    CHECK_CALLED(Invoke_OnReadyStateChange_Complete);
     SET_CALLED(Exec_Explorer_69);
     SET_CALLED(EnableModeless_TRUE); /* IE7 */
     SET_CALLED(Frame_EnableModeless_TRUE); /* IE7 */
@@ -4616,7 +4622,7 @@ static void test_exec_editmode(IUnknown *unk, BOOL loaded)
     CHECK_CALLED(Invoke_AMBIENT_SILENT);
     CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
     CHECK_CALLED(OnChanged_READYSTATE);
-    todo_wine CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
+    CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
     SET_CALLED(IsSystemMoniker); /* IE7 */
     SET_CALLED(Exec_ShellDocView_84);
     if(loaded)
@@ -5309,7 +5315,7 @@ static void test_StreamLoad(IHTMLDocument2 *doc)
     CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
     CHECK_CALLED(Exec_ShellDocView_37);
     CHECK_CALLED(OnChanged_READYSTATE);
-    todo_wine CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
+    CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
     CHECK_CALLED(Read);
     todo_wine CHECK_CALLED(GetPendingUrl);
 
@@ -5344,7 +5350,7 @@ static void test_StreamInitNew(IHTMLDocument2 *doc)
     CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
     CHECK_CALLED(Exec_ShellDocView_37);
     CHECK_CALLED(OnChanged_READYSTATE);
-    todo_wine CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
+    CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
     todo_wine CHECK_CALLED(GetPendingUrl);
 
     test_timer(EXPECT_SETTITLE);
@@ -5805,7 +5811,11 @@ static void test_HTMLDocument_StreamInitNew(void)
 
     test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
     test_StreamInitNew(doc);
+
+    SET_EXPECT(Invoke_OnReadyStateChange_Interactive);
     test_download(DWL_VERBDONE|DWL_TRYCSS|DWL_EMPTY);
+    todo_wine CHECK_NOT_CALLED(Invoke_OnReadyStateChange_Interactive);
+
     test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
 
     test_UIDeactivate();




More information about the wine-cvs mailing list