OnQueryEndSession 與 OnEndSession

     Windows 在註銷、重起、關機 之前會向每個當前正在運行的應用程序發送WM_QUERYENDSESSION消息, 如果該應用程序方便關閉的話,則在此消息的消息響 應函數OnQueryEndSession()中返回非0值(TRUE),否則返回0值(FALSE)。

 

     如果當前系統正在運行的應用程序全部返回非0值, 則Windows的註銷、重起、關機過程繼續下去,並且向所有運行的應用程序發送WM_ENDSESSION消息,並且消息參數爲TRUE;如果當前系統 正在運行的應用程序其中之一返回0值,則Windows的註銷、重起、關機過程被終止,並且不再繼續對剩餘的應用程序調用 OnQueryEndSession()消息響應函數,而是向已經調用過了OnQueryEndSession()消息響應函數的應用程序發送 WM_ENDSESSION消息,並且消息參數爲FALSE。

 

     所以一個應用程序只要響應WM_ENDSESSION消息,並在WM_ENDSESSION 消息的消息響應函數OnEndSession(BOOL bEnding) 中根據參數bEnding來判斷系統最後是否真的要註銷、重起、關機了,然後做出適當的反應即可。

 

原帖地址:http://hi.baidu.com/zhaoyong200518/blog/item/a422d1014c17840b728da554.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章