yeah finding out what button/lever/dial corresponds to what index is a whole new topic.
I had proposed a simple scheme for using zip named after the joystick (Direct Input joysticks have names, usually describing the brand and model) files containing a .ini with axis/button ids, their textual description ("left shoulder button") and an optional image filename. The image files would be contained in the zip file, and they could be used in the game's interfase.
This means that for a new controller, any user could easily make a profile for it and have it supported in Construct games (actually I had designed this for my own unfinished engine). A default profile could be included, and maybe keyboard and mouse defaults could also be supported.
Of course, without DirectInput controller support, it's all moot.