public static extern SafeHookHandle SetWindowsHookEx( WindowsHookType idHook, WindowsHookDelegate lpfn, IntPtr hMod, int dwThreadId);
private void HookGlobal(WindowsHookType hookType, HookCallback callback) { m_GlobalHookProc = (int nCode, IntPtr wParam, IntPtr lParam) => HookProc(nCode, wParam, lParam, callback); SafeHookHandle handle = SetWindowsHookEx(hookType, m_GlobalHookProc, Process.GetCurrentProcess().MainModule.BaseAddress, 0); }
private void HookApp(WindowsHookType hookType, HookCallback callback) { m_AppHookProc = (int nCode, IntPtr wParam, IntPtr lParam) => HookProc(nCode, wParam, lParam, callback); SafeHookHandle handle = SetWindowsHookEx(hookType, m_AppHookProc, IntPtr.Zero, GetCurrentThreadId()); }
public static extern IntPtr SetWindowsHookEx(int idHook, WindowsHookDelegate lpfn, IntPtr hMod, uint dwThreadId);
internal static extern IntPtr SetWindowsHookEx( [In] WindowsHookType idHook, [In] WindowsHookDelegate lpfn, [In][Optional] IntPtr hMod, [In][Optional] int dwThreadId);