/// <summary>
        ///     タスクダイアログを表示します。
        /// </summary>
        /// <param name="parentWindowHandle">親ウィンドウのハンドル。</param>
        public TaskDialogResult ShowDialog(IntPtr parentWindowHandle)
        {
            this.DialogShowStates = DialogShowStates.Showing;

            var config = CreateConfig(parentWindowHandle);

            int  selectedButtonId;
            int  selectedRadioButtonId;
            bool verificationChecked;

            TaskDialogNativeMethods.TaskDialogIndirect(
                config,
                out selectedButtonId,
                out selectedRadioButtonId,
                out verificationChecked);

            this.DialogShowStates = DialogShowStates.Closed;

            // Result
            TaskDialogButtonBase selectedButton = null;

            if (this.CustomButtons != null)
            {
                selectedButton = this.CustomButtons.FirstOrDefault(x => x.Id == selectedButtonId);
            }
            else if (this.CommandLinks != null)
            {
                selectedButton = this.CommandLinks.FirstOrDefault(x => x.Id == selectedButtonId);
            }

            TaskDialogRadioButton selectedRadioButton = null;

            if (this.RadioButtons != null)
            {
                selectedRadioButton = this.RadioButtons.FirstOrDefault(x => x.Id == selectedRadioButtonId);
            }

            return(TaskDialogResult.Create(selectedButton, selectedRadioButton, verificationChecked));
        }
 internal void SetButtonEnabled(TaskDialogButtonBase button, bool enabled)
 {
     this.TaskDialogInternal.SetButtonEnabled(button, enabled);
 }
 internal void SetButtonElevationRequiredState(TaskDialogButtonBase button, bool evelationRequired)
 {
     this.TaskDialogInternal.SetButtonElevationRequiredState(button, evelationRequired);
 }
        public static TaskDialogClosingEventArgs Create(TaskDialogButtonBase control)
        {
            Contract.Requires <ArgumentNullException>(control != null);

            return(new TaskDialogClosingEventArgs(TaskDialogSelectedButton.CustomButtonClicked, control.Id, control.Name));
        }
 internal static TaskDialogResult Create(TaskDialogButtonBase selectedButton, TaskDialogRadioButton selectedRadioButton,
                                         bool verificationChecked)
 {
     return(new TaskDialogResult(selectedButton, selectedRadioButton, verificationChecked));
 }
 public void SetButtonEnabled(TaskDialogButtonBase control, bool enabled)
 {
     this.Commands.EnableButtonCommand(control.Id, enabled);
 }
 public void SetButtonElevationRequiredState(TaskDialogButtonBase control, bool evelationRequired)
 {
     this.Commands.SetButtonElevationRequiredStateCommand(control, evelationRequired);
 }