Jacek Caban : ieframe: Forward more DocHost::Exec calls to embedders.

Alexandre Julliard julliard at winehq.org
Mon Nov 12 14:14:40 CST 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Nov 12 12:59:06 2012 +0100

ieframe: Forward more DocHost::Exec calls to embedders.

---

 dlls/ieframe/dochost.c          |    4 ++++
 dlls/ieframe/iexplore.c         |    3 ++-
 dlls/ieframe/tests/webbrowser.c |    4 ++--
 dlls/ieframe/webbrowser.c       |    6 ++++--
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/dlls/ieframe/dochost.c b/dlls/ieframe/dochost.c
index 0449f24..c063851 100644
--- a/dlls/ieframe/dochost.c
+++ b/dlls/ieframe/dochost.c
@@ -526,6 +526,7 @@ static HRESULT WINAPI ClOleCommandTarget_Exec(IOleCommandTarget *iface,
     if(!pguidCmdGroup) {
         switch(nCmdID) {
         case OLECMDID_UPDATECOMMANDS:
+        case OLECMDID_SETDOWNLOADSTATE:
             return This->container_vtbl->exec(This, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
         default:
             FIXME("Unimplemented cmdid %d\n", nCmdID);
@@ -605,6 +606,9 @@ static HRESULT WINAPI ClOleCommandTarget_Exec(IOleCommandTarget *iface,
         }
     }
 
+    if(IsEqualGUID(&CGID_DocHostCommandHandler, pguidCmdGroup))
+        return This->container_vtbl->exec(This, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
+
     FIXME("Unimplemented cmdid %d of group %s\n", nCmdID, debugstr_guid(pguidCmdGroup));
     return E_NOTIMPL;
 }
diff --git a/dlls/ieframe/iexplore.c b/dlls/ieframe/iexplore.c
index c4641bd..0643f16 100644
--- a/dlls/ieframe/iexplore.c
+++ b/dlls/ieframe/iexplore.c
@@ -789,8 +789,9 @@ static void WINAPI DocHostContainer_SetURL(DocHost* iface, LPCWSTR url)
 static HRESULT DocHostContainer_exec(DocHost* This, const GUID *cmd_group, DWORD cmdid, DWORD execopt, VARIANT *in,
         VARIANT *out)
 {
-    return S_OK;
+    return E_NOTIMPL;
 }
+
 static const IDocHostContainerVtbl DocHostContainerVtbl = {
     IEDocHost_addref,
     IEDocHost_release,
diff --git a/dlls/ieframe/tests/webbrowser.c b/dlls/ieframe/tests/webbrowser.c
index 57c2be9..213e43d 100644
--- a/dlls/ieframe/tests/webbrowser.c
+++ b/dlls/ieframe/tests/webbrowser.c
@@ -2753,7 +2753,7 @@ static void test_download(DWORD flags)
     }
     todo_wine CHECK_CALLED(Exec_SETPROGRESSMAX);
     todo_wine CHECK_CALLED(Exec_SETPROGRESSPOS);
-    todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_1);
+    CHECK_CALLED(Exec_SETDOWNLOADSTATE_1);
     CLEAR_CALLED(DocHost_EnableModeless_FALSE); /* IE 7 */
     CLEAR_CALLED(DocHost_EnableModeless_TRUE); /* IE 7 */
     todo_wine CHECK_CALLED(Invoke_SETSECURELOCKICON);
@@ -2771,7 +2771,7 @@ static void test_download(DWORD flags)
         CLEAR_CALLED(EnableModeless_FALSE); /* IE 8 */
     if(!is_first_load)
         todo_wine CHECK_CALLED(GetHostInfo);
-    todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
+    CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
     todo_wine CHECK_CALLED(Invoke_TITLECHANGE);
     CHECK_CALLED(Invoke_NAVIGATECOMPLETE2);
     if(is_first_load)
diff --git a/dlls/ieframe/webbrowser.c b/dlls/ieframe/webbrowser.c
index b82233b..1bd14fa 100644
--- a/dlls/ieframe/webbrowser.c
+++ b/dlls/ieframe/webbrowser.c
@@ -1219,11 +1219,13 @@ static HRESULT DocHostContainer_exec(DocHost *doc_host, const GUID *cmd_group, D
     }
 
     if(!cmdtrg)
-        return S_OK;
+        return E_NOTIMPL;
 
     hres = IOleCommandTarget_Exec(cmdtrg, cmd_group, cmdid, execopt, in, out);
     IOleCommandTarget_Release(cmdtrg);
-    if(FAILED(hres))
+    if(SUCCEEDED(hres))
+        TRACE("Exec returned %08x %s\n", hres, debugstr_variant(out));
+    else
         FIXME("Exec failed\n");
 
     return hres;




More information about the wine-cvs mailing list