// ************************************************************** // ************************************************************** // Handles the hook event private void CbtHookInvoked(object sender, HookEventArgs e) { CbtHookAction code = (CbtHookAction)e.HookCode; IntPtr wParam = e.wParam; IntPtr lParam = e.lParam; // Handle hook events (only a few of available actions) switch (code) { case CbtHookAction.HCBT_CREATEWND: HandleCreateWndEvent(wParam, lParam); break; case CbtHookAction.HCBT_DESTROYWND: HandleDestroyWndEvent(wParam, lParam); break; case CbtHookAction.HCBT_ACTIVATE: HandleActivateEvent(wParam, lParam); break; } return; }
private IntPtr CbtWindowsHookProc(CbtHookAction code, IntPtr wParam, IntPtr lParam) { if (code == CbtHookAction.HCBT_SETFOCUS) { SendFocusChangeNotification(wParam, lParam); } return(User32.CallNextHookEx(IntPtr.Zero, code, wParam, lParam)); }
public static extern IntPtr CallNextHookEx(IntPtr hhk, CbtHookAction code, IntPtr wParam, IntPtr lParam);