Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This interface is an optional interface for use by plug-in distributors to notify them of changes in the filter graph state.

When to Implement

Implement this interface when writing a plug-in distributor (PID) that is aggregated with the filter graph manager if you want the PID to receive notifications of control and changes in the composition of filter graphs.

PIDs may often use methods on the filter graph manager. During a call to an IDistributorNotifymethod, do not take any lock that may be held by another code path that calls the filter graph manager. To do so could result in a deadlock.

When to Use

The filter graph manager queries for this interface on any plug-in distributors that it aggregates.

If found, it calls the appropriate Run, Pause, or SetSyncSourcemethod before calling them on the IBaseFilterinterface of each filter. It calls the NotifyGraphChangemethod when a filter is added or removed, or when connections are changed.

Methods in Vtable Order

The following table shows the methods that appear in the Vtable beneath the standard COM methods inherited from IUnknown.

Method Description

Stop

Called when the filter graph is entering a stopped state.

Pause

Called when the filter graph is entering a paused state.

Run

Called when the filter graph is entering a running state.

SetSyncSource

Called when a new clock is registered.

NotifyGraphChange

Called when the set of filters in the filter graph change or their connections change.

Requirements

Windows Embedded CE Windows CE 2.12 and later
Windows Mobile Windows Mobile Version 5.0 and later
Note Microsoft DirectShow applications and DirectShow filters have different include file and Library requirements
For more information, see Setting Up the Build Environment