private static HookResult HookGlobal(int hookId, Callback callback) { _globalHookProc = (code, param, lParam) => HookProcedure(code, param, lParam, callback); var hookHandle = HookNativeMethods.SetWindowsHookEx( hookId, _globalHookProc, Process.GetCurrentProcess().MainModule.BaseAddress, 0); if (hookHandle.IsInvalid) { ThrowLastUnmanagedErrorAsException(); } return(new HookResult(hookHandle, _globalHookProc)); }
private static HookResult HookApp(int hookId, Callback callback) { _appHookProc = (code, param, lParam) => HookProcedure(code, param, lParam, callback); var hookHandle = HookNativeMethods.SetWindowsHookEx( hookId, _appHookProc, IntPtr.Zero, ThreadNativeMethods.GetCurrentThreadId()); if (hookHandle.IsInvalid) { ThrowLastUnmanagedErrorAsException(); } return(new HookResult(hookHandle, _appHookProc)); }