分享

在TWebBrowser中取得Frame对像

 quasiceo 2014-07-17

分类: 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;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多