- Clear bits in structure passed to IOleCommandTarget_QueryStatus to
authorRobert Shearman <R.J.Shearman@warwick.ac.uk>
Tue, 21 Jan 2003 19:28:36 +0000 (19:28 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 21 Jan 2003 19:28:36 +0000 (19:28 +0000)
  show that we don't support any Exec's.
- Add two Exec cases that were found during testing.

dlls/shell32/shlview.c

index 810a1b745330e4d383560e3d2b08d96423df75a9..0a6de599a5558c4186153035be51551581ffb007 100644 (file)
@@ -1932,11 +1932,20 @@ static HRESULT WINAPI ISVOleCmdTarget_QueryStatus(
        OLECMD * prgCmds,
        OLECMDTEXT* pCmdText)
 {
-       _ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
+    int i;
+    _ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
 
-       FIXME("(%p)->(%p(%s) 0x%08lx %p %p\n",
+    FIXME("(%p)->(%p(%s) 0x%08lx %p %p\n",
               This, pguidCmdGroup, debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText);
-       return E_NOTIMPL;
+
+    if (!prgCmds)
+        return E_POINTER;
+    for (i = 0; i < cCmds; i++)
+    {
+        FIXME("\tprgCmds[%d].cmdID = %ld\n", i, prgCmds[i].cmdID);
+        prgCmds[i].cmdf = 0;
+    }
+    return OLECMDERR_E_UNKNOWNGROUP;
 }
 
 /**********************************************************
@@ -1956,7 +1965,17 @@ static HRESULT WINAPI ISVOleCmdTarget_Exec(
 
        FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08lx Opt:0x%08lx %p %p)\n",
               This, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
-       return E_NOTIMPL;
+
+       if (IsEqualIID(pguidCmdGroup, &CGID_Explorer) &&
+          (nCmdID == 0x29) &&
+          (nCmdexecopt == 4) && pvaOut)
+          return S_OK;
+       if (IsEqualIID(pguidCmdGroup, &CGID_ShellDocView) &&
+          (nCmdID == 9) &&
+          (nCmdexecopt == 0))
+          return 1;
+
+       return OLECMDERR_E_UNKNOWNGROUP;
 }
 
 static ICOM_VTABLE(IOleCommandTarget) ctvt =