25 #ifndef INCLUDED_GetPin_h_GUID_5AABE0CF_8981_4785_0078_147205EEFABF 26 #define INCLUDED_GetPin_h_GUID_5AABE0CF_8981_4785_0078_147205EEFABF 39 PIN_DIRECTION
const PinDir) {
41 pFilter.EnumPins(AttachPtr(pEnum));
43 while (pEnum->Next(1, AttachPtr(pPin),
nullptr) == S_OK) {
44 PIN_DIRECTION PinDirThis;
45 pPin->QueryDirection(&PinDirThis);
46 if (PinDir == PinDirThis) {
53 template <
typename IfaceType>
55 GetPinInterface(ICaptureGraphBuilder2 &builder, IBaseFilter &src,
56 const GUID *pinCategory =
nullptr,
57 const GUID *mediaType =
nullptr) {
59 builder.FindInterface(pinCategory, mediaType, &src, __uuidof(IfaceType),
64 template <
typename IfaceType>
66 GetVideoCapturePinInterface(ICaptureGraphBuilder2 &builder, IBaseFilter &src) {
67 return GetPinInterface<IfaceType>(builder, src, &PIN_CATEGORY_CAPTURE,
71 #endif // INCLUDED_GetPin_h_GUID_5AABE0CF_8981_4785_0078_147205EEFABF Header with a template alias for the desired COM smart pointer.
boost::intrusive_ptr< T > Ptr
Template alias for our desired COM smart pointer.
Definition: ComPtr.h:40
comutils::Ptr< IPin > GetPin(IBaseFilter &pFilter, PIN_DIRECTION const PinDir)
Helper function to get a pin of a particular direction.
Definition: GetPin.h:38