Exemplo n.º 1
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);
            }
        }