diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-03-18 20:15:33 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-03-19 12:07:32 -0500 |
| commit | fb54576f1d05e82ba47cd718c4c4f8b3bad624c9 (patch) | |
| tree | b7d6b30bd3c9294b74874c1a48b20a8da8869a69 /src/api/burn/balutil | |
| parent | 581c320e04949300d6c3bee71fb5fc1a557f9263 (diff) | |
| download | wix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.tar.gz wix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.tar.bz2 wix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.zip | |
Give BA process id and option to wait for cancelled process to exit.
Diffstat (limited to 'src/api/burn/balutil')
6 files changed, 43 insertions, 0 deletions
diff --git a/src/api/burn/balutil/inc/BAFunctions.h b/src/api/burn/balutil/inc/BAFunctions.h index 58c26166..158e65b5 100644 --- a/src/api/burn/balutil/inc/BAFunctions.h +++ b/src/api/burn/balutil/inc/BAFunctions.h | |||
| @@ -91,6 +91,7 @@ enum BA_FUNCTIONS_MESSAGE | |||
| 91 | BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRESTORERELATEDBUNDLE, | 91 | BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRESTORERELATEDBUNDLE, |
| 92 | BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE, | 92 | BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLETYPE, |
| 93 | BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, | 93 | BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE, |
| 94 | BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL = BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL, | ||
| 94 | 95 | ||
| 95 | BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, | 96 | BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, |
| 96 | BA_FUNCTIONS_MESSAGE_WNDPROC, | 97 | BA_FUNCTIONS_MESSAGE_WNDPROC, |
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctions.h b/src/api/burn/balutil/inc/BalBaseBAFunctions.h index fe5c99ba..614d4bcf 100644 --- a/src/api/burn/balutil/inc/BalBaseBAFunctions.h +++ b/src/api/burn/balutil/inc/BalBaseBAFunctions.h | |||
| @@ -877,6 +877,16 @@ public: // IBootstrapperApplication | |||
| 877 | return S_OK; | 877 | return S_OK; |
| 878 | } | 878 | } |
| 879 | 879 | ||
| 880 | virtual STDMETHODIMP OnExecuteProcessCancel( | ||
| 881 | __in_z LPCWSTR /*wzPackageId*/, | ||
| 882 | __in DWORD /*dwProcessId*/, | ||
| 883 | __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION /*recommendation*/, | ||
| 884 | __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* /*pAction*/ | ||
| 885 | ) | ||
| 886 | { | ||
| 887 | return S_OK; | ||
| 888 | } | ||
| 889 | |||
| 880 | public: // IBAFunctions | 890 | public: // IBAFunctions |
| 881 | virtual STDMETHODIMP OnPlan( | 891 | virtual STDMETHODIMP OnPlan( |
| 882 | ) | 892 | ) |
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h index 100e5c30..b96a180c 100644 --- a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h +++ b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h | |||
| @@ -162,6 +162,7 @@ static HRESULT WINAPI BalBaseBAFunctionsProc( | |||
| 162 | case BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE: | 162 | case BA_FUNCTIONS_MESSAGE_ONPLANRESTORERELATEDBUNDLE: |
| 163 | case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE: | 163 | case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLETYPE: |
| 164 | case BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE: | 164 | case BA_FUNCTIONS_MESSAGE_ONAPPLYDOWNGRADE: |
| 165 | case BA_FUNCTIONS_MESSAGE_ONEXECUTEPROCESSCANCEL: | ||
| 165 | hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); | 166 | hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); |
| 166 | break; | 167 | break; |
| 167 | case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: | 168 | case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: |
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h index fd06a83f..25570ffd 100644 --- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h +++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h | |||
| @@ -1077,6 +1077,16 @@ public: // IBootstrapperApplication | |||
| 1077 | return S_OK; | 1077 | return S_OK; |
| 1078 | } | 1078 | } |
| 1079 | 1079 | ||
| 1080 | virtual STDMETHODIMP OnExecuteProcessCancel( | ||
| 1081 | __in_z LPCWSTR /*wzPackageId*/, | ||
| 1082 | __in DWORD /*dwProcessId*/, | ||
| 1083 | __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION /*recommendation*/, | ||
| 1084 | __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* /*pAction*/ | ||
| 1085 | ) | ||
| 1086 | { | ||
| 1087 | return S_OK; | ||
| 1088 | } | ||
| 1089 | |||
| 1080 | public: //CBalBaseBootstrapperApplication | 1090 | public: //CBalBaseBootstrapperApplication |
| 1081 | virtual STDMETHODIMP Initialize( | 1091 | virtual STDMETHODIMP Initialize( |
| 1082 | __in const BOOTSTRAPPER_CREATE_ARGS* pCreateArgs | 1092 | __in const BOOTSTRAPPER_CREATE_ARGS* pCreateArgs |
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h index 4e413e4e..b196d183 100644 --- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h +++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h | |||
| @@ -486,6 +486,15 @@ static HRESULT BalBaseBAProcOnExecutePackageComplete( | |||
| 486 | return pBA->OnExecutePackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->restart, pArgs->recommendation, &pResults->action); | 486 | return pBA->OnExecutePackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->restart, pArgs->recommendation, &pResults->action); |
| 487 | } | 487 | } |
| 488 | 488 | ||
| 489 | static HRESULT BalBaseBAProcOnExecuteProcessCancel( | ||
| 490 | __in IBootstrapperApplication* pBA, | ||
| 491 | __in BA_ONEXECUTEPROCESSCANCEL_ARGS* pArgs, | ||
| 492 | __inout BA_ONEXECUTEPROCESSCANCEL_RESULTS* pResults | ||
| 493 | ) | ||
| 494 | { | ||
| 495 | return pBA->OnExecuteProcessCancel(pArgs->wzPackageId, pArgs->dwProcessId, pArgs->recommendation, &pResults->action); | ||
| 496 | } | ||
| 497 | |||
| 489 | static HRESULT BalBaseBAProcOnExecuteComplete( | 498 | static HRESULT BalBaseBAProcOnExecuteComplete( |
| 490 | __in IBootstrapperApplication* pBA, | 499 | __in IBootstrapperApplication* pBA, |
| 491 | __in BA_ONEXECUTECOMPLETE_ARGS* pArgs, | 500 | __in BA_ONEXECUTECOMPLETE_ARGS* pArgs, |
| @@ -1012,6 +1021,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc( | |||
| 1012 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE: | 1021 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYDOWNGRADE: |
| 1013 | hr = BalBaseBAProcOnApplyDowngrade(pBA, reinterpret_cast<BA_ONAPPLYDOWNGRADE_ARGS*>(pvArgs), reinterpret_cast<BA_ONAPPLYDOWNGRADE_RESULTS*>(pvResults)); | 1022 | hr = BalBaseBAProcOnApplyDowngrade(pBA, reinterpret_cast<BA_ONAPPLYDOWNGRADE_ARGS*>(pvArgs), reinterpret_cast<BA_ONAPPLYDOWNGRADE_RESULTS*>(pvResults)); |
| 1014 | break; | 1023 | break; |
| 1024 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONEXECUTEPROCESSCANCEL: | ||
| 1025 | hr = BalBaseBAProcOnExecuteProcessCancel(pBA, reinterpret_cast<BA_ONEXECUTEPROCESSCANCEL_ARGS*>(pvArgs), reinterpret_cast<BA_ONEXECUTEPROCESSCANCEL_RESULTS*>(pvResults)); | ||
| 1026 | break; | ||
| 1015 | } | 1027 | } |
| 1016 | } | 1028 | } |
| 1017 | 1029 | ||
diff --git a/src/api/burn/balutil/inc/IBootstrapperApplication.h b/src/api/burn/balutil/inc/IBootstrapperApplication.h index c9cf3126..6174c290 100644 --- a/src/api/burn/balutil/inc/IBootstrapperApplication.h +++ b/src/api/burn/balutil/inc/IBootstrapperApplication.h | |||
| @@ -714,4 +714,13 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A | |||
| 714 | __in HRESULT hrRecommended, | 714 | __in HRESULT hrRecommended, |
| 715 | __inout HRESULT* phrStatus | 715 | __inout HRESULT* phrStatus |
| 716 | ) = 0; | 716 | ) = 0; |
| 717 | |||
| 718 | // OnExecuteProcessCancel - called when a package that spawned a process is cancelled. | ||
| 719 | // | ||
| 720 | STDMETHOD(OnExecuteProcessCancel)( | ||
| 721 | __in_z LPCWSTR wzPackageId, | ||
| 722 | __in DWORD dwProcessId, | ||
| 723 | __in BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION recommendation, | ||
| 724 | __inout BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION* pAction | ||
| 725 | ) = 0; | ||
| 717 | }; | 726 | }; |
