COM(Component Object Model)是微软提出的一种组件对象模型,它允许不同编程语言之间进行交互,实现跨平台的软件组件重用。ActiveX是基于COM技术的一种应用,主要用于Web应用程序,尤其是早期的网页交互。在COM或ActiveX中,自定义类型(用户定义的数据结构)的使用是一个关键特性,它使得组件能够传递复杂的数据结构,而不仅仅是简单的基本类型。 在COM中,自定义类型通常通过接口来定义。接口是一种规范,描述了组件可以提供的服务和调用的函数。当需要传递自定义数据结构时,我们首先定义一个接口,该接口包含一组方法,这些方法接收或返回自定义类型的实例。自定义类型通常以结构体(struct)的形式存在于C++中,或者以类(class)的形式存在于其他支持COM的语言中,如VBScript或JavaScript。 自定义类型的定义需要注意以下几点: 1. 数据封装:确保自定义类型封装了所有必要的数据成员,并提供相应的访问方法。这可以通过在接口中声明getter和setter方法实现。 2. 数据序列化与反序列化:为了在组件之间传递自定义类型,需要将数据结构转换为二进制流(序列化),并在接收端还原(反序列化)。COM提供了`IStream`接口来处理这种操作。 3. 注册:自定义类型通常需要注册到系统注册表中,这样其他组件才能识别并使用它们。使用`regsvr32`工具或在代码中调用`CoRegisterClassObject`可以完成注册。 4. 类工厂:COM组件需要一个类工厂(Class Factory)来创建自定义类型的实例。类工厂实现了`IClassFactory`接口,负责根据接口实例化对象。 5. 接口继承:自定义类型通常会继承自`IUnknown`接口,这是所有COM接口的基础,包含了`QueryInterface`、`AddRef`和`Release`三个方法,用于接口查询、引用计数和释放资源。 在ActiveX中,自定义类型的应用通常涉及网页控件,如传递自定义数据到JavaScript,或者从JavaScript接收自定义数据。这需要在控件的接口中定义适当的方法,并在JavaScript端使用`new ActiveXObject`来创建和操作自定义类型。 在开发过程中,使用Visual Studio等IDE可以简化许多步骤,例如生成接口的IDL文件,编译为TLB(Type Library),然后在其他语言中导入这个TLB以获得对自定义类型的访问。 COM和ActiveX中的自定义类型使用是一项强大的功能,它使得组件之间的通信更加灵活,能够处理更复杂的业务逻辑。然而,也需要注意其可能带来的安全问题,因为数据的序列化和反序列化过程可能会引入潜在的攻击点。因此,在设计和实现自定义类型时,应充分考虑安全性,避免数据泄漏或被恶意篡改。























































- 1

- yangqs11082014-09-24学习中,免费资源 下载下来看看,还是有所帮助,
- 太极者2014-08-30感谢楼主,不过对我的项目没有多大帮助,最后全部使用了BSTR来传递参数了

- 粉丝: 137
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 国家开放大学电大《数据结构》网络课形考任务3作业及答案.docx
- 全国计算机等级考试二级C语言笔试高频考点.ppt
- 宇龙数控加工仿真软件使用手册.doc
- 介绍机械设计制造及自动化.ppt
- 装饰装修工程项目管理流程图样本.doc
- 国培计划示范性网络研修与校本研修整合培训项目实施方案解析.doc
- 色彩学入门专业教程(色彩原理photoshop入门必备).ppt
- 网络技术第二章网络技术基础样本.doc
- 高级人民法院大楼网络系统设计方案.doc
- 网络营销在我国中小企业应用中的问题分析.doc
- “互联网+”时代下提升教师信息素养的策略.doc
- 网络计划技术在施工进度控制中的应用.pdf
- 广安气田通信施工组织设计模板.doc
- 基于PLC的五层电梯控制系统的设计.doc
- 机电系统安全质量标准化标准及考核评级办法.doc
- 基于超高频法的GIS局放警报系统的设计本科毕业设计说明.doc


