Код не мой:
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);
}
}