技术开发 频道

定制 WebBrowser 控件

  【IT168 技术文档】  因为工作需要,这几天在寻找定制 WebBrowser 控件的方法。原来已经研究过一阵子,原理大概知道,
 基本就是实现 IDocHostUIHandler 和 IDocHostShowUI 两个接口,IE 控件会在适当的时候调用这两个接口,
 我只要按照帮助文档的说明设置不同的值就可以了。

 挂接这两个接口接口到控件中去,有两种方法:
 一种是通过 ICustomDoc 接口定制,代码如下:

  html0.Navigate2("about:blank");
 ICustomDoc o = html0.Document as ICustomDoc;
 o.SetUIHandler(this as IDocHostUIHandler);

    但是因为只有文档装入之后才可以取得Document的值,所以需要预先装入一个空文档,这里是about:blank。
 
 第二种方法是完成 Active Document Host 所需要的所有接口
, IOleClientSite
        , IOleInPlaceSite  
        , IOleDocumentSite
        //, IOleWindow        // IOleInPlaceSite 已经包含了该接口
        , IDocHostUIHandler
        , IDocHostShowUI

        // IOleInPlaceSite.GetWindowContext 调用需要以下两个接口
        , IOleInPlaceFrame
        //, IOleInPlaceUIWindow // IOleInPlaceFrame 已经实现了该接口

        // 接口 IOleClientSite.GetContainor 需要用到
        , IOleContainer   


0
相关文章