A
ALeu
Помогите. Надо созданный граф фильтра сохранить на диске. Ниже приведенный код на С делает это. Не могу написать реализацию этого на Delphi.
Код:
HRESULT SaveGraphFile(IGraphBuilder *pGraph, WCHAR *wszPath)
{
const WCHAR wszStreamName[] = L"ActiveMovieGraph";
HRESULT hr;
IStorage *pStorage = NULL;
hr = StgCreateDocfile( wszPath,
STGM_CREATE │ STGM_TRANSACTED │ STGM_READWRITE │STGM_SHARE_EXCLUSIVE 0, &pStorage);
if(FAILED(hr))
{
return hr;
}
// Next, create a stream to store.
IStream *pStream;
hr = pStorage->CreateStream( wszStreamName,
STGM_WRITE │ STGM_CREATE │ STGM_SHARE_EXCLUSIVE,0, 0,&pStream);
if (FAILED(hr))
{
pStorage->Release();
return hr;
}
// The IpersistStream::Save method converts a stream
// into a persistent object.
IPersistStream *pPersist = NULL;
pGraph->QueryInterface(IID_IPersistStream,reinterpret_cast<void**>(&pPersist));
hr = pPersist->Save(pStream, TRUE);
pStream->Release();
pPersist->Release();
if (SUCCEEDED(hr))
{
hr = pStorage->Commit(STGC_DEFAULT);
}
pStorage->Release();
return hr;