IMFTopoLoader::Load 方法 (mfidl.h)

从输入部分拓扑创建完全加载的拓扑。

语法

HRESULT Load(
  [in]  IMFTopology *pInputTopo,
  [out] IMFTopology **ppOutputTopo,
  [in]  IMFTopology *pCurrentTopo
);

parameters

[in] pInputTopo

指向要解析的部分拓扑的 IMFTopology 接口的指针。

[out] ppOutputTopo

接收指向已完成拓扑的 IMFTopology 接口的指针。 调用方必须释放接口。

[in] pCurrentTopo

指向上一个完整拓扑的 IMFTopology 接口的指针。 拓扑加载程序可以在新拓扑中重复使用此拓扑中的对象。 此参数可以为 NULL。 请参阅“备注”。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED
一个或多个输出节点包含 IMFActivate 指针。 调用方必须将输出节点绑定到媒体接收器。 请参阅 将输出节点绑定到媒体接收器

注解

此方法创建完成拓扑所需的任何中间转换。 它还在拓扑中的所有对象上设置输入和输出媒体类型。 如果该方法成功,则会在 ppOutputTopo 参数中返回完整的拓扑。

可以使用 pCurrentTopo 参数提供之前加载的完整拓扑。 如果此拓扑包含新拓扑中所需的对象,则拓扑加载程序可以重复使用它们,而无需再次创建它们。 此缓存可能会加快进程速度。 不会重新配置 pCurrentTopo 中的对象,因此可以指定主动流式传输数据的拓扑。 例如,当拓扑仍在运行时,可以预加载下一个拓扑。

在调用此方法之前,必须确保部分拓扑中的输出节点具有有效的 IMFStreamSink 指针,而不是 IMFActivate 指针。 媒体会话在 IMFMediaSession::SetTopology 方法中自动执行此操作。 但是,如果在调用 SetTopology 之前调用 Load,则必须手动绑定输出节点。 有关详细信息,请参阅 将输出节点绑定到媒体接收器

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 mfidl.h
Library Mfuuid.lib

另请参阅

高级拓扑生成

IMFTopoLoader

拓扑