北京大学:《组件技术》课程教学资源(讲义课件)第五讲 COM特性

cOM特性 潘爱民 http:/www.icst.pku.edu.cn/compcourse
COM特性 潘爱民 http://www. http://www.icst.pku.edu.cn/compcourse compcourse

内 复习:COM实现 COM可重用模型 COM跨进程模型 冷COM线程模型 COM安全性
内容 !复习:COM实现 !COM可重用模型 √ !COM跨进程模型 √ !COM线程模型 !COM安全性

复习:对象创建过程 DllGetClassobject 创建类厂对象 客户 创建实例对象
复习:对象创建过程 复习:对象创建过程 客户 组件 创建实例对象 DllGetClassObject { } 创建类厂对象

复习: Treeview组件的注册信息 t口0em38n3-187-1c-0-0C074A08} W713E2-850k-101BAFC-4210102A0DA7 Microsoft tree view control 口 Control t-0 Implemented categories InprocServer 32 C: WINDOWSISYSTEMCOMCTL32 OCX t口 MiscStatus COMCTL TreeCtrl 1 口 Programmable 口 ToolboxBi tmap32 6B7E6392-850A-101B-AFC0-4210102A8DA7} a versionIndependentProgID 白口0713E8A8-8504-1013-AFC0-42101028A7} 口 Inprocserver32 C: WINDOWSISYSTEMCOMCTL32 OCX 中口0713E8n2-850A-101B-AC0-4210102A87} 中口0713E88-8504-101-AFC0-42101028A7}
复习:TreeView TreeView组件的注册信息 组件的注册信息 Microsoft TreeView Control C:\WINDOWS\SYSTEM\COMCTL32.OCX COMCTL.TreeCtrl.1 {6B7E6392-850A-101B-AFC0-4210102A8DA7} C:\WINDOWS\SYSTEM\COMCTL32.OCX

复习:类厂( Class Factory 类厂:用于创建CO对象的COM对象 目标:元成COM对象的创建过程,更好 地把客户与对象隔离开来。 特殊性 实现一个或多个创建接口,缺省的接口 为 , IClassFactor 类厂本身没有 CLSID 但是类厂的引用计数不参与对组件生命周期 的控制,如果需要,可以使用锁计数功能
复习:类厂(Class Factory) Class Factory) !类厂:用于创建 类厂:用于创建COM对象的COM对象 !目标:完成COM对象的创建过程,更好 对象的创建过程,更好 地把客户与对象隔离开来。 地把客户与对象隔离开来。 !特殊性: – 实现一个或多个创建接口,缺省的接口 实现一个或多个创建接口,缺省的接口 为IClassFactory IClassFactory – 类厂本身没有CLSID – 但是类厂的引用计数不参与对组件生命周期 但是类厂的引用计数不参与对组件生命周期 的控制,如果需要,可以使用锁计数功能 的控制,如果需要,可以使用锁计数功能

复习:类(续) 类厂与CM对象有一一对应关系 字典组件 多对象、多类厂组件 类厂1 类厂2 IClassFactory IDictionary 字典对象 对象1 对象2 SPellcHeck
复习:类厂(续) !类厂与COM对象有一一对应关系 对象有一一对应关系 字典组件 IClassFactory 类厂 字典对象 IDictionary ISpellCheck 多对象、多类厂组件 类厂 1 对象 1 类厂 2 对象 2

复习:c0M创建函数 CoGetClassobject Cocreateinstance e CocreatelnstanceEx 冷注意:对于DL组件,创建函 数调用D| GetClassobject引出 函数创建类厂,再由类厂创建 COM对象
复习:COM创建函数 !CoGetClassObject CoGetClassObject !CoCreateInstance CoCreateInstance !CoCreateInstanceEx CoCreateInstanceEx !注意:对于DLL组件,创建函 数调用DllGetClassObject DllGetClassObject引出 函数创建类厂,再由类厂创建 函数创建类厂,再由类厂创建 COM对象

复习:C0M库 CO库的初始化 COM库的内存管理 冷组件程序的装载和卸载 冷常用函数和 HRESULT GUD管理 创建函数 初始化函数 内存管理函数 字符串使用 OLECHAR类型
复习:COM库 !COM库的初始化 !COM库的内存管理 !组件程序的装载和卸载 组件程序的装载和卸载 !常用函数和HRESULT HRESULT – GUID管理 – 创建函数 – 初始化函数 – 内存管理函数 – 字符串使用OLECHAR OLECHAR类型

