Hey Tom, I've heard it's not recommended to use DirectInput for keyboard input. Instead you should use standard Windows Messages or Form events. Reasons against using DirectInput for keyboard input: * It creates a seperate thread to just read data from the keyboard using raw input (Which you can do yourself with Win32), meaning there's more overhead than just doing it yourself. * No support for keyboard repeat at the rate the user has set in the control pannel - you have to re-invent this yourself. Not too bad for game input, but a pain for GUI-style text input. * No support for capital letters and shifted characters - you have to detect caps lock / shift being held as well as your normal character. * No support for caps lock on/off; it's handled by a higher layer than DirectInput, so if someone starts your game with caps lock on, it gets confused. * More code to get the same effect as Window Messages. * It's recommended that you DON'T use it by Microsoft; Link: