diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2021-03-10 15:47:59 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-03-11 20:24:18 -0600 |
| commit | 10ef9d5bfbf81f454113a1c2716009831a916222 (patch) | |
| tree | 9e2fd8c917787ceba5e4c7f873d715eafbda6920 /src/engine/userexperience.cpp | |
| parent | 778b65643f19df94947d390a5a17023043d840b4 (diff) | |
| download | wix-10ef9d5bfbf81f454113a1c2716009831a916222.tar.gz wix-10ef9d5bfbf81f454113a1c2716009831a916222.tar.bz2 wix-10ef9d5bfbf81f454113a1c2716009831a916222.zip | |
Determine whether to ignore forward compatible bundles during Plan.
Diffstat (limited to 'src/engine/userexperience.cpp')
| -rw-r--r-- | src/engine/userexperience.cpp | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/src/engine/userexperience.cpp b/src/engine/userexperience.cpp index 40a30c5d..e1e32a87 100644 --- a/src/engine/userexperience.cpp +++ b/src/engine/userexperience.cpp | |||
| @@ -763,8 +763,7 @@ EXTERN_C BAAPI UserExperienceOnDetectForwardCompatibleBundle( | |||
| 763 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | 763 | __in BOOTSTRAPPER_RELATION_TYPE relationType, |
| 764 | __in_z LPCWSTR wzBundleTag, | 764 | __in_z LPCWSTR wzBundleTag, |
| 765 | __in BOOL fPerMachine, | 765 | __in BOOL fPerMachine, |
| 766 | __in VERUTIL_VERSION* pVersion, | 766 | __in VERUTIL_VERSION* pVersion |
| 767 | __inout BOOL* pfIgnoreBundle | ||
| 768 | ) | 767 | ) |
| 769 | { | 768 | { |
| 770 | HRESULT hr = S_OK; | 769 | HRESULT hr = S_OK; |
| @@ -779,7 +778,6 @@ EXTERN_C BAAPI UserExperienceOnDetectForwardCompatibleBundle( | |||
| 779 | args.wzVersion = pVersion->sczVersion; | 778 | args.wzVersion = pVersion->sczVersion; |
| 780 | 779 | ||
| 781 | results.cbSize = sizeof(results); | 780 | results.cbSize = sizeof(results); |
| 782 | results.fIgnoreBundle = *pfIgnoreBundle; | ||
| 783 | 781 | ||
| 784 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE, &args, &results); | 782 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE, &args, &results); |
| 785 | ExitOnFailure(hr, "BA OnDetectForwardCompatibleBundle failed."); | 783 | ExitOnFailure(hr, "BA OnDetectForwardCompatibleBundle failed."); |
| @@ -788,7 +786,6 @@ EXTERN_C BAAPI UserExperienceOnDetectForwardCompatibleBundle( | |||
| 788 | { | 786 | { |
| 789 | hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); | 787 | hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); |
| 790 | } | 788 | } |
| 791 | *pfIgnoreBundle = results.fIgnoreBundle; | ||
| 792 | 789 | ||
| 793 | LExit: | 790 | LExit: |
| 794 | return hr; | 791 | return hr; |
| @@ -1567,6 +1564,44 @@ LExit: | |||
| 1567 | return hr; | 1564 | return hr; |
| 1568 | } | 1565 | } |
| 1569 | 1566 | ||
| 1567 | EXTERN_C BAAPI UserExperienceOnPlanForwardCompatibleBundle( | ||
| 1568 | __in BURN_USER_EXPERIENCE* pUserExperience, | ||
| 1569 | __in_z LPCWSTR wzBundleId, | ||
| 1570 | __in BOOTSTRAPPER_RELATION_TYPE relationType, | ||
| 1571 | __in_z LPCWSTR wzBundleTag, | ||
| 1572 | __in BOOL fPerMachine, | ||
| 1573 | __in VERUTIL_VERSION* pVersion, | ||
| 1574 | __inout BOOL* pfIgnoreBundle | ||
| 1575 | ) | ||
| 1576 | { | ||
| 1577 | HRESULT hr = S_OK; | ||
| 1578 | BA_ONPLANFORWARDCOMPATIBLEBUNDLE_ARGS args = { }; | ||
| 1579 | BA_ONPLANFORWARDCOMPATIBLEBUNDLE_RESULTS results = { }; | ||
| 1580 | |||
| 1581 | args.cbSize = sizeof(args); | ||
| 1582 | args.wzBundleId = wzBundleId; | ||
| 1583 | args.relationType = relationType; | ||
| 1584 | args.wzBundleTag = wzBundleTag; | ||
| 1585 | args.fPerMachine = fPerMachine; | ||
| 1586 | args.wzVersion = pVersion->sczVersion; | ||
| 1587 | args.fRecommendedIgnoreBundle = *pfIgnoreBundle; | ||
| 1588 | |||
| 1589 | results.cbSize = sizeof(results); | ||
| 1590 | results.fIgnoreBundle = *pfIgnoreBundle; | ||
| 1591 | |||
| 1592 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE, &args, &results); | ||
| 1593 | ExitOnFailure(hr, "BA OnPlanForwardCompatibleBundle failed."); | ||
| 1594 | |||
| 1595 | if (results.fCancel) | ||
| 1596 | { | ||
| 1597 | hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); | ||
| 1598 | } | ||
| 1599 | *pfIgnoreBundle = results.fIgnoreBundle; | ||
| 1600 | |||
| 1601 | LExit: | ||
| 1602 | return hr; | ||
| 1603 | } | ||
| 1604 | |||
| 1570 | EXTERN_C BAAPI UserExperienceOnPlanMsiPackage( | 1605 | EXTERN_C BAAPI UserExperienceOnPlanMsiPackage( |
| 1571 | __in BURN_USER_EXPERIENCE* pUserExperience, | 1606 | __in BURN_USER_EXPERIENCE* pUserExperience, |
| 1572 | __in_z LPCWSTR wzPackageId, | 1607 | __in_z LPCWSTR wzPackageId, |
