HRESULT OutpinVideo::CheckCapabilities(DWORD* pdw) { Filter::Lock lock; HRESULT hr = lock.Seize(m_pFilter); if (FAILED(hr)) return hr; if (!bool(m_pPinConnection)) return VFW_E_NOT_CONNECTED; const Inpin& inpin = m_pFilter->m_inpin; const GraphUtil::IMediaSeekingPtr pSeek(inpin.m_pPinConnection); if (bool(pSeek)) { lock.Release(); return pSeek->CheckCapabilities(pdw); } if (pdw == 0) return E_POINTER; DWORD& dw = *pdw; const DWORD dwRequested = dw; if (dwRequested == 0) return E_INVALIDARG; return E_FAIL; }
HRESULT Outpin::CheckCapabilities(DWORD* pdw) { const Inpin& inpin = m_pFilter->m_inpin; const GraphUtil::IMediaSeekingPtr pSeek(inpin.m_pPinConnection); if (bool(pSeek)) return pSeek->CheckCapabilities(pdw); if (pdw == 0) return E_POINTER; DWORD& dw = *pdw; const DWORD dwRequested = dw; if (dwRequested == 0) return E_INVALIDARG; return E_FAIL; }