<p>The library should;</p>
<ul>
<li>Be easy to use and few lines of client code should accomplish much</li>
<li>Be as platform independent as possible. (In case of future ports to other platforms)</li>
<li>Have C++ bindings.</li>
<li>Be mature and stable</li>
</ul>
<p>I would also like to be notified of most HID events through callbacks.</p>
<p>I have considered the following alternatives:</p>
<ul>
<li>libhid - (Unfortunately?) this is GPL and cannot be used in my application.</li>
<li>WDK - Seems to be a bit low-level for my use. I don’t need that kind of control.</li>
<li>atusbhid - This has an appropriate level of abstraction, but it is firmly tied to the Windows messaging loop</li>
</ul>
<p>Are there other alternatives to offer?</p>

If libhid works for you, then perhaps the thing to do would be to write an application (which you would GPL), which uses libhid to talk to devices, then provides whatever you need via a TCP connection. Your real application would connect via TCP to do what it needs. This would obviously be a massive performance hit.
This application would effectively be a 'shim' between libhid and your application. In this case, the shim would exist for legal, not technical, reasons.
I'm not saying it's a good idea, just that it's an idea.