Alphabetical List of DirectShow Interfaces

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

The following is an alphabetical list of DirectShow interfaces.

Interface Description
IAMAnalogVideoDecoder Sets and retrieves information about the analog-to-digital conversion process in a video capture filter.
IAMAudioInputMixer Controls audio capture properties.
IAMAudioRendererStats Retrieves statistical performance information from an audio renderer filter.
IAMBufferNegotiation Requests the number of buffers for a filter to create and size of each buffer.
IAMCameraControl Controls camera settings such as zoom, pan, aperture adjustment, or shutter speed.
IAMCertifiedOutputProtection Sends Certified Output Protection Protocol (COPP) messages to the graphics driver.
IAMChannelInfo Gets and sets channel information for Windows Media Station (.nsc) files.
IAMClockAdjust Adjusts the reference clock.
IAMClockSlave Controls the tolerance of an audio renderer when it is matching rates with another clock.
IAMCopyCaptureFileProgress Callback interface for the ICaptureGraphBuilder2::CopyCaptureFile method.
IAMCrossbar Routes signals from an analog or digital source to a video capture filter.
IAMDecoderCaps Returns capabilities information from an MPEG decoder filter.
IAMDeviceRemoval Provides a way for the Filter Graph Manager to register for device removal events for a capture device.
IAMDirectSound Specifies which window has focus for controlling DirectSound audio playback.
IAMDroppedFrames Retrieves performance information from a video capture filter.
IAMExtDevice Controls an external device, such as a DV camera or video tape recoder (VTR).
IAMExtTransport Controls the transport on a VTR or camcorder.
IAMExtendedSeeking Seeks to a marker in a Windows Media stream or changes the playback rate for a Windows Media file.
IAMFilterGraphCallback Callback interface for graph building.
IAMFilterMiscFlags Queries whether a filter is a source filter or a renderer.
IAMGraphBuilderCallback Callback interface for graph building.
IAMGraphStreams Controls a filter graph that renders a live source.
IAMLatency Reports the amount of latency that a filter introduces into the graph.
IAMLine21Decoder Sets and retrieves information about closed captions.
IAMMediaContent Retrieves metadata from a stream.
IAMNetShowConfig Configures the legacy Windows Media Player 6.4 source filter.
IAMNetShowExProps Configures the legacy Windows Media Player 6.4 source filter.
IAMNetShowPreroll Sets and retrieves the preroll settings for the legacy Windows Media Player 6.4 source filter.
IAMNetworkStatus Reports the quality of the network connection for the legacy Windows Media Player 6.4 source filter.
IAMOpenProgress Reports the progress of a file-open operation.
IAMOverlayFX Controls how the video overlay appears on the user's screen.
IAMParse Sets and retrieves the parse time for an MPEG-2 stream.
IAMPushSource Synchronizes a filter graph that renders a live source.
IAMResourceControl Opens and holds an audio device resource.
IAMStats Retrieves performance data from the Filter Graph Manager.
IAMStreamConfig Sets the output format on certain capture and compression filters.
IAMStreamControl Controls individual streams on a filter.
IAMStreamSelect selects from the available streams on a parser filter.
IAMTimecodeReader Reads SMPTE or MIDI timecode from an external device.
IAMTuner Controls a TV tuner.
IAMTVAudio Controls audio from a television source.
IAMTVTuner Controls a TV tuner.
IAMVfwCaptureDialogs Displays a dialog box provided by a Video for Windows (VFW) capture driver.
IAMVfwCompressDialogs Displays a dialog box provided by a Video for Windows (VFW) codec.
IAMVideoAccelerator Enables a video decoder filter to access DirectX Video Acceleration (DXVA) 1.0 functionality.
IAMVideoAcceleratorNotify Callback interface for DXVA 1.0.
IAMVideoCompression Sets and retrieves video compression properties.
IAMVideoControl Controls certain video capture operations such as enumerating available frame rates and image orientation.
IAMVideoDecimationProperties Controls how the Overlay Mixer performs video decimation.
IAMVideoProcAmp Adjusts the qualities of an incoming video signal.
IAMWMBufferPass Gets or sets properties on individual samples in an ASF stream.
IAMWMBufferPassCallback Callback interface used with the IAMWMBufferPass interface.
IAMWstDecoder Sets and retrieves information about World Standard Teletext (WST)
IAsyncReader Performs an asynchronous data request on a filter.
IBaseFilter Exposed by filters. This is the primary interface for all DirectShow filters.
IBasicAudio Controls the volume and balance of the audio stream.
IBasicVideo Sets video properties such as the destination and source rectangles.
IBasicVideo2 Extends the IBasicVideo interface.
ICameraControl Controls the camera settings on a capture device.
ICaptureGraphBuilder2 Builds capture graphs and other custom filter graphs.
ICodecAPI Configures an encoder or decoder.
IConfigAsfWriter Configures the WM ASF Writer filter.
IConfigAsfWriter2 Extends the IConfigAsfWriter interface.
IConfigAviMux Configures the AVI Mux filter.
IConfigInterleaving Controls how the AVI Mux interleaves audio and video samples.
ICreateDevEnum Creates an enumerator for a category of filters.
IDDrawExclModeVideo Enables video playback in DirectDraw exclusive full-screen mode.
IDDrawExclModeVideoCallback Callback interface for the IDDrawExclModeVideoCallback interface.
IDecimateVideoImage Specifies decimation on a decoder filter.
IDeferredCommand Cancels or modifies graph-control commands that were queued using the IQueueCommand interface.
IDirectDrawVideo Queries the Video Renderer filter about DirectDraw surfaces and hardware capabilities.
IDirectDrawMediaSample Provides access to DirectDraw surfaces allocated by the Overlay Mixer filter.
IDirectDrawMediaSampleAllocator Allocates samples that contain DirectDraw surfaces.
IDistributorNotify Enables a plug-in distributor to be notified when the filter graph changes.
IDMOWrapperFilter Enables an application to use a DirectX Media Object (DMO) inside a filter graph.
IDShowPlugin Enables the Windows Media Source filter to communicate with the Windows Media Player 6.4 Plug-in for Netscape Navigator.
IDvdCmd Waits for DVD commands to start or end.
IDvdControl2 Navigates and plays DVD-Video titles.
IDvdGraphBuilder Builds a filter graph for DVD-Video playback.
IDvdInfo2 Reports attributes of a DVD disc or the current state of the DVD Navigator filter.
IDvdState Saves the current DVD playback location and state.
IDVEnc Sets and retrieves properties on the DV Video Encoder filter.
IDVRGB219 Controls the dynamic range in the DV Video Encoder and DV Video Decoder filters.
IDVSplitter Downgrades the frame rate on a digital video (DV) stream.
IEnumFilters Enumerates the filters in a filter graph
IEnumMediaTypes Enumerates a pin's preferred media types
IEnumPIDMap Enumerates the mappings of Packet IDs (PID) to output pins on the MPEG-2 Demultiplexer filter.
IEnumPins Enumerates pins on a filter.
IEnumStreamIdMap Enumerates the mappings of stream IDs to output pins on the MPEG-2 Demultiplexer filter.
IFileSinkFilter Exposed by filters that write data to a file.
IFileSinkFilter2 Extends the IFileSinkFilter interface.
IFileSourceFilter Exposed by source filters.
IFilterChain Starting, stops, or removes chains of filters in a filter graph.
IFilterGraph Builds a filter graph.
IFilterGraph2 Extends the IGraphBuilder interface.
IFilterGraph3 Extends the IFilterGraph2 interface.
IFilterMapper2 Registers and unregisters filters, and locates filters in the registry.
IFilterMapper3 Extends the IFilterMapper2 interface.
IFullScreenVideoEx Exposed by the Full Screen Renderer filter.
IGetCapabilitiesKey Retrieves the capabilities of a software or hardware encoder from the registry.
IGraphBuilder Extends the IFilterGraph interface. This is the primary interface of the Filter Graph Manager.
IGraphConfig Reconfigures the filter graph while the graph is running.
IGraphConfigCallback Callback interface for the IGraphConfig interface.
IGraphVersion Retrieves the current version number of the filter graph.
IIPDVDec Configures the DV Video Decoder filter.
IKsNodeControl Exposed by USB Video Class (UVC) extension units.
IKsPin Retrieves the mediums supported by a kernel-mode pin.
IKsPropertySet Sets properties on a kernel-mode filter.
IKsTopologyInfo Enumerates the nodes in a stream class driver.
IMediaControl Controls the flow of data through the filter graph.
IMediaEvent Retrieves event notifications from the filter graph.
IMediaEventEx Extends the IMediaEvent interface.
IMediaEventSink Notifies the Filter Graph Manager of events that occur within the filter graph.
IMediaFilter Controls the streaming state of a filter.
IMediaPosition Controls seeking in the filter graph.
IMediaPropertyBag Sets and retrieves INFO and DISP chunks in Audio-Video Interleaved (AVI) files.
IMediaSample Sets and retrieves properties on media samples.
IMediaSample2 Extends the IMediaSample interface.
IMediaSample2Config Returns a pointer to a Direct3D surface representing a VRAM capture buffer.
IMediaSeeking Controls seeking in the filter graph.
IMemAllocator Allocates media samples.
IMemAllocatorCallbackTemp Enables a filter to receive a callback notification from an allocator. Note: Deprecated.
IMemAllocatorNotifyCallbackTemp Callback interface for the IMemAllocatorCallbackTemp interface. Note: Deprecated.
IMemInputPin Delivers media data to an input pin.
IMixerOCX Exposed by the Overlay Mixer filter.
IMixerOCXNotify Callback interface for the IMixerOCX interface.
IMixerPinConfig Manipulates video streams on the Overlay Mixer filter.
IMixerPinConfig2 Extends the IMixerPinConfig interface.
IMpeg2Demultiplexer Configures the MPEG-2 Demultiplexer filter.
IMPEG2PIDMap Associates an output pin on the MPEG-2 Demultiplexer filter with one or more packet IDs (PIDs).
IMPEG2StreamIdMap Associates an output pin on the MPEG-2 Demultiplexer filter with one or more stream IDs.
IMpegAudioDecoder Configures the MPEG-1 Audio Decoder.
IOverlay Enables a filter to write directly to video memory.
IOverlayNotify Callback interface for the IOverlay interface.
IOverlayNotify2 Callback interface for the IOverlay interface.
IPersistMediaPropertyBag Sets and retrieves INFO and DISP chunks in Audio-Video Interleaved (AVI) streams.
IPin Exposed by all filter pins.
IPinConnection Reconnects an input pin while the filter is still running.
IPinFlowControl Blocks data flow from an active output pin.
IQualityControl Provides support for quality control in the filter graph.
IQualProp Retrieves performance information from video renderers.
IQueueCommand Queues a command on the filter graph for processing at a designated time.
IReferenceClock Provides the reference time for the filter graph.
IReferenceClockTimerControl Changes the timer period used by a reference clock.
IRegisterServiceProvider Registers an object as a service with the Filter Graph Manager.
IResourceConsumer Callback interface for the IResourceManager interface.
IResourceManager Resolves contentions for system resources.
ISeekingPassThru Implements seeking for one-input filters.
ISelector Selects source nodes in a stream class driver.
IStreamBuilder Enables an output pin to build the downstream section of the filter graph.
IVideoFrameStep Steps through a video stream.
IVideoProcAmp Controls the image adjustment (ProcAmp) settings on a capture device.
IVideoWindow Sets properties on the video window.
IVMRAspectRatioControl controls whether the Video Mixing Renderer Filter 7 (VMR-7) preserves the aspect ratio of the source video.
IVMRAspectRatioControl9 Controls whether the Video Mixing Renderer Filter 9 (VMR-9) preserves the aspect ratio of the source video
IVMRDeinterlaceControl Supports hardware-accelerated deinterlacing using the VMR-7.
IVMRDeinterlaceControl9 Supports hardware-accelerated deinterlacing using the VMR-9.
IVMRFilterConfig Configures the VMR-7.
IVMRFilterConfig9 Configures the VMR-9.
IVMRImageCompositor Exposed by VMR-7 compositors.
IVMRImageCompositor9 Exposed by VMR-9 compositors.
IVMRImagePresenter Exposed by VMR-7 allocator-presenters.
IVMRImagePresenter9 Exposed by VMR-9 allocator-presenters.
IVMRImagePresenterConfig Sets the renderering preferences on the image presenter used by the VMR-7.
IVMRImagePresenterConfig9 Sets the renderering preferences on the image presenter used by the VMR-9.
IVMRImagePresenterExclModeConfig Setting and retrieves the renderering preferences on the Exclusive Mode Allocator-Presenter for the VMR-7
IVMRMixerBitmap Blends a static image onto the video stream, when using the VMR-7.
IVMRMixerBitmap9 Blends a static image onto the video stream, when using the VMR-9.
IVMRMixerControl Manipulates the incoming video streams on the VMR-7.
IVMRMixerControl9 Manipulates the incoming video streams on the VMR-9.
IVMRMonitorConfig Controls monitor usage by the VMR-7.
IVMRMonitorConfig9 Controls monitor usage by the VMR-9.
IVMRSurface Exposed by media samples from the VMR-7.
IVMRSurface9 Exposed by media samples from the VMR-9.
IVMRSurfaceAllocator Allocates the DirectDraw surfaces used by the VMR-7 allocator-presenter.
IVMRSurfaceAllocator9 Allocates the Direct3D surfaces used by the VMR-9 allocator-presenter.
IVMRSurfaceAllocatorEx9 Extends the IVMRSurfaceAllocator9 interface.
IVMRSurfaceAllocatorNotify Enables the allocator-presenter to notify the VMR-7.
IVMRSurfaceAllocatorNotify9 Enables the allocator-presenter to notify the VMR-9.
IVMRVideoStreamControl Controls input pins on the VMR-7.
IVMRVideoStreamControl9 Controls input pins on the VMR-9.
IVMRWindowlessControl Controls how the VMR-7 renders a video stream.
IVMRWindowlessControl9 Controls how the VMR-9 renders a video stream.
IVPBaseConfig Base interface for the IVPConfig interface.
IVPBaseNotify Base interface for the IVPNotify interface.
IVPConfig Enables a video port to communicate with the Overlay Mixer filter.
IVPManager Exposed by the Video Port Manager filter.
IVPNotify Enables the Overlay Mixer to control the properties of a hardware device that uses a video port.
IVPNotify2 Extends the IVPNotify interface.
IXMLGraphBuilder Persists a DirectShow filter graph using an XML file format. Note: Deprecated.

Deprecated Interfaces