IPin interface (strmif.h)

[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.]

This interface is exposed by all input and output pins.

The filter graph manager uses this interface to connect pins and perform flushing operations. Applications can use this interface to query the pin for information. Applications should never call IPin methods that change a pin's state, such as Connect, Disconnect, BeginFlush, or EndFlush. To connect pins, an application must use the methods in IGraphBuilder.

Filter developers: The CBasePin, CBaseInputPin, and CBaseOutputPin classes implement this interface. Other base classes derive from these three classes.


The IPin interface inherits from the IUnknown interface. IPin also has these types of members:


The IPin interface has these methods.


The BeginFlush method begins a flush operation. (IPin.BeginFlush)

The Connect method connects the pin to another pin.

The ConnectedTo method retrieves a pointer to the connected pin, if any.

The ConnectionMediaType method retrieves the media type for the current pin connection, if any.

The Disconnect method breaks the current pin connection.

The EndFlush method ends a flush operation. (IPin.EndFlush)

The EndOfStream method notifies the pin that no additional data is expected, until a new run command is issued to the filter.

The EnumMediaTypes method enumerates the pin's preferred media types.

The NewSegment method notifies the pin that media samples received after this call are grouped as a segment, with a common start time, stop time, and rate.

The QueryAccept method determines whether the pin accepts a specified media type.

The QueryDirection method gets the direction of the pin (input or output).

The QueryId method retrieves an identifier for the pin.

The QueryInternalConnections method retrieves the pins that are connected internally to this pin (within the filter).

The QueryPinInfo method retrieves information about the pin.

The ReceiveConnection method accepts a connection from another pin.


Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header strmif.h (include Dshow.h)