CSourceSeeking::CheckCapabilities
Microsoft DirectShow 9.0 |
CSourceSeeking::CheckCapabilities
The CheckCapabilities method queries whether the stream has specified seeking capabilities. This method implements the IMediaSeeking::CheckCapabilities method.
Syntax
HRESULT CheckCapabilities( DWORD *pCapabilities );
Parameters
pCapabilities
Pointer to a bitwise combination of one or more AM_SEEKING_SEEKING_CAPABILITIES attributes.
Return Value
Returns one of the HRESULT values listed in the following table.
Value | Description |
S_FALSE | Not all of the capabilities in pCapabilities are present. |
S_OK | All capabilities in pCapabilities are present. |
E_POINTER | NULL pointer argument. |
Remarks
As implemented, this method checks the value of *pCapabilities against the CSourceSeeking::m_dwSeekingCaps member variable. However, it does not set *pCapabilities equal to m_dwSeekingCaps, as described for the IMediaSeeking::CheckCapabilities method. Also, in the case where none of the specified capabilities are available, the method does not return E_FAIL. A more complete implementation would be as follows:
STDMETHODIMP CheckCapabilities(DWORD *pCapabilities) { CheckPointer(pCapabilities, E_POINTER) DWORD dwCaps; HRESULT hr = GetCapabilities(&dwCaps); if (SUCCEEDED(hr)) { dwCaps &= *pCapabilities; if (dwCaps) { hr = (dwCaps == *pCapabilities ? S_OK : S_FALSE ); } else { hr = E_FAIL; } *pCapabilities = dwCaps; } else { *pCapabilities = 0; } return hr; }
Requirements
** Header:** Declared in Ctlutil.h; include Streams.h.
** Library:** Use Strmbase.lib (retail builds) or Strmbasd.lib (debug builds).
See Also