private DialogResult ShowDialog(WaitCursor waitCursor, ShowDialogCallback callback) { DialogResult result; IWin32Window owner = null; if (this._platform == null) { throw new InvalidOperationException(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.ExceptionInternalConsoleDialogHostOwnerNotInitialized)); } try { BeginModalLoopConsoleDialogCommand command = new BeginModalLoopConsoleDialogCommand(); command.OwnerId = this._ownerId; BeginModalLoopConsoleDialogCommandResult result2 = (BeginModalLoopConsoleDialogCommandResult) this._platform.ProcessCommand(command); owner = result2.Window; if ((waitCursor != null) && waitCursor.Run()) { return waitCursor.DialogResult; } result = callback(owner); } finally { EndModalLoopConsoleDialogCommand command2 = new EndModalLoopConsoleDialogCommand(); command2.OwnerId = this._ownerId; this._platform.ProcessCommand(command2); } return result; }