Что не так с этим вызовом connectdirect ()?
В реализации DirectShow на языке C++ я добавил два графика в Диспетчер графиков (проверки ответов удалены для простоты). Когда я пытаюсь соединить их с помощью ConnectDirect, и я получаю "E_POINTER недопустимый указатель в результате". Что я делаю не так?
CComPtr<IBaseFilter> peconsCX3RDKwithOV5640; hr = peconsCX3RDKwithOV5640.CoCreateInstance(CLSID_econsCX3RDKwithOV5640); hr = pGraph->AddFilter(peconsCX3RDKwithOV5640, L"e-con's CX3 RDK with OV5640"); CComPtr<IBaseFilter> pAVIDecompressor; hr = pAVIDecompressor.CoCreateInstance(CLSID_AVIDec); hr = pGraph->AddFilter(pAVIDecompressor, L"AVI Decompressor"); // ConnectDirect give an Invalid pointer response hr = pGraph->ConnectDirect(GetPin(peconsCX3RDKwithOV5640, L"Capture"), GetPin(pAVIDecompressor, L"XForm In"), NULL);
Что я уже пробовал:
Я использовал GraphEdit для этой модели,и она работает правильно. Я проверил правильность обозначений pin-кода и попытался поставить подчеркивание (_) между XForm и In (XForm_In). Я проверил и перепроверил синтаксис и не вижу своей ошибки.