Пауза выключения Windows
Как я могу приостановить выключение достаточно долго для моего приложения? Я нашел пример, но это для Delphi - я не могу перевести его на C++.
1 ответ
Решение
Вот перевод C++Builder VCL кода Delphi:
class TForm1 : public TForm
{
..
protected:
void __fastcall WMQueryEndSession(TWMQueryEndSession &Message);
..
public:
..
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_QUERYENDSESSION, TWMQueryEndSession, WMQueryEndSession)
END_MESSAGE_MAP(TForm)
};
...
void __fastcall TForm1::WMQueryEndSession(TWMQueryEndSession &Message)
{
Message.Result = TRUE;
if ((Message.Unused & ENDSESSION_CRITICAL) == 0)
{
ShutdownBlockReasonCreate(Handle, L"please wait while muting...");
Sleep(45000); // do your work here
ShutdownBlockReasonDestroy(Handle);
}
}