public override void SetHook() { //фильтр - колбэк, при перехвате события mCallbackMouse = LowLevelMouseHookProc; //дескриптор файла, в котором содержится процедура фильтра, в данном случае 0, чтобы получить дескриптор файла текущего процесса IntPtr deskriptorFileProc = GetModuleHandle(IntPtr.Zero); //идентификатор потока, с которым должен быть связан хук, в данном случае 0, чтобы связаться со всеми существующими потоками int idStream = 0; //перехватываем WH_MOUSE_LL - события ввода с клавиатуры mMouseHook = SetWindowsHookEx(WH_MOUSE_LL, mCallbackMouse, deskriptorFileProc, idStream); }
protected static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyProcDelegate lpfn, IntPtr hMod, int dwThreadId);