aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/uithread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/uithread.cpp')
-rw-r--r--src/burn/engine/uithread.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/burn/engine/uithread.cpp b/src/burn/engine/uithread.cpp
index 187f3349..bb1e5972 100644
--- a/src/burn/engine/uithread.cpp
+++ b/src/burn/engine/uithread.cpp
@@ -18,6 +18,7 @@ struct UITHREAD_INFO
18{ 18{
19 BOOL fElevatedEngine; 19 BOOL fElevatedEngine;
20 BURN_USER_EXPERIENCE* pUserExperience; 20 BURN_USER_EXPERIENCE* pUserExperience;
21 BOOL* pfCriticalShutdownInitiated;
21}; 22};
22 23
23 24
@@ -132,6 +133,7 @@ static DWORD WINAPI ThreadProc(
132 133
133 info.fElevatedEngine = fElevatedEngine; 134 info.fElevatedEngine = fElevatedEngine;
134 info.pUserExperience = &pEngineState->userExperience; 135 info.pUserExperience = &pEngineState->userExperience;
136 info.pfCriticalShutdownInitiated = &pEngineState->fCriticalShutdownInitiated;
135 137
136 // Create the window to handle reboots without activating it. 138 // Create the window to handle reboots without activating it.
137 hWnd = ::CreateWindowExW(WS_EX_NOACTIVATE, wc.lpszClassName, NULL, WS_POPUP, 0, 0, 0, 0, HWND_DESKTOP, NULL, pContext->hInstance, &info); 139 hWnd = ::CreateWindowExW(WS_EX_NOACTIVATE, wc.lpszClassName, NULL, WS_POPUP, 0, 0, 0, 0, HWND_DESKTOP, NULL, pContext->hInstance, &info);
@@ -208,6 +210,8 @@ static LRESULT CALLBACK WndProc(
208 UserExperienceOnSystemShutdown(pInfo->pUserExperience, dwEndSession, &fCancel); 210 UserExperienceOnSystemShutdown(pInfo->pUserExperience, dwEndSession, &fCancel);
209 } 211 }
210 212
213 *pInfo->pfCriticalShutdownInitiated |= fCritical;
214
211 fRet = !fCancel; 215 fRet = !fCancel;
212 LogId(REPORT_STANDARD, MSG_SYSTEM_SHUTDOWN, LoggingBoolToString(fCritical), LoggingBoolToString(pInfo->fElevatedEngine), LoggingBoolToString(fRet)); 216 LogId(REPORT_STANDARD, MSG_SYSTEM_SHUTDOWN, LoggingBoolToString(fCritical), LoggingBoolToString(pInfo->fElevatedEngine), LoggingBoolToString(fRet));
213 return fRet; 217 return fRet;