CEnumPins.Next method

[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.]

The Next method retrieves a specified number of pins in the enumeration sequence. This method implements the IEnumPins::Next method.

Syntax

HRESULT Next(
   ULONG cPins,
   IPin  **ppPins,
   ULONG *pcFetched
);

Parameters

cPins

Number of pins to retrieve.

ppPins

Array of size cPins that is filled with IPin pointers.

pcFetched

Pointer to a variable that receives the number of pins retrieved. Can be NULL if cPins is 1.

Return value

Returns one of the HRESULT values shown in the following table.

Return code Description
S_FALSE
Did not retrieve as many pins as requested.
S_OK
Success.
E_INVALIDARG
Invalid argument.
E_POINTER
NULL pointer argument.
VFW_E_ENUM_OUT_OF_SYNC
The filter's state has changed and is now inconsistent with the enumerator.

Remarks

This method retrieves pointers to the specified number of pins, starting at the current position in the enumeration, and places them in the specified array.

This method calls the filter's CBaseFilter::GetPin method to retrieve the pins.

If the method succeeds, the IPin pointers all have outstanding reference counts. Be sure to release them when you are done.

Requirements

Requirement Value
Header
Amfilter.h (include Streams.h)
Library
Strmbase.lib (retail builds);
Strmbasd.lib (debug builds)

See also

CEnumPins Class