Alistair Leslie-Hughes : shdocvw: Correct OnAmbientPropertyChange regression.
Alexandre Julliard
julliard at winehq.org
Wed Feb 4 09:15:36 CST 2009
Module: wine
Branch: master
Commit: a14a75b85ebe1a7d15f9a313f9d79a9571037d6c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a14a75b85ebe1a7d15f9a313f9d79a9571037d6c
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Wed Feb 4 11:51:59 2009 +1100
shdocvw: Correct OnAmbientPropertyChange regression.
---
dlls/shdocvw/oleobject.c | 6 +++---
dlls/shdocvw/tests/webbrowser.c | 25 ++++++++++++++++---------
2 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/dlls/shdocvw/oleobject.c b/dlls/shdocvw/oleobject.c
index cd5e605..a38d03d 100644
--- a/dlls/shdocvw/oleobject.c
+++ b/dlls/shdocvw/oleobject.c
@@ -719,9 +719,9 @@ static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DIS
switch(dispID) {
case DISPID_UNKNOWN:
- /* Unknown means multiple properties changed, so check them all. */
- on_offlineconnected_change(This);
- on_silent_change(This);
+ /* Unknown means multiple properties changed, so check them all.
+ * BUT the Webbrowser OleControl object doesnt appear to do this.
+ */
return S_OK;
case DISPID_AMBIENT_OFFLINEIFNOTCONNECTED:
return on_offlineconnected_change(This);
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index 27cd353..64c5bab 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -69,6 +69,9 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
expect_ ## func = called_ ## func = FALSE; \
}while(0)
+#define CLEAR_CALLED(func) \
+ expect_ ## func = called_ ## func = FALSE
+
DEFINE_EXPECT(GetContainer);
DEFINE_EXPECT(Site_GetWindow);
DEFINE_EXPECT(ShowObject);
@@ -1787,15 +1790,19 @@ static void test_ambient_unknown(IWebBrowser2 *wb, IOleControl *control, BOOL is
hres = IOleControl_OnAmbientPropertyChange(control, DISPID_UNKNOWN);
ok(hres == S_OK, "OnAmbientPropertyChange failed %08x\n", hres);
- if(is_clientsite)
- {
- CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
- CHECK_CALLED(Invoke_AMBIENT_SILENT);
- todo_wine CHECK_CALLED(Invoke_AMBIENT_USERMODE);
- todo_wine CHECK_CALLED(Invoke_AMBIENT_DLCONTROL);
- todo_wine CHECK_CALLED(Invoke_AMBIENT_USERAGENT);
- todo_wine CHECK_CALLED(Invoke_AMBIENT_PALETTE);
- }
+ CHECK_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+ CHECK_EXPECT(Invoke_AMBIENT_SILENT);
+ CHECK_EXPECT(Invoke_AMBIENT_USERMODE);
+ CHECK_EXPECT(Invoke_AMBIENT_DLCONTROL);
+ CHECK_EXPECT(Invoke_AMBIENT_USERAGENT);
+ CHECK_EXPECT(Invoke_AMBIENT_PALETTE);
+
+ CLEAR_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+ CLEAR_CALLED(Invoke_AMBIENT_SILENT);
+ CLEAR_CALLED(Invoke_AMBIENT_USERMODE);
+ CLEAR_CALLED(Invoke_AMBIENT_DLCONTROL);
+ CLEAR_CALLED(Invoke_AMBIENT_USERAGENT);
+ CLEAR_CALLED(Invoke_AMBIENT_PALETTE);
}
static void test_wb_funcs(IUnknown *unk, BOOL is_clientsite)
More information about the wine-cvs
mailing list