Microsoft DirectX 9.0


The CheckCapabilities method queries whether the stream has specified seeking capabilities. This method implements the IMediaSeeking::CheckCapabilities method.


HRESULT CheckCapabilities(
    DWORD *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.


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 );
            dwCaps = E_FAIL;
        *pCapabilities = dwCaps;
    else *pCapabilities = 0;
    return hr;

See Also