IGraphConfig interface (strmif.h)

[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 Filter Graph Manager exposes IGraphConfig to support dynamic graph building. This interface enables applications and filters to reconfigure the filter graph while the graph is in a running state, and without losing data from the stream.

The most straightforward way to rebuild the graph dynamically is to call the IGraphConfig::Reconnect method. This method handles most of the details of dynamically rebuilding the graph. If a situation ever arises where you want to implement your own technique, IGraphConfig also provides the IGraphConfig::Reconfigure method. This method obtains a lock on the filter graph and then calls a callback function in your application, which reconfigures the graph. With this method, most of the work is shifted to your application. For more information, see Dynamic Graph Building.

To optimize the process of adding and removing filters, the filter graph maintains a cache of filters. During a call to the Reconnect method, you can specify that any filters removed from the graph get added to the cache. You can also add a filter to the cache directly, if you know it is likely to be needed, by calling IGraphConfig::AddFilterToCache. The IGraphBuilder::Render, IGraphBuilder::RenderFile, and IGraphBuilder::Connect methods automatically try to use filters in the cache before using other filters. Also, in the Reconnect method you can specify that only cached filters will be used for the reconnection. Note that filters held in the cache are not actually part of the graph. They are disconnected from any pins and are kept in a stopped state.

Inheritance

The IGraphConfig interface inherits from the IUnknown interface. IGraphConfig also has these types of members:

Methods

The IGraphConfig interface has these methods.

 
IGraphConfig::AddFilterToCache

The AddFilterToCache method adds a filter to the filter cache.
IGraphConfig::EnumCacheFilter

The EnumCacheFilter method enumerates the filters in the filter cache.
IGraphConfig::GetFilterFlags

The GetFilterFlags method retrieves a filter's configuration information.
IGraphConfig::GetStartTime

The GetStartTime method retrieves the reference time that was used when the filter graph was last put into a running state.
IGraphConfig::PushThroughData

The PushThroughData method pushes data through the filter graph to the specified pin.
IGraphConfig::Reconfigure

The Reconfigure method locks the filter graph and calls a callback function in the application or filter to perform a dynamic reconfiguration.
IGraphConfig::Reconnect

The Reconnect method performs a dynamic reconnection between two pins.
IGraphConfig::RemoveFilterEx

The RemoveFilterEx method removes a filter from the filter graph.
IGraphConfig::RemoveFilterFromCache

The RemoveFilterFromCache method removes a filter from the filter cache.
IGraphConfig::SetFilterFlags

The SetFilterFlags method sets a filter's configuration information.

Requirements

Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header strmif.h (include Dshow.h)