public int QueryStatus(ref Guid pguidCmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText) { var commandId = new CommandID(pguidCmdGroup, (int)prgCmds[0].cmdID); bool isSupported = false; try { isSupported = _commandTarget.HandlesCommand(commandId); } catch (Exception e) { Logger.LogException(e, "Error in {0}.HandlesCommand.", _commandTarget.GetType().FullName); } if (!isSupported) { return(NextCommandTarget.QueryStatus(ref pguidCmdGroup, cCmds, prgCmds, pCmdText)); } bool isEnabled = _commandTarget.IsEnabled(commandId); prgCmds[0].cmdf = (uint)(OLECMDF.OLECMDF_SUPPORTED); if (isEnabled) { prgCmds[0].cmdf |= (uint)(OLECMDF.OLECMDF_ENABLED); } return(VSConstants.S_OK); }