TWebBrowser 获取html文件中Frame文档的方法

看代码:

var  document: IHTMLDocument2;
  ole_index: OleVariant;
  frame_dispatch: IDispatch;
  frame_win: IHTMLWindow2;
  frame_doc: IHTMLDocument2;
begin
//获取主文档  
document := WebBrowser1.Document as IHTMLDocument2;
if not Assigned(document) then Exit; //获取第二个frame,为IDIspatch类型 ole_index := 1; frame_dispatch := document.Frames.Item(ole_index);
//如果不为空,转换IDispatch为IHTMLWindow2,获取document
if frame_dispatch <> nil then begin frame_win := frame_dispatch as IHTMLWindow2; frame_doc := frame_win.document;
end;

接下来就可以根据frame_doc进行各种处理了。关键就是通过IDispatch中转类型。