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, |