summaryrefslogtreecommitdiff
path: root/src/burn/engine/engine.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-06-08 11:21:53 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-06-09 13:47:53 -0500
commitd47c73dbcd0a314cf3346b9b1294063ed4a124c4 (patch)
tree8ad3f401edd856ed7aaebba0306ee6d8972f2d13 /src/burn/engine/engine.cpp
parent881a6c9bd0c3b3134277605824dd5a9ceaaf176d (diff)
downloadwix-d47c73dbcd0a314cf3346b9b1294063ed4a124c4.tar.gz
wix-d47c73dbcd0a314cf3346b9b1294063ed4a124c4.tar.bz2
wix-d47c73dbcd0a314cf3346b9b1294063ed4a124c4.zip
Show Burn splash screen earlier.
Make the initial Burn process show the splash screen, and show it before parsing the manifest. Fixes half of #5300
Diffstat (limited to 'src/burn/engine/engine.cpp')
-rw-r--r--src/burn/engine/engine.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/burn/engine/engine.cpp b/src/burn/engine/engine.cpp
index 1314ddc6..4323b540 100644
--- a/src/burn/engine/engine.cpp
+++ b/src/burn/engine/engine.cpp
@@ -122,6 +122,11 @@ extern "C" HRESULT EngineRun(
122 122
123 engineState.command.nCmdShow = nCmdShow; 123 engineState.command.nCmdShow = nCmdShow;
124 124
125 if (BURN_MODE_ELEVATED != engineState.mode && BOOTSTRAPPER_DISPLAY_NONE < engineState.command.display && !engineState.command.hwndSplashScreen)
126 {
127 SplashScreenCreate(hInstance, NULL, &engineState.command.hwndSplashScreen);
128 }
129
125 // initialize platform layer 130 // initialize platform layer
126 PlatformInitialize(); 131 PlatformInitialize();
127 132
@@ -452,7 +457,10 @@ static HRESULT RunUntrusted(
452 hr = CoreAppendFileHandleSelfToCommandLine(wzCleanRoomBundlePath, &hFileSelf, &sczParameters, NULL); 457 hr = CoreAppendFileHandleSelfToCommandLine(wzCleanRoomBundlePath, &hFileSelf, &sczParameters, NULL);
453 ExitOnFailure(hr, "Failed to append %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF); 458 ExitOnFailure(hr, "Failed to append %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF);
454 459
455 hr = StrAllocFormattedSecure(&sczParameters, L"%ls %ls", sczParameters, wzCommandLine); 460 hr = CoreAppendSplashScreenWindowToCommandLine(pEngineState->command.hwndSplashScreen, &sczParameters);
461 ExitOnFailure(hr, "Failed to append %ls", BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN);
462
463 hr = StrAllocConcatFormattedSecure(&sczParameters, L" %ls", wzCommandLine);
456 ExitOnFailure(hr, "Failed to append original command line."); 464 ExitOnFailure(hr, "Failed to append original command line.");
457 465
458#ifdef ENABLE_UNELEVATE 466#ifdef ENABLE_UNELEVATE
@@ -525,11 +533,6 @@ static HRESULT RunNormal(
525 ExitFunction1(hr = S_OK); 533 ExitFunction1(hr = S_OK);
526 } 534 }
527 535
528 if (pEngineState->userExperience.fSplashScreen && BOOTSTRAPPER_DISPLAY_NONE < pEngineState->command.display)
529 {
530 SplashScreenCreate(hInstance, NULL, &pEngineState->command.hwndSplashScreen);
531 }
532
533 // Create a top-level window to handle system messages. 536 // Create a top-level window to handle system messages.
534 hr = UiCreateMessageWindow(hInstance, pEngineState); 537 hr = UiCreateMessageWindow(hInstance, pEngineState);
535 ExitOnFailure(hr, "Failed to create the message window."); 538 ExitOnFailure(hr, "Failed to create the message window.");