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