diff options
Diffstat (limited to 'src/ext/Bal/wixstdba/WixStandardBootstrapperApplication.cpp')
| -rw-r--r-- | src/ext/Bal/wixstdba/WixStandardBootstrapperApplication.cpp | 210 |
1 files changed, 152 insertions, 58 deletions
diff --git a/src/ext/Bal/wixstdba/WixStandardBootstrapperApplication.cpp b/src/ext/Bal/wixstdba/WixStandardBootstrapperApplication.cpp index 8cdd31ce..2283880c 100644 --- a/src/ext/Bal/wixstdba/WixStandardBootstrapperApplication.cpp +++ b/src/ext/Bal/wixstdba/WixStandardBootstrapperApplication.cpp | |||
| @@ -2878,65 +2878,11 @@ private: | |||
| 2878 | pBA->OnShowFailure(); | 2878 | pBA->OnShowFailure(); |
| 2879 | return 0; | 2879 | return 0; |
| 2880 | 2880 | ||
| 2881 | case WM_COMMAND: | 2881 | case WM_THMUTIL_CONTROL_WM_COMMAND: |
| 2882 | switch (HIWORD(wParam)) | 2882 | return pBA->OnThemeControlWmCommand(reinterpret_cast<THEME_CONTROLWMCOMMAND_ARGS*>(wParam), reinterpret_cast<THEME_CONTROLWMCOMMAND_RESULTS*>(lParam)); |
| 2883 | { | ||
| 2884 | case BN_CLICKED: | ||
| 2885 | switch (LOWORD(wParam)) | ||
| 2886 | { | ||
| 2887 | case WIXSTDBA_CONTROL_EULA_ACCEPT_CHECKBOX: | ||
| 2888 | pBA->OnClickAcceptCheckbox(); | ||
| 2889 | return 0; | ||
| 2890 | |||
| 2891 | case WIXSTDBA_CONTROL_INSTALL_BUTTON: | ||
| 2892 | pBA->OnClickInstallButton(); | ||
| 2893 | return 0; | ||
| 2894 | |||
| 2895 | case WIXSTDBA_CONTROL_REPAIR_BUTTON: | ||
| 2896 | pBA->OnClickRepairButton(); | ||
| 2897 | return 0; | ||
| 2898 | |||
| 2899 | case WIXSTDBA_CONTROL_UNINSTALL_BUTTON: | ||
| 2900 | pBA->OnClickUninstallButton(); | ||
| 2901 | return 0; | ||
| 2902 | |||
| 2903 | case WIXSTDBA_CONTROL_LAUNCH_BUTTON: | ||
| 2904 | pBA->OnClickLaunchButton(); | ||
| 2905 | return 0; | ||
| 2906 | |||
| 2907 | case WIXSTDBA_CONTROL_SUCCESS_RESTART_BUTTON: __fallthrough; | ||
| 2908 | case WIXSTDBA_CONTROL_FAILURE_RESTART_BUTTON: | ||
| 2909 | pBA->OnClickRestartButton(); | ||
| 2910 | return 0; | ||
| 2911 | |||
| 2912 | case WIXSTDBA_CONTROL_PROGRESS_CANCEL_BUTTON: | ||
| 2913 | pBA->OnClickCloseButton(); | ||
| 2914 | return 0; | ||
| 2915 | } | ||
| 2916 | break; | ||
| 2917 | } | ||
| 2918 | break; | ||
| 2919 | 2883 | ||
| 2920 | case WM_NOTIFY: | 2884 | case WM_THMUTIL_CONTROL_WM_NOTIFY: |
| 2921 | if (lParam) | 2885 | return pBA->OnThemeControlWmNotify(reinterpret_cast<THEME_CONTROLWMNOTIFY_ARGS*>(wParam), reinterpret_cast<THEME_CONTROLWMNOTIFY_RESULTS*>(lParam)); |
| 2922 | { | ||
| 2923 | LPNMHDR pnmhdr = reinterpret_cast<LPNMHDR>(lParam); | ||
| 2924 | switch (pnmhdr->code) | ||
| 2925 | { | ||
| 2926 | case NM_CLICK: __fallthrough; | ||
| 2927 | case NM_RETURN: | ||
| 2928 | switch (static_cast<DWORD>(pnmhdr->idFrom)) | ||
| 2929 | { | ||
| 2930 | case WIXSTDBA_CONTROL_EULA_LINK: | ||
| 2931 | pBA->OnClickEulaLink(); | ||
| 2932 | return 1; | ||
| 2933 | case WIXSTDBA_CONTROL_FAILURE_LOGFILE_LINK: | ||
| 2934 | pBA->OnClickLogFileLink(); | ||
| 2935 | return 1; | ||
| 2936 | } | ||
| 2937 | } | ||
| 2938 | } | ||
| 2939 | break; | ||
| 2940 | } | 2886 | } |
| 2941 | 2887 | ||
| 2942 | if (pBA && pBA->m_pTaskbarList && uMsg == pBA->m_uTaskbarButtonCreatedMessage) | 2888 | if (pBA && pBA->m_pTaskbarList && uMsg == pBA->m_uTaskbarButtonCreatedMessage) |
| @@ -3666,6 +3612,154 @@ private: | |||
| 3666 | ReleaseStr(sczLogFile); | 3612 | ReleaseStr(sczLogFile); |
| 3667 | } | 3613 | } |
| 3668 | 3614 | ||
| 3615 | BOOL OnThemeControlWmCommand( | ||
| 3616 | __in const THEME_CONTROLWMCOMMAND_ARGS* pArgs, | ||
| 3617 | __in THEME_CONTROLWMCOMMAND_RESULTS* pResults | ||
| 3618 | ) | ||
| 3619 | { | ||
| 3620 | HRESULT hr = S_OK; | ||
| 3621 | BOOL fProcessed = FALSE; | ||
| 3622 | BA_FUNCTIONS_ONTHEMECONTROLWMCOMMAND_ARGS themeControlWmCommandArgs = { }; | ||
| 3623 | BA_FUNCTIONS_ONTHEMECONTROLWMCOMMAND_RESULTS themeControlWmCommandResults = { }; | ||
| 3624 | |||
| 3625 | switch (HIWORD(pArgs->wParam)) | ||
| 3626 | { | ||
| 3627 | case BN_CLICKED: | ||
| 3628 | switch (pArgs->pThemeControl->wId) | ||
| 3629 | { | ||
| 3630 | case WIXSTDBA_CONTROL_EULA_ACCEPT_CHECKBOX: | ||
| 3631 | OnClickAcceptCheckbox(); | ||
| 3632 | fProcessed = TRUE; | ||
| 3633 | pResults->lResult = 0; | ||
| 3634 | ExitFunction(); | ||
| 3635 | |||
| 3636 | case WIXSTDBA_CONTROL_INSTALL_BUTTON: | ||
| 3637 | OnClickInstallButton(); | ||
| 3638 | fProcessed = TRUE; | ||
| 3639 | pResults->lResult = 0; | ||
| 3640 | ExitFunction(); | ||
| 3641 | |||
| 3642 | case WIXSTDBA_CONTROL_REPAIR_BUTTON: | ||
| 3643 | OnClickRepairButton(); | ||
| 3644 | fProcessed = TRUE; | ||
| 3645 | pResults->lResult = 0; | ||
| 3646 | ExitFunction(); | ||
| 3647 | |||
| 3648 | case WIXSTDBA_CONTROL_UNINSTALL_BUTTON: | ||
| 3649 | OnClickUninstallButton(); | ||
| 3650 | fProcessed = TRUE; | ||
| 3651 | pResults->lResult = 0; | ||
| 3652 | ExitFunction(); | ||
| 3653 | |||
| 3654 | case WIXSTDBA_CONTROL_LAUNCH_BUTTON: | ||
| 3655 | OnClickLaunchButton(); | ||
| 3656 | fProcessed = TRUE; | ||
| 3657 | pResults->lResult = 0; | ||
| 3658 | ExitFunction(); | ||
| 3659 | |||
| 3660 | case WIXSTDBA_CONTROL_SUCCESS_RESTART_BUTTON: __fallthrough; | ||
| 3661 | case WIXSTDBA_CONTROL_FAILURE_RESTART_BUTTON: | ||
| 3662 | OnClickRestartButton(); | ||
| 3663 | fProcessed = TRUE; | ||
| 3664 | pResults->lResult = 0; | ||
| 3665 | ExitFunction(); | ||
| 3666 | |||
| 3667 | case WIXSTDBA_CONTROL_PROGRESS_CANCEL_BUTTON: | ||
| 3668 | OnClickCloseButton(); | ||
| 3669 | fProcessed = TRUE; | ||
| 3670 | pResults->lResult = 0; | ||
| 3671 | ExitFunction(); | ||
| 3672 | } | ||
| 3673 | break; | ||
| 3674 | } | ||
| 3675 | |||
| 3676 | if (m_pfnBAFunctionsProc) | ||
| 3677 | { | ||
| 3678 | themeControlWmCommandArgs.cbSize = sizeof(themeControlWmCommandArgs); | ||
| 3679 | themeControlWmCommandArgs.wParam = pArgs->wParam; | ||
| 3680 | themeControlWmCommandArgs.wzName = pArgs->pThemeControl->sczName; | ||
| 3681 | themeControlWmCommandArgs.wId = pArgs->pThemeControl->wId; | ||
| 3682 | themeControlWmCommandArgs.hWnd = pArgs->pThemeControl->hWnd; | ||
| 3683 | |||
| 3684 | themeControlWmCommandResults.cbSize = sizeof(themeControlWmCommandResults); | ||
| 3685 | themeControlWmCommandResults.lResult = pResults->lResult; | ||
| 3686 | |||
| 3687 | hr = m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONTHEMECONTROLWMCOMMAND, &themeControlWmCommandArgs, &themeControlWmCommandResults, m_pvBAFunctionsProcContext); | ||
| 3688 | if (E_NOTIMPL != hr) | ||
| 3689 | { | ||
| 3690 | BalExitOnFailure(hr, "BAFunctions OnThemeControlWmCommand failed."); | ||
| 3691 | |||
| 3692 | if (themeControlWmCommandResults.fProcessed) | ||
| 3693 | { | ||
| 3694 | fProcessed = TRUE; | ||
| 3695 | pResults->lResult = themeControlWmCommandResults.lResult; | ||
| 3696 | ExitFunction(); | ||
| 3697 | } | ||
| 3698 | } | ||
| 3699 | } | ||
| 3700 | |||
| 3701 | LExit: | ||
| 3702 | return fProcessed; | ||
| 3703 | } | ||
| 3704 | |||
| 3705 | BOOL OnThemeControlWmNotify( | ||
| 3706 | __in const THEME_CONTROLWMNOTIFY_ARGS* pArgs, | ||
| 3707 | __in THEME_CONTROLWMNOTIFY_RESULTS* pResults | ||
| 3708 | ) | ||
| 3709 | { | ||
| 3710 | HRESULT hr = S_OK; | ||
| 3711 | BOOL fProcessed = FALSE; | ||
| 3712 | BA_FUNCTIONS_ONTHEMECONTROLWMNOTIFY_ARGS themeControlWmNotifyArgs = { }; | ||
| 3713 | BA_FUNCTIONS_ONTHEMECONTROLWMNOTIFY_RESULTS themeControlWmNotifyResults = { }; | ||
| 3714 | |||
| 3715 | switch (pArgs->lParam->code) | ||
| 3716 | { | ||
| 3717 | case NM_CLICK: __fallthrough; | ||
| 3718 | case NM_RETURN: | ||
| 3719 | switch (pArgs->pThemeControl->wId) | ||
| 3720 | { | ||
| 3721 | case WIXSTDBA_CONTROL_EULA_LINK: | ||
| 3722 | OnClickEulaLink(); | ||
| 3723 | fProcessed = TRUE; | ||
| 3724 | pResults->lResult = 1; | ||
| 3725 | ExitFunction(); | ||
| 3726 | case WIXSTDBA_CONTROL_FAILURE_LOGFILE_LINK: | ||
| 3727 | OnClickLogFileLink(); | ||
| 3728 | fProcessed = TRUE; | ||
| 3729 | pResults->lResult = 1; | ||
| 3730 | ExitFunction(); | ||
| 3731 | } | ||
| 3732 | } | ||
| 3733 | |||
| 3734 | if (m_pfnBAFunctionsProc) | ||
| 3735 | { | ||
| 3736 | themeControlWmNotifyArgs.cbSize = sizeof(themeControlWmNotifyArgs); | ||
| 3737 | themeControlWmNotifyArgs.lParam = pArgs->lParam; | ||
| 3738 | themeControlWmNotifyArgs.wzName = pArgs->pThemeControl->sczName; | ||
| 3739 | themeControlWmNotifyArgs.wId = pArgs->pThemeControl->wId; | ||
| 3740 | themeControlWmNotifyArgs.hWnd = pArgs->pThemeControl->hWnd; | ||
| 3741 | |||
| 3742 | themeControlWmNotifyResults.cbSize = sizeof(themeControlWmNotifyResults); | ||
| 3743 | themeControlWmNotifyResults.lResult = pResults->lResult; | ||
| 3744 | |||
| 3745 | hr = m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONTHEMECONTROLWMCOMMAND, &themeControlWmNotifyArgs, &themeControlWmNotifyResults, m_pvBAFunctionsProcContext); | ||
| 3746 | if (E_NOTIMPL != hr) | ||
| 3747 | { | ||
| 3748 | BalExitOnFailure(hr, "BAFunctions OnThemeControlWmNotify failed."); | ||
| 3749 | |||
| 3750 | if (themeControlWmNotifyResults.fProcessed) | ||
| 3751 | { | ||
| 3752 | fProcessed = TRUE; | ||
| 3753 | pResults->lResult = themeControlWmNotifyResults.lResult; | ||
| 3754 | ExitFunction(); | ||
| 3755 | } | ||
| 3756 | } | ||
| 3757 | } | ||
| 3758 | |||
| 3759 | LExit: | ||
| 3760 | return fProcessed; | ||
| 3761 | } | ||
| 3762 | |||
| 3669 | 3763 | ||
| 3670 | // | 3764 | // |
| 3671 | // SetState | 3765 | // SetState |
