diff options
Diffstat (limited to 'src/wixstdba/WixStandardBootstrapperApplication.cpp')
-rw-r--r-- | src/wixstdba/WixStandardBootstrapperApplication.cpp | 33 |
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 | // |