I'll have to look more thoroughly at the code changes you posted.. Though, for a quick reply right now (gotta get a paper written tonite), I do not really want to maintain a list of the created Input Devices (I do in the case of JoySticks, for various reasons.. but not really by choice). My reasoning is the same as not wanting to have multiple Event Listeners per device.. It complicates the removal process when you are removing the same device from the callback event (ie.. in response to a keypress). As far as the static variable for the Win32 WinProc, I state in the other thread, that my intents on the new OIS WinProc (and other OS wrapper) class was to completely take over the event procedure. So, it will hold it's own data in the custom data area (probably a pointer to the Win32InputManager). It will also call your Window Listener, so you do not need to do any fudgery yourself :wink: - at least, in theory, this sounds like it will work to me?
Also, in regards to the mouse aquire stuff, I do not want to make any of these changes until the next version... I want to get version 0.4.0 out the door this weekend first (Includes numerous bug Fixes and FF Support). Then, for 0.5.0 will be looking at adding the Win32 Message Loop wrapper class for better handling of Dead Key combinations.. and add some of the mouse changes you out in your patch - acquire being the main.