   Windows Input vs. DirectInput
  Which one is preferred for games? I'm working on an event system and I'm not sure whether or not to stick with my DirectInput devices and simply poll them and update the event system, or to simply route any Windows events into my events and use them. It seems like Windows' event system would be nicer being as I don't have to poll the device each frame, but I don't know if there actually is any real overhead from using the DirectInput devices. I like using DirectInput for a mouse more, but the keyboard seems trivial. What are people's thoughts on this?   
  DirectInput is now being deprecated in favor of Raw Input and XInput for the Xbox 360 Controller for Windows.   ;  Good to know. I was planning on using XInput to support the 360 controllers, but I hadn't heard of Raw Input. Time to start learning another API...   ;  DirectInput uses RawInput for keyboard and mouse, so you can likely do better by using it directly. In fact, DirectInput adds latency that you won't be getting when using RawInput directly.RawInput has been available for quite a while now, so it's a pretty compatible route to go, too.Meanwhile, XInput is great and simple to use, but is not installed on most machines. Thus, you have to either bundle the XInput installer with your installer (just like you'd do for D3DX), or you have to use LoadLibrary() to load XInput.dll instead of hard-linking.   ;  What about joysticks and gamepads? Wouldn't they be a pita to deal with using raw input?   