Метод CSourceSeeking.CheckCapabilities

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Метод CheckCapabilities запрашивает, заданы ли в потоке возможности поиска. Этот метод реализует метод IMediaSeeking::CheckCapabilities .

Синтаксис

HRESULT CheckCapabilities(
   DWORD *pCapabilities
);

Параметры

pCapabilities

Указатель на побитовую комбинацию одного или нескольких атрибутов AM_SEEKING_SEEKING_CAPABILITIES .

Возвращаемое значение

Возвращает одно из значений HRESULT , перечисленных в следующей таблице.

Код возврата Описание
S_FALSE
Не все возможности в pCapabilities присутствуют.
S_OK
Все возможности в pCapabilities присутствуют.
E_POINTER
Аргумент указателя NULL.

Комментарии

По мере реализации этот метод проверяет значение *pCapabilities по переменной-члену CSourceSeeking::m_dwSeekingCaps . Однако он не задает значение *pCapabilitiesравным m_dwSeekingCaps, как описано для метода IMediaSeeking::CheckCapabilities . Кроме того, в случае, когда ни одна из указанных возможностей не доступна, метод не возвращает E_FAIL. Более полной реализацией будет следующее:

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;
}

Требования

Требование Значение
Заголовок
Ctlutil.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

См. также раздел

Класс CSourceSeeking