IMediaEvent::GetEvent 方法 (control.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 GetEvent
从事件队列中检索下一个事件通知。
语法
HRESULT GetEvent(
[out] long *lEventCode,
[out] LONG_PTR *lParam1,
[out] LONG_PTR *lParam2,
[in] long msTimeout
);
参数
[out] lEventCode
指向接收事件代码的变量的指针。
[out] lParam1
指向接收第一个事件参数的变量的指针。
[out] lParam2
指向接收第二个事件参数的变量的指针。
[in] msTimeout
超时间隔(以毫秒为单位)。 使用 INFINITE 阻止,直到有事件为止。
返回值
返回 HRESULT 值。 可能的值包括下表中显示的值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
超时时间已到。 |
备注
如果队列中没有事件,此方法将等待最多 msTimeout 毫秒,以便事件到达。 避免使用 INFINITE 超时间隔,因为线程在 中 GetEvent
等待时无法处理任何消息。 如果从处理 Windows 消息的同一线程调用 GetEvent
,请仅指定较短的等待时间,以便对用户输入保持响应。
调用 GetEvent
后,调用 IMediaEvent::FreeEventParams 方法以释放为事件参数分配的任何资源。
有关通知代码和事件参数值的列表,请参阅 事件通知代码。
由于此方法从筛选图事件队列中删除事件,因此多个客户端无法监视同一图形中的事件。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | control.h (包括 Dshow.h) |
Library | Strmiids.lib |