I've decided I love XInput. If only all API's were this simple:
// Put this in the usual place:
// Put the following anywhere you want to check input:
if( ERROR_SUCCESS == XInputGetState( 0, ¤tState ) )
// Process the input here, just a simple case
// of checking flagged bits against constants.
// The device isn't connected. Use WM's or DInput instead.
In so little time it seems wrong, I have a player mesh zipping around in my little game world (it's the red "thing" at the back of the grid):