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。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
一个或多个输出节点包含 IMFActivate 指针。 调用方必须将输出节点绑定到媒体接收器。 请参阅 将输出节点绑定到媒体接收器。 |
注解
此方法创建完成拓扑所需的任何中间转换。 它还在拓扑中的所有对象上设置输入和输出媒体类型。 如果该方法成功,则会在 ppOutputTopo 参数中返回完整的拓扑。
可以使用 pCurrentTopo 参数提供之前加载的完整拓扑。 如果此拓扑包含新拓扑中所需的对象,则拓扑加载程序可以重复使用它们,而无需再次创建它们。 此缓存可能会加快进程速度。 不会重新配置 pCurrentTopo 中的对象,因此可以指定主动流式传输数据的拓扑。 例如,当拓扑仍在运行时,可以预加载下一个拓扑。
在调用此方法之前,必须确保部分拓扑中的输出节点具有有效的 IMFStreamSink 指针,而不是 IMFActivate 指针。 媒体会话在 IMFMediaSession::SetTopology 方法中自动执行此操作。 但是,如果在调用 SetTopology 之前调用 Load,则必须手动绑定输出节点。 有关详细信息,请参阅 将输出节点绑定到媒体接收器。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfidl.h |
Library | Mfuuid.lib |