CSourceSeeking.CheckCapabilities メソッド
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは CheckCapabilities
、ストリームでシーク機能が指定されているかどうかを照会します。 このメソッドは 、IMediaSeeking::CheckCapabilities メソッドを 実装します。
構文
HRESULT CheckCapabilities(
DWORD *pCapabilities
);
パラメーター
-
pCapabilities
-
1 つ以上の AM_SEEKING_SEEKING_CAPABILITIES 属性のビットごとの組み合わせへのポインター。
戻り値
次の表に示す HRESULT 値のいずれかを返します。
リターン コード | 説明 |
---|---|
|
pCapabilities のすべての機能が存在するわけではありません。 |
|
pCapabilities のすべての機能が存在します。 |
|
NULL ポインター引数。 |
解説
実装されているとおり、このメソッドは *pCapabilities の値を CSourceSeeking::m_dwSeekingCaps メンバー変数に対してチェックします。 ただし、IMediaSeeking::CheckCapabilities メソッドで説明されているように、*pCapabilities はm_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;
}
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|