aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/plan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/plan.cpp')
-rw-r--r--src/burn/engine/plan.cpp32
1 files changed, 14 insertions, 18 deletions
diff --git a/src/burn/engine/plan.cpp b/src/burn/engine/plan.cpp
index b7703869..be281827 100644
--- a/src/burn/engine/plan.cpp
+++ b/src/burn/engine/plan.cpp
@@ -441,15 +441,11 @@ extern "C" HRESULT PlanLayoutBundle(
441 hr = VariableGetString(pVariables, BURN_BUNDLE_LAYOUT_DIRECTORY, &sczLayoutDirectory); 441 hr = VariableGetString(pVariables, BURN_BUNDLE_LAYOUT_DIRECTORY, &sczLayoutDirectory);
442 if (E_NOTFOUND == hr) // if not set, use the current directory as the layout directory. 442 if (E_NOTFOUND == hr) // if not set, use the current directory as the layout directory.
443 { 443 {
444 hr = VariableGetString(pVariables, BURN_BUNDLE_SOURCE_PROCESS_FOLDER, &sczLayoutDirectory); 444 hr = PathForCurrentProcess(&sczExecutablePath, NULL);
445 if (E_NOTFOUND == hr) // if not set, use the current directory as the layout directory. 445 ExitOnFailure(hr, "Failed to get path for current executing process as layout directory.");
446 {
447 hr = PathForCurrentProcess(&sczExecutablePath, NULL);
448 ExitOnFailure(hr, "Failed to get path for current executing process as layout directory.");
449 446
450 hr = PathGetDirectory(sczExecutablePath, &sczLayoutDirectory); 447 hr = PathGetDirectory(sczExecutablePath, &sczLayoutDirectory);
451 ExitOnFailure(hr, "Failed to get executing process as layout directory."); 448 ExitOnFailure(hr, "Failed to get executing process as layout directory.");
452 }
453 } 449 }
454 ExitOnFailure(hr, "Failed to get bundle layout directory property."); 450 ExitOnFailure(hr, "Failed to get bundle layout directory property.");
455 451
@@ -538,7 +534,7 @@ extern "C" HRESULT PlanForwardCompatibleBundles(
538 534
539 fIgnoreBundle = fRecommendIgnore; 535 fIgnoreBundle = fRecommendIgnore;
540 536
541 hr = UserExperienceOnPlanForwardCompatibleBundle(pUX, pRelatedBundle->package.sczId, pRelatedBundle->detectRelationType, pRelatedBundle->sczTag, pRelatedBundle->package.fPerMachine, pRelatedBundle->pVersion, &fIgnoreBundle); 537 hr = BACallbackOnPlanForwardCompatibleBundle(pUX, pRelatedBundle->package.sczId, pRelatedBundle->detectRelationType, pRelatedBundle->sczTag, pRelatedBundle->package.fPerMachine, pRelatedBundle->pVersion, &fIgnoreBundle);
542 ExitOnRootFailure(hr, "BA aborted plan forward compatible bundle."); 538 ExitOnRootFailure(hr, "BA aborted plan forward compatible bundle.");
543 539
544 if (!fIgnoreBundle) 540 if (!fIgnoreBundle)
@@ -564,7 +560,7 @@ extern "C" HRESULT PlanPackages(
564 ) 560 )
565{ 561{
566 HRESULT hr = S_OK; 562 HRESULT hr = S_OK;
567 563
568 hr = PlanPackagesHelper(pPackages->rgPackages, pPackages->cPackages, pUX, pPlan, pLog, pVariables); 564 hr = PlanPackagesHelper(pPackages->rgPackages, pPackages->cPackages, pUX, pPlan, pLog, pVariables);
569 565
570 return hr; 566 return hr;
@@ -896,11 +892,11 @@ static HRESULT PlanPackagesHelper(
896 DWORD iPackage = fReverseOrder ? cPackages - 1 - i : i; 892 DWORD iPackage = fReverseOrder ? cPackages - 1 - i : i;
897 BURN_PACKAGE* pPackage = rgPackages + iPackage; 893 BURN_PACKAGE* pPackage = rgPackages + iPackage;
898 894
899 UserExperienceOnPlannedPackage(pUX, pPackage->sczId, pPackage->execute, pPackage->rollback, NULL != pPackage->hCacheEvent, pPackage->fPlannedUncache); 895 BACallbackOnPlannedPackage(pUX, pPackage->sczId, pPackage->execute, pPackage->rollback, NULL != pPackage->hCacheEvent, pPackage->fPlannedUncache);
900 896
901 if (pPackage->compatiblePackage.fPlannable) 897 if (pPackage->compatiblePackage.fPlannable)
902 { 898 {
903 UserExperienceOnPlannedCompatiblePackage(pUX, pPackage->sczId, pPackage->compatiblePackage.compatibleEntry.sczId, pPackage->compatiblePackage.fRemove); 899 BACallbackOnPlannedCompatiblePackage(pUX, pPackage->sczId, pPackage->compatiblePackage.compatibleEntry.sczId, pPackage->compatiblePackage.fRemove);
904 } 900 }
905 } 901 }
906 902
@@ -961,7 +957,7 @@ static HRESULT InitializePackage(
961 pPackage->requested = pPackage->defaultRequested; 957 pPackage->requested = pPackage->defaultRequested;
962 fBeginCalled = TRUE; 958 fBeginCalled = TRUE;
963 959
964 hr = UserExperienceOnPlanPackageBegin(pUX, pPackage->sczId, pPackage->currentState, pPackage->fCached, installCondition, repairCondition, &pPackage->requested, &pPackage->cacheType); 960 hr = BACallbackOnPlanPackageBegin(pUX, pPackage->sczId, pPackage->currentState, pPackage->fCached, installCondition, repairCondition, &pPackage->requested, &pPackage->cacheType);
965 ExitOnRootFailure(hr, "BA aborted plan package begin."); 961 ExitOnRootFailure(hr, "BA aborted plan package begin.");
966 962
967 if (BURN_PACKAGE_TYPE_MSI == pPackage->type) 963 if (BURN_PACKAGE_TYPE_MSI == pPackage->type)
@@ -973,7 +969,7 @@ static HRESULT InitializePackage(
973LExit: 969LExit:
974 if (fBeginCalled) 970 if (fBeginCalled)
975 { 971 {
976 UserExperienceOnPlanPackageComplete(pUX, pPackage->sczId, hr, pPackage->requested); 972 BACallbackOnPlanPackageComplete(pUX, pPackage->sczId, hr, pPackage->requested);
977 } 973 }
978 974
979 return hr; 975 return hr;
@@ -1375,7 +1371,7 @@ extern "C" HRESULT PlanRelatedBundlesInitialize(
1375 1371
1376 pRelatedBundle->planRelationType = pRelatedBundle->defaultPlanRelationType; 1372 pRelatedBundle->planRelationType = pRelatedBundle->defaultPlanRelationType;
1377 1373
1378 hr = UserExperienceOnPlanRelatedBundleType(pUserExperience, pRelatedBundle->package.sczId, &pRelatedBundle->planRelationType); 1374 hr = BACallbackOnPlanRelatedBundleType(pUserExperience, pRelatedBundle->package.sczId, &pRelatedBundle->planRelationType);
1379 ExitOnRootFailure(hr, "BA aborted plan related bundle type."); 1375 ExitOnRootFailure(hr, "BA aborted plan related bundle type.");
1380 1376
1381 if (BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_DOWNGRADE == pRelatedBundle->planRelationType && 1377 if (BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_DOWNGRADE == pRelatedBundle->planRelationType &&
@@ -1462,7 +1458,7 @@ extern "C" HRESULT PlanRelatedBundlesBegin(
1462 1458
1463 pRelatedBundle->package.defaultRequested = pRelatedBundle->package.requested; 1459 pRelatedBundle->package.defaultRequested = pRelatedBundle->package.requested;
1464 1460
1465 hr = UserExperienceOnPlanRelatedBundle(pUserExperience, pRelatedBundle->package.sczId, &pRelatedBundle->package.requested); 1461 hr = BACallbackOnPlanRelatedBundle(pUserExperience, pRelatedBundle->package.sczId, &pRelatedBundle->package.requested);
1466 ExitOnRootFailure(hr, "BA aborted plan related bundle."); 1462 ExitOnRootFailure(hr, "BA aborted plan related bundle.");
1467 1463
1468 // If uninstalling and the dependent related bundle may be executed, ignore its provider key to allow for downgrades with ref-counting. 1464 // If uninstalling and the dependent related bundle may be executed, ignore its provider key to allow for downgrades with ref-counting.
@@ -1662,7 +1658,7 @@ extern "C" HRESULT PlanRelatedBundlesComplete(
1662 1658
1663 pRelatedBundle->defaultRequestedRestore = pRelatedBundle->requestedRestore = BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT; 1659 pRelatedBundle->defaultRequestedRestore = pRelatedBundle->requestedRestore = BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT;
1664 1660
1665 hr = UserExperienceOnPlanRestoreRelatedBundle(pUserExperience, pRelatedBundle->package.sczId, &pRelatedBundle->requestedRestore); 1661 hr = BACallbackOnPlanRestoreRelatedBundle(pUserExperience, pRelatedBundle->package.sczId, &pRelatedBundle->requestedRestore);
1666 ExitOnRootFailure(hr, "BA aborted plan restore related bundle."); 1662 ExitOnRootFailure(hr, "BA aborted plan restore related bundle.");
1667 1663
1668 switch (pRelatedBundle->requestedRestore) 1664 switch (pRelatedBundle->requestedRestore)
@@ -1966,7 +1962,7 @@ extern "C" HRESULT PlanRollbackBoundaryBegin(
1966 pExecuteAction->type = BURN_EXECUTE_ACTION_TYPE_ROLLBACK_BOUNDARY_START; 1962 pExecuteAction->type = BURN_EXECUTE_ACTION_TYPE_ROLLBACK_BOUNDARY_START;
1967 pExecuteAction->rollbackBoundary.pRollbackBoundary = pRollbackBoundary; 1963 pExecuteAction->rollbackBoundary.pRollbackBoundary = pRollbackBoundary;
1968 1964
1969 hr = UserExperienceOnPlanRollbackBoundary(pUX, pRollbackBoundary->sczId, &pRollbackBoundary->fTransaction); 1965 hr = BACallbackOnPlanRollbackBoundary(pUX, pRollbackBoundary->sczId, &pRollbackBoundary->fTransaction);
1970 ExitOnRootFailure(hr, "BA aborted plan rollback boundary."); 1966 ExitOnRootFailure(hr, "BA aborted plan rollback boundary.");
1971 1967
1972 // Only use MSI transaction if authored and the BA requested it. 1968 // Only use MSI transaction if authored and the BA requested it.