Winapi - getRawInputBufferC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Winapi - getRawInputBuffer

Сообщение Anonymous »

У меня есть проблемы с GetRawInputBuffer. Код не возвращает ошибки, но в полученном ответе нет данных.

Код: Выделить всё

    UINT RawInputSize;
UINT Result;
Result = GetRawInputBuffer(NULL, &(RawInputSize), sizeof(RAWINPUTHEADER));
if (Result == -1)
{
DWORD ErrorCode = GetLastError();
return;
}

UINT AllocatedBufferByteCount = RawInputSize * 16;
RAWINPUT* RawInputBuffer = reinterpret_cast(malloc(AllocatedBufferByteCount));

UINT AllocatedBufferByteCountTwo = AllocatedBufferByteCount;
Result = GetRawInputBuffer(RawInputBuffer, &(AllocatedBufferByteCountTwo), sizeof(RAWINPUTHEADER));
if (Result == -1)
{
DWORD ErrorCode = GetLastError();
return;
}

UINT RawInputCount = Result;

RAWINPUT* RawInput = RawInputBuffer;
for (unsigned int i = 0; i < RawInputCount; ++i)
{
switch (RawInput->header.dwType)
{
case RIM_TYPEMOUSE:
{
this->UpdateMouse(RawInput->data.mouse);
break;
}
case RIM_TYPEKEYBOARD:
{
this->UpdateKeyboard(RawInput->data.keyboard);
break;
}
}

RawInput = NEXTRAWINPUTBLOCK(RawInput);
}

DefRawInputProc(&(RawInputBuffer), RawInputCount, sizeof(RAWINPUTHEADER));
< /code>

Этот код называется внешним корпусом wm_input < /code>. RawinputCount 
всегда нулевой. Если я использую getRawInputData внутренний случай wm_input , я правильно получаю данные.

Что не так с этим кодом и почему мои результаты пусты?

Подробнее здесь: https://stackoverflow.com/questions/288 ... nputbuffer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»