Deriving from CBasePin
[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.]
To implement a pin using CBasePin, you must derive a new class from the base class and override several of its methods. You must override the following methods:
You will probably need to override these additional methods:
- CBasePin::Active
- CBasePin::BreakConnect
- CBasePin::CheckConnect
- CBasePin::CompleteConnect
- CBasePin::EndOfStream
- CBasePin::Inactive
- CBasePin::Notify
- CBasePin::Run
Finally, you must implement the IPin::BeginFlush and IPin::EndFlush methods.
Some of these methods are implemented in base classes that derive from CBasePin, such as CBaseInputPin and CBaseOutputPin.
Related topics