RAWINPUTDEVICE 结构 (winuser.h)
定义原始输入设备的信息。
语法
typedef struct tagRAWINPUTDEVICE {
USHORT usUsagePage;
USHORT usUsage;
DWORD dwFlags;
HWND hwndTarget;
} RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE;
成员
usUsagePage
类型:USHORT
原始输入设备的顶级集合使用情况页。 有关可能值的详细信息,请参阅 Windows 中支持的
usUsage
类型:USHORT
原始输入设备的顶级集合使用情况 ID。 有关可能值的详细信息,请参阅 Windows 中支持的
dwFlags
类型:DWORD
指定如何解释 usUsagePage 和 usUsagePage提供的信息的模式标志。 它可以是零(默认值)或以下值之一。 默认情况下,只要具有窗口焦点,操作系统就会将具有指定 顶级集合(TLC)的设备的原始输入发送到已注册的应用程序。
价值 | 意义 |
---|---|
|
如果已设置,则从包含列表中删除顶级集合。 这会告知操作系统停止从与顶级集合匹配的设备读取。 |
|
如果已设置,则指定读取完整使用页时要排除的顶级集合。 此标志仅影响已使用 RIDEV_PAGEONLY指定的 TLC。 |
|
如果设置,则指定顶级集合来自指定 usUsagePage的所有设备。 请注意,usUsage 必须为零。 若要排除特定的顶级集合,请使用 RIDEV_EXCLUDE。 |
|
如果设置,这会阻止 |
|
如果已设置,则即使调用方不在前台,调用方也能接收输入。 请注意,必须指定 hwndTarget。 |
|
如果设置,鼠标按钮单击不会激活其他窗口。 仅当为鼠标设备指定了 RIDEV_NOLEGACY 时,才能指定 RIDEV_CAPTUREMOUSE。 |
|
如果已设置,则不会处理应用程序定义的键盘设备热键。 但是,系统热键;例如,仍处理 Alt+TAB 和 Ctrl+Alt+DEL。 默认情况下,将处理所有键盘热键。 即使未指定 RIDEV_NOLEGACY 并且 hwndTargetNULL,也可以指定 RIDEV_NOHOTKEYS。 |
|
如果已设置,则处理应用程序命令密钥。 仅当为键盘设备指定 RIDEV_NOLEGACY 时,才能指定 RIDEV_APPKEYS。 |
|
如果已设置,则仅当前台应用程序未处理输入时,调用方才能在后台接收输入。 换句话说,如果未为原始输入注册前台应用程序,则注册的后台应用程序将收到输入。
Windows XP:在 Windows Vista 之前不支持此标志 |
|
如果已设置,则允许调用方接收设备到达和设备删除的 WM_INPUT_DEVICE_CHANGE 通知。
Windows XP:在 Windows Vista 之前不支持此标志 |
hwndTarget
类型:HWND
目标窗口的句柄。 如果 NULL,则原始输入事件遵循键盘焦点,以确保仅焦点应用程序窗口接收事件。
言论
如果为鼠标或键盘设置了 RIDEV_NOLEGACY,则系统不会为该应用程序生成该设备的任何旧消息。 例如,如果使用 RIDEV_NOLEGACY设置鼠标 TLC,则不会生成 WM_LBUTTONDOWN 和 相关的旧鼠标消息。 同样,如果未使用 RIDEV_NOLEGACY设置键盘 TLC,则不会生成 WM_KEYDOWN 和 相关的旧键盘消息。
如果设置了 RIDEV_REMOVE 并且 hwndTarget 成员未 设置为 NULL,则 RegisterRawInputDevices 函数将失败。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | winuser.h (包括 Windows.h) |
另请参阅
概念
Windows 中支持的
参考