private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { NetworkCommunicator.SendAsync(new HarmonyPacket() { Type = HarmonyPacket.PacketType.KeyBoardPacket, Pack = new HarmonyPacket.KeyboardPacket() { wParam = wParam.ToInt32(), Key = (Keys)Marshal.ReadInt32(lParam) } }); return((IntPtr)NetworkCommunicator.OnSlave + (int)NativeMethods.CallNextHookEx(_hookId, nCode, wParam, lParam)); }
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode < 0) { return(NativeMethods.CallNextHookEx(_hookId, nCode, wParam, lParam)); } var hookStruct = (MOUSEINPUT)Marshal.PtrToStructure(lParam, typeof(MOUSEINPUT)); var action = Mouse.MapWParamToFlags(wParam.ToInt32()); if (action == (uint)MouseFlag.Move) { NetworkCommunicator.SendAsync(new HarmonyPacket() { Type = HarmonyPacket.PacketType.MouseMovePacket, Pack = new HarmonyPacket.MouseMovePacket() { PosX = hookStruct.X, PosY = hookStruct.Y } }); } else { NetworkCommunicator.SendAsync(new HarmonyPacket() { Type = HarmonyPacket.PacketType.MousePacket, Pack = new HarmonyPacket.MousePacket { MouseData = hookStruct.MouseData, Action = Mouse.MapWParamToFlags(wParam.ToInt32()), Flags = hookStruct.Flags, } }); } return((IntPtr)NetworkCommunicator.OnSlave + (int)NativeMethods.CallNextHookEx(_hookId, nCode, wParam, lParam)); }