在TWebBrowser中取得Frame对像
2008-04-20 22:03:18
分类: Linux
在Delphi中取得Frame和IFrame对像的方法: 下面两种方法好像都不能取得不属于同一个域下框架,暂时还不知道该如何解决这个问题。 一、使用QueryInterface function GetFrame(Doc: IHTMLDocument2; Index: OleVariant): IHTMLDocument2; var OleWin: OleVariant; FrameWin: IHTMLWindow2; begin if (Doc.frames.length <= Index) then Result := nil else begin OleWin := Doc.Frames.Item(Index); IUnknown(OleWin).QueryInterface(IID_IHTMLWindow2, FrameWin); Result := FrameWin.Document; end; end; 二、使用IOleContainer function GetFrame(Doc: IHTMLDocument2; Index: OleVariant): IHTMLDocument2; var OleContainer: IOleContainer; Enum: IEnumUnknown; Unk: IUnknown; Fetched: PLongint; begin Doc.domain := '163.com'; Fetched := nil; OleContainer := wb.Document as IOleContainer; OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum); Enum.Skip(Index); Enum.Next(1, Unk, Fetched); Result := (Unk as IWebbrowser2).Document as IHTMLDocument2; end; |
|