/// <inheritdoc/> int IOleCommandTarget.QueryStatus(ref Guid guidCmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText) { ThreadHelper.ThrowIfNotOnUIThread(); Guid cmdGroup = guidCmdGroup; for (uint i = 0; i < cCmds; i++) { OLECMDF status = QueryCommandStatus(ref cmdGroup, prgCmds[i].cmdID); if (status == default(OLECMDF) && _next != null) { if (_next != null) { return(_next.QueryStatus(ref cmdGroup, cCmds, prgCmds, pCmdText)); } else { return((int)OleConstants.OLECMDERR_E_NOTSUPPORTED); } } prgCmds[i].cmdf = (uint)status; } return(VSConstants.S_OK); }
/// <inheritdoc/> int IOleCommandTarget.QueryStatus(ref Guid guidCmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText) { using (OleCommandText oleCommandText = OleCommandText.FromQueryStatus(pCmdText)) { Guid cmdGroup = guidCmdGroup; for (uint i = 0; i < cCmds; i++) { OLECMDF status = QueryCommandStatus(ref cmdGroup, prgCmds[i].cmdID, oleCommandText); if (status == default(OLECMDF) && _next != null) { int hr = _next.QueryStatus(ref cmdGroup, cCmds, prgCmds, pCmdText); if (ErrorHandler.Failed(hr)) { return(hr); } } else { prgCmds[i].cmdf = (uint)status; } } return(VSConstants.S_OK); } }