Método CSourceSeeking.CheckCapabilities

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O CheckCapabilities método consulta se o fluxo especificou recursos de busca. Esse método implementa o método IMediaSeeking::CheckCapabilities .

Sintaxe

HRESULT CheckCapabilities(
   DWORD *pCapabilities
);

Parâmetros

Pcapabilities

Ponteiro para uma combinação bit a bit de um ou mais atributos AM_SEEKING_SEEKING_CAPABILITIES .

Retornar valor

Retorna um dos valores HRESULT listados na tabela a seguir.

Código de retorno Descrição
S_FALSE
Nem todos os recursos em pCapabilities estão presentes.
S_OK
Todos os recursos em pCapabilities estão presentes.
E_POINTER
Argumento de ponteiro NULL.

Comentários

Conforme implementado, esse método verifica o valor de *pCapabilities em relação à variável de membro CSourceSeeking::m_dwSeekingCaps . No entanto, ele não define *pCapabilities igual a m_dwSeekingCaps, conforme descrito para o método IMediaSeeking::CheckCapabilities . Além disso, no caso em que nenhum dos recursos especificados estiver disponível, o método não retornará E_FAIL. Uma implementação mais completa seria a seguinte:

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

Requisitos

Requisito Valor
parâmetro
Ctlutil.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CSourceSeeking