基本就是实现 IDocHostUIHandler 和 IDocHostShowUI 两个接口,IE 控件会在适当的时候调用这两个接口,
我只要按照帮助文档的说明设置不同的值就可以了。
挂接这两个接口接口到控件中去,有两种方法:
一种是通过 ICustomDoc 接口定制,代码如下:
但是因为只有文档装入之后才可以取得Document的值,所以需要预先装入一个空文档,这里是about:blank。html0.Navigate2("about:blank");
ICustomDoc o = html0.Document as ICustomDoc;
o.SetUIHandler(this as IDocHostUIHandler);
第二种方法是完成 Active Document Host 所需要的所有接口
, IOleClientSite
, IOleInPlaceSite
, IOleDocumentSite
//, IOleWindow // IOleInPlaceSite 已经包含了该接口
, IDocHostUIHandler
, IDocHostShowUI// IOleInPlaceSite.GetWindowContext 调用需要以下两个接口
, IOleInPlaceFrame
//, IOleInPlaceUIWindow // IOleInPlaceFrame 已经实现了该接口// 接口 IOleClientSite.GetContainor 需要用到
, IOleContainer