[PATCH] Correct OnAmbientPropertyChange regession
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Tue Feb 3 15:34:41 CST 2009
---
dlls/shdocvw/oleobject.c | 6 +++---
dlls/shdocvw/tests/webbrowser.c | 29 +++++++++++++----------------
2 files changed, 16 insertions(+), 19 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..3f17657 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -69,6 +69,12 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,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_EXPECT(GetContainer);
DEFINE_EXPECT(Site_GetWindow);
DEFINE_EXPECT(ShowObject);
@@ -1777,25 +1783,16 @@ static void test_ambient_unknown(IWebBrowser2 *wb, IOleControl *control, BOOL is
{
HRESULT hres;
- SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
- SET_EXPECT(Invoke_AMBIENT_SILENT);
- SET_EXPECT(Invoke_AMBIENT_USERMODE);
- SET_EXPECT(Invoke_AMBIENT_DLCONTROL);
- SET_EXPECT(Invoke_AMBIENT_USERAGENT);
- SET_EXPECT(Invoke_AMBIENT_PALETTE);
-
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_NOT_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+ CHECK_NOT_CALLED(Invoke_AMBIENT_SILENT);
+ CHECK_NOT_CALLED(Invoke_AMBIENT_USERMODE);
+ CHECK_NOT_CALLED(Invoke_AMBIENT_DLCONTROL);
+ CHECK_NOT_CALLED(Invoke_AMBIENT_USERAGENT);
+ CHECK_NOT_CALLED(Invoke_AMBIENT_PALETTE);
+
}
static void test_wb_funcs(IUnknown *unk, BOOL is_clientsite)
--
1.5.4.3
--------------020508020004090106010109--
More information about the wine-patches
mailing list