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/burn/engine/userexperience.cpp | |
| 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/burn/engine/userexperience.cpp')
| -rw-r--r-- | src/burn/engine/userexperience.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/burn/engine/userexperience.cpp b/src/burn/engine/userexperience.cpp index f48e60de..c974f4d4 100644 --- a/src/burn/engine/userexperience.cpp +++ b/src/burn/engine/userexperience.cpp | |||
| @@ -104,7 +104,7 @@ extern "C" HRESULT UserExperienceLoad( | |||
| 104 | args.pCommand = pCommand; | 104 | args.pCommand = pCommand; |
| 105 | args.pfnBootstrapperEngineProc = EngineForApplicationProc; | 105 | args.pfnBootstrapperEngineProc = EngineForApplicationProc; |
| 106 | args.pvBootstrapperEngineProcContext = pEngineContext; | 106 | args.pvBootstrapperEngineProcContext = pEngineContext; |
| 107 | args.qwEngineAPIVersion = MAKEQWORDVERSION(2021, 4, 27, 0); | 107 | args.qwEngineAPIVersion = MAKEQWORDVERSION(2021, 8, 10, 0); |
| 108 | 108 | ||
| 109 | results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS); | 109 | results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS); |
| 110 | 110 | ||
| @@ -2056,6 +2056,36 @@ LExit: | |||
| 2056 | return hr; | 2056 | return hr; |
| 2057 | } | 2057 | } |
| 2058 | 2058 | ||
| 2059 | EXTERN_C BAAPI UserExperienceOnPlanRollbackBoundary( | ||
| 2060 | __in BURN_USER_EXPERIENCE* pUserExperience, | ||
| 2061 | __in_z LPCWSTR wzRollbackBoundaryId, | ||
| 2062 | __inout BOOL* pfTransaction | ||
| 2063 | ) | ||
| 2064 | { | ||
| 2065 | HRESULT hr = S_OK; | ||
| 2066 | BA_ONPLANROLLBACKBOUNDARY_ARGS args = { }; | ||
| 2067 | BA_ONPLANROLLBACKBOUNDARY_RESULTS results = { }; | ||
| 2068 | |||
| 2069 | args.cbSize = sizeof(args); | ||
| 2070 | args.wzRollbackBoundaryId = wzRollbackBoundaryId; | ||
| 2071 | args.fRecommendedTransaction = *pfTransaction; | ||
| 2072 | |||
| 2073 | results.cbSize = sizeof(results); | ||
| 2074 | results.fTransaction = *pfTransaction; | ||
| 2075 | |||
| 2076 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANROLLBACKBOUNDARY, &args, &results); | ||
| 2077 | ExitOnFailure(hr, "BA OnPlanRollbackBoundary failed."); | ||
| 2078 | |||
| 2079 | if (results.fCancel) | ||
| 2080 | { | ||
| 2081 | hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); | ||
| 2082 | } | ||
| 2083 | *pfTransaction = results.fTransaction; | ||
| 2084 | |||
| 2085 | LExit: | ||
| 2086 | return hr; | ||
| 2087 | } | ||
| 2088 | |||
| 2059 | EXTERN_C BAAPI UserExperienceOnPlanPatchTarget( | 2089 | EXTERN_C BAAPI UserExperienceOnPlanPatchTarget( |
| 2060 | __in BURN_USER_EXPERIENCE* pUserExperience, | 2090 | __in BURN_USER_EXPERIENCE* pUserExperience, |
| 2061 | __in_z LPCWSTR wzPackageId, | 2091 | __in_z LPCWSTR wzPackageId, |
