protected override bool ReleaseHandle() { //NOTE Calling Unhook during processexit causes deley if (_closing) { return(true); } return(HookNativeMethods.UnhookWindowsHookEx(handle) != 0); }
// Token: 0x06000317 RID: 791 RVA: 0x0000F43C File Offset: 0x0000D63C private static HookResult HookGlobal(int hookId, Callback callback) { HookProcedure hookProcedure = (int code, IntPtr param, IntPtr lParam) => HookHelper.HookProcedure(code, param, lParam, callback); HookProcedureHandle hookProcedureHandle = HookNativeMethods.SetWindowsHookEx(hookId, hookProcedure, Process.GetCurrentProcess().MainModule.BaseAddress, 0); if (hookProcedureHandle.IsInvalid) { HookHelper.ThrowLastUnmanagedErrorAsException(); } return(new HookResult(hookProcedureHandle, hookProcedure)); }
// Token: 0x06000316 RID: 790 RVA: 0x0000F3EC File Offset: 0x0000D5EC private static HookResult HookApp(int hookId, Callback callback) { HookProcedure hookProcedure = (int code, IntPtr param, IntPtr lParam) => HookHelper.HookProcedure(code, param, lParam, callback); HookProcedureHandle hookProcedureHandle = HookNativeMethods.SetWindowsHookEx(hookId, hookProcedure, IntPtr.Zero, ThreadNativeMethods.GetCurrentThreadId()); if (hookProcedureHandle.IsInvalid) { HookHelper.ThrowLastUnmanagedErrorAsException(); } return(new HookResult(hookProcedureHandle, hookProcedure)); }
private static IntPtr CallNextHookEx(int nCode, IntPtr wParam, IntPtr lParam) { return(HookNativeMethods.CallNextHookEx(IntPtr.Zero, nCode, wParam, lParam)); }
// Token: 0x06000328 RID: 808 RVA: 0x00003815 File Offset: 0x00001A15 protected override bool ReleaseHandle() { return(HookProcedureHandle._closing || HookNativeMethods.UnhookWindowsHookEx(this.handle) != 0); }