次の方法で共有


CSourceSeeking.CheckCapabilities メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

メソッドは CheckCapabilities 、ストリームでシーク機能が指定されているかどうかを照会します。 このメソッドは 、IMediaSeeking::CheckCapabilities メソッドを 実装します。

構文

HRESULT CheckCapabilities(
   DWORD *pCapabilities
);

パラメーター

pCapabilities

1 つ以上の AM_SEEKING_SEEKING_CAPABILITIES 属性のビットごとの組み合わせへのポインター。

戻り値

次の表に示す HRESULT 値のいずれかを返します。

リターン コード 説明
S_FALSE
pCapabilities のすべての機能が存在するわけではありません。
S_OK
pCapabilities のすべての機能が存在します。
E_POINTER
NULL ポインター引数。

解説

実装されているとおり、このメソッドは *pCapabilities の値を CSourceSeeking::m_dwSeekingCaps メンバー変数に対してチェックします。 ただし、IMediaSeeking::CheckCapabilities メソッドで説明されているように、*pCapabilitiesm_dwSeekingCapsと等しく設定されません。 また、指定された機能が使用できない場合、メソッドは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 クラス