diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-02-18 10:44:49 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-02-22 20:25:06 -0600 |
commit | b29af5d005c2cc802aa60a123d435042038ba8ef (patch) | |
tree | cb86e61b6abb327f8e1ebc33162acfca28bb89e9 /src/engine/userexperience.cpp | |
parent | dbd55be5e707f07eb044c8c7f13c3dfd246148c0 (diff) | |
download | wix-b29af5d005c2cc802aa60a123d435042038ba8ef.tar.gz wix-b29af5d005c2cc802aa60a123d435042038ba8ef.tar.bz2 wix-b29af5d005c2cc802aa60a123d435042038ba8ef.zip |
Get all request states up front before building the plan.
Diffstat (limited to 'src/engine/userexperience.cpp')
-rw-r--r-- | src/engine/userexperience.cpp | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/src/engine/userexperience.cpp b/src/engine/userexperience.cpp index 12c3f6df..88b07d68 100644 --- a/src/engine/userexperience.cpp +++ b/src/engine/userexperience.cpp | |||
@@ -111,7 +111,7 @@ extern "C" HRESULT UserExperienceLoad( | |||
111 | args.pCommand = pCommand; | 111 | args.pCommand = pCommand; |
112 | args.pfnBootstrapperEngineProc = EngineForApplicationProc; | 112 | args.pfnBootstrapperEngineProc = EngineForApplicationProc; |
113 | args.pvBootstrapperEngineProcContext = pEngineContext; | 113 | args.pvBootstrapperEngineProcContext = pEngineContext; |
114 | args.qwEngineAPIVersion = MAKEQWORDVERSION(2021, 1, 30, 0); | 114 | args.qwEngineAPIVersion = MAKEQWORDVERSION(2021, 2, 18, 0); |
115 | 115 | ||
116 | results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS); | 116 | results.cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS); |
117 | 117 | ||
@@ -1606,9 +1606,36 @@ LExit: | |||
1606 | return hr; | 1606 | return hr; |
1607 | } | 1607 | } |
1608 | 1608 | ||
1609 | EXTERN_C BAAPI UserExperienceOnPlannedPackage( | ||
1610 | __in BURN_USER_EXPERIENCE* pUserExperience, | ||
1611 | __in_z LPCWSTR wzPackageId, | ||
1612 | __in BOOTSTRAPPER_ACTION_STATE execute, | ||
1613 | __in BOOTSTRAPPER_ACTION_STATE rollback | ||
1614 | ) | ||
1615 | { | ||
1616 | HRESULT hr = S_OK; | ||
1617 | BA_ONPLANNEDPACKAGE_ARGS args = { }; | ||
1618 | BA_ONPLANNEDPACKAGE_RESULTS results = { }; | ||
1619 | |||
1620 | args.cbSize = sizeof(args); | ||
1621 | args.wzPackageId = wzPackageId; | ||
1622 | args.execute = execute; | ||
1623 | args.rollback = rollback; | ||
1624 | |||
1625 | results.cbSize = sizeof(results); | ||
1626 | |||
1627 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE, &args, &results); | ||
1628 | ExitOnFailure(hr, "BA OnPlannedPackage failed."); | ||
1629 | |||
1630 | LExit: | ||
1631 | return hr; | ||
1632 | } | ||
1633 | |||
1609 | EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( | 1634 | EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( |
1610 | __in BURN_USER_EXPERIENCE* pUserExperience, | 1635 | __in BURN_USER_EXPERIENCE* pUserExperience, |
1611 | __in_z LPCWSTR wzPackageId, | 1636 | __in_z LPCWSTR wzPackageId, |
1637 | __in BOOTSTRAPPER_PACKAGE_STATE state, | ||
1638 | __in BOOL fInstallCondition, | ||
1612 | __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState | 1639 | __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState |
1613 | ) | 1640 | ) |
1614 | { | 1641 | { |
@@ -1618,6 +1645,8 @@ EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( | |||
1618 | 1645 | ||
1619 | args.cbSize = sizeof(args); | 1646 | args.cbSize = sizeof(args); |
1620 | args.wzPackageId = wzPackageId; | 1647 | args.wzPackageId = wzPackageId; |
1648 | args.state = state; | ||
1649 | args.fInstallCondition = fInstallCondition; | ||
1621 | args.recommendedState = *pRequestedState; | 1650 | args.recommendedState = *pRequestedState; |
1622 | 1651 | ||
1623 | results.cbSize = sizeof(results); | 1652 | results.cbSize = sizeof(results); |
@@ -1640,10 +1669,7 @@ EXTERN_C BAAPI UserExperienceOnPlanPackageComplete( | |||
1640 | __in BURN_USER_EXPERIENCE* pUserExperience, | 1669 | __in BURN_USER_EXPERIENCE* pUserExperience, |
1641 | __in_z LPCWSTR wzPackageId, | 1670 | __in_z LPCWSTR wzPackageId, |
1642 | __in HRESULT hrStatus, | 1671 | __in HRESULT hrStatus, |
1643 | __in BOOTSTRAPPER_PACKAGE_STATE state, | 1672 | __in BOOTSTRAPPER_REQUEST_STATE requested |
1644 | __in BOOTSTRAPPER_REQUEST_STATE requested, | ||
1645 | __in BOOTSTRAPPER_ACTION_STATE execute, | ||
1646 | __in BOOTSTRAPPER_ACTION_STATE rollback | ||
1647 | ) | 1673 | ) |
1648 | { | 1674 | { |
1649 | HRESULT hr = S_OK; | 1675 | HRESULT hr = S_OK; |
@@ -1653,10 +1679,7 @@ EXTERN_C BAAPI UserExperienceOnPlanPackageComplete( | |||
1653 | args.cbSize = sizeof(args); | 1679 | args.cbSize = sizeof(args); |
1654 | args.wzPackageId = wzPackageId; | 1680 | args.wzPackageId = wzPackageId; |
1655 | args.hrStatus = hrStatus; | 1681 | args.hrStatus = hrStatus; |
1656 | args.state = state; | ||
1657 | args.requested = requested; | 1682 | args.requested = requested; |
1658 | args.execute = execute; | ||
1659 | args.rollback = rollback; | ||
1660 | 1683 | ||
1661 | results.cbSize = sizeof(results); | 1684 | results.cbSize = sizeof(results); |
1662 | 1685 | ||