aboutsummaryrefslogtreecommitdiff
path: root/src/engine/mspengine.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-05-21 14:13:16 +1000
committerSean Hall <r.sean.hall@gmail.com>2020-05-21 14:18:40 +1000
commit513286d4798572cc82a78554ef15ef2fe79f407e (patch)
tree3960b579a914c843f56c9045c59d194162d0a9d2 /src/engine/mspengine.cpp
parentc903a96bd8d61a375448e1a6ad7b40bab8cb24c4 (diff)
downloadwix-513286d4798572cc82a78554ef15ef2fe79f407e.tar.gz
wix-513286d4798572cc82a78554ef15ef2fe79f407e.tar.bz2
wix-513286d4798572cc82a78554ef15ef2fe79f407e.zip
WIXBUG:5980 Fix bugs around INSTALLUILEVEL_SOURCERESONLY.
Apply requires a valid hWnd since otherwise a source resolution prompt could hang the bundle. Burn now defaults to INSTALLUILEVEL_NONE by itself if the bundle is not showing UI.
Diffstat (limited to 'src/engine/mspengine.cpp')
-rw-r--r--src/engine/mspengine.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/engine/mspengine.cpp b/src/engine/mspengine.cpp
index 0dddb366..57321d75 100644
--- a/src/engine/mspengine.cpp
+++ b/src/engine/mspengine.cpp
@@ -44,6 +44,7 @@ static void DeterminePatchChainedTarget(
44 __out BOOL* pfSlipstreamed 44 __out BOOL* pfSlipstreamed
45 ); 45 );
46static HRESULT PlanTargetProduct( 46static HRESULT PlanTargetProduct(
47 __in BOOTSTRAPPER_DISPLAY display,
47 __in BURN_USER_EXPERIENCE* pUserExperience, 48 __in BURN_USER_EXPERIENCE* pUserExperience,
48 __in BOOL fRollback, 49 __in BOOL fRollback,
49 __in BURN_PLAN* pPlan, 50 __in BURN_PLAN* pPlan,
@@ -396,6 +397,7 @@ LExit:
396// PlanAdd - adds the calculated execute and rollback actions for the package. 397// PlanAdd - adds the calculated execute and rollback actions for the package.
397// 398//
398extern "C" HRESULT MspEnginePlanAddPackage( 399extern "C" HRESULT MspEnginePlanAddPackage(
400 __in BOOTSTRAPPER_DISPLAY display,
399 __in BURN_USER_EXPERIENCE* pUserExperience, 401 __in BURN_USER_EXPERIENCE* pUserExperience,
400 __in BURN_PACKAGE* pPackage, 402 __in BURN_PACKAGE* pPackage,
401 __in BURN_PLAN* pPlan, 403 __in BURN_PLAN* pPlan,
@@ -433,13 +435,13 @@ extern "C" HRESULT MspEnginePlanAddPackage(
433 435
434 if (BOOTSTRAPPER_ACTION_STATE_NONE != pTargetProduct->execute) 436 if (BOOTSTRAPPER_ACTION_STATE_NONE != pTargetProduct->execute)
435 { 437 {
436 hr = PlanTargetProduct(pUserExperience, FALSE, pPlan, pLog, pVariables, pTargetProduct->execute, pPackage, pTargetProduct, hCacheEvent); 438 hr = PlanTargetProduct(display, pUserExperience, FALSE, pPlan, pLog, pVariables, pTargetProduct->execute, pPackage, pTargetProduct, hCacheEvent);
437 ExitOnFailure(hr, "Failed to plan target product."); 439 ExitOnFailure(hr, "Failed to plan target product.");
438 } 440 }
439 441
440 if (BOOTSTRAPPER_ACTION_STATE_NONE != pTargetProduct->rollback) 442 if (BOOTSTRAPPER_ACTION_STATE_NONE != pTargetProduct->rollback)
441 { 443 {
442 hr = PlanTargetProduct(pUserExperience, TRUE, pPlan, pLog, pVariables, pTargetProduct->rollback, pPackage, pTargetProduct, hCacheEvent); 444 hr = PlanTargetProduct(display, pUserExperience, TRUE, pPlan, pLog, pVariables, pTargetProduct->rollback, pPackage, pTargetProduct, hCacheEvent);
443 ExitOnFailure(hr, "Failed to plan rollack target product."); 445 ExitOnFailure(hr, "Failed to plan rollack target product.");
444 } 446 }
445 } 447 }
@@ -877,6 +879,7 @@ static void DeterminePatchChainedTarget(
877} 879}
878 880
879static HRESULT PlanTargetProduct( 881static HRESULT PlanTargetProduct(
882 __in BOOTSTRAPPER_DISPLAY display,
880 __in BURN_USER_EXPERIENCE* pUserExperience, 883 __in BURN_USER_EXPERIENCE* pUserExperience,
881 __in BOOL fRollback, 884 __in BOOL fRollback,
882 __in BURN_PLAN* pPlan, 885 __in BURN_PLAN* pPlan,
@@ -934,7 +937,7 @@ static HRESULT PlanTargetProduct(
934 hr = StrAllocString(&pAction->mspTarget.sczTargetProductCode, pTargetProduct->wzTargetProductCode, 0); 937 hr = StrAllocString(&pAction->mspTarget.sczTargetProductCode, pTargetProduct->wzTargetProductCode, 0);
935 ExitOnFailure(hr, "Failed to copy target product code."); 938 ExitOnFailure(hr, "Failed to copy target product code.");
936 939
937 hr = MsiEngineCalculateInstallUiLevel(pUserExperience, pPackage->sczId, !fRollback, pAction->mspTarget.action, 940 hr = MsiEngineCalculateInstallUiLevel(display, pUserExperience, pPackage->sczId, !fRollback, pAction->mspTarget.action,
938 &pAction->mspTarget.actionMsiProperty, &pAction->mspTarget.uiLevel, &pAction->mspTarget.fDisableExternalUiHandler); 941 &pAction->mspTarget.actionMsiProperty, &pAction->mspTarget.uiLevel, &pAction->mspTarget.fDisableExternalUiHandler);
939 ExitOnFailure(hr, "Failed to get msp ui options."); 942 ExitOnFailure(hr, "Failed to get msp ui options.");
940 943