public virtual int Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut) { // Wrap parameters into argument type instance var execArgs = new ExecArgs(pguidCmdGroup, nCmdID); execArgs.CommandExecOpt = nCmdexecopt; execArgs.PvaIn = pvaIn; execArgs.PvaOut = pvaOut; if (pguidCmdGroup == VSConstants.GUID_VSStandardCommandSet97) { // Process standard Visual Studio Commands switch (nCmdID) { case (uint)VSConstants.VSStd97CmdID.Copy: // ICommonCommandSupport _UIControl.DoCopy(); return(VSConstants.S_OK); case (uint)VSConstants.VSStd97CmdID.Cut: // ICommonCommandSupport _UIControl.DoCut(); return(VSConstants.S_OK); case (uint)VSConstants.VSStd97CmdID.Paste: // ICommonCommandSupport _UIControl.DoPaste(); return(VSConstants.S_OK); case (uint)VSConstants.VSStd97CmdID.Redo: // ICommonCommandSupport _UIControl.DoRedo(); return(VSConstants.S_OK); case (uint)VSConstants.VSStd97CmdID.Undo: // ICommonCommandSupport _UIControl.DoUndo(); return(VSConstants.S_OK); case (uint)VSConstants.VSStd97CmdID.SelectAll: // ICommonCommandSupport _UIControl.DoSelectAll(); return(VSConstants.S_OK); default: return(ExecuteVSStd97Command(execArgs) ? VSConstants.S_OK : (int)Microsoft.VisualStudio.OLE.Interop.Constants.OLECMDERR_E_NOTSUPPORTED); } } // Execute commands owned by the editor if (pguidCmdGroup == commandSetGuid) { return(ExecuteOwnedCommand(execArgs) ? VSConstants.S_OK : (int)Microsoft.VisualStudio.OLE.Interop.Constants.OLECMDERR_E_NOTSUPPORTED); } // Execute any other command return(ExecuteCommand(execArgs) ? VSConstants.S_OK : (int)Microsoft.VisualStudio.OLE.Interop.Constants.OLECMDERR_E_NOTSUPPORTED); }
protected virtual bool ExecuteVSStd97Command([CanBeNull] ExecArgs execArgs) { return(false); }
protected virtual bool ExecuteOwnedCommand([NotNull] ExecArgs execArgs) { return(false); }