我试图理解WM_ENDSESSION通知。 wParam
为0时会调用什么情况?
据我所知,如果会话结束,它会设置为TRUE
。但它还能做些什么。
答案 0 :(得分:1)
答案在您在问题中链接的文档中:
的lParam
此参数可以是以下一个或多个值。如果此参数为0,则系统正在关闭或重新启动(无法确定正在发生的事件)。ENDSESSION_CLOSEAPP
为0x1
如果wParam为TRUE,则应用程序必须关闭。应该自动保存任何数据而不提示用户(有关更多信息,请参阅备注)。当应用程序使用需要替换的文件,必须为系统提供服务或系统资源耗尽时,Restart Manager会发送此消息。如果应用程序已使用RegisterApplicationRestart函数注册重新启动,则将重新启动该应用程序。有关更多信息,请参阅应用程序指南。
如果wParam为FALSE,则不应关闭应用程序。
如果应用向WM_ENDSESSION
的响应为TRUE,则会收到WM_QUERYENDSESSION
以允许注销/关闭。
收到WM_ENDSESSION
时,如果lParam
为ENDSESSION_CLOSEAPP
,则wParam
可能为假,表示注销/关闭已取消且应用毕竟不需要退出。