diff options
| author | Nir Bar <nir.bar@panel-sw.co.il> | 2021-08-11 15:37:34 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-08-12 14:50:55 -0500 |
| commit | 0042e3d4554a0d92e1da6141854b0f1aafa07d5b (patch) | |
| tree | 7dcd25456993d6a9d68b9afd21fd1d1f77bd2a5e /src/api/burn/balutil | |
| parent | c6b138ed166e30c750e499919b858dc6913937b6 (diff) | |
| download | wix-0042e3d4554a0d92e1da6141854b0f1aafa07d5b.tar.gz wix-0042e3d4554a0d92e1da6141854b0f1aafa07d5b.tar.bz2 wix-0042e3d4554a0d92e1da6141854b0f1aafa07d5b.zip | |
Allow BA to opt out of MSI transaction.
Diffstat (limited to 'src/api/burn/balutil')
6 files changed, 50 insertions, 0 deletions
diff --git a/src/api/burn/balutil/inc/BAFunctions.h b/src/api/burn/balutil/inc/BAFunctions.h index 2970478f..43786701 100644 --- a/src/api/burn/balutil/inc/BAFunctions.h +++ b/src/api/burn/balutil/inc/BAFunctions.h | |||
| @@ -81,6 +81,7 @@ enum BA_FUNCTIONS_MESSAGE | |||
| 81 | BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN, | 81 | BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN, |
| 82 | BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE, | 82 | BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE, |
| 83 | BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS, | 83 | BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS, |
| 84 | BA_FUNCTIONS_MESSAGE_ONPLANROLLBACKBOUNDARY = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANROLLBACKBOUNDARY, | ||
| 84 | 85 | ||
| 85 | BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, | 86 | BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, |
| 86 | BA_FUNCTIONS_MESSAGE_WNDPROC, | 87 | BA_FUNCTIONS_MESSAGE_WNDPROC, |
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctions.h b/src/api/burn/balutil/inc/BalBaseBAFunctions.h index c5771efc..a3054709 100644 --- a/src/api/burn/balutil/inc/BalBaseBAFunctions.h +++ b/src/api/burn/balutil/inc/BalBaseBAFunctions.h | |||
| @@ -255,6 +255,16 @@ public: // IBootstrapperApplication | |||
| 255 | return S_OK; | 255 | return S_OK; |
| 256 | } | 256 | } |
| 257 | 257 | ||
| 258 | virtual STDMETHODIMP OnPlanRollbackBoundary( | ||
| 259 | __in_z LPCWSTR /*wzRollbackBoundaryId*/, | ||
| 260 | __in BOOL /*fRecommendedTransaction*/, | ||
| 261 | __inout BOOL* /*pfTransaction*/, | ||
| 262 | __inout BOOL* /*pfCancel*/ | ||
| 263 | ) | ||
| 264 | { | ||
| 265 | return S_OK; | ||
| 266 | } | ||
| 267 | |||
| 258 | virtual STDMETHODIMP OnPlanPackageBegin( | 268 | virtual STDMETHODIMP OnPlanPackageBegin( |
| 259 | __in_z LPCWSTR /*wzPackageId*/, | 269 | __in_z LPCWSTR /*wzPackageId*/, |
| 260 | __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, | 270 | __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, |
diff --git a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h index 7e89fe83..8d1227fc 100644 --- a/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h +++ b/src/api/burn/balutil/inc/BalBaseBAFunctionsProc.h | |||
| @@ -109,6 +109,14 @@ static HRESULT WINAPI BalBaseBAFunctionsProc( | |||
| 109 | case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE: | 109 | case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE: |
| 110 | case BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE: | 110 | case BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE: |
| 111 | case BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE: | 111 | case BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE: |
| 112 | case BA_FUNCTIONS_MESSAGE_ONCACHEVERIFYPROGRESS: | ||
| 113 | case BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYBEGIN: | ||
| 114 | case BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYCOMPLETE: | ||
| 115 | case BA_FUNCTIONS_MESSAGE_ONCACHECONTAINERORPAYLOADVERIFYPROGRESS: | ||
| 116 | case BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTBEGIN: | ||
| 117 | case BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE: | ||
| 118 | case BA_FUNCTIONS_MESSAGE_ONCACHEPAYLOADEXTRACTPROGRESS: | ||
| 119 | case BA_FUNCTIONS_MESSAGE_ONPLANROLLBACKBOUNDARY: | ||
| 112 | hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); | 120 | hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); |
| 113 | break; | 121 | break; |
| 114 | case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: | 122 | case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: |
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h index 53fa369b..4c07ba89 100644 --- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h +++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplication.h | |||
| @@ -264,6 +264,17 @@ public: // IBootstrapperApplication | |||
| 264 | return S_OK; | 264 | return S_OK; |
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | virtual STDMETHODIMP OnPlanRollbackBoundary( | ||
| 268 | __in_z LPCWSTR /*wzRollbackBoundaryId*/, | ||
| 269 | __in BOOL /*fRecommendedTransaction*/, | ||
| 270 | __inout BOOL* /*pfTransaction*/, | ||
| 271 | __inout BOOL* pfCancel | ||
| 272 | ) | ||
| 273 | { | ||
| 274 | *pfCancel |= CheckCanceled(); | ||
| 275 | return S_OK; | ||
| 276 | } | ||
| 277 | |||
| 267 | virtual STDMETHODIMP OnPlanPackageBegin( | 278 | virtual STDMETHODIMP OnPlanPackageBegin( |
| 268 | __in_z LPCWSTR /*wzPackageId*/, | 279 | __in_z LPCWSTR /*wzPackageId*/, |
| 269 | __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, | 280 | __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, |
diff --git a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h index 69031d62..d536729f 100644 --- a/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h +++ b/src/api/burn/balutil/inc/BalBaseBootstrapperApplicationProc.h | |||
| @@ -171,6 +171,15 @@ static HRESULT BalBaseBAProcOnPlanRelatedBundle( | |||
| 171 | return pBA->OnPlanRelatedBundle(pArgs->wzBundleId, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); | 171 | return pBA->OnPlanRelatedBundle(pArgs->wzBundleId, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | static HRESULT BalBaseBAProcOnPlanRollbackBoundary( | ||
| 175 | __in IBootstrapperApplication* pBA, | ||
| 176 | __in BA_ONPLANROLLBACKBOUNDARY_ARGS* pArgs, | ||
| 177 | __inout BA_ONPLANROLLBACKBOUNDARY_RESULTS* pResults | ||
| 178 | ) | ||
| 179 | { | ||
| 180 | return pBA->OnPlanRollbackBoundary(pArgs->wzRollbackBoundaryId, pArgs->fRecommendedTransaction, &pResults->fTransaction, &pResults->fCancel); | ||
| 181 | } | ||
| 182 | |||
| 174 | static HRESULT BalBaseBAProcOnPlanPackageBegin( | 183 | static HRESULT BalBaseBAProcOnPlanPackageBegin( |
| 175 | __in IBootstrapperApplication* pBA, | 184 | __in IBootstrapperApplication* pBA, |
| 176 | __in BA_ONPLANPACKAGEBEGIN_ARGS* pArgs, | 185 | __in BA_ONPLANPACKAGEBEGIN_ARGS* pArgs, |
| @@ -892,6 +901,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc( | |||
| 892 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE: | 901 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCACHEPAYLOADEXTRACTCOMPLETE: |
| 893 | hr = BalBaseBAProcOnCachePayloadExtractComplete(pBA, reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS*>(pvResults)); | 902 | hr = BalBaseBAProcOnCachePayloadExtractComplete(pBA, reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCACHEPAYLOADEXTRACTCOMPLETE_RESULTS*>(pvResults)); |
| 894 | break; | 903 | break; |
| 904 | case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANROLLBACKBOUNDARY: | ||
| 905 | hr = BalBaseBAProcOnPlanRollbackBoundary(pBA, reinterpret_cast<BA_ONPLANROLLBACKBOUNDARY_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANROLLBACKBOUNDARY_RESULTS*>(pvResults)); | ||
| 906 | break; | ||
| 895 | } | 907 | } |
| 896 | } | 908 | } |
| 897 | 909 | ||
diff --git a/src/api/burn/balutil/inc/IBootstrapperApplication.h b/src/api/burn/balutil/inc/IBootstrapperApplication.h index 98b88f44..51f58ec7 100644 --- a/src/api/burn/balutil/inc/IBootstrapperApplication.h +++ b/src/api/burn/balutil/inc/IBootstrapperApplication.h | |||
| @@ -160,6 +160,14 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A | |||
| 160 | __inout BOOL* pfCancel | 160 | __inout BOOL* pfCancel |
| 161 | ) = 0; | 161 | ) = 0; |
| 162 | 162 | ||
| 163 | // OnPlanRollbackBoundary - called when the engine is planning a rollback boundary. | ||
| 164 | STDMETHOD(OnPlanRollbackBoundary)( | ||
| 165 | __in_z LPCWSTR wzRollbackBoundaryId, | ||
| 166 | __in BOOL fRecommendedTransaction, | ||
| 167 | __inout BOOL* pfTransaction, | ||
| 168 | __inout BOOL* pfCancel | ||
| 169 | ) = 0; | ||
| 170 | |||
| 163 | // OnPlanPackageBegin - called when the engine has begun getting the BA's input | 171 | // OnPlanPackageBegin - called when the engine has begun getting the BA's input |
| 164 | // for planning a package. | 172 | // for planning a package. |
| 165 | STDMETHOD(OnPlanPackageBegin)( | 173 | STDMETHOD(OnPlanPackageBegin)( |
