Я пытаюсь получить сообщения для другого приложения с помощью хука Windows. Я настроил хук WH_GETMESSAGE с SetWindowsHookEx. Это делается через DLL. В моей функции GetMsgProc (которая должна вызываться всякий раз, когда целевое приложение получает сообщение) я хочу предпринять действия, основанные на типе сообщения. Однако у меня возникли проблемы с этим утверждением if.
LRESULT CALLBACK MessageHookProcedure(int code, WPARAM wParam, LPARAM lParam){
if(((MSG*)lParam)->message == WM_COMMAND){
MessageBox(NULL,L"The hook procedure was called",L"Test Window",MB_OK);
}
return CallNextHookEx(g_MessageHook,code,wParam,lParam);
}
По какой-то причине MessageBox никогда не создается. Я знаю, что приложение получает сообщения WM_COMMAND от Spy ++. Если я уберу оператор IF, MessageBox будет создаваться снова и снова, так как он получает множество сообщений.