{*******************************************************} { } { AutoHtmlParser.pas } { } { } { Copyright (c) 2006-2008 Shenturk } { Create: 07.10.2006 } { Update: 11.05.2008 } { } {*******************************************************} unit AutoHtmlParser; {$WARN SYMBOL_PLATFORM OFF} interface uses SysUtils, ComObj, ActiveX, SelfSozluk_TLB, StdVcl, HtmlParser, DomCore, AutoDOMCore; type { TAutoHTMLParser } TAutoHTMLParser = class(TAutoIntfObject, IHTMLParser) private FHtmlParser: THtmlParser; FDocument: TDocument; FIDocument: IDocument; protected function Get_document: IDocument; safecall; function getVersion: WideString; safecall; public constructor Create; destructor Destroy; override; function parseString(const HTMLText: WideString): IDocument; safecall; end; implementation uses ComServ2007; function TAutoHTMLParser.parseString(const HTMLText: WideString): IDocument; begin if Assigned(FDocument) then FreeAndNil(FDocument); { Bug fixed (shenturk) } FIDocument := nil; FDocument := FHtmlParser.parseString(HTMLText); FIDocument := TAutoDocument.Create(FDocument); Result := FIDocument; end; function TAutoHTMLParser.Get_document: IDocument; begin { if not Assigned(FDocument) then FDocument := TAutoDocument.Create(FHtmlParser.HtmlDocument); } Result := FIDocument; end; constructor TAutoHTMLParser.Create; begin inherited Create(ComServer.TypeLib, IHTMLParser); FHtmlParser := THtmlParser.Create; end; destructor TAutoHTMLParser.Destroy; begin if Assigned(FDocument) then FreeAndNil(FDocument); FIDocument := nil; FHtmlParser.Free; inherited Destroy; end; function TAutoHTMLParser.getVersion: WideString; begin Result := 'JaDelAx HTML Parser Version 2.0'; end; end.