I've recently been getting into DirectX and along with that, game programming. I've started fleshing out my base of the program and now I'm looking to get into handling input. The way I have right now is through calling a function in my main loop which queries the mouse and keyboard using GetDeviceState (in a nutshell) and their respective arguments; however, after doing some more in depth reading into DirectInput, I've seen many people saying how DirectInput is NOT recommended for use anymore. Microsoft seems to agree too!
What I am looking for are other ways to go about doing this, along with discussion on the pros and cons about them (not necessary, but welcome. I can research)
Just use GetMessage or PeekMessage, see should-i-use-directinput-or-windows-message-loop for an example.
You can use the win32/windows API.
People of gamedev seem to agree: http://www.gamedev.net/community/forums/topic.asp?topic_id=511020
For keyboard I usually use GetAsyncKeyState();. It says if key is pressed in the time of execution of this function.
But for mouse the best solution is to use DirectInput I think. Because windows monitors it's position and you don't have to.
Its recommended to use "Raw Input" these days.