Как загрузить потоковые(stream) данные в WebBrowser не прибегая к открытию файла?

Материал из DRKB


function TForm1.LoadFromStream(const AStream: TStream): HRESULT;
begin
  AStream.seek(0, 0);
  Result := (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
end;


Примечание от Vit

  1. В Uses добавить ActiveX
  2. Если в TWebBrowser ничего не загружено то код выдаёт Access Violation

Исправляется следующим образом:

function TForm1.LoadFromStream(const AStream: TStream): HRESULT;
begin
  AStream.Seek(0, soFromBeginning);
  WebBrowser1.Navigate('about:blank');
  Result := (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
end;


Перевод материала с сайта members.home.com/hfournier/webbrowser.htm

Author: Per Larsen
Author: Vit
Source: http://blackman.km.ru/myfaq/cont4.phtml
ID: 03454