private void RegisterRawInputDevices() { int count = 1; int size = Marshal.SizeOf(typeof(RawInput.RAWINPUTDEVICE)); RawInput.RAWINPUTDEVICE[] devices = new RawInput.RAWINPUTDEVICE[count]; //for DS4 //devices[0].usUsagePage = 1; //devices[0].usUsage = 5;//Game Pad //devices[0].hwndTarget = this.Handle; //devices[0].dwFlags = (int)RawInput.RIDEV.INPUTSINK; //PSVR devices[0].usUsagePage = 0xFF01; devices[0].usUsage = 0x01;//VS devices[0].hwndTarget = this.Handle; devices[0].dwFlags = (int)RawInput.RIDEV.INPUTSINK; /* * raw_input_device [0].usUsagePage = 0x0D; * // RIDEV_PAGEONLY specifies all devices whose top level collection is from the specified usUsagePage. * // Note that usUsage must be zero.b * raw_input_device [0].dwFlags = RIDEV_INPUTSINK | RIDEV_PAGEONLY; * raw_input_device [0].usUsage = 0x00; * // route the RAWINPUT messages to our window; this is required for the RIDEV_INPUTSINK option * raw_input_device [0].hwndTarget = hwnd; */ RawInput.RegisterRawInputDevices(devices, (uint)devices.Length, (uint)size); }
private void UnregisterRawInputDevices() { int size = Marshal.SizeOf(typeof(RawInput.RAWINPUTDEVICE)); RawInput.RAWINPUTDEVICE[] devices = new RawInput.RAWINPUTDEVICE[1]; devices[0].usUsagePage = 0xFF01; //Generic Desktop devices[0].usUsage = 0x01; //VS devices[0].dwFlags = (int)RawInput.RIDEV.REMOVE; RawInput.RegisterRawInputDevices(devices, (uint)devices.Length, (uint)size); }
private void UnregisterRawInputDevices() { int size = Marshal.SizeOf(typeof(RawInput.RAWINPUTDEVICE)); RawInput.RAWINPUTDEVICE[] devices = new RawInput.RAWINPUTDEVICE[1]; if (ds4Mode) { // for DS4 devices[0].usUsagePage = 1; devices[0].usUsage = 5;//Game Pad devices[0].dwFlags = (int)RawInput.RIDEV.REMOVE; } else { // for PSVR devices[0].usUsagePage = 0xFF01; //Generic Desktop devices[0].usUsage = 0x01; //VS devices[0].dwFlags = (int)RawInput.RIDEV.REMOVE; } RawInput.RegisterRawInputDevices(devices, (uint)devices.Length, (uint)size); }