public void RegisterHidDevices() { SharpLib.Win32.RAWINPUTDEVICE[] rid = new SharpLib.Win32.RAWINPUTDEVICE[1]; rid[0].usUsagePage = (ushort)SharpLib.Hid.UsagePage.WindowsMediaCenterRemoteControl; rid[0].usUsage = (ushort)SharpLib.Hid.UsageCollection.WindowsMediaCenter.WindowsMediaCenterRemoteControl; rid[0].dwFlags = RawInputDeviceFlags.RIDEV_EXINPUTSINK; rid[0].hwndTarget = Handle; int repeatDelay = -1; int repeatSpeed = -1; using (Settings settings = new MPSettings()) { repeatDelay = settings.GetValueAsInt("remote", "HidRepeatDelayInMs", repeatDelay); repeatSpeed = settings.GetValueAsInt("remote", "HidRepeatSpeedInMs", repeatSpeed); } _handler = new SharpLib.Hid.Handler(rid, true, repeatDelay, repeatSpeed); if (!_handler.IsRegistered) { Debug.WriteLine("Failed to register raw input devices: " + Marshal.GetLastWin32Error().ToString()); } _handler.OnHidEvent += HandleHidEventThreadSafe; }
public void RegisterHidDevices() { SharpLib.Win32.RAWINPUTDEVICE[] rid = new SharpLib.Win32.RAWINPUTDEVICE[1]; rid[0].usUsagePage = (ushort)SharpLib.Hid.UsagePage.WindowsMediaCenterRemoteControl; rid[0].usUsage = (ushort)SharpLib.Hid.UsageCollection.WindowsMediaCenter.WindowsMediaCenterRemoteControl; rid[0].dwFlags = Const.RIDEV_EXINPUTSINK; rid[0].hwndTarget = Handle; int repeatDelay = -1; int repeatSpeed = -1; using (Settings settings = new MPSettings()) { repeatDelay = settings.GetValueAsInt("remote", "HidRepeatDelayInMs", repeatDelay); repeatSpeed = settings.GetValueAsInt("remote", "HidRepeatSpeedInMs", repeatSpeed); } _handler = new SharpLib.Hid.Handler(rid, true, repeatDelay, repeatSpeed); if (!_handler.IsRegistered) { Debug.WriteLine("Failed to register raw input devices: " + Marshal.GetLastWin32Error().ToString()); } _handler.OnHidEvent += HandleHidEventThreadSafe; }