public void SetMarqueeProgressBar(bool marquee) { if (CurrentProgressBarType == TaskDialogProgressBarType.None) { throw new InvalidOperationException(Resource.InvalidProgressBarModification); } SendMessage(Handle, TASKDIALOG_MESSAGE.TDM_SET_MARQUEE_PROGRESS_BAR, (IntPtr)(marquee ? 1 : 0), IntPtr.Zero); CurrentProgressBarType = marquee ? TaskDialogProgressBarType.Marquee : TaskDialogProgressBarType.Default; }
public void Navigate(TaskDialogPage taskDialogPage) { taskDialogPage.nativeTaskDialog.pfCallback = TaskDialog.CurrentPage.nativeTaskDialog.pfCallback; taskDialogPage.nativeTaskDialog.lpCallbackData = TaskDialog.CurrentPage.nativeTaskDialog.lpCallbackData; TaskDialog.PreviousPage = TaskDialog.CurrentPage; TaskDialog.CurrentPage = taskDialogPage; TaskDialog.CurrentPage.PrepareShow(this); CurrentProgressBarType = taskDialogPage.ProgressBar; SendMessage(Handle, TASKDIALOG_MESSAGE.TDM_NAVIGATE_PAGE, IntPtr.Zero, ref taskDialogPage.nativeTaskDialog); TaskDialog.PreviousPage.activeTaskDialog = null; }
private TaskDialogResult Show(IntPtr hWnd, out int button, out int radioButton, out bool verificationFlagChecked) { if (OsVersionInfo.dwMajorVersion < 6 /* OSがVista以上であること */) { throw new InvalidOperationException(Resource.OSVersionError); } if (DllVersionInfo.dwMajorVersion < 6) { throw new InvalidOperationException(Resource.ComCtl32VersionError); } OwnerHandle = hWnd; button = 0; radioButton = 0; verificationFlagChecked = false; var callback = new TaskDialogCallbackProc(TaskDialogCallback); var callbackHandle = GCHandle.Alloc(callback); try { TaskDialog.CurrentPage.nativeTaskDialog.pfCallback = callback; TaskDialog.CurrentPage.PrepareShow(this); CurrentProgressBarType = TaskDialog.CurrentPage.ProgressBar; int hResult = TaskDialogIndirect(ref TaskDialog.CurrentPage.nativeTaskDialog, out button, out radioButton, out verificationFlagChecked); if (hResult < 0) { Marshal.ThrowExceptionForHR(hResult); } if (internalExceptions != null) { throw new AggregateException(internalExceptions).Flatten(); } } finally { if (TaskDialog.PreviousPage != null) { TaskDialog.PreviousPage.activeTaskDialog = null; } TaskDialog.CurrentPage.activeTaskDialog = null; TaskDialog.CurrentPage.nativeTaskDialog.pfCallback = null; if (callbackHandle.IsAllocated) { callbackHandle.Free(); } } switch ((TASKDIALOG_COMMAND_ID)button) { case TASKDIALOG_COMMAND_ID.IDOK: return(TaskDialogResult.Ok); case TASKDIALOG_COMMAND_ID.IDYES: return(TaskDialogResult.Yes); case TASKDIALOG_COMMAND_ID.IDNO: return(TaskDialogResult.No); case TASKDIALOG_COMMAND_ID.IDCANCEL: return(TaskDialogResult.Cancel); case TASKDIALOG_COMMAND_ID.IDRETRY: return(TaskDialogResult.Retry); case TASKDIALOG_COMMAND_ID.IDCLOSE: return(TaskDialogResult.Close); default: return(TaskDialogResult.UserButtun); } }