GetRawInputBufferを用いた生入力読み込み
GetRawInputBuffer関数でローインプットの読み取りを行うためには、以下の手順で行います。
- Windows API関数をインポートする:
#include <Windows.h>
- RawInputバッファを定義する:
RAWINPUTBUFFER rawInputBuffer;
- GetRawInputBufferを使用して生入力バッファのサイズを取得する
UINT bufferSize;
GetRawInputBuffer(NULL, &bufferSize, sizeof(RAWINPUTHEADER));
- 元の入力バッファのメモリを割り当てる:
rawInputBuffer.buffer = (PRAWINPUT)malloc(bufferSize);
- 生の入力データを読み取るためバッファへGetRawInputBuffer関数を使用します
UINT bytesRead = GetRawInputBuffer(rawInputBuffer.buffer, &bufferSize, sizeof(RAWINPUTHEADER));
- 生の入力バッファ内のデータを走査します。
PRAWINPUT rawInput = (PRAWINPUT)rawInputBuffer.buffer;
while (bytesRead > 0)
{
// 处理原始输入数据
rawInput = NEXTRAWINPUTBLOCK(rawInput);
bytesRead -= rawInput->header.dwSize;
}
- 未加工入力バッファのメモリを解放します。
free(rawInputBuffer.buffer);
このコードは一例であり、実際の用途にあわせて変更や処理が必要であることに注意してください。また、元の入力処理には、より詳細で論理的な情報が必要となる可能性があります。詳細については、関連する文書や資料を参照してください。