GetMessage與PeekMessage的區別及其在WH_GETMESSAGE鉤子中的不同表現
區別一: peekmessage不管訊息佇列裡有沒有訊息都會馬上返回,有訊息返回訊息,沒訊息返回空值, getmessage等待到有訊息的時候才返回, 區別二: peekmessage可以根據引數決定是否將訊息保留在佇列中, PM_NOREMOVE:該引數指示保留訊息 PM_REMOVE:該引數指示移去訊息而getmessage獲得訊息後回把訊息從訊息佇列中刪去 例程: // GetMessage Damo int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR szCmdLine, int iCmdShow) { MSG msg ; while(GetMessage
WH_GETMESSAGE鉤子
在GetMessage和PeekMessage將一個訊息返回到呼叫的應用程式之前,會做一個驗證是否存在一個WH_GETMESSAGE鉤子的測試。如果有一個已經被安裝了,那這個鉤子會被呼叫。如果PeekMessage沒有發現可用的訊息並返回一個空值時,這個鉤子將不會被呼叫