如何在SendInput中使用dwExtraInfo

时间:2015-09-05 20:31:29

标签: c winapi mouseevent user-data sendinput

我正在使用::SendInput发送鼠标点击事件:

void LeftDown (LONG x_cord, LONG y_cord)
{  
    INPUT    Input={0};
    // left down 
    Input.type = INPUT_MOUSE;
    Input.mi.dwFlags  = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN;
    Input.mi.dx = x_cord;
    Input.mi.dy = y_cord;
    Input.mi.dwExtraInfo = 0x12345;   //Is this how to use it?
    ::SendInput(1,&Input,sizeof(INPUT));
}

我想将dwExtraInfo设置为某个自定义值,并在目标应用程序的WndProc中提取它。然后(例如)如果将dwExtraInfo设置为某个特定值,我将忽略该单击:

LRESULT CALLBACK OSRWindow::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{ 
    if(message == WM_LBUTTONDOWN)
    {          
        if(GetMessageExtraInfo() == 0x12345)     //Is this how to use it?
            //ignore
        else
            //do something
    }
}

这种天真的方式是使用dwExtraInfo的正确方法还是有更好的做法?谢谢!

1 个答案:

答案 0 :(得分:2)

documentation说:

  

<强> dwExtraInfo

     

与鼠标事件关联的其他值。应用程序调用GetMessageExtraInfo来获取此额外信息。

所以是的,就像你在问题中展示它一样使用它。