15bool WinShutdownMonitor::nativeEventFilter(
const QByteArray &eventType,
void *pMessage, qintptr *pnResult)
19 MSG *pMsg =
static_cast<MSG *
>(pMessage);
23 case WM_QUERYENDSESSION:
42void WinShutdownMonitor::registerShutdownBlockReason(
const QString& strReason,
const HWND& mainWinId)
44 typedef BOOL (WINAPI *PSHUTDOWNBRCREATE)(HWND, LPCWSTR);
45 PSHUTDOWNBRCREATE shutdownBRCreate = (PSHUTDOWNBRCREATE)(
void*)GetProcAddress(GetModuleHandleA(
"User32.dll"),
"ShutdownBlockReasonCreate");
46 if (shutdownBRCreate ==
nullptr) {
47 qWarning() <<
"registerShutdownBlockReason: GetProcAddress for ShutdownBlockReasonCreate failed";
51 if (shutdownBRCreate(mainWinId, strReason.toStdWString().c_str()))
52 qInfo() <<
"registerShutdownBlockReason: Successfully registered: " + strReason;
54 qWarning() <<
"registerShutdownBlockReason: Failed to register: " + strReason;