diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-06-08 11:21:53 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-06-09 13:47:53 -0500 |
commit | d47c73dbcd0a314cf3346b9b1294063ed4a124c4 (patch) | |
tree | 8ad3f401edd856ed7aaebba0306ee6d8972f2d13 /src/burn/engine/engine.cpp | |
parent | 881a6c9bd0c3b3134277605824dd5a9ceaaf176d (diff) | |
download | wix-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.cpp | 15 |
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."); |