aboutsummaryrefslogtreecommitdiff
path: root/src/engine/engine.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-03-29 19:14:06 +1000
committerSean Hall <r.sean.hall@gmail.com>2020-03-30 21:40:34 +1000
commit0354a00e74492ad8d930c5bf499bc8606e48b1c9 (patch)
tree5640d653449287699b4cd08cb6b64fe27c4fa8af /src/engine/engine.cpp
parent6ce359752afac0d3d70c2cf5fabd7d92859564ee (diff)
downloadwix-0354a00e74492ad8d930c5bf499bc8606e48b1c9.tar.gz
wix-0354a00e74492ad8d930c5bf499bc8606e48b1c9.tar.bz2
wix-0354a00e74492ad8d930c5bf499bc8606e48b1c9.zip
Add support for BundleExtensions.
Diffstat (limited to 'src/engine/engine.cpp')
-rw-r--r--src/engine/engine.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp
index 341fd471..488dbfe8 100644
--- a/src/engine/engine.cpp
+++ b/src/engine/engine.cpp
@@ -352,6 +352,8 @@ static void UninitializeEngineState(
352 352
353 ReleaseHandle(pEngineState->hMessageWindowThread); 353 ReleaseHandle(pEngineState->hMessageWindowThread);
354 354
355 BurnExtensionUninitialize(&pEngineState->extensions);
356
355 ::DeleteCriticalSection(&pEngineState->userExperience.csEngineActive); 357 ::DeleteCriticalSection(&pEngineState->userExperience.csEngineActive);
356 UserExperienceUninitialize(&pEngineState->userExperience); 358 UserExperienceUninitialize(&pEngineState->userExperience);
357 359
@@ -493,6 +495,7 @@ static HRESULT RunNormal(
493 HANDLE hPipesCreatedEvent = NULL; 495 HANDLE hPipesCreatedEvent = NULL;
494 BOOL fContinueExecution = TRUE; 496 BOOL fContinueExecution = TRUE;
495 BOOL fReloadApp = FALSE; 497 BOOL fReloadApp = FALSE;
498 BURN_EXTENSION_ENGINE_CONTEXT extensionEngineContext = { };
496 499
497 // Initialize logging. 500 // Initialize logging.
498 hr = LoggingOpen(&pEngineState->log, &pEngineState->variables, pEngineState->command.display, pEngineState->registration.sczDisplayName); 501 hr = LoggingOpen(&pEngineState->log, &pEngineState->variables, pEngineState->command.display, pEngineState->registration.sczDisplayName);
@@ -537,6 +540,13 @@ static HRESULT RunNormal(
537 ExitOnFailure(hr, "Failed to set layout directory variable to value provided from command-line."); 540 ExitOnFailure(hr, "Failed to set layout directory variable to value provided from command-line.");
538 } 541 }
539 542
543 // Setup the extension engine.
544 extensionEngineContext.pEngineState = pEngineState;
545
546 // Load the extensions.
547 hr = BurnExtensionLoad(&pEngineState->extensions, &extensionEngineContext);
548 ExitOnFailure(hr, "Failed to load BundleExtensions.");
549
540 do 550 do
541 { 551 {
542 fReloadApp = FALSE; 552 fReloadApp = FALSE;
@@ -546,6 +556,8 @@ static HRESULT RunNormal(
546 } while (fReloadApp); 556 } while (fReloadApp);
547 557
548LExit: 558LExit:
559 BurnExtensionUnload(&pEngineState->extensions);
560
549 // If the message window is still around, close it. 561 // If the message window is still around, close it.
550 UiCloseMessageWindow(pEngineState); 562 UiCloseMessageWindow(pEngineState);
551 563