あなたがする必要がある:
- 登録を使用すると、「実行中のオブジェクト表」にグラフをフィルタリングする - リモートにGraphEditの([ファイル] - > [接続を使用してフィルタグラフに接続
- 以下のコードを使用して - ROTより良いグラフ)または - GraphEditPlus
であなたのフィルタグラフでこれを呼んで、「接続」グラフとしてあなたのフィルタグラフを登録するには:
void AddToROT(IUnknown *pUnkGraph, DWORD *pdwRegister)
{
IMoniker * pMoniker;
IRunningObjectTable *pROT;
WCHAR wsz[128];
HRESULT hr;
if (FAILED(GetRunningObjectTable(0, &pROT)))
return;
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);
pMoniker->Release();
}
pROT->Release();
}
そして、あなたがグラフリリースする前にこれを呼び出す:
void RemoveFromROT(DWORD pdwRegister)
{
IRunningObjectTable *pROT;
if (SUCCEEDED(GetRunningObjectTable(0, &pROT)))
{
pROT->Revoke(pdwRegister);
pROT->Release();
}
}
`
グレートを!私はDirectShowについての非常に有益な情報を学びます:-) –