Код не мой: 
http://gamesmaker.ru/programming/directx/direct3d-urok-06-ispolzovanie-directinput/
//-----------------------------------------------------------------------------
// Name: bool CInput::Update(void)
// Desc: Обновление состояния клавиатуры  и мыши
//-----------------------------------------------------------------------------
void CInput::Update(void)
{
	HRESULT hr;
	// Опрашиваем клавиатуру
	hr = lpDIKeyboard->GetDeviceState(sizeof(BYTE)*256, &DIks); // Данные  с кла-вы
	if(FAILED(hr))	// Если мы потеряли устройство
	{
		do{ hr = lpDIKeyboard->Acquire(); // Пытаемся захватить
		}
		while(hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED);
	}
	// Опрашиваем мышь
	hr = lpDIMouse->GetDeviceState(sizeof(DIMOUSESTATE2), &DIms); // Данные  с мыши
	if(FAILED(hr))	// Если мы потеряли устройство
	{
		do{ hr = lpDIMouse->Acquire(); // Пытаемся захватить
		}
		while(hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED);
	}
}