Ejemplo n.º 1
0
 /// <summary>
 /// Raises the HookInvoked event. This method can be overriden
 /// for particular implementations of a hook, or an implementation
 /// can respond to the HookInvoked event.
 /// </summary>
 /// <param name="e">The HookEventArgs for this hook
 /// event.</param>
 protected virtual void OnHookInvoked(ref HookEventArgs e)
 {
     if (HookInvoked != null)
     {
         HookInvoked(this, ref e);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Override for the generic hook's invoked event to
        /// convert to a strongly typed MouseHookEvent:
        /// </summary>
        /// <param name="e">Generic Hook event argument details</param>
        protected override void OnHookInvoked(ref HookEventArgs e)
        {
            // Convert into mouse details:
            MOUSEHOOKSTRUCT mhs = (MOUSEHOOKSTRUCT)Marshal.PtrToStructure(
                e.lParam, typeof(MOUSEHOOKSTRUCT));

            MouseHookEventArgs mhe = new MouseHookEventArgs(
                e.wParam, mhs);

            OnMouseHookEvent(ref mhe);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Default filter function.
        /// </summary>
        /// <param name="code">Hook code</param>
        /// <param name="wParam">Hook wParam</param>
        /// <param name="lParam">Hook lParam</param>
        /// <returns></returns>
        private int CoreHookProc(int code, IntPtr wParam, IntPtr lParam)
        {
            // According to MSDN docs, if code < 0 then you must call
            // the next hook in the chain:
            if (code < 0)
            {
                return(CallNextHookEx(HookHandle, code, wParam, lParam));
            }
            else
            {
                // Call the event:
                HookEventArgs e = new HookEventArgs();
                e.HookCode = code;
                e.wParam   = wParam;
                e.lParam   = lParam;
                OnHookInvoked(ref e);

                // Yield to the next hook in the chain:
                return(CallNextHookEx(HookHandle, e.HookCode, e.wParam, e.lParam));
            }
        }