Всем привет, нуждаюсь в вашей помощи, проблема такова: Мне необходимо перехватывать оконные сообщения и записывать их в файл. У меня есть программа для перехвата нажатия клавиш, работает она корректно. Я пытался изменить ее под себя, и для этого поменял параметр в SetWindowsHookEx с обработчика нажатия клавишь на WH_CALLWNDPROC. В результате в лог-файле у меня везде код равен нулю - nCode=0 wParam=00000000; Помогите пожалуйсто и подскажите в чем ошибка, код кидаю ниже. Всем заранее спасибо. ДЛЛ БИБЛИОТЕКА, С ФУНКЦИЕЙ ОБРАБОТКИ Код (Text): //-------------------------- #include <windows.h> #include <stdio.h> #pragma hdrstop //-------------------------- // Объявляем функцию для того, чтобы основная прога могла её поюзать из DLL extern "C" __declspec(dllexport) LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam); //-------------------------- // "Шпионская" функция //-------------------------- LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam) { FILE *f; // Указатель на файл // Открываем файл с логом на добавление, если его нет - создаём if((f=fopen("c:\\logfile.txt","a"))!=NULL) { fprintf(f,"nCode=%d wParam=%p\n", code,wParam); fclose(f); } return CallNextHookEx(NULL, code, wParam, lParam); } //-------------------------- // Функция входа в DLL - её не оставляем как есть //-------------------------- int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) { return 1; } //-------------------------- И главная программа: Код (Text): #include <vcl.h> #include <condefs.h> #include <winuser.h> #include <winbase.h> #include <stdio.h> //--------------------------------------------------------------------------- HHOOK hook; // Handle íàøåé "øïèîíñêîé" ôóíêöèè //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { typedef int (CALLBACK* lpfn)(); lpfn hookfunc; HINSTANCE hDLL=LoadLibrary("hookdll.dll"); hookfunc=(lpfn)GetProcAddress(hDLL,"KeyboardProc"); hook=SetWindowsHookEx(WH_CALLWNDPROC, hookfunc, LoadLibrary("hookdll.dll"), 0 ); while(1) {}; } //--------------------------