Форум: "Corba";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];
Внизсохранение графа фильтра Найти похожие ветки
← →
alex_le (2006-04-08 00:35) [0]как перевести в delphi пример из windows написанный на c++ для сохранения графа на диске
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))
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;
← →
Romkin © (2006-04-10 12:08) [1]Ну выглядеть должно примерно так:
function SaveGraphFile(pGraph: IGraphBuilder; wszPath: POLEStr): HRESULT; {А вот тут stdcall просится, что-то сомневаюсь я, что WINAPI нет}
const
wszStreamName: POleStr = "ActiveMovieGraph"; //Допустимо и PWideChar
var
pStorage: IStorage;
pStream: IStream;
pPersist: IPersistStream;
begin
Result := StgCreateDocfile(wszPath,
STGM_CREATE or STGM_TRANSACTED or STGM_READWRITE or STGM_SHARE_EXCLUSIVE, 0, pStorage);
//ДАлее что-то непонятное, должно быть
if FAILED(Result) then exit;
Result := pStorage.CreateStream( wszStreamName, STGM_WRITE or STGM_CREATE or STGM_SHARE_EXCLUSIVE, 0, 0, pStream);
//Опять
if FAILED(Result) then exit;
pGraph.QueryInterface(IPersistStream, pPersist);
Result := pPersist.Save(pStream, True);
if SUCCEEDED(Result) then
Result := pStorage.Commit(STGC_DEFAULT);
end;
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c