复习:实现一个进程内C0M组件的步骤 少定义必要的CLSD和ID 少实现COM对象 通过 QueryInterface暴露其接口 一管理引用计数,注意对全局引用计数的维护 实现类厂对象 对象的引用计数不记在全局对象引用计数内 维护锁计数 冷实现D| Getclassobject、D‖ CanUnloadnow (可选)实现两个注册函数
复习:实现一个进程内 复习:实现一个进程内COM组件的步骤 !定义必要的CLSID 和IID !实现COM对象 – 通过QueryInterface QueryInterface暴露其接口 – 管理引用计数,注意对全局引用计数的维护 管理引用计数,注意对全局引用计数的维护 !实现类厂对象 – 对象的引用计数不记在全局对象引用计数内 对象的引用计数不记在全局对象引用计数内 – 维护锁计数 !实现DllGetClassObject DllGetClassObject 、DllCanUnloadNow DllCanUnloadNow ! (可选 )实现两个注册函数 实现两个注册函数

可重用性( reuse,复用) 重用性:当一个程序单元能够对其他的程序单元提 供功能服务时,尽可能地重用原先程序单元的代码, 既可以在源代码一级重用,也可以在可执行代码一级 重用。 冫COM重用性:因为M是建立在二进制代码基础 上的标准,所以其重用性也必然建立于二进制代码上。 COM重用模型:包容和聚合 ☆真正的重用:是实现重用而不是代码重用
可重用性(reuse,复用) !重用性:当一个程序单元能够对其他的程序单元提 当一个程序单元能够对其他的程序单元提 供功能服务时,尽可能地重用原先程序单元的代码, 供功能服务时,尽可能地重用原先程序单元的代码, 既可以在源代码一级重用,也可以在可执行代码一级 既可以在源代码一级重用,也可以在可执行代码一级 重用。 !COM重用性:因为COM是建立在二进制代码基础 是建立在二进制代码基础 上的标准,所以其重用性也必然建立于二进制代码上。 上的标准,所以其重用性也必然建立于二进制代码上。 !COM重用模型:包容和聚合 重用模型:包容和聚合 !真正的重用:是实现重用而不是代码重用 是实现重用而不是代码重用
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京大学:《组件技术》课程教学资源(讲义课件)第四讲 COM实现.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第三讲 COM接口与对象.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第二讲 C++语言基础.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第一讲 软件领城的发展(潘爱民).pdf
- Linux爱好者入门教程.doc
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第12章 图形输出.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第10章 尺寸标注.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第1章 启动与退出.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第2章 绘图基础.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第5章 绘制图形.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第8章 图案填充.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第7章 图块及属性.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第11章 创建三维对象.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第9章 文字标注.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第4章 图层、线型、颜色.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第6章 图形编辑.ppt
- 景德镇高等专科学校:《AutoCAD 2002中文版》课程教学资源(PPT课件讲稿)第3章 绘图设置.ppt
- 华南热带农业大学:《计算机导论》第13章 信息安全.ppt
- 华南热带农业大学:《计算机导论》第12章 电子商务.ppt
- 华南热带农业大学:《计算机导论》第10章 Internet应用基础.ppt
- 北京大学:《组件技术》课程教学资源(讲义课件)第六讲 COM多线程模型、DCOM.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第七讲 自动化 Automation.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第八讲 COM开发.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第九讲 COM:可连接对象&结构化存储.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第十讲 COM:moniker、UT、control.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第十一讲 COM+.pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第十二讲 软件设计模式(一).pdf
- 北京大学:《组件技术》课程教学资源(讲义课件)第十三讲 软件设计模式(二).pdf
- 《数字平面艺术设计》课程教学资源(教材PPT课件,图片版)第2章 平面设计概述.ppt
- 《ASP程序设计》课程配套PPT教学课件(共十一章).ppt
- 湖北工业大学:《数据结构》第10章(10-1)查找的基本概念.ppt
- 湖北工业大学:《数据结构》第9章(9-2)哈希查找表.ppt
- 湖北工业大学:《数据结构》前言、第1章 绪论.ppt
- 湖北工业大学:《数据结构》第2章 线性表(1/4).ppt
- 湖北工业大学:《数据结构》第2章 线性表(2/4).ppt
- 湖北工业大学:《数据结构》第2章 线性表(3/4).ppt
- 湖北工业大学:《数据结构》第2章 线性表(4/4).ppt
- 湖北工业大学:《数据结构》第3章 堆栈和队列(1/3).ppt
- 湖北工业大学:《数据结构》第3章 堆栈和队列(2/3).ppt
- 湖北工业大学:《数据结构》第3章 堆栈和队列(3/3).ppt