IMFMediaSession::SetTopology 方法 (mfidl.h)
在媒体会话上设置拓扑。
语法
HRESULT SetTopology(
[in] DWORD dwSetTopologyFlags,
[in] IMFTopology *pTopology
);
parameters
[in] dwSetTopologyFlags
MFSESSION_SETTOPOLOGY_FLAGS 枚举中零个或多个标志的按位 OR。
[in] pTopology
指向拓扑对象的 IMFTopology 接口的指针。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
无法在媒体会话的当前状态下执行该操作。 |
|
媒体会话已关闭。 |
|
拓扑具有以下一个或多个属性的无效值: |
|
调试时无法播放受保护的内容。 |
注解
如果 pTopology 是完整的拓扑,请在 dwSetTopologyFlags 参数中设置MFSESSION_SETTOPOLOGY_NORESOLUTION标志。 否则,假定拓扑是部分拓扑。 媒体会话使用拓扑加载程序将部分拓扑解析为完整拓扑。
如果媒体会话当前已暂停或停止, 则 SetTopology 方法在下次调用 IMFMediaSession::Start 之前不会生效。
如果媒体会话当前正在运行,或在下次调用 Start 时, SetTopology 方法将执行以下操作:
- 如果在 dwSetTopologyFlags 中设置了MFSESSION_SETTOPOLOGY_IMMEDIATE标志,媒体会话会立即结束当前演示文稿,清除所有挂起的拓扑,并使用 pTopology 启动新的演示文稿。
- 否则,媒体会话会将 pTopology 排队,并在当前演示文稿完成时启动新演示文稿。 如果没有当前演示文稿,则新演示文稿将立即启动。
- 从 Windows 7 开始,还可以指定 MFSESSION_SETTOPOLOGY_CLEAR_CURRENT 标志以清除当前拓扑,但将任何其他挂起的拓扑保留在队列中。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfidl.h |
Library | Mfuuid.lib |