Здравствуйте Sarkisov Sergei, Вы писали:
SS>Господа, проясните пожалуйста ситуацию по поводу локальных и глобальных хуков. В литературе и в форумах пишут о том, что поставить глоб. хук можно только из DLL. Но приведённый ниже код ставит хук на клавиатуру и Beep-ает везде — это разве не глобальный хук ? (про NextWindowHook я знаю и про обмен между процессами с пом. файлмаппинга тоже)
SS>Саму теорию я под сомнение не ставлю, просто хотелось бы понять в чём разница между указанным хуком и хуком из DLL.
SS>LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {
SS> Beep(20,20);
SS> return 0;
SS>}
SS>int APIENTRY WinMain(HINSTANCE hInstance,
SS> HINSTANCE hPrevInstance,
SS> LPSTR lpCmdLine,
SS> int nCmdShow)
SS>{
SS> MSG msg;
SS> SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,NULL);
SS> while (GetMessage(&msg,0,0,0)) {
SS> }
SS> return 0;
SS>}
А у меня не Beep-ает. Под Win XP Pro. Единственное изменение — добавил строчку #include <windows.h>. Или в этом и был секрет

?