过滤输入消息

除非返回 E_NOTIMPL,否则每当收到一条消息时都会由 PresentationHost.exe 调用。

语法

HRESULT FilterInputMessage( [in] MSG* pMsg ) ;

参数

pMsg

[in] 传递给正在获取原始输入的窗口的WM_INPUT消息。

属性值/返回值

HRESULT:

S_OK - 筛选器未处理该消息,可能会进行进一步的处理。

S_FALSE - 筛选器处理了此消息,不应进行进一步处理。

E_NOTIMPL – 如果返回此值,则不会再次调用 FilterInputMessage 。 这可能来自一个主机应用程序,该应用程序仅对提供自定义进度和错误用户界面感兴趣,而 PresentationHost.exe 不希望从 PresentationHost.exe转发原始输入消息。

注解

PresentationHost.exe 是各种原始输入设备的目标,包括键盘、鼠标和远程控制。 有时,宿主应用程序中的行为依赖于可能被 PresentationHost.exe消耗的输入。 例如,主机应用程序可能依赖于接收某些输入消息来确定是否显示特定的用户界面元素。

若要允许主机应用程序接收必要的输入消息以提供这些行为,PresentationHost.exe 通过调用 FilterInputMessage 将适当的原始输入消息转发到托管应用程序。

托管应用程序通过注册 GetRawInputDevices 返回的原始输入设备集(人机接口设备)来接收原始输入消息。

另请参阅