aboutsummaryrefslogtreecommitdiff
path: root/src/engine/userexperience.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/userexperience.cpp')
-rw-r--r--src/engine/userexperience.cpp47
1 files changed, 45 insertions, 2 deletions
diff --git a/src/engine/userexperience.cpp b/src/engine/userexperience.cpp
index 24fc1ec7..dd59a431 100644
--- a/src/engine/userexperience.cpp
+++ b/src/engine/userexperience.cpp
@@ -97,7 +97,7 @@ extern "C" HRESULT UserExperienceLoad(
97 args.pCommand = pCommand; 97 args.pCommand = pCommand;
98 args.pfnBootstrapperEngineProc = EngineForApplicationProc; 98 args.pfnBootstrapperEngineProc = EngineForApplicationProc;
99 args.pvBootstrapperEngineProcContext = pEngineContext; 99 args.pvBootstrapperEngineProcContext = pEngineContext;
100 args.qwEngineAPIVersion = MAKEQWORDVERSION(0, 0, 0, 7); // TODO: need to decide whether to keep this, and if so when to update it. 100 args.qwEngineAPIVersion = MAKEQWORDVERSION(2020, 5, 14, 0);
101 101
102 results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS); 102 results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS);
103 103
@@ -1211,7 +1211,9 @@ EXTERN_C BAAPI UserExperienceOnExecutePackageBegin(
1211 __in BURN_USER_EXPERIENCE* pUserExperience, 1211 __in BURN_USER_EXPERIENCE* pUserExperience,
1212 __in_z LPCWSTR wzPackageId, 1212 __in_z LPCWSTR wzPackageId,
1213 __in BOOL fExecute, 1213 __in BOOL fExecute,
1214 __in BOOTSTRAPPER_ACTION_STATE action 1214 __in BOOTSTRAPPER_ACTION_STATE action,
1215 __in INSTALLUILEVEL uiLevel,
1216 __in BOOL fDisableExternalUiHandler
1215 ) 1217 )
1216{ 1218{
1217 HRESULT hr = S_OK; 1219 HRESULT hr = S_OK;
@@ -1222,6 +1224,8 @@ EXTERN_C BAAPI UserExperienceOnExecutePackageBegin(
1222 args.wzPackageId = wzPackageId; 1224 args.wzPackageId = wzPackageId;
1223 args.fExecute = fExecute; 1225 args.fExecute = fExecute;
1224 args.action = action; 1226 args.action = action;
1227 args.uiLevel = uiLevel;
1228 args.fDisableExternalUiHandler = fDisableExternalUiHandler;
1225 1229
1226 results.cbSize = sizeof(results); 1230 results.cbSize = sizeof(results);
1227 1231
@@ -1526,6 +1530,45 @@ LExit:
1526 return hr; 1530 return hr;
1527} 1531}
1528 1532
1533EXTERN_C BAAPI UserExperienceOnPlanMsiPackage(
1534 __in BURN_USER_EXPERIENCE* pUserExperience,
1535 __in_z LPCWSTR wzPackageId,
1536 __in BOOL fExecute,
1537 __in BOOTSTRAPPER_ACTION_STATE action,
1538 __inout BURN_MSI_PROPERTY* pActionMsiProperty,
1539 __inout INSTALLUILEVEL* pUiLevel,
1540 __inout BOOL* pfDisableExternalUiHandler
1541 )
1542{
1543 HRESULT hr = S_OK;
1544 BA_ONPLANMSIPACKAGE_ARGS args = { };
1545 BA_ONPLANMSIPACKAGE_RESULTS results = { };
1546
1547 args.cbSize = sizeof(args);
1548 args.wzPackageId = wzPackageId;
1549 args.fExecute = fExecute;
1550 args.action = action;
1551
1552 results.cbSize = sizeof(results);
1553 results.actionMsiProperty = *pActionMsiProperty;
1554 results.uiLevel = *pUiLevel;
1555 results.fDisableExternalUiHandler = *pfDisableExternalUiHandler;
1556
1557 hr = pUserExperience->pfnBAProc(BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE, &args, &results, pUserExperience->pvBAProcContext);
1558 ExitOnFailure(hr, "BA OnPlanMsiPackage failed.");
1559
1560 if (results.fCancel)
1561 {
1562 hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT);
1563 }
1564 *pActionMsiProperty = results.actionMsiProperty;
1565 *pUiLevel = results.uiLevel;
1566 *pfDisableExternalUiHandler = results.fDisableExternalUiHandler;
1567
1568LExit:
1569 return hr;
1570}
1571
1529EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( 1572EXTERN_C BAAPI UserExperienceOnPlanPackageBegin(
1530 __in BURN_USER_EXPERIENCE* pUserExperience, 1573 __in BURN_USER_EXPERIENCE* pUserExperience,
1531 __in_z LPCWSTR wzPackageId, 1574 __in_z LPCWSTR wzPackageId,