Would it make sense to indicate in the InputDeviceCapabilities for mouse that the primary and secondary buttons are swapped?
You can do this via querying GetSystemMetrics(SM_SWAPBUTTON) on Windows.
The only problem I see with using the InputDeviceCapabilities API for this is that you can't query the API dynamically for installed devices; you have to wait for a device to appear.