protected EventSourceEventArgs<KeyInput> GetInputEventArgs(GlobalKeyboardMessage Message, GlobalKeyboardEventSourceCallbackData keyboardHookStruct) { var keyData = keyboardHookStruct.Data.KeyCode; var isKeyDown = Message.IsKeyDown(); var isKeyUp = Message.IsKeyUp(); var isExtendedKey = keyboardHookStruct.Data.Flags.HasFlag(KeyboardHookStructFlags.Extended); var Status = KeyStatusValue.Compute(isKeyDown, isKeyUp); var Data = new KeyInput(keyData, isExtendedKey, keyboardHookStruct.Data.ScanCode, Status); var ret = EventSourceEventArgs.Create(keyboardHookStruct.Data.Time, Data, keyboardHookStruct); return ret; }