Exemple #1
0
 public CallBackArgs(IntPtr hwnd, TASKDIALOG_NOTIFICATIONS uNotification, IntPtr wParam, IntPtr lParam, IntPtr dwRefData)
 {
     _hwnd          = hwnd;
     _uNotification = uNotification;
     _wParam        = wParam;
     _lParam        = lParam;
     _dwRefData     = dwRefData;
 }
Exemple #2
0
        public int DefaultCallBackHandler(IntPtr hwnd, TASKDIALOG_NOTIFICATIONS uNotification, IntPtr wParam, IntPtr lParam, IntPtr dwRefData)
        {
            CallBackArgs args = new CallBackArgs(hwnd, uNotification, wParam, lParam, dwRefData);

            if (OnCallBack != null)
            {
                OnCallBack(this, args);

                if (args.SkipDefaultHandler)
                {
                    return(args.ReturnValue);
                }
            }


            switch (uNotification)
            {
            case TASKDIALOG_NOTIFICATIONS.TDN_BUTTON_CLICKED:
                if (OnButtonClicked != null)
                {
                    ButtonClickedArgs barg = new ButtonClickedArgs(args.UserData, (int)wParam);
                    OnButtonClicked(this, barg);
                    return(barg.PreventClosing ? 1 : 0);
                }
                else
                {
                    return(0);
                }

            case TASKDIALOG_NOTIFICATIONS.TDN_CREATED:
                UpdateControlsOnCreate();
                if (OnCreate != null)
                {
                    OnCreate(this, args.UserData);
                }
                return(0);

            case TASKDIALOG_NOTIFICATIONS.TDN_DESTROYED:
                this.hWnd = IntPtr.Zero;
                if (OnDestroy != null)
                {
                    OnDestroy(this, args.UserData);
                }
                return(0);

            case TASKDIALOG_NOTIFICATIONS.TDN_DIALOG_CONSTRUCTED:
                this.hWnd = hwnd;
                if (OnConstructed != null)
                {
                    OnConstructed(this, args.UserData);
                }
                return(0);

            case TASKDIALOG_NOTIFICATIONS.TDN_EXPANDO_BUTTON_CLICKED:
                if (OnExpandButtonClicked != null)
                {
                    OnExpandButtonClicked(this, args.UserData, wParam != IntPtr.Zero);
                }
                return(0);

            case TASKDIALOG_NOTIFICATIONS.TDN_HYPERLINK_CLICKED:
                if (OnHyperLinkClicked != null)
                {
                    OnHyperLinkClicked(this, args.UserData, Marshal.PtrToStringUni(lParam));
                }
                return(0);

            case TASKDIALOG_NOTIFICATIONS.TDN_NAVIGATED:
                if (OnNavigated != null)
                {
                    OnNavigated(this, args.UserData);
                }
                return(0);

            case TASKDIALOG_NOTIFICATIONS.TDN_RADIO_BUTTON_CLICKED:
                SelectedRadioButton = (int)wParam;
                if (OnRadioButtonSelected != null)
                {
                    OnRadioButtonSelected(this, args.UserData, SelectedRadioButton);
                }
                return(0);

            case TASKDIALOG_NOTIFICATIONS.TDN_TIMER:
                if (OnTimerTick != null)
                {
                    TimerTickArgs tArg = new TimerTickArgs(args.UserData, (int)wParam);
                    OnTimerTick(this, tArg);
                    return(tArg.Reset ? 1 : 0);
                }
                else
                {
                    return(0);
                }

            case TASKDIALOG_NOTIFICATIONS.TDN_VERIFICATION_CLICKED:
                if (OnCheckBoxClicked != null)
                {
                    OnCheckBoxClicked(this, args.UserData, wParam != IntPtr.Zero);
                }
                return(0);

            default:
                return(0);
            }
        }