|Microsoft DirectShow 9.0|
The IMediaPosition interface contains methods for seeking to a position within a stream. The IMediaSeeking interface improves on this interface. Applications written in C/C++ should use IMediaSeeking instead of IMediaPosition. However, IMediaSeeking is not compatible with Automation, so applications written in Microsoft® Visual Basic® 6.0 must use IMediaPosition instead.
This interface is exposed by the Filter Graph Manager as well as by individual filters. Applications should obtain an IMediaPosition interface pointer from the Filter Graph Manager, not from a filter. The Filter Graph Manager distributes method calls to all of the renderer filters. The renderer filters propagate the calls upstream to the source filters. This sequence of events ensures that all streams remain synchronized.
If one of the distributed calls returns an error, the Filter Graph Manager returns the first error value it received. Some of the distributed calls may have succeeded in this case. However, the filter graph does not return E_NOTIMPL unless all the distributed calls return E_NOTIMPL. If at least one filter in the graph implements the method, the Filter Graph Manager does not return E_NOTIMPL.
Filter developers: Do not implement this method. Implement IMediaSeeking instead. If your filter supports IMediaSeeking, the Filter Graph Manager automatically handles calls to IMediaPosition.
In addition to the methods inherited from IDispatch, the IMediaPosition interface exposes the following methods.
|get_Duration||Retrieves the duration of the stream.|
|put_CurrentPosition||Sets the current position, relative to the total duration of the stream.|
|get_CurrentPosition||Retrieves the current position, relative to the total duration of the stream.|
|get_StopTime||Retrieves the time at which the playback will stop, relative to the duration of the stream.|
|put_StopTime||Sets the time at which the playback will stop, relative to the duration of the stream.|
|get_PrerollTime||Retrieves the amount of data that will be queued before the start position.|
|put_PrerollTime||Sets the amount of data that will be queued before the start position.|
|put_Rate||Sets the playback rate.|
|get_Rate||Retrieves the playback rate.|
|CanSeekForward||Determines whether the filter graph can seek forward in the stream.|
|CanSeekBackward||Determines whether the filter graph can seek backward in the stream.|
Header: Declared in Control.h; include Dshow.h.
Library: Use Strmiids.lib.