CEnumMediaTypes.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 media types. This method implements the IEnumMediaTypes::Next method.

Syntax

HRESULT Next(
   ULONG         cMediaTypes,
   AM_MEDIA_TYPE **ppMediaTypes,
   ULONG         *pcFetched
);

Parameters

cMediaTypes

Number of media types to retrieve.

ppMediaTypes

Array of pointers to AM_MEDIA_TYPE structures, of size cPins.

pcFetched

Pointer to a variable that receives the number of media types the method returned. Can be NULL if cMediaTypes 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 media types as requested.
S_OK
Success.
E_INVALIDARG
Invalid argument.
E_POINTER
NULL pointer argument.
VFW_E_ENUM_OUT_OF_SYNC
The pin's state has changed and is now inconsistent with the enumerator.

Remarks

If the method succeeds, the array specified by ppMediaTypes contains pointers to AM_MEDIA_TYPE structures. The number of structures is equal to *pcFetched. Free each media type by calling the DeleteMediaType function.

This method calls the pin's CBasePin::GetMediaType method to retrieve the media types.

Requirements

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

See also

CEnumMediaTypes Class