| Microsoft DirectX 8.1 (C++) |

The CBaseFilter class is an abstract class for implementing filters. To implement a filter using this class, you must perform at least the following steps:
Several base classes derive from CBaseFilter, including CSource, CBaseRenderer, and CTransformFilter. It is usually easier to implement a filter with one of these specialized classes, rather than use CBaseFilter directly.
Requirements
Header: Declared in Amfilter.h; include Streams.h.
Library: Use Strmbase.lib (retail builds) or Strmbasd.lib (debug builds).
| Protected Member Variables | |
| m_State | Current state of the filter. |
| m_pClock | Pointer to the filter's reference clock. |
| m_tStart | Reference time that corresponds to stream time 0. |
| m_clsid | Class identifier (CLSID) of the filter. |
| m_pLock | Pointer to a critical section that is used to serialize state changes. |
| m_pName | Filter name. |
| m_pGraph | Pointer to the filter graph manager. |
| m_pSink | Pointer to the IMediaEventSink interface on the filter graph manager. |
| m_PinVersion | Current version of the set of pins on this filter. |
| Public Methods | |
| CBaseFilter | Constructor method. |
| ~CBaseFilter | Destructor method. |
| StreamTime | Retrieves the current stream time. Virtual. |
| IsActive | Determines whether the filter is currently active (running or paused). |
| IsStopped | Determines whether the filter is currently stopped. |
| NotifyEvent | Sends an event notification to the filter graph manager. |
| GetFilterGraph | Retrieves a pointer to the filter graph manager. |
| ReconnectPin | Breaks an existing pin connection and reconnects it to the same pin, using a specified media type. |
| GetPinVersion | Retrieves a version number for the set of pins on this filter. Virtual. |
| IncrementPinVersion | Increments the version number on the set of pins. |
| GetSetupData | Retrieves the registration data for the filter. Virtual. |
| Pure Virtual Methods | |
| GetPinCount | Retrieves the number of pins. |
| GetPin | Retrieves a pin. |
| IPersist Methods | |
| GetClassID | Retrieves the class identifier. |
| IMediaFilter Methods | |
| GetState | Retrieves the filter's state (running, stopped, or paused). |
| SetSyncSource | Sets a reference clock for the filter. |
| GetSyncSource | Retrieves the reference clock that the filter is using. |
| Stop | Stops the filter. |
| Pause | Pauses the filter. |
| Run | Runs the filter. |
| IBaseFilter Methods | |
| EnumPins | Enumerates the pins on this filter. |
| FindPin | Retrieves the pin with the specified identifier. |
| QueryFilterInfo | Retrieves information about the filter. |
| JoinFilterGraph | Notifies the filter that it has joined or left a filter graph. |
| QueryVendorInfo | Retrieves a string containing vendor information. |
| IAMovieSetup Merthods | |
| Register | Adds the filter to the registry. |
| Unregister | Removes the filter from the registry. |