Metodo CSourceSeeking.CheckCapabilities

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il CheckCapabilities metodo esegue una query che indica se il flusso ha specificato le funzionalità di ricerca. Questo metodo implementa il metodo IMediaSeeking::CheckCapabilities .

Sintassi

HRESULT CheckCapabilities(
   DWORD *pCapabilities
);

Parametri

pCapabilities

Puntatore a una combinazione bit per bit di uno o più attributi AM_SEEKING_SEEKING_CAPABILITIES .

Valore restituito

Restituisce uno dei valori HRESULT elencati nella tabella seguente.

Codice restituito Descrizione
S_FALSE
Non tutte le funzionalità in pCapabilities sono presenti.
S_OK
Sono presenti tutte le funzionalità in pCapabilities .
E_POINTER
Argomento puntatore NULL.

Commenti

Come implementato, questo metodo controlla il valore di *pCapabilities rispetto alla variabile membro CSourceSeeking::m_dwSeekingCaps . Tuttavia, non imposta *pCapabilities uguale a m_dwSeekingCaps, come descritto per il metodo IMediaSeeking::CheckCapabilities . Inoltre, nel caso in cui nessuna delle funzionalità specificate sia disponibile, il metodo non restituisce E_FAIL. Un'implementazione più completa sarà la seguente:

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

Requisiti

Requisito Valore
Intestazione
Ctlutil.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)

Vedi anche

Classe CSourceSeeking