This is an abstract base class from which all filters are derived. It supports the Component Object Model (COM) IBaseFilter interface and is derived from the CUnknown class. This class supports the enumeration of pins by calling the pure virtual member functions CBaseFilter::GetPin and GetPinCount. These member functions must be overridden by any derived class.
The CBaseFilter class assumes that all the filter's pins are derived from the CBasePin class. CBaseFilter::GetPin must return a pointer to CBasePin.
All member functions in this class that return HRESULT and accept a pointer as a parameter return E_POINTER when passed a null pointer.
Protected Data Members
Member
Description
m_clsid
Class identifier (CLSID) used for serialization using IPersist.
m_pClock
Filter graph's reference clock.
m_pGraph
Pointer to a graph to which this filter belongs.
m_PinVersion
Current version of the pins used on the filter.
m_pLock
Pointer to the critical section used for locking.
m_pName
Filter name.
m_pSink
Pointer to the IMediaEventSink interface on the filter graph manager.
m_State
Current state: running or paused.
m_tStart
Offset from the stream time to the reference time.
Returns the current version of the base filter for comparison with the version with which the pin was initialized. This member function can be overridden if pins are being created dynamically.
Passes out pointers to any interfaces added to the derived filter class.
Requirements
DirectShow applications and DirectShow filters have different include file and link library requirements. See Setting Up the Build Environment for more information.