Personally if I built it then I would use the standard index for all possible slider/axis/etc. things for the main interface. Also, create an interface struct that you could retrieve from the joystick object that describes which axis does which, so something akin to:
IndexInfo indexInfo1 = joystick1->GetIndexInformation();
// and you would still do the standard buffered callbacks and so forth (in the current style of using a single callback for all axis with the index being passed in as well), but in your gui you could do things like:
if(indexInfo1.axisX != -1) possibleBindingListInGui.push(joystickaxispair("Axis X", indexInfo1.axisX);
if(indexInfo1.slider2 != -1) possibleBindingListInGui.push(joystickaxispair("Slider 2", indexInfo1.slider2);
// Although a better interface being future proof for later control styles (more axis or different names or whatever) would be to just query it with a string, although you would want to precalc that early on like:
this->axisX = indexInfo1["AxisX"]; // if -1 then unusable, just test your own axisX value later on for if it is -1 or not to see if it is a valid index, if it is then the index in the axis list, such as that passed into the buffered callback, would equal this if it is this
this->axisX = indexInfo1["Axis Left/Right"]; // Depending on the object, it could bind different names if it used a unique interface, such as with one of those 6dof controllers with a unique internal API, whereas it should also properly bind to AxisX as well, can bind to as many names internally as it should wish, but always preferably supporting a basic subset
this->axisX
this->slider2 = indexInfo1["Slider2"];
// Then do the same as above for your gui stuff
if(this.axisX != -1) possibleBindingListInGui.push(joystickaxispair("Axis X", this.axisX);
if(this.slider2 != -1) possibleBindingListInGui.push(joystickaxispair("Slider 2", this.slider2);
As stated above, stuff that it dealt with for the user gui (to do all their binding and other such mess), but not stuff that is messed with for normal game logic.