Есть чужое окно, для которого надо отлавливать нажатие кнопки. Написал хук, повесил его на WH_GETMESSAGE и жду когда этому окну придет WM_COMMAND от кнопки.
Утилита типа spy++ показывает что мессага приходит, но мой хук не ловит её. После секиса удалось узнать что вместо WM_COMMAND, который имеет ID типа 0х111 ловится другая месага (смотрю по msg->message в хуке), ID который что-то типа 49ХХ2. Если вместо WM_COMMAND подставить это значение, то все хорошо.
Вопрос: Что это может быть?
PD>Скорее всего ты что-то напутал в своем обработчике. Неправильно байты интерпретируешь. Код перехватчика покажи.
static LRESULT CALLBACK msghook(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0)
{
CallNextHookEx(hook, nCode,
wParam, lParam);
return 0;
}
LPMSG msg = (LPMSG)lParam;
if(msg->message == WM_COMMAND && msg->hwnd == hMyWnd) // не работает
PostMessage(hWndServer,
WM_USER +1,
0, 0);
return CallNextHookEx(hook, nCode, wParam, lParam);
}
если заменить msg->message == WM_COMMAND на msg->message == MY_WM_MESS то все работает... Может там дескриптор окна как-то xor-ится... информации по этоиу не нашел.. Да и вообще, если отлавливать только WM_COMMAND сообщения, то их приходит гараздо меньше чем надо
PD>Номер сообщения ?
точно непомню, что-то типа 49912 (дестярично)