IMFPluginControl interface

Controls how media sources and transforms are enumerated in Microsoft Media Foundation.

To get a pointer to this interface, call MFGetPluginControl.


The IMFPluginControl interface has these methods.

Method Description
IMFPluginControl::GetDisabledByIndex Gets a class identifier (CLSID) from the blocked list.
IMFPluginControl::GetPreferredClsid Searches the preferred list for a class identifier (CLSID) that matches a specified key name.
IMFPluginControl::GetPreferredClsidByIndex Gets a class identifier (CLSID) from the preferred list, specified by index value.
IMFPluginControl::IsDisabled Queries whether a class identifier (CLSID) appears in the blocked list.
IMFPluginControl::SetDisabled Adds a class identifier (CLSID) to the blocked list, or removes a CLSID from the list.
IMFPluginControl::SetPreferredClsid Adds a class identifier (CLSID) to the preferred list or removes a CLSID from the list.


Media Foundation provides a set of built-in media sources and decoders. Applications can enumerate them as follows:

Applications might also enumerate these objects indirectly. For example, if an application uses the topology loader to resolve a partial topology, the topology loader calls MFTEnumEx to find the required decoders.

Third parties can implement their own custom media sources and decoders, and register them for enumeration so that other applications can use them.

To control the enumeration order, Media Foundation maintains two process-wide lists of CLSIDs: a preferred list and a blocked list. An object whose CLSID appears in the preferred list appears first in the enumeration order. An object whose CLSID appears on the blocked list is not enumerated.

The lists are initially populated from the registry. Applications can use the IMFPluginControl interface to modify the lists for the current process.

The preferred list contains a set of key/value pairs, where the keys are strings and the values are CLSIDs. These key/value pairs are defined as follows:

  • For media sources, the key name is a file name extension, protocol scheme, or MIME type. The value is the CLSID of a scheme handler or byte-stream handler for that media source.
  • For decoders, the key name is a media subtype GUID in canonical string form. (For more information about media subtypes, see Media Types.) The value is the CLSID of the Media Foundation transform (MFT) that implements the decoder.
The following examples show the various types of key:
  • File extension: ".wmv"
  • Scheme: "http:"
  • MIME type: "video/mp4"
  • Media subtype: "{47504A4D-0000-0010-8000-00AA00389B71}"
To search the preferred list by key name, call the IMFPluginControl::GetPreferredClsid method. To enumerate the entire list, call the IMFPluginControl::GetPreferredClsidByIndex method in a loop.

The blocked list contains a list of CLSIDs. To enumerate the entire list, call the IMFPluginControl::GetDisabledByIndex method in a loop. To check whether a specific CLSID appears on the list, call the IMFPluginControl::IsDisabled method.


Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Target Platform Windows
Header mfobjects.h (include Mfidl.h)

See Also


Media Foundation Interfaces