IMediaEvent::GetEvent 方法 (control.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 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 值。 可能的值包括下表中显示的值。

返回代码 说明
S_OK
成功。
E_ABORT
超时时间已到。

备注

如果队列中没有事件,此方法将等待最多 msTimeout 毫秒,以便事件到达。 避免使用 INFINITE 超时间隔,因为线程在 中 GetEvent等待时无法处理任何消息。 如果从处理 Windows 消息的同一线程调用 GetEvent ,请仅指定较短的等待时间,以便对用户输入保持响应。

调用 GetEvent后,调用 IMediaEvent::FreeEventParams 方法以释放为事件参数分配的任何资源。

有关通知代码和事件参数值的列表,请参阅 事件通知代码

由于此方法从筛选图事件队列中删除事件,因此多个客户端无法监视同一图形中的事件。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 control.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IMediaEvent 接口

IMediaEventEx