   Combining DirectInput and Windows Messages
  I want to create an input subsystem class that uses DirectInput, but falls back on the Windows message queue if DInput8 isn''t installed. In my attempts to get this working, the only thing I''ve found so far is that they both use char[256] buffers to hold the keyboard state. Now, in order to have a common interface (use the same CInput::GetKey() function), I would have to translate between the DIK_* messages and the VK_* messages. Plus, using the windows messaging queue with a class would mean that I have to write separate functions for each message; for example, one for WM_KEYDOWN, WM_KEYUP, WM_MOUSEMOVE (just a made up one, i havent looked into mouse messages yet), or I could write a function that processes all relevant Windows messages, and place it outside the WndProc switch. Has anyone tried to do this before? I don''t want to write two separate DInput and WM_* classes.. 
  What about looking at it from the other way around??You could always combine the DInput8 with GetAsyncKeyState..ie. if DirectInput8 isn''t available then use GetAsync to snag the current snapshot of the keyboard.IMHO, the only time I''d use the windows message queue to process input is when the user is entering chat text or console commands, etc. For actual game movement input I''d use the DirectInput8/GetAsyncKeyState methods..;  Hm, now why didn''t I think of that?  I believe I remember reading in some other posts that GetAsyncKeyState() didn''t always work, that it only reported one key at a time. Has anyone experienced this problem? 