Здравствуйте, B_A_D, Вы писали:
B_A>Здравствуйте, CyberDemon, Вы писали:
B_A>Если теперь провести небольшой тест
B_A>B_A> IPin *pGrabOut = GetOutPin(pGrabBase, 0);
B_A> IPin *pGrabIn = GetInPin(pGrabBase, 0);
B_A> IPin *pPinIn,*pPinOut;
B_A> pGrabOut->ConnectedTo(&pPinOut); //<--- вот здесь проверь,
B_A> pGrabIn->ConnectedTo(&pPinIn); //<--- к чему он подключен и все станет ясно
B_A>
B_A>то выяснится, к чему этот граббер подключается при рендеринге.
B_A>А чтоб в воздухе висел ......
Ок, соглашусь (но потестирую все равно

). Просто явного соединения нет, вот я так посчитал. Не думал, что DirectShow настолько "рюхливая" весчь :D
Здравствуйте, CyberDemon и B_A_D!
Просто напомню, что к любому графу можно подключиться
из GraphEdt.exe и увидеть все воочию. Для этого нужно
добавть в свой код вызов вот такой функции:
static HRESULT AddGraphToRot(IN IUnknown *pUnkGraph, OUT DWORD *pdwRegister)
{
ATLASSERT(pdwRegister);
ATL::CComPtr<IMoniker> pMoniker;
ATL::CComPtr<IRunningObjectTable> pROT;
HRESULT hr;
hr = ::GetRunningObjectTable(0, &pROT);
if (SUCCEEDED(hr))
{
WCHAR wsz[128];
wsprintfW(wsz, L"FilterGraph %08x pid %08x", (DWORD_PTR)pUnkGraph, ::GetCurrentProcessId());
hr = ::CreateItemMoniker(L"!", wsz, &pMoniker);
}
if (SUCCEEDED(hr))
hr = pROT->Register(0, pUnkGraph, pMoniker, pdwRegister);
if (FAILED(hr))
*pdwRegister = 0;
return hr;
}