/// <summary>
        /// This is overridden to handle command execution for the node
        /// </summary>
        /// <param name="cmdGroup">Unique identifier of the command group</param>
        /// <param name="cmd">The command to be executed.</param>
        /// <param name="nCmdexecopt">Values describe how the object should
        /// execute the command.</param>
        /// <param name="pvaIn">Pointer to a <c>VARIANTARG</c> structure
        /// containing input arguments. Can be NULL</param>
        /// <param name="pvaOut"><c>VARIANTARG</c> structure to receive command
        /// output.  It can be null.</param>
        /// <returns>If the method succeeds, it returns <c>S_OK</c>. If it
        /// fails, it returns an error code.</returns>
        protected override int ExecCommandOnNode(Guid cmdGroup, uint cmd, uint nCmdexecopt, IntPtr pvaIn,
                                                 IntPtr pvaOut)
        {
            Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread();

            // Handle adding package references ourselves as Visual Studio doesn't currently support them in
            // third-party project systems.
            if (cmdGroup == GuidList.guidNuGetPackageManagerCmdSet && cmd == PkgCmdIDList.ManageNuGetPackages)
            {
                var dlg = new NuGetPackageManagerDlg(this.ProjectMgr.BuildProject);
                dlg.ShowModalDialog();
                return(VSConstants.S_OK);
            }

            // Open the Project Properties window when double-clicked or Properties is selected
            if ((cmdGroup == VsMenus.guidStandardCommandSet97 && (VsCommands)cmd == VsCommands.PropSheetOrProperties) ||
                (cmdGroup == VsMenus.guidVSUISet && (WindowCommandIds)cmd == WindowCommandIds.UIHWCMDID_DoubleClick))
            {
                IntPtr ip = (IntPtr)(-1);

                ((IVsProject2)this.ProjectMgr).ReopenItem(VSConstants.VSITEMID_ROOT,
                                                          VSConstants.GUID_ProjectDesignerEditor, null, Guid.Empty, ip, out _);

                return(VSConstants.S_OK);
            }

            return(base.ExecCommandOnNode(cmdGroup, cmd, nCmdexecopt, pvaIn, pvaOut));
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        protected override int ExecCommandOnNode(Guid cmdGroup, uint cmd, uint nCmdexecopt, IntPtr pvaIn,
                                                 IntPtr pvaOut)
        {
#pragma warning disable VSTHRD010
            if (cmdGroup == GuidList.guidSandcastleBuilderPackageCmdSet)
            {
                switch (cmd)
                {
                case PkgCmdIDList.OpenInStandaloneGUI:
                    this.OpenInStandaloneGui();
                    return(VSConstants.S_OK);

                case PkgCmdIDList.ViewBuildLog:
                    this.OpenBuildLogToolWindow(true);
                    return(VSConstants.S_OK);

                default:
                    break;
                }
            }

            // Handle adding package references ourselves as Visual Studio doesn't currently support them in
            // third-party project systems.
            if (cmdGroup == GuidList.guidNuGetPackageManagerCmdSet && cmd == PkgCmdIDList.ManageNuGetPackages)
            {
                var dlg = new NuGetPackageManagerDlg(this.BuildProject);
                dlg.ShowModalDialog();
                return(VSConstants.S_OK);
            }
#pragma warning restore VSTHRD010

            return(base.ExecCommandOnNode(cmdGroup, cmd, nCmdexecopt, pvaIn, pvaOut));
        }
Ejemplo n.º 3
0
        /// <inheritdoc />
        protected override int ExecCommandOnNode(Guid cmdGroup, uint cmd, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
        {
            // Handle adding package references ourselves as Visual Studio doesn't currently support them in
            // third-party project systems.
            if (cmdGroup == GuidList.guidNuGetPackageManagerCmdSet && cmd == PkgCmdIDList.ManageNuGetPackages)
            {
                var dlg = new NuGetPackageManagerDlg(this.ProjectMgr.BuildProject);
                dlg.ShowModalDialog();
                return(VSConstants.S_OK);
            }

            return(base.ExecCommandOnNode(cmdGroup, cmd, nCmdexecopt, pvaIn, pvaOut));
        }