diff options
Diffstat (limited to '')
-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, |