Freigeben über


CSourceSeeking.CheckCapabilities-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die CheckCapabilities -Methode fragt ab, ob der Stream Suchfunktionen angegeben hat. Diese Methode implementiert die IMediaSeeking::CheckCapabilities-Methode .

Syntax

HRESULT CheckCapabilities(
   DWORD *pCapabilities
);

Parameter

pCapabilities

Zeiger auf eine bitweise Kombination aus mindestens einem AM_SEEKING_SEEKING_CAPABILITIES Attributen.

Rückgabewert

Gibt einen der in der folgenden Tabelle aufgeführten HRESULT-Werte zurück.

Rückgabecode Beschreibung
S_FALSE
Nicht alle Funktionen in pCapabilities sind vorhanden.
S_OK
Alle Funktionen in pCapabilities sind vorhanden.
E_POINTER
NULL-Zeigerargument.

Bemerkungen

Wie implementiert, überprüft diese Methode den Wert von *pCapabilities mit der Membervariable CSourceSeeking::m_dwSeekingCaps . * pCapabilities wird jedoch nicht gleich m_dwSeekingCaps festgelegt, wie für die IMediaSeeking::CheckCapabilities-Methode beschrieben. Wenn keine der angegebenen Funktionen verfügbar ist, gibt die Methode auch keine E_FAIL zurück. Eine vollständigere Implementierung wäre wie folgt:

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

Anforderungen

Anforderung Wert
Header
Ctlutil.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CSourceSeeking-Klasse