IMFPluginControl 接口 (mfobjects.h)

控制如何在 Microsoft Media Foundation 中枚举媒体源和转换。

若要获取指向此接口的指针,请调用 MFGetPluginControl

继承

IMFPluginControl 接口继承自 IUnknown 接口。 IMFPluginControl 也有以下类型的成员:

方法

IMFPluginControl 接口具有这些方法。

 
IMFPluginControl::GetDisabledByIndex

IMFPluginControl::GetDisabledByIndex (mfobjects.h) 从阻止列表中获取 CLSID) (类标识符。
IMFPluginControl::GetPreferredClsid

在首选列表中搜索与指定键名称匹配 (CLSID) 的类标识符。
IMFPluginControl::GetPreferredClsidByIndex

IMFPluginControl::GetPreferredClsidByIndex (mfobjects.h) 方法从由索引值指定的首选列表中获取 CLSID) 的类 (标识符。
IMFPluginControl::IsDisabled

查询类标识符 (CLSID) 是否显示在阻止列表中。 (IMFPluginControl.IsDisabled)
IMFPluginControl::SetDisabled

将 CLSID (类标识符) 添加到阻止列表中,或从列表中删除 CLSID。 (IMFPluginControl.SetDisabled)
IMFPluginControl::SetPreferredClsid

将 CLSID) (类标识符添加到首选列表,或从列表中删除 CLSID。 (IMFPluginControl.SetPreferredClsid)

注解

Media Foundation 提供一组内置的媒体源和解码器。 应用程序可以枚举它们,如下所示:

应用程序还可以间接枚举这些对象。 例如,如果应用程序使用拓扑加载程序解析部分拓扑,则拓扑加载程序会调用 MFTEnumEx 来查找所需的解码器。

第三方可以实现自己的自定义媒体源和解码器,并将它们注册为枚举,以便其他应用程序可以使用它们。

为了控制枚举顺序,Media Foundation 维护两个进程范围的 CLSID 列表:首选列表和阻止列表。 其 CLSID 出现在首选列表中的对象在枚举顺序中首先显示。 不枚举其 CLSID 出现在阻止列表中的对象。

列表最初是从注册表填充的。 应用程序可以使用 IMFPluginControl 接口修改当前进程的列表。

首选列表包含一组键/值对,其中键是字符串,值是 CLSID。 这些键/值对的定义如下:

  • 对于媒体源,密钥名称是文件扩展名、协议方案或 MIME 类型。 该值是该媒体源的方案处理程序或字节流处理程序的 CLSID。
  • 对于解码器,键名称是规范字符串形式的媒体子类型 GUID。 (有关媒体子类型的详细信息,请参阅 Media Types.) 该值是实现解码器的媒体基础转换 (MFT) 的 CLSID。
以下示例显示了各种类型的密钥:
  • 文件扩展名:“.wmv”
  • 方案:“http:”
  • MIME 类型:“video/mp4”
  • 媒体子类型:“{47504A4D-0000-0010-8000-00AA00389B71}”
若要按键名称搜索首选列表,请调用 IMFPluginControl::GetPreferredClsid 方法。 若要枚举整个列表,请在循环中调用 IMFPluginControl::GetPreferredClsidByIndex 方法。

阻止列表包含 CLSD 列表。 若要枚举整个列表,请在循环中调用 IMFPluginControl::GetDisabledByIndex 方法。 若要检查特定 CLSID 是否出现在列表中,请调用 IMFPluginControl::IsDisabled 方法。

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 mfobjects.h (包括 Mfidl.h)

另请参阅

MFGetPluginControl

媒体基础接口