diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-04-28 16:43:48 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-04-29 14:05:34 -0500 |
commit | 752f0e0576dc27e937c553ed9dce5576bd388e95 (patch) | |
tree | f95013ccb3bdea206cf8879d6bbf2411a04663c6 /src/engine/externalengine.cpp | |
parent | 7099dd38ab902e7fb92706314fa8710a34f165a5 (diff) | |
download | wix-752f0e0576dc27e937c553ed9dce5576bd388e95.tar.gz wix-752f0e0576dc27e937c553ed9dce5576bd388e95.tar.bz2 wix-752f0e0576dc27e937c553ed9dce5576bd388e95.zip |
Let BA override the package's cache type during Plan.
Rename cache types to REMOVE, KEEP, FORCE.
Change implementation of FORCE to not be through CACHED request state.
Create package condition enum so BA can tell when InstallCondition wasn't specified.
Tell BA when package is cached.
Tell BA when package is planned to be cached and uncached.
Diffstat (limited to 'src/engine/externalengine.cpp')
-rw-r--r-- | src/engine/externalengine.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/engine/externalengine.cpp b/src/engine/externalengine.cpp index 51a0e229..409353e4 100644 --- a/src/engine/externalengine.cpp +++ b/src/engine/externalengine.cpp | |||
@@ -582,6 +582,11 @@ HRESULT ExternalEnginePlan( | |||
582 | { | 582 | { |
583 | HRESULT hr = S_OK; | 583 | HRESULT hr = S_OK; |
584 | 584 | ||
585 | if (BOOTSTRAPPER_ACTION_LAYOUT > action || BOOTSTRAPPER_ACTION_UPDATE_REPLACE_EMBEDDED < action) | ||
586 | { | ||
587 | ExitOnRootFailure(hr = E_INVALIDARG, "BA passed invalid action to Plan: %u.", action); | ||
588 | } | ||
589 | |||
585 | if (!::PostThreadMessageW(dwThreadId, WM_BURN_PLAN, 0, action)) | 590 | if (!::PostThreadMessageW(dwThreadId, WM_BURN_PLAN, 0, action)) |
586 | { | 591 | { |
587 | ExitWithLastError(hr, "Failed to post plan message."); | 592 | ExitWithLastError(hr, "Failed to post plan message."); |
@@ -622,7 +627,7 @@ HRESULT ExternalEngineApply( | |||
622 | ExitOnNull(hwndParent, hr, E_INVALIDARG, "BA passed NULL hwndParent to Apply."); | 627 | ExitOnNull(hwndParent, hr, E_INVALIDARG, "BA passed NULL hwndParent to Apply."); |
623 | if (!::IsWindow(hwndParent)) | 628 | if (!::IsWindow(hwndParent)) |
624 | { | 629 | { |
625 | ExitOnFailure(hr = E_INVALIDARG, "BA passed invalid hwndParent to Apply."); | 630 | ExitOnRootFailure(hr = E_INVALIDARG, "BA passed invalid hwndParent to Apply."); |
626 | } | 631 | } |
627 | 632 | ||
628 | if (!::PostThreadMessageW(dwThreadId, WM_BURN_APPLY, 0, reinterpret_cast<LPARAM>(hwndParent))) | 633 | if (!::PostThreadMessageW(dwThreadId, WM_BURN_APPLY, 0, reinterpret_cast<LPARAM>(hwndParent))) |