private static bool ProcessRawInput(IntPtr hRawInput) { if (RawInput != null) { RawInputEventArgs args; try { args = new RawInputEventArgs(hRawInput); } catch { #if DEBUG throw; #else return(false); #endif // DEBUG } RawInput(null, args); return(true); } return(false); }
void RawDevice_RawInput(object sender, RawInputEventArgs e) { if (devices.Contains(e.Handle)) { DeviceStatus state = devices[e.Handle]; MouseData mouseData = e.GetRawData() as MouseData; if (mouseData != null) UpdateMouse(mouseData, state); else { DeviceData deviceData = e.GetRawData() as DeviceData; if (deviceData != null) UpdatePen(deviceData, state); } if(state.ButtonState == DeviceState.None) return; MouseContact contact = null; if (state.ButtonState == DeviceState.Down) { contact = new MouseContact(state); //Debug.WriteLine("Down: " + contact); contacts.Add(contact); } else if ((state.ButtonState == DeviceState.Move || state.ButtonState == DeviceState.Up) && contacts.Contains(e.Handle)) { contact = contacts[e.Handle]; //Debug.WriteLine("Move: " + contact); contact.Update(state); } if (contact != null) inputProvider.EnqueueContact(contact); if (state.ButtonState == DeviceState.Up) { contact = contacts[e.Handle]; contact.Update(state); //Debug.WriteLine("Up: " + contact); contacts.Remove(e.Handle); } } }
private static bool ProcessRawInput(IntPtr hRawInput) { if (RawInput != null) { RawInputEventArgs args; try { args = new RawInputEventArgs(hRawInput); } catch { #if DEBUG throw; #else return false; #endif // DEBUG } RawInput(null, args); return true; } return false; }