CSourceSeeking::CheckCapabilities
CheckCapabilities メソッドは、指定したシーク能力をストリームが持っているかどうかを問い合わせる。このメソッドは IMediaSeeking::CheckCapabilities メソッドを実装する。
構文
HRESULT CheckCapabilities(
DWORD *pCapabilities
);
パラメータ
pCapabilities
1 つまたは複数の AM_SEEKING_SEEKING_CAPABILITIES 属性の、ビットごとの組み合わせへのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
値 | 説明 |
S_FALSE | pCapabilities のすべての能力を持ってはいない。 |
S_OK | pCapabilities のすべての能力が存在する。 |
E_POINTER | NULL ポインタ引数。 |
注意
実装されているように、このメソッドは CSourceSeeking::m_dwSeekingCaps メンバ変数に対する *pCapabilities の値をチェックする。しかし、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
{
dwCaps = E_FAIL;
}
*pCapabilities = dwCaps;
}
else *pCapabilities = 0;
return hr;
}
参照