IGraphConfig::Reconfigure 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 Reconfigure
锁定筛选器图,并在应用程序或筛选器中调用回调函数以执行动态重新配置。
语法
HRESULT Reconfigure(
[in] IGraphConfigCallback *pCallback,
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent
);
参数
[in] pCallback
指向应用程序或筛选器上的 IGraphConfigCallback 回调接口的指针。
[in] pvContext
指向传递给回调例程的 PVOID 类型的变量的指针。
[in] dwFlags
传递给回调例程的应用程序定义的标志。
[in] hAbortEvent
事件的句柄。 如果调用方是在其数据处理线程之一上调用的筛选器,则此参数应是事件句柄,该事件将在筛选器进入停止状态时发出信号。 否则,此参数可以为 NULL。 有关详细信息,请参阅“备注”。
返回值
如果成功,则返回S_OK,否则返回错误代码。 如果方法无法获取筛选器图上的锁,则可能的错误包括VFW_E_WRONG_STATE;回调例程返回的任何 HRESULT ;或指示图形无法将筛选器置于运行状态的错误代码。
注解
提供此方法,以便应用程序或筛选器可以实现专用的动态图形生成。 但是,在大多数情况下, IGraphConfig::重新连接 方法已足够,并且应优先使用,因为它可处理大部分实现详细信息。
在调用此方法之前,请根据需要阻止任何流,并通过图形推送数据 (请参阅 IPinFlowControl::Block 和 IGraphConfig::P ushThroughData) 。 如果回调方法成功, IGraphConfig::Reconfigure
则尝试将所有筛选器置于运行状态。 (调用方随后必须取消阻止数据流。) 否则,它将返回回调方法返回的任何错误代码。
如果筛选器在其自己的数据处理线程之一上调用此方法,则会造成死锁。 方法获取筛选器图上的锁,这可能会阻止筛选器在收到 对 IMediaFilter::Stop 的调用时停止。 为了防止出现这种情况,方法采用筛选器提供的事件对象的句柄。 如果收到对其 Stop 方法的调用,则筛选器应发出事件信号。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |