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

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

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

概述:

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


适用于:
ActiveX
Microsoft .NET Compact Framework 版本 2.0

摘要:了解如何在使用 .NET Compact 的应用程序中宿主 ActiveX 控件。本文提供代码示例下载。

从 Microsoft Download Center 下载 。

简介

Microsoft .NET Compact Framework 版本 2.0 引入了组件对象模型 (COM) 支持 - 这是一项版本 1.0 中没有的功能。以下事实或许能充分说明对该功能的迫切需要:Odyssey Software 已经发布了 CFCOM 产品(该工具用于突破对 COM 支持的限制,允许调用 COM 接口以及宿主 ActiveX 控件的工具),紧接着 .NET Compact Framework 立即发布了测试版。

尽管如此,在 .NET Compact Framework 中提供的 COM Interop 支持仍然是一个巨大进步。通过 COM 接口,Windows CE 中有越来越多的操作系统功能获得支持。这些功能大致包括 UPnP、蓝牙和 SDP、图像处理、消息队列(也称作 MSMQ)、MAPI、Pocket Outlook 对象模型 (POOM),以及其他许多重要的操作系统功能。在 .NET Compact Framework 版本 2.0 推出之前,开发人员不得不使用 C++ 创建填充程序。现在,开发人员可以直接从托管代码使用大多数 COM 接口,因此无需编写或分发特定于处理器的非托管模块。

.NET Compact Framework 2.0 中的 COM 支持与其桌面计算机中对应的功能相比仍存在一些局限性。例如,不支持外部激活。您不能在托管代码中编写独立的 COM 组件;如果可以,那么 COM 组件就可能已经在一个规则的非托管 Win32 进程中实例化了。因为托管代码需要公共语言运行库 (CLR) 才能执行,所以这种安装需要 Win32 进程来宿主 CLR。因为 CLR 宿主不是 .NET Compact Framework 2.0 的功能,所以整个外部激活模型都不可用。

.NET Compact Framework 2.0 中缺少的另一个重要功能是控件宿主。由于时间和资源所限,框架的最终版本中未包含该功能。但是,宿主一个控件所需要的全部功能都包含在框架中。托管到 COM 的调用(运行时可调用的包装 [RCW]);COM 到托管(COM 可调用的包装 [CCW]);连接点;回调;以及对控件句柄的访问(最终!)- 这些功能都包括在内。本文将为您介绍宿主一个控件需要采取的步骤。

控件宿主

本文的内容要求您熟悉 Win32 和 COM。虽然不阅读本文也可以使用所描述的控件宿主框架,但还是建议您阅读本文,因为这会帮助您了解底层的复杂性。

控件和容器

ActiveX 容器是控件宿主的主要概念之一。ActiveX 容器是一个实体,用于为 ActiveX 控件提供运行环境。有关 ActiveX 控件和容器的基本信息越来越难找了。MSDN 网站上或软件开发工具包 (SDK) 中似乎都没有这样的示例:说明如何不使用工具(如活动模板库 (ATL) 或 Microsoft 基础类 (MFC) 库)即可编写容器或控件。不得不承认,ATL 为此提供了巨大的帮助 - 但不是在您需要从头实现一个基本容器时。本文结尾处的文章列表几乎涵盖了 MSDN 网站提供的有关该主题的所有文章。


标签:

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


为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP