summaryrefslogtreecommitdiff
path: root/src/burn/engine/userexperience.cpp
diff options
context:
space:
mode:
authorNir Bar <nir.bar@panel-sw.co.il>2021-08-11 15:37:34 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-08-12 14:50:55 -0500
commit0042e3d4554a0d92e1da6141854b0f1aafa07d5b (patch)
tree7dcd25456993d6a9d68b9afd21fd1d1f77bd2a5e /src/burn/engine/userexperience.cpp
parentc6b138ed166e30c750e499919b858dc6913937b6 (diff)
downloadwix-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.cpp32
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
2059EXTERN_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
2085LExit:
2086 return hr;
2087}
2088
2059EXTERN_C BAAPI UserExperienceOnPlanPatchTarget( 2089EXTERN_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,