IGraphConfig::P ushThroughData 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 PushThroughData 将数据通过筛选器图推送到指定的引脚。

语法

HRESULT PushThroughData(
  [in] IPin           *pOutputPin,
  [in] IPinConnection *pConnection,
  [in] HANDLE         hEventAbort
);

参数

[in] pOutputPin

指向筛选器图中输出引脚 的 IPin 接口的指针。

[in] pConnection

指向筛选器图中输入引脚 的 IPinConnection 接口的指针。 此参数可以为 NULL。

[in] hEventAbort

事件的句柄。 如果调用方是在其数据处理线程之一上调用的筛选器,则此参数应是将筛选器置于停止状态时将发出信号的事件的句柄。 否则,此参数可以为 NULL。 有关详细信息,请参阅“备注”。

返回值

如果成功,则返回S_OK。 否则, 将返回一个错误代码,该值可能是下列值之一,或者未列出的其他值之一。

返回代码 说明
E_OUTOFMEMORY
未能分配必要的内存。
VFW_E_NOT_FOUND
找不到候选输入引脚。
VFW_E_STATE_CHANGED
筛选器状态在操作期间发生更改。

备注

此方法通过任何挂起的数据,从指定的输出引脚向下推送到指定的输入引脚。 (可选)可以将输入引脚保留为未指定状态,让方法在筛选器图中搜索最佳候选项。 请勿从推送数据的线程中调用此方法。

如果筛选器在其自己的数据处理线程之一上调用此方法,则会造成死锁。 方法获取筛选器图上的锁,这可能会阻止筛选器在收到 对 IMediaFilter::Stop 的调用时停止。 为了防止这种情况,该方法采用筛选器提供的事件对象的句柄。 如果筛选器收到对其 Stop 方法的调用,则它应向事件发出信号。

要求

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

另请参阅

错误和成功代码

IGraphConfig 接口