DirectShow Interfaces (Compact 2013)


The following table shows the reference entries for all supported Microsoft® DirectShow® COM interfaces.

Programming element


IAMDevMemoryAllocator Interface

Enables the creation of third-party memory allocators by using an on-board memory manager object.

IAMDevMemoryControl Interface

Controls and identifies the on-board memory of codecs.

IAMDroppedFrames Interface

Retrieves performance information from a video capture filter, such as how many frames were dropped and how many frames were delivered.

IAMMediaContent Interface

Retrieves metadata from a stream.

IAMMediaContentEx Interface

Retrieves metadata from a stream.


Allow objects in a dynamic-link library (DLL) to be self-registering.

IAMPlayList Interface

Provides access to descriptive information about a media playlist.

IAMPlayListItem Interface

Provides the detailed property information for an item on a playlist.

IAMStreamConfig Interface

Enables applications to query for the types of formats a filter supports on its output pin and to set the format that the pin will offer to its downstream connecting pin.


Allows applications to control individual stream components in a filter graph.

IAMStreamSelect Interface

Controls which logical streams are played and retrieves information about them.

IAMTuner Interface

The base class for the IAMTVTuner interface, which inherits all the IAMTuner methods.

IAMTVTuner Interface

Supports tuners with multiple input pins, to allow for multiple devices and multiple transmission types.

IAsyncReader Interface

Allows multiple overlapped reads from different positions in the media stream.

IBaseFilter Interface

Abstracts an object that has typed input and output connections and can be aggregated dynamically.

IBasicAudio Interface

Supports the filter graph's audio component.

IBasicVideo Interface

Supports the video properties of a generic video window.

IDirectDrawVideo Interface

Allows an application to get details of the surface and any available hardware capabilities.

IDistributorNotify Interface

Notifies plug-in distributors of changes in the filter graph state.

IDMOWrapperFilter Interface

Enables applications to use DirectX Media Objects Reference in a filter graph.

IEnumFilters Interface

Returns the enumerator interface for filters.


Helps the Filter Graph Manager avoid loading filters when attempting to build a filter graph to render a given media type.

IEnumMediaTypes Interface

Enumerates the preferred formats for a pin.

IEnumPins Interface

Returns the enumerator interface for pins.

IFileSourceFilter Interface

Sets the file name and media type of the media file that a source filter is to render.

IFilterGraph Interface

Represents a graph of filters.

IFilterGraph2 Interface

Adds new functionality to the IGraphBuilder and IFilterGraph interfaces. You should usually use IFilterGraph2 instead of the other two interfaces.

IFilterMapper Interface

Allows properties of filters to be looked up during loading.

IGraphBuilder Interface

Allows applications to call on the Filter Graph Manager to attempt to build a complete filter graph or parts of a filter graph given only partial information.

IGraphVersion Interface

Notifies other objects, especially plug-in distributors, when the graph has changed. Provided by the Filter Graph Manager.

IKsPropertySet Interface

Used to set and retrieve device properties on drivers, and also between software components.

IMediaControl Interface

Allows applications to control the streaming of media through the filters in the graph.

IMediaEvent Interface

Supports event notification from the filter graph and filters within it to the application.

IMediaEventEx Interface

Derives from IMediaEvent and adds a method that allows registration of a window to receive messages when events occur.

IMediaEventSink Interface

Notifies events from filters.

IMediaFilter Interface

Abstracts an object that processes time-based data streams and represents a multimedia device, possibly implemented in software.

IMediaPosition Interface

It is recommended that you use the IMediaSeeking interface instead of IMediaPosition. This depreciated interface is no longer fully supported.

IMediaSample Interface

Provides shared memory buffer functionality, holds some properties about the data, and holds a pointer to the data itself.

IMediaSample2 Interface

Enables you to set and retrieve sample properties such as start and stop time that are defined in an AM_SAMPLE2_PROPERTIES structure and sample flags defined in the AM_SAMPLE_PROPERTY_FLAGS enumeration.


Improves on the IMediaPosition interface by allowing arbitrary formats for seekable units, such as frames, bytes, and 100-second units of time.

IMediaStream Interface

Provides access to the characteristics of a media stream, such as the stream's media type and purpose identifier. It also has methods that create data samples.

IMemAllocator Interface

Allocates IMediaSample blocks to be used for data transfer between pins.

IMemInputPin Interface

Provides methods on an input pin to facilitate passing data and flush notifications from a connected output pin of an upstream filter.

IMixerPinConfig Interface

manipulates the parameters involved in mixing various video streams.

IMixerPinConfig2 Interface

Contains methods that manipulate video color controls, if the VGA chip supports it.

IMultiMediaStream Interface

Provides methods that control a multimedia stream and provide access to its underlying media streams.

INonDelegatingUnknown Interface

Enables a class to support both nondelegating and delegating IUnknown interfaces in the same COM object.

IOverlay Interface

Provides information so that a filter can write directly to video memory while placing the video in the correct window position.

IOverlayNotify Interface

Provides an upstream filter, such as a decoder, with notifications of changes to the rendering window.

IPin Interface

Represents a single, unidirectional connection point on a filter.


Defines quality messages and allows a quality manager to install itself as the sink for these messages.

IQualProp Interface

Returns information about the performance achieved - for example, the number of frames per second.

IReferenceClock Interface

Represents a system reference clock to be implemented by a filter in the filter graph and used by other filters.


Instantiates and initializes a CRendererPosPassThru::CRendererPosPassThru object to keep track of reference times and stream times.

IStreamSample Interface

Provides control over the behavior of stream samples.

IVideoWindow Interface

Supports the video window properties of a video renderer.

IVPBaseConfig Interface

Enables a video port (VP) or overlay mixer filter to communicate with a VP driver (decoder) to set and retrieve configuration information.

IVPBaseNotify Interface

Enables you to control the properties of a filter that uses a video port.