最終更新:2014-12-02 (火) 03:29:00 (2987d)  

GetRawInputData
Top / GetRawInputData

RegisterRawInputDevicesで登録するとWM_INPUTが来るようになるのでそれを解析。

http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms645596(v=vs.85).aspx

UINT WINAPI GetRawInputData(
  _In_       HRAWINPUT hRawInput,
  _In_       UINT uiCommand,
  _Out_opt_  LPVOID pData,
  _Inout_    PUINT pcbSize,
  _In_       UINT cbSizeHeader
);

パラメータ

  • RAWINPUT - 入力sとしてWM_INPUTのLParamを渡す。
  • uiCommand - The command flag.
    • 0x10000003RID_INPUT?Get the raw data from the RAWINPUT structure.
      0x10000005RID_HEADER?Get the header information from the RAWINPUT structure.
  • pData 入力されたデータ。RAWINPUT
    • typedef struct tagRAWINPUT {
        RAWINPUTHEADER header;
        union {
          RAWMOUSE    mouse;
          RAWKEYBOARD keyboard;
          RAWHID      hid;
        } data;
      } RAWINPUT, *PRAWINPUT, *LPRAWINPUT;
    • RAWMOUSE
    • RAWKEYBOARD?
    • RAWHID

WndProcの処理

protected override void WndProc(ref Message m)
{
	if (m.Msg == WM_INPUT)
		//ここでGetRawInputData
		base.WndProc(ref m);
	}
}