Jacek Caban : shdocvw: Call StatusTextChange in set_status_text.

Alexandre Julliard julliard at winehq.org
Tue Jan 15 07:47:09 CST 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jan 14 16:26:47 2008 +0100

shdocvw: Call StatusTextChange in set_status_text.

---

 dlls/shdocvw/navigate.c         |   13 +++++++++++--
 dlls/shdocvw/tests/webbrowser.c |    6 ++++--
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c
index 71c3ea5..ad9fc0b 100644
--- a/dlls/shdocvw/navigate.c
+++ b/dlls/shdocvw/navigate.c
@@ -94,10 +94,19 @@ static void dump_BINDINFO(BINDINFO *bi)
 
 static void set_status_text(BindStatusCallback *This, LPCWSTR str)
 {
-    if(!This->doc_host || !This->doc_host->frame)
+    VARIANTARG arg;
+    DISPPARAMS dispparams = {&arg, NULL, 1, 0};
+
+    if(!This->doc_host)
         return;
 
-    IOleInPlaceFrame_SetStatusText(This->doc_host->frame, str);
+    V_VT(&arg) = VT_BSTR;
+    V_BSTR(&arg) = str ? SysAllocString(str) : NULL;
+    call_sink(This->doc_host->cps.wbe2, DISPID_STATUSTEXTCHANGE, &dispparams);
+    VariantClear(&arg);
+
+    if(This->doc_host->frame)
+        IOleInPlaceFrame_SetStatusText(This->doc_host->frame, str);
 }
 
 #define BINDSC_THIS(iface) DEFINE_THIS(BindStatusCallback, BindStatusCallback, iface)
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index 0929f03..80c09f2 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -513,7 +513,9 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
 
         ok(pDispParams->rgvarg != NULL, "rgvarg == NULL\n");
         ok(pDispParams->cArgs == 1, "cArgs=%d, expected 1\n", pDispParams->cArgs);
-        /* TODO: Check args */
+        ok(V_VT(pDispParams->rgvarg) == VT_BSTR, "V_VT(pDispParams->rgvarg)=%d, expected VT_BSTR\n",
+           V_VT(pDispParams->rgvarg));
+        /* TODO: Check text */
         break;
 
     case DISPID_PROPERTYCHANGE:
@@ -1878,7 +1880,7 @@ static void test_Navigate2(IUnknown *unk)
     todo_wine CHECK_CALLED(Invoke_DOWNLOADBEGIN);
     todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_1);
     CHECK_CALLED(EnableModeless_FALSE);
-    todo_wine CHECK_CALLED(Invoke_STATUSTEXTCHANGE);
+    CHECK_CALLED(Invoke_STATUSTEXTCHANGE);
     CHECK_CALLED(SetStatusText);
     CHECK_CALLED(GetHostInfo);
     CHECK_CALLED(Invoke_AMBIENT_DLCONTROL);




More information about the wine-cvs mailing list