internal void InternalGetMessage(ref API_MSG msg) { HookInfo hInfo = GetInfoByThread(); for (int n = 0; n < hInfo.HookControllers.Count; n++) { IHookController2 ctrl = hInfo.HookControllers[n] as IHookController2; if (ctrl != null) { Message m = msg.ToMessage(); ctrl.WndGetMessage(ref m); msg.FromMessage(ref m); } } }
protected int GetMessageHook(int ncode, IntPtr wParam, IntPtr lParam) { HookInfo hInfo = GetInfoByThread(); API_MSG hookStr = (API_MSG)Marshal.PtrToStructure(lParam, typeof(API_MSG)); if (!hInfo.inHook && lParam != IntPtr.Zero) { try { hInfo.inHook = true; InternalGetMessage(ref hookStr); } finally { hInfo.inHook = false; } } return(CallNextHookEx(hInfo.wndHookHandle, ncode, wParam, lParam)); }