1b) Try turning up the DirectInput slider and enabling output messages for all device types in the control panel and see if you get any more informative output.
1b) As a test I just modified one of the DirectInput samples so that it deliberately didn''t release a device object, and I got a message in my debug spew saying: "DINPUT8: unloaded before all objects released. (cRef:4)".
2a) I find the fact that you''re getting messages regarding DirectInput leaks from Direct3D DLLs highly odd, even unlikely. I suspect there''s something else going on here, maybe to do with some shared control path between your D3D and DI code (e.g. D3D objects only being created when
2b) Unless a particular driver or the ActionMap display stuff is using D3D internally.
3) Is that deconstructor in a class whose object is a global or static variable ? If so, then the deconstructor might be called after WinMain exits.
Try breakpointing the deconstructor (a) to make sure it''s being called [i.e. issues with virtual destructors etc] and (b) to single step the DI calls to see if the messages you see originate there.
4) For debugging purposes, try modifying the SAFE_RELEASE macro you use to check the return value from each Release() call [and maybe causing a breakpoint] to see if there are any references still held by any objects being released. If there are, it indicates that one of the subordinate/child objects wasn''t released or has AddRef''d somewhere
--
Simon O''Connor
ex -Creative AsylumProgrammer &
Microsoft MVP