I was under the impression that DirectInput could handle two or more keyboard, as it's built to handle each input device as a seperate device, even if it's two keyboards. Is this not accurate?
If you do a DirectInput query asking for all devices, you can enumerate all devices, including multiple keyboards. However, the GUID and handles for all keyboards point to one device, which is the same one as if you've requested a handle to "SysKeyboard". Same with mice; all mice plugged in will enumerate separately, but point to the same device. It's a really bad quirk of the API.
MS claims the workaround is to use low-level WM_INPUT handlers, which is a nice way of saying, "If you want to use multiple keyboards or multiple mice, don't use DirectInput." Detection of multiple keyboards/mice is different between Win9x, Win2000, and WinXP. Likely Vista will be different too. Thus I'm not going to bother writing in a handler. While it would be a cool trick to be able to play 1 on 1 with Goldeneye and two mice, there's simply not enough demand and it's too much work to hack in.