半岛权威十大直营(官方)网站

在 .NET Compact Framework 2.0 中宿主 ActiveX 控件(二)

翻译|其它|编辑:郝浩|2006-06-23 16:56:00.000|阅读 1865 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

ActiveX 容器接口

从技术角度看,ActiveX 容器是一个 COM 对象,它支持几个必选接口和几个可选接口。表 1 显示容器使用的接口列表。(该信息来源于 。)

表 1. 容器使用的接口(及其支持)
接口支持注释

可选

仅当容器需要通知时,该接口才是必需的,例如,从具有 IDataObject 接口的控件发出的数据更改通知;从具有 IViewObject2 接口的非活动控件发出的视图更改通知;从作为标准嵌入对象的控件发出的其他通知。

IClassFactory2

可选

该接口不是必需的,但建议对其提供支持。

环境属性的 IDispatch

必需

N/A

必需

如果容器支持双接口,则该接口是必需的。

必需

N/A

IOleContainer

必需

该接口在存储容器站点的文档或窗体对象上实现。控件使用 IOleContainer 接口导航到相同文档或窗体中的其他控件。

IOleControlSite

必需

N/A

IOleInPlaceFrame

必需

N/A

IOleInPlaceSite

必需

N/A

IPropertyNotifySink

可选

只有那些具有自己的属性编辑用户界面 (UI) 的容器才需要该接口。

必需

该接口在容器中实现,从宿主控件查询,由容器使用。

必需

N/A

ISimpleFrameSite

可选

除了对嵌套的简单框架的支持,该接口是可选的。

因为您要编写一个在移动设备上使用,并且具有有限的 支持的容器,所以您要忽略大多数可选功能以及一些必选功能来简化任务。

自身强加的限制

您要编写的容器一次仅限于一个控件。如果需要在窗体上宿主一个以上的 ActiveX 控件,您就必须创建两个不同的容器。因此,您可以不必考虑 ISimpleFrameSite 接口。

您还可以忽略其他接口。例如,您不想提供属性编辑;因此忽略 IPropertyNotifySink 接口。IClassFactory2IDispatch 接口显然不是必要的,因为 CCW(.NET Compact Framework 中的部分 COM 支持)负责类的实例化和 IDispatch 实现。目前,除了通过事件接口传递的通知,您不需要任何其他通知,因此您可以忽略 IAdviseSink 接口。最终,不再需要支持文档或多个控件,因此您可以将 IOleContainer 接口作为存根实现。您也不会在容器上实现 IErrorInfo 接口,因为您将通过异常机制接收错误信息。
标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP