IMediaSeeking::CheckCapabilities
Microsoft DirectShow 9.0 |
IMediaSeeking::CheckCapabilities
The CheckCapabilities method queries whether a stream has specified seeking capabilities.
Syntax
HRESULT CheckCapabilities( DWORD *pCapabilities );
Parameters
pCapabilities
[in, out] Pointer to a bitwise combination of one or more AM_SEEKING_SEEKING_CAPABILITIES attributes. When the method returns, the value indicates which of those attributes are available.
Return Values
Returns an HRESULT value. Possible values include the following.
Return code | Description |
S_FALSE | Not all of the capabilities in pCapabilities are present. |
S_OK | All capabilities in pCapabilities are present. |
E_FAIL | No capabilities in pCapabilities are present. |
E_POINTER | NULL pointer argument. |
Remarks
If you are only interested in a few specific capabilities, calling this method is more efficient than calling IMediaSeeking::GetCapabilities, which checks all the stream's seeking capabilities.
Declare a DWORD value equal to the bitwise-OR combination of the AM_SEEKING_SEEKING_CAPABILITIES attributes that you want to test. Pass a pointer to this value in the pCapabilities parameter. When the method returns, pCapabilities contains a subset of the original bits, indicating which capabilities are present. The return value indicates whether some, none, or all of the requested capabilities are present.
The following code example shows how to find out whether the stream supports forward seeking, backward seeking, and absolute seeking.
// Set flags for the capabilities you want to check. DWORD dwCaps = AM_SEEKING_CanSeekAbsolute | AM_SEEKING_CanSeekForwards | AM_SEEKING_CanSeekBackwards; HRESULT hr = pMediaSeeking->CheckCapabilities(&dwCaps); if(FAILED(hr)) { // The stream cannot seek. } else if (hr == S_OK) { // The stream can seek forward, backward, and to an absolute position. } else if (hr == S_FALSE) // The stream might have some of the capabilities. { if (dwCaps & AM_SEEKING_CanSeekAbsolute) // The stream can seek to an absolute position. if (dwCaps & AM_SEEKING_CanSeekAbsolute) // The stream can seek forward. if (dwCaps & AM_SEEKING_CanSeekBackwards) // The stream can seek backward. }
Requirements
Header: Declared in Strmif.h; include Dshow.h.
Library: Use Strmiids.lib.
See Also