源冲突解决程序标志

定义源解析程序的行为。 方案处理程序和字节流处理程序也使用这些标志。

常量/值 说明
MF_RESOLUTION_MEDIASOURCE
0x00000001
尝试创建媒体源。
MF_RESOLUTION_BYTESTREAM
0x00000002
尝试创建字节流。
MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE
0x00000010
如果使用为 MIME 类型或文件扩展名注册的字节流处理程序的源解析失败,则源解析程序会枚举所有已注册的字节流处理程序。
字节流处理程序按文件扩展名或 MIME 类型注册。 最初,源解析程序尝试使用与文件扩展名或 MIME 类型匹配的处理程序。 如果失败,则默认情况下,整个源解析将失败,源解析程序会向应用程序返回错误代码。 但是,如果指定了此标志,则源解析程序会继续枚举所有已注册的字节流处理程序。 错误匹配的处理程序可能成功创建媒体源。
此标志不能与 MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL 标志组合使用。 有关更多信息,请参见备注。
MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL
0x00000020
如果源解析失败,则源解析程序不会关闭字节流。 默认情况下,源解析程序在失败时关闭字节流。
如果使用此标志并且源解析失败,调用方应再次调用 方法并设置MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE标志。
此标志不能与MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE标志组合使用。 有关更多信息,请参见备注。
MF_RESOLUTION_READ
0x00010000
请求对源的读取访问权限。
MF_RESOLUTION_WRITE
0x00020000
请求对源的写入访问权限。
MF_RESOLUTION_DISABLE_LOCAL_PLUGINS
0x00000040
源解析程序不会使用本地注册的方案或字节流处理程序插件。
需要Windows 8。

备注

应用程序在使用 IMFSourceResolver 接口时设置这些标志。 源解析程序将相同的标志传递给 IMFByteStreamHandler::BeginCreateObjectIMFSchemeHandler::BeginCreateObject 方法。

必须指定MF_RESOLUTION_MEDIASOURCE或MF_RESOLUTION_BYTESTREAM标志之一。 其余标志都是可选的。

MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL标志是针对以下方案定义的:

  1. 应用程序尝试通过网络打开源。 应用程序设置MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL标志。

  2. 源的 URL 包含错误的文件扩展名。 由于文件扩展名错误,因此默认字节流处理程序无法创建媒体源。 由于应用程序设置了 MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL 标志,因此源解析程序会缓存字节流。

  3. 源解析程序向应用程序返回错误代码。

  4. 客户端再次打开源,这次设置MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE标志。 此标志会导致源解析程序尝试所有已注册的处理程序,而不仅仅是默认处理程序。 由于已缓存字节流,因此源解析程序不必再次打开字节流。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Mfidl.h

另请参阅

Media Foundation 常量

IMFByteStreamHandler

IMFSchemeHandler

IMFSourceResolver

源冲突解决程序