I'm working on a small concept demo for a friend and I'm stuck on the UI.
I'm trying to build something akin to an FPS interface (using mouse-look and the iconic WASD). I'm working in a Windows environment (Win7 to be precise), so I figured I'd use the standard Windows messaging system.

So far I've managed to make use of the mouse effectively enough. However, I'm having problems with WASD. From what I can tell (yes, I use MSDN), character keys will be processed into WM_CHAR messages. That "wouldn't" be a problem if they weren't capital sensitive making "w" and "W" different messages.

Google led to an interesting bit of knowledge called Interrupts. Yet, after weeks of searching and code examples, I learned that Windows has since hidden interrupts away from coders.

So here's my problem: is there a lower level option for grabbing keyboard (and hopefully mouse) input, or am I stuck with Windows messages?

Also, I eventually want to support a customizable UI so (as far as I know) using the c++ keyboard pipe (cin) is out because it weeds out some of the odder keys.

Code example and online reading resources are welcome.
And I do consider myself an "advanced" c++ coder

So I managed to figure it out myself.

For those who want to know:
As I was wandering a forum looking at something slightly related, someone mentioned as a side thought "Raw Input," a Windows API that I had never heard of before. Sure enough, it's what I was wanting.