Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

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 inherits from the IUnknown interface. IMFPluginControl also has these types of members:


The IMFPluginControl interface has these methods.


Gets a class identifier (CLSID) from the blocked list.


Searches the preferred list for a CLSID that matches a specified key name.


Gets a CLSID from the preferred list, specified by index value.


Queries whether a CLSID appears in the blocked list.


Adds a CLSID to the blocked list or removes a CLSID from the list.


Adds a 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]


Mfobjects.h (include Mfidl.h)

See also

Media Foundation Interfaces



© 2018 Microsoft