Jacek Caban : ieframe: Use stored IOleCommandTarget in Exec implementation and get rid of no longer needed exec in IDocHostContainerVtbl.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Aug 17 09:01:11 CDT 2015


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Aug 14 16:30:50 2015 +0200

ieframe: Use stored IOleCommandTarget in Exec implementation and get rid of no longer needed exec in IDocHostContainerVtbl.

---

 dlls/ieframe/dochost.c    | 16 +++++++++++++---
 dlls/ieframe/ieframe.h    |  1 -
 dlls/ieframe/iexplore.c   |  9 +--------
 dlls/ieframe/webbrowser.c | 20 +-------------------
 4 files changed, 15 insertions(+), 31 deletions(-)

diff --git a/dlls/ieframe/dochost.c b/dlls/ieframe/dochost.c
index a495292..55c1dfe 100644
--- a/dlls/ieframe/dochost.c
+++ b/dlls/ieframe/dochost.c
@@ -639,8 +639,15 @@ static HRESULT WINAPI ClOleCommandTarget_Exec(IOleCommandTarget *iface,
     if(!pguidCmdGroup) {
         switch(nCmdID) {
         case OLECMDID_UPDATECOMMANDS:
+            if(!This->olecmd)
+                return E_NOTIMPL;
+            return IOleCommandTarget_Exec(This->olecmd, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
         case OLECMDID_SETDOWNLOADSTATE:
-            return This->container_vtbl->exec(This, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
+            if(This->olecmd)
+                return IOleCommandTarget_Exec(This->olecmd, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
+
+            FIXME("Default action not implemented.\n");
+            return E_NOTIMPL;
         default:
             FIXME("Unimplemented cmdid %d\n", nCmdID);
             return E_NOTIMPL;
@@ -719,8 +726,11 @@ static HRESULT WINAPI ClOleCommandTarget_Exec(IOleCommandTarget *iface,
         }
     }
 
-    if(IsEqualGUID(&CGID_DocHostCommandHandler, pguidCmdGroup))
-        return This->container_vtbl->exec(This, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
+    if(IsEqualGUID(&CGID_DocHostCommandHandler, pguidCmdGroup)) {
+        if(!This->olecmd)
+            return E_NOTIMPL;
+        return IOleCommandTarget_Exec(This->olecmd, 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/ieframe.h b/dlls/ieframe/ieframe.h
index 8a0b074..031cfae 100644
--- a/dlls/ieframe/ieframe.h
+++ b/dlls/ieframe/ieframe.h
@@ -106,7 +106,6 @@ typedef struct _IDocHostContainerVtbl
     void (WINAPI* GetDocObjRect)(DocHost*,RECT*);
     HRESULT (WINAPI* SetStatusText)(DocHost*,LPCWSTR);
     void (WINAPI* SetURL)(DocHost*,LPCWSTR);
-    HRESULT (*exec)(DocHost*,const GUID*,DWORD,DWORD,VARIANT*,VARIANT*);
 } IDocHostContainerVtbl;
 
 struct DocHost {
diff --git a/dlls/ieframe/iexplore.c b/dlls/ieframe/iexplore.c
index 08bb167..6260476 100644
--- a/dlls/ieframe/iexplore.c
+++ b/dlls/ieframe/iexplore.c
@@ -771,19 +771,12 @@ static void WINAPI DocHostContainer_SetURL(DocHost* iface, LPCWSTR url)
     SendMessageW(This->frame_hwnd, WM_UPDATEADDRBAR, 0, (LPARAM)url);
 }
 
-static HRESULT DocHostContainer_exec(DocHost* This, const GUID *cmd_group, DWORD cmdid, DWORD execopt, VARIANT *in,
-        VARIANT *out)
-{
-    return E_NOTIMPL;
-}
-
 static const IDocHostContainerVtbl DocHostContainerVtbl = {
     IEDocHost_addref,
     IEDocHost_release,
     DocHostContainer_GetDocObjRect,
     DocHostContainer_SetStatusText,
-    DocHostContainer_SetURL,
-    DocHostContainer_exec
+    DocHostContainer_SetURL
 };
 
 static HRESULT create_ie(InternetExplorer **ret_obj)
diff --git a/dlls/ieframe/webbrowser.c b/dlls/ieframe/webbrowser.c
index 8689c7e..5b4348b 100644
--- a/dlls/ieframe/webbrowser.c
+++ b/dlls/ieframe/webbrowser.c
@@ -1208,30 +1208,12 @@ static void WINAPI DocHostContainer_SetURL(DocHost* This, LPCWSTR url)
 {
 }
 
-static HRESULT DocHostContainer_exec(DocHost *doc_host, const GUID *cmd_group, DWORD cmdid, DWORD execopt, VARIANT *in,
-        VARIANT *out)
-{
-    HRESULT hres;
-
-    if(!doc_host->olecmd)
-        return E_NOTIMPL;
-
-    hres = IOleCommandTarget_Exec(doc_host->olecmd, cmd_group, cmdid, execopt, in, out);
-    if(SUCCEEDED(hres))
-        TRACE("Exec returned %08x %s\n", hres, debugstr_variant(out));
-    else
-        FIXME("Exec failed\n");
-
-    return hres;
-}
-
 static const IDocHostContainerVtbl DocHostContainerVtbl = {
     WebBrowser_addref,
     WebBrowser_release,
     DocHostContainer_GetDocObjRect,
     DocHostContainer_SetStatusText,
-    DocHostContainer_SetURL,
-    DocHostContainer_exec
+    DocHostContainer_SetURL
 };
 
 static HRESULT create_webbrowser(int version, IUnknown *outer, REFIID riid, void **ppv)




More information about the wine-cvs mailing list