STDMETHODIMP CapturePin::QueryAccept(const AM_MEDIA_TYPE *pmt) { PrintFunc(L"CapturePin::QueryAccept"); if (pmt->majortype != captureInfo.expectedMajorType) return S_FALSE; if (!IsValidMediaType(pmt)) return S_FALSE; if (connectedPin) connectedMediaType = pmt; return S_OK; }
// IPin methods STDMETHODIMP CapturePin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt) { if(filter->state == State_Running) return VFW_E_NOT_STOPPED; if(connectedPin) return VFW_E_ALREADY_CONNECTED; if(!pmt) return S_OK; if(pmt->majortype != GUID_NULL && pmt->majortype != expectedMajorType) return S_FALSE; if(pmt->majortype == expectedMajorType && !IsValidMediaType(pmt)) return S_FALSE; return S_OK; }
STDMETHODIMP CapturePin::QueryAccept(const AM_MEDIA_TYPE *pmt) { if(pmt->majortype != expectedMajorType) return S_FALSE; if(!IsValidMediaType(pmt)) return S_FALSE; if(connectedPin) { FreeMediaType(connectedMediaType); CopyMediaType(&connectedMediaType, pmt); } return S_OK; }