IGraphConfig::Reconfigure 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 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::BlockIGraphConfig::P ushThroughData) 。 如果回调方法成功, IGraphConfig::Reconfigure 则尝试将所有筛选器置于运行状态。 (调用方随后必须取消阻止数据流。) 否则,它将返回回调方法返回的任何错误代码。

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

要求

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

另请参阅

错误和成功代码

IGraphConfig 接口