17 bool WinShutdownMonitor::nativeEventFilter(
const QByteArray& eventType,
void* pMessage,
long* pnResult)
21 MSG* pMsg =
static_cast<MSG*
>(pMessage);
23 switch (pMsg->message) {
24 case WM_QUERYENDSESSION: {
41 void WinShutdownMonitor::registerShutdownBlockReason(
const QString& strReason,
const HWND& mainWinId)
43 typedef BOOL(WINAPI * PSHUTDOWNBRCREATE)(HWND, LPCWSTR);
44 PSHUTDOWNBRCREATE shutdownBRCreate = (PSHUTDOWNBRCREATE)GetProcAddress(GetModuleHandleA(
"User32.dll"),
"ShutdownBlockReasonCreate");
45 if (shutdownBRCreate ==
nullptr) {
46 qWarning() <<
"registerShutdownBlockReason: GetProcAddress for ShutdownBlockReasonCreate failed";
50 if (shutdownBRCreate(mainWinId, strReason.toStdWString().c_str()))
51 qWarning() <<
"registerShutdownBlockReason: Successfully registered: " + strReason;
53 qWarning() <<
"registerShutdownBlockReason: Failed to register: " + strReason;