ATMLCommonLibrary.utils.GlobalKeyboardHook.hookProc C# (CSharp) Method

hookProc() public method

The callback for the keyboard hook
public hookProc ( int code, int wParam, KeyboardHookStruct &lParam ) : int
code int The hook code, if it isn't >= 0, the function shouldn't do anyting
wParam int The event type
lParam KeyboardHookStruct The keyhook event information
return int
        public int hookProc(int code, int wParam, ref KeyboardHookStruct lParam)
        {
            if (code >= 0)
            {
                Keys key = (Keys) lParam.vkCode;

                if (HookedKeys.Contains(key))
                {
                    key = AddModifiers(key);
                    KeyEventArgs kea = new KeyEventArgs(key);
                    if ((wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN) && (KeyDown != null))
                        KeyDown(this, kea);
                    else if ((wParam == WM_KEYUP || wParam == WM_SYSKEYUP) && (KeyUp != null))
                        KeyUp(this, kea);

                    if (kea.Handled)
                        return 1;
                }
            }

            return CallNextHookEx(hhook, code, wParam, ref lParam);
        }