diff options
Diffstat (limited to 'src/engine/userexperience.cpp')
-rw-r--r-- | src/engine/userexperience.cpp | 47 |
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 | ||
1533 | EXTERN_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 | |||
1568 | LExit: | ||
1569 | return hr; | ||
1570 | } | ||
1571 | |||
1529 | EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( | 1572 | EXTERN_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, |