aboutsummaryrefslogtreecommitdiff
path: root/src/wixstdba/WixStandardBootstrapperApplication.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wixstdba/WixStandardBootstrapperApplication.cpp')
-rw-r--r--src/wixstdba/WixStandardBootstrapperApplication.cpp33
1 files changed, 23 insertions, 10 deletions
diff --git a/src/wixstdba/WixStandardBootstrapperApplication.cpp b/src/wixstdba/WixStandardBootstrapperApplication.cpp
index 9c882dfa..0fcf3a21 100644
--- a/src/wixstdba/WixStandardBootstrapperApplication.cpp
+++ b/src/wixstdba/WixStandardBootstrapperApplication.cpp
@@ -266,22 +266,27 @@ public: // IBootstrapperApplication
266 __in BOOL fPerMachine, 266 __in BOOL fPerMachine,
267 __in LPCWSTR wzVersion, 267 __in LPCWSTR wzVersion,
268 __in BOOTSTRAPPER_RELATED_OPERATION operation, 268 __in BOOTSTRAPPER_RELATED_OPERATION operation,
269 __in BOOL fMissingFromCache,
269 __inout BOOL* pfCancel 270 __inout BOOL* pfCancel
270 ) 271 )
271 { 272 {
272 BAL_INFO_PACKAGE* pPackage = NULL; 273 BAL_INFO_PACKAGE* pPackage = NULL;
273 if (SUCCEEDED(BalInfoAddRelatedBundleAsPackage(&m_Bundle.packages, wzBundleId, relationType, fPerMachine, &pPackage)))
274 {
275 InitializePackageInfoForPackage(pPackage);
276 }
277 274
278 // If we're not doing a prerequisite install, remember when our bundle would cause a downgrade. 275 if (!fMissingFromCache)
279 if (!m_fPrereq && BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE == operation)
280 { 276 {
281 m_fDowngrading = TRUE; 277 if (SUCCEEDED(BalInfoAddRelatedBundleAsPackage(&m_Bundle.packages, wzBundleId, relationType, fPerMachine, &pPackage)))
278 {
279 InitializePackageInfoForPackage(pPackage);
280 }
281
282 // If we're not doing a prerequisite install, remember when our bundle would cause a downgrade.
283 if (!m_fPrereq && BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE == operation)
284 {
285 m_fDowngrading = TRUE;
286 }
282 } 287 }
283 288
284 return CBalBaseBootstrapperApplication::OnDetectRelatedBundle(wzBundleId, relationType, wzBundleTag, fPerMachine, wzVersion, operation, pfCancel); 289 return CBalBaseBootstrapperApplication::OnDetectRelatedBundle(wzBundleId, relationType, wzBundleTag, fPerMachine, wzVersion, operation, fMissingFromCache, pfCancel);
285 } 290 }
286 291
287 292
@@ -1346,9 +1351,7 @@ private: // privates
1346 __inout BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_RESULTS* pResults 1351 __inout BA_ONDETECTFORWARDCOMPATIBLEBUNDLE_RESULTS* pResults
1347 ) 1352 )
1348 { 1353 {
1349 BOOL fIgnoreBundle = pResults->fIgnoreBundle;
1350 m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE, pArgs, pResults, m_pvBAFunctionsProcContext); 1354 m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONDETECTFORWARDCOMPATIBLEBUNDLE, pArgs, pResults, m_pvBAFunctionsProcContext);
1351 BalLogId(BOOTSTRAPPER_LOG_LEVEL_STANDARD, MSG_WIXSTDBA_DETECTED_FORWARD_COMPATIBLE_BUNDLE, m_hModule, pArgs->wzBundleId, fIgnoreBundle ? "ignore" : "enable", pResults->fIgnoreBundle ? "ignore" : "enable");
1352 } 1355 }
1353 1356
1354 void OnDetectUpdateBeginFallback( 1357 void OnDetectUpdateBeginFallback(
@@ -1811,6 +1814,16 @@ private: // privates
1811 m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE, pArgs, pResults, m_pvBAFunctionsProcContext); 1814 m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE, pArgs, pResults, m_pvBAFunctionsProcContext);
1812 } 1815 }
1813 1816
1817 void OnPlanForwardCompatibleBundleFallback(
1818 __in BA_ONPLANFORWARDCOMPATIBLEBUNDLE_ARGS* pArgs,
1819 __inout BA_ONPLANFORWARDCOMPATIBLEBUNDLE_RESULTS* pResults
1820 )
1821 {
1822 BOOL fIgnoreBundle = pResults->fIgnoreBundle;
1823 m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONPLANFORWARDCOMPATIBLEBUNDLE, pArgs, pResults, m_pvBAFunctionsProcContext);
1824 BalLogId(BOOTSTRAPPER_LOG_LEVEL_STANDARD, MSG_WIXSTDBA_PLANNED_FORWARD_COMPATIBLE_BUNDLE, m_hModule, pArgs->wzBundleId, fIgnoreBundle ? "ignore" : "enable", pResults->fIgnoreBundle ? "ignore" : "enable");
1825 }
1826
1814 // 1827 //
1815 // UiThreadProc - entrypoint for UI thread. 1828 // UiThreadProc - entrypoint for UI thread.
1816 // 1829 //