Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
            }
        }