Joystick - DirectX buttons

This post was born out of a talk with Topsy about directX (also called DirectInput) buttoms vs keyboard buttons

We all have them! We all use them. Most of us dont care why or how they work. They just need to work flawlessly.
I am talking about gaming devices. Joysticks, throttles, pedals, etc. Their behavior are by default controlled through the DirectX API (Advanced programming Interface)
From here on I will call them DirectX buttons and DirectX Axis.

By default their buttons behave differently than a press on the keyboard, but why should you care!?

Because this might help you solve a problem by allocating a button to a function to you gaming device instead of your keyboard.

DirectInput and XInput provide benefits over normal Windows input events:
[ul]
[li]they enable an application to retrieve data from input devices even when the application is in the background[/li][li]they provide full support for any type of input device, as well as for haptic feedback[/li][li]through action mapping, applications can retrieve input data without needing to know what kind of device generated that input[/li][/ul]

In short

Key-presses to supporting application like Teamspeak, TrackIR, Fraps, etc will benefit in stability by being apllocated to a directX button on your joystick or throttle (or pedals).

If you have an advanced joystick that can take advantage of programming like some of those from Thrustmaster and like to program you will have access to a lot more than the normal DX buttons as the 28. Unfortunately the Thrustmaster TARGET API does not allow access to more than 32 DX buttons. Even thought DirectX as it support for 8 axes, 128 buttons, and full-range POV.
But Thrustmaster TARGET can utilize the POV actually give you 8 extra DX buttons as a POV hat has 8 directions.

More on DirectInput at https://en.wikipedia.org/wiki/DirectInput

EDIT:
Be adviced that a DX buttons does not have a corresponding keyboard press, although games like BoS does support multiple/redundant input from joystick and keyboard.