Jacek Caban : mshtml: Call Exec(CGID_ShellDocView, 84) in start_binding.

Alexandre Julliard julliard at winehq.org
Tue Nov 6 08:24:33 CST 2007


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Nov  2 19:54:22 2007 +0100

mshtml: Call Exec(CGID_ShellDocView, 84) in start_binding.

---

 dlls/mshtml/navigate.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 85fb2e5..5e05a64 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -689,6 +689,27 @@ BSCallback *create_bscallback(IMoniker *mon)
     return ret;
 }
 
+/* Calls undocumented 84 cmd of CGID_ShellDocView */
+static void call_docview_84(HTMLDocument *doc)
+{
+    IOleCommandTarget *olecmd;
+    VARIANT var;
+    HRESULT hres;
+
+    if(!doc->client)
+        return;
+
+    hres = IOleClientSite_QueryInterface(doc->client, &IID_IOleCommandTarget, (void**)&olecmd);
+    if(FAILED(hres))
+        return;
+
+    VariantInit(&var);
+    hres = IOleCommandTarget_Exec(olecmd, &CGID_ShellDocView, 84, 0, NULL, &var);
+    IOleCommandTarget_Release(olecmd);
+    if(SUCCEEDED(hres) && V_VT(&var) != VT_NULL)
+        FIXME("handle result\n");
+}
+
 static void parse_post_data(nsIInputStream *post_data_stream, LPWSTR *headers_ret,
                             HGLOBAL *post_data_ret, ULONG *post_data_len_ret)
 {
@@ -815,6 +836,7 @@ HRESULT start_binding(HTMLDocument *doc, BSCallback *bscallback)
     HRESULT hres;
 
     bscallback->doc = doc;
+    call_docview_84(bscallback->doc);
 
     hres = CreateAsyncBindCtx(0, STATUSCLB(bscallback), NULL, &bctx);
     if(FAILED(hres)) {




More information about the wine-cvs mailing list