//======================================================================================= // // This source code is only intended as a supplement to existing Microsoft documentation. // // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR // PURPOSE. // // Copyright (C) Microsoft Corporation. All Rights Reserved. // //======================================================================================= // // Purpose: // Shows a ‘connect to’ modal dialog. // //======================================================================================= // // Description: // Uses the snapin Console.ShowDialog to show a simple dialog during a ‘Connect To’ // custom action. // //======================================================================================= using System; using System.Configuration.Install; using System.ComponentModel; using System.Windows.Forms; using System.Security.Permissions; using Microsoft.ManagementConsole; using Microsoft.ManagementConsole.Advanced; [assembly: PermissionSetAttribute(SecurityAction.RequestMinimum, Unrestricted = true)] namespace Microsoft.ManagementConsole.Samples { /// /// RunInstaller attribute - Allows the .Net framework InstallUtil.exe to install the assembly. /// SnapInInstaller class - Installs snap-in for MMC. /// [RunInstaller(true)] public class InstallUtilSupport : SnapInInstaller { } /// /// SnapInSettings attribute - Used to set the registration information for the snap-in. /// SnapIn class - Provides the main entry point for the creation of a snap-in. /// ShowDialogSnapIn - Shows a root node that shows a modal dialog during a SyncAction. /// [SnapInSettings("{8FF0C6A1-5162-4010-816F-A0628904CE81}", DisplayName = "- Modal Dialog Sample", Description = "Shows modal dialog during SyncAction")] public class ModalDialogSnapIn : SnapIn { /// /// Constructor /// public ModalDialogSnapIn() { // update scope pane with a node in the tree this.RootNode = new ShowDialogNode(); this.RootNode.DisplayName = "Modal Dialog Sample - Connect To Action..."; } } /// /// ScopeNode class - Basic icon and name item for the Scope Pane /// Node that shows a modal dialog on actions /// public class ShowDialogNode : ScopeNode { /// /// Constructor /// public ShowDialogNode() { ActionsPaneItems.Add(new SyncAction("Connect To...", "Connect to a different computer.", 0, "ConnectTo")); ActionsPaneItems.Add(new ActionSeparator()); ActionsPaneItems.Add(new SyncAction("Show Common Dialog", "Shows a common dialog (Color Picker).", 0, "CommonDialog")); ActionsPaneItems.Add(new SyncAction("Show MessageBox", "Shows a message box.", 0, "MessageBox")); ActionsPaneItems.Add(new SyncAction("Show User Defined Form", "Shows a user defined form.", 0, "UserDefinedForm")); ActionsPaneItems.Add(new SyncAction("Show UDF with Wait Cursor", "Shows a user defined form if waiting for more than 5 seconds.", 0, "UserDefinedFormWithWaitCursor")); } /// /// Handle triggered action /// /// triggered action /// synchronous status to update console protected override void OnSyncAction(SyncAction action, SyncStatus status) { switch ((string)action.Tag) { case "ConnectTo": { ConnectDialog connectDialog = new ConnectDialog(); connectDialog.ConnectToServerName.Text = String.Empty; if (this.SnapIn.Console.ShowDialog(connectDialog) == DialogResult.OK) { this.DisplayName = "Connected (" + connectDialog.ConnectToServerName.Text + ")"; } break; } case "CommonDialog": { ColorDialog colorDialog = new ColorDialog(); colorDialog.AllowFullOpen = false; if (this.SnapIn.Console.ShowDialog(colorDialog) == DialogResult.OK) { this.DisplayName = "CommonDialog - Selected a Color"; } break; } case "MessageBox": { MessageBoxParameters messageBoxParameters = new MessageBoxParameters(); messageBoxParameters.Caption = "Sample MessageBox..."; messageBoxParameters.Buttons = MessageBoxButtons.OKCancel; messageBoxParameters.Text = "Select Ok or Cancel"; if (this.SnapIn.Console.ShowDialog(messageBoxParameters) == DialogResult.OK) { this.DisplayName = "MessageBox - Selected Ok"; } break; } case "UserDefinedForm": { UserDefinedForm userDefinedForm = new UserDefinedForm(); if (this.SnapIn.Console.ShowDialog(userDefinedForm) == DialogResult.OK) { this.DisplayName = "User Defined Form - Ok"; } break; } case "UserDefinedFormWithWaitCursor": { WaitCursor waitCursor = new WaitCursor(); waitCursor.Timeout = new System.TimeSpan(0,0,5); UserDefinedFormForWaiting userDefinedFormForWaiting = new UserDefinedFormForWaiting(); if (this.SnapIn.Console.ShowDialog(userDefinedFormForWaiting, waitCursor) == DialogResult.OK) { this.DisplayName = "User Defined Form with Wait Cursor - Ok"; } break; } } } } } // namespace