Keyboard input is processed by CInputManager and forwarded to registered keyboard handlers (e.g. game clients) or as actions to the UI:
- If no keyboard handlers are registered or if they don't consume events, the keyboard events are forwarded to the UI via CInputManager::OnKey.
- Clients (e.g. game clients implementing KEYBOARD::IKeyboardHandler) call CInputManager::RegisterKeyboardHandler to register themselves as eligible for keyboard input events.
- Keyboards can emulate Joysticks as described in KEYBOARD::CJoystickEmulation.