| Microsoft DirectX 9.0 |

The CBasePin class is an abstract class that implements a generic pin.
The following topics describe how to use this class:
Requirements
Header: Declared in Amfilter.h; include Streams.h.
Library: Use Strmbase.lib (retail builds) or Strmbasd.lib (debug builds).
| Protected Member Variables | |
| m_pName | Pin name. |
| m_Connected | Pointer to the pin that is connected to this pin. |
| m_dir | Direction of the pin. |
| m_pLock | Pointer to a critical section object. |
| m_bRunTimeError | Flag that indicates whether a run-time error has occurred. |
| m_bCanReconnectWhenActive | Flag that indicates whether the pin supports dynamic reconnection. |
| m_bTryMyTypesFirst | Flag that indicates whether the pin tries its own preferred media types before those of the receiving pin. |
| m_pFilter | Pointer to the filter that created the pin. |
| m_pQSink | Pointer to the object that handles quality messages. |
| m_TypeVersion | Current version of the set of preferred media types. |
| m_mt | Media type for the current pin connection. |
| m_tStart | Segment start time. |
| m_tStop | Segment stop time. |
| m_dRate | Segment rate. |
| Protected Methods | |
| DisplayPinInfo | Traces a pin connection during debugging. |
| DisplayTypeInfo | Displays media type information during debugging. |
| AttemptConnection | Connects to another pin using a specified media type. |
| TryMediaTypes | Given a list of media types, tries to complete a connection using one of those types. |
| AgreeMediaType | Searches for a media type to make a pin connection. |
| DisconnectInternal | Breaks the current pin connection. |
| Public Methods | |
| CBasePin | Constructor method. |
| ~CBasePin | Destructor method. Virtual. |
| IsConnected | Determines whether the pin is connected to another pin. |
| GetConnected | Retrieves the pin that is connected to this pin. |
| IsStopped | Determines whether the filter containing this pin is stopped. |
| GetMediaTypeVersion | Retrieves a version number for the set of preferred media types. Virtual. |
| IncrementTypeVersion | Increments the version number on the set of preferred media types. |
| Active | Notifies the pin that the filter is now active. Virtual. |
| Inactive | Notifies the pin that the filter is no longer active. Virtual. |
| Run | Notifies the pin that the filter is now running. Virtual. |
| SetMediaType | Sets the media type for the connection. Virtual. |
| CheckConnect | Determines whether a pin connection is suitable. Virtual. |
| BreakConnect | Releases the pin from a connection. Virtual. |
| CompleteConnect | Completes a connection to another pin. Virtual. |
| GetMediaType | Retrieves a preferred media type, by index value. Virtual. |
| CurrentStopTime | Retrieves the segment stop time. |
| CurrentStartTime | Retrieves the segment start time. |
| CurrentRate | Retrieves the segment rate. |
| Name | Retrieves the pin identifier. |
| SetReconnectWhenActive | Specifies whether the pin supports dynamic reconnections. |
| CanReconnectWhenActive | Queries whether the pin supports dynamic reconnections. |
| Pure Virtual Methods | |
| CheckMediaType | Determines if the pin accepts a specific media type. |
| IPin Methods | |
| Connect | Connects the pin to another pin. |
| ReceiveConnection | Accepts a connection from another pin. |
| Disconnect | Breaks the current pin connection. |
| ConnectedTo | Retrieves the pin connected to this pin. |
| ConnectionMediaType | Retrieves the media type for the current pin connection, if any. |
| QueryPinInfo | Retrieves information about the pin. |
| QueryDirection | Retrieves the direction of the pin (input or output). |
| QueryId | Retrieves the pin identifier. |
| QueryAccept | Determines whether the pin accepts a specified media type. |
| EnumMediaTypes | Enumerates the pin's preferred media types. |
| QueryInternalConnections | Retrieves the pins that are connected internally to this pin (within the filter). |
| EndOfStream | Notifies the pin that no additional data is expected. |
| NewSegment | Notifies the pin that media samples received after this call are grouped as a segment. |
| IQualityControl Methods | |
| Notify | Notifies the pin that a quality change is requested. |
| SetSink | Sets an external quality manager. |