Enumerating Devices and Filters

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

Sometimes an application needs to locate a particular filter on the user's system. For example, a video capture application might display a list of available capture devices. Because DirectShow uses a component-based architecture, you cannot know at design time which filters are installed on the user's system. This is particularly true for filters that represent hardware devices. DirectShow provides two components that locate registered filters:

The enumerators discussed in this section follow the standard form used by COM enumeration interfaces. For more information, see the "IEnumXXXX" topic in the Microsoft Platform Software Development Kit (SDK).

This section contains the following topics:

Basic DirectShow Tasks