实例介绍
COM原理与应用(完整目录).pdf
(京〕新登字158号 内容简介 本书不仅介绍了COM的基本原理及其扩展知识,还讲述了MT及COM+的一些知识。全书分为三 部分第一部分为C0艟基础,第二部分为CM扩晨,第三部分为C0M应用与发展,介绍了组件化程序设 计思想以及多层软件结构模型。读者在学习了COM的基本原之后,结合MI和COM+所倡导的一些 概念,就可以从更高的层次来理解和使用QOM及cOM+了。 版权所有,翻印必究。 本书封面贴有清华大学出版社激光防伪标签,无标签者不得销售。 图书在版编目(C数据 COM原理与应用潘爱民著碱大学出版社,1992 SBN7-30202268-2 C…Ⅱ.潘…Ⅲ.程序设计方法Ⅳ.TY31111 中国版本图书馆Cm数据核字(1999第63317号 出版者:清华大学出版社(北京清华大学学研楼,邮编100084) http://www.tup.tsinghuaedu.cn 任编辑:刘彤汤斌浩 印刷者:国防工业出版社印刷厂 发行者:新华书店总店北京发行所 开本:787×10921/16印张:29.5宇数:700千字 版次:199年11月第1版200年3月第2次印刷 书号:ISBN7-302-02268-2/TP·2127 印数:5001~900 定价:39.00元 序言 从酝酿写这本关于COM的书到最后完成本书经历了一年半的时间,整个写作过程甚 为艰难,多方面的原因使得本书的写作并不顺利。不过,最后总算完成了预期的目标,当 然,是否实现了当初的感望还得由读者来评判。 促使我写作这本书有多方面的原因。首先,我自己学习COM的时候并不轻松,因为 我找不到合适的资料;后来我就去读COM规范但是COM规范言简意赅,说得很不清楚, 经常把我弄得稀里糊涂,后来通过一些实践经验,才明白了很多。其次,很多读者和朋友 经常向我咨询如何学习COM,让我推荐一些资料或者参考书,我也就尽我所能,为他们作 些介绍,但很难为他们找到合适的参考书。还有一个更重要的原因是,我看到国内市场 上几乎买不到系统介绍COM的中文书,连翻译的书都看不到。由此我就萌生了写作本书 的念头。 在本书的写作过程中,我参阅了大量的技术资料,但在讲述QOM各项技术时,却并没 有直接引用这些资料中的内容,更不是简单的翻译。我希望能够根据我在学习COM过程 中的一些体会制定出一个合理的学习顺序,引导读者走上学习COM的捷径;我也希望能 够把我对COM的理解融入书中,使读者更快地领会COM的技术精华。全书按三部分来 讲述COM第一部分为COM基础,在写作这部分内容时我参阅了“ Inside COM”((COM技 术内幕),已由清华大学出版社引进出版)一书,但重新调整了内容结构,并增加了一些关 于 Windows开发和 Visual c++、MFC方面的知识;第二部分为COM扩展,在讲述这部分 内容吋,我参阁了“ Inside OLE”一书,但因为此书主要是针对OE讲述一些技术专题,所以 我删去了一些不必要的内容,并补充了一些最新的资料;第三部分为M应用与发,这 部分内容我主要参闯了Mcro提供的技术资料,由于这些技术发展变化很快,所以我尽 可能按照最新的版本讲述。 本书不仅介绍了COM的基本原理,也讲述了MS以及COM+的一些知识,所以阅读 本书可以了解到与QOM相关的技术。本书的第三部分还介绍了组件化程序设计恩想以 及多层软件结构模型,这是目前计算机软件的一个发展方向。COM作为 Windows平台上 的组件对象模型,为组件化程序设计和多层软件结构提供了基础平台。因此读者在学习 了COM的基本原理之后,结合MTS和〔OM+所倡导的一些概念,就可以从更高的角度来 痤解COM和使用COM了。 Micrsoft引用术语非常随意,这为本书的写作带来了很大的困难。COM技术涵盖面 非常广,涉及到的术语又非常多,有大量的术语没有标准的中文说法,比如," marshaling Ⅱ COM原理与应用 moniker”、“ apartment”等,对于这些术语我都采用意译的方法,尽可能地把这些词在COM 范畴中的真实含义表达出来,同时还能符合汉语的习惯。如果本书的这些术语表达欠妥, 或者与其他书籍的译法有出人,还请读者见谅。 最后,我要感谢所有直接或间接为本书作出贡献的同事或朋友。首先,我要感谢我的 妻子,没有她多年来对我的支持和理解,我很难写成这样一本技术专题书。其次,我要感 谢北大计算机研究所和方正技术研究院的许多同事和朋友:吕肖庆和邹维给了我很多帮 助,他们的鼓励曾经使我克服了许多困难;杨巍使我转到COM的研究上来,并一直支持我 从事相关技术的研究;孙杰、吕思伟、顾磷、王婷、赵绍君等凡位研究生为我营造了很好的 学习和使用COM的气氛,与他们的多次讨论使我受益匪浅。 我也要向微软(中国)有限公司的张伟伟先生表示谢意,他为我提供了一些最新的技 术资料以及技术信息。最后,我要向清华大学出版社的汤斌浩先生表示感谢,与他的愉快 合作使本书得以顺利出版。 潘爱民 1999年6月于北大蔚秀园 目录 心起南 引言 第1部分COM原理 第1章概述… 1.1cOM的起源… 甲-吾日;4中··血吾··即·中‘·· 1.1.1OE的发展历史 1.1.2組件的产生…………“………………………………………10 1.1.3面向对象的组件模型——C0M 會■會會止會由幽會會 11 1.2COM结构 上·● 21对象与接口… ………………-12 1.22客户/服务器模型…;…………………………………13 1.23COM库 ●中申●申申申鲁·■●● ……14 1.3COM特性…… 1.3.1语言无关性……… ↓中如r『冒◆中中吾+『T·詈■中中中中吉■霅中霅中『■■音中誓中旾霅 3.2进程透明特性 ……,16 1.33可重用性 17 ,4COM的发展前景 中!■ ………………*…17 1.4.1COM与 Window操作系统……………,…… 14.2COM与数据库… …………………………118 1.43COM与 intranet应用 …………19 4.4COM与 Intemet…… 第2章cOM对象和接口… 命甲唱■司p自司t●争命 21 2.1COM对象……… ? 2.1.1CoM对象的标识一—CISD……… 2.12COM对象与C十十对象的比较 昌吾吾如+日4+4 ■最鼻喝↓ 2.2COM接口……… 2.2.1从AP到COM接口…… 25 2,2,2接口定义和标识………… 2.2.3用C++语言定义接口…… ■●·日卓··幽中●◆日 COM原理与应用 2.2.4接口描述语言IL ↓中郾中中中■中中·早中中↓◆中 2.2.5接口的内存模型… 2.26接口的一些特点……… 23 IUnknown接口…… 2.3.1引用计数…… ··自··自日···············即日“·‘··自日·“·白··自中‘白·白 2.3.2实现引用计数 35 2.3.3使用引用计数规则 2.3.4接口查询……… 41 2.3.5cOM对象的接「原则…………… 42 23.6 Querylnterface成员函数的实现 23.7COM对象和接口图示法……………………………………45 24字典组件例子程序 45 241组件程序 DictComp…… 242客户程序 DictCtrl q;······自·咯-日备即·↓部甲备 第3章OOM的实现 3.1进程内组件和进程外组件… 3._.1进程内组件 556 3.1.2进程外组件 霅『口會『詈香■■香 58 3.2通过注册表管理COM对象… 3.2,1注册表结构 ■■山晋↓■鼻db命 322cOM组件注册信息…………………………"……………6 3.2.3COM组件的注册操作… ↓日吾吾4↓B日吾吾晶昌吾吾吾晶如4吾晶+h吾+吾+·+省如h如4如吾吾 63 33类厂( class factory)… 3.3.1类厂和 DIlGetobjectclass函数…………………………………65 3.3.2COM库与类厂的交互…… 晷■■晷暑■■晷晶↓■备晷晶■↓晶↓■↓中↓晶!↓ψ↓↓+也晶● 3.3.3类厂的实现… 33.4类厂对组件生存期的控制… 中自自··自■··卓·噜申曾中·中肀中中鲁甲甲曾甲晋吾晋 73 3.4COM库………………… …………*74 34.1cOM库的初始化… 3.4.2cOM库的内存管理 十平 P會+智 75 34.3组件程序的装载和卸载 ·●■■··■自自血q章·會中饣鲁卓會『鲁鲁昏自會鲁噜鲁■冒俨曾晋昏■■■普晋■吾 77 3.4.4常用函数和 HRESULT 3.5COM实现过程 最↓↓↓↓↓↓↓↓↓↓bd+· 3.5.1进程内组件与客户的协作过程……………………………83 35.2进程外组件与客户的协作过程 3.6字典组件侧子程序的实现 早鲁中會會會中曹 ………87 3.6.1字典组件类厂的实现 品孟▲亠 7 3.62字典对象的实现… ………87 目录 3,6,3全局引出函数的实现 3,6,4客户程序 Dietch 雪『曾冒曾『曾曾『曾T『曾曾骨『『冒骨中們t中中會 智曾中曾中中會中會中争曾中會平會中會 第4章COM特性 学十■+;『 4.1可重用性:包容和聚合…………… 4.1.1包容和聚合 4.1.2包容实现……… 29%9 4.1.3聚合实现 昏昏』↓昏■■↓■■晋青■督仙■晶昌■啬d晋h晶最 414聚合例子程序…… 4.2进程透明性 ↓晶·p·甲·+q 十中曾中曾中忄會中中會 110 4.2.1列集( marshaling)… l11 4.22自定义列集 ●幽■·幽■·申■中·命卓●即咖●自申申电●申·●哥·自申●血咱即自■咱即■↓司 112 4.2.3标准列集……… 「▲↓·↓↓最↓喝↓+中◆d+↓+dm↓一 116 4.24标准列集的实现 …12 4.2.5进程外组件例子程序 4.3安全性 瞢■晷■晷碁■■■↓晶郾↓L↓鼻■↓↓壘↓↓↓↓↓d喝↓止4↓↓↓↓+ ……………126 4.3.1 windows m安全机制… 127 4.3.2激活安全性…………… 鲁中鲁中中◆曾中中鲁中中鲁智白中中鲁曾中中 4.3.3调用安全性 131 4.4多线程特性 ↓■↓↓▲郾昌晷「↓斗●↓↓↓+b 132 4.4.1Win32线程和COM线程 中·命事 132 44.2列集和同步 134 4.4.3套间线程… 拿申·章●申卓咖咖电申电甲甲●鲁 135 4.4.4自由线程 136 44.5进程内组件的线程模型… 第5章用Ⅴ幽C十十开发COM应用… 139 5.1Win32SDK和MFC介绍 ■bψ看备鼻·hφ奇最●ψ如 5.1.1Win32SDK… 5.1.2MFC基础:应用类和窗口类……………… ………………144 5.1.3MFC应用结构·… 會會曾■鲁會■會會■■會■會鲁血章申中●●申●中中申咖申中c 5.1.4MFC库结构…… 5.2MFC对CM应用的支持 5.2.1用嵌套类实现COM接口 150 52.2接口映射表·…… 153 5.23 CCmdtarget类实现 Unknow ………157 5.24COM引出函数和类厂实现……………………………………159 5.2.5MFC对COM支持小结………………………………………161 5.3用 Visual 0++开发COM应用……4161 53.1利用 App wize创建COM程序工程框架…62 Ⅵ COM原理与应用 5.3.2利用 Classwizard添加COM对象类 …………164 5.3.3AIL介绍 54Ⅴ isual c++与 Activex应用 170 5.4.1MFC对自动化的支持……………………………………………………170 5.4.2MFC对 Activex控制的支持……………………………………………171 5,4,3MFC对复合文档的支持 172 第2部分COM扩展 第6章可连接对象 175 6.1可连接对象结构模型… 中會·中t十會曾鲁會曾管?中雪曾會會自曾自台广自會會自曾會會曾t ……176 6.11客户与可连接对象的关系 ………………176 6.1.2可连接对象的基本结构 6.1.3客户方基本结构 178 62实现可连接对象(源对象)… h↓↓ …178 6.2.1枚举器…… 179 6.22源对象和 COnnection PointContainer接口 …180 6.23连接点和 COnnection point接囗 晷▲↓↓↓·郾曝◆昂喝↓↓4命↓↓44↓+↓ 180 6.2.4建立连接过程… 63客户-源对象-接收器的协作过程 63.1接收器的实现 —■■吾吾↓■ 183 6.3.2事件的激发和处理…… 电自●看国自 命命幽鲁·鲁 184 6.3,3与出接口有关的类型信息 …185 64可连接对象的程序实现 ■會·章·聊『自■會鱼鱼申鱼咖鱼聊看鱼聊 186 64,1用 IDispatch接口作为出接口………………………187 6.4.2MFC对连接和事件的支持…………… 64.3用MFC实现源对象 192 6.4,4用MFC在客户程序中实现接收器……………………195 第7章结构化存储 202 7.1结构化存储基础 202 7,1,1从文件系统进展到结构化存储 ψ●看咖自●●●咖。p电·包电●。·电·哪自司·看● ●中■口中p 7.1.2存储对象和流对象 ………205 7.1.3用结构化存储设计应用 210 7.2结构化存储特性…… ……………………………212 7.2.1访问模式 ◆◆·卡卡自十+十勹 12 7.22事务机制…… 214 7.2.3命名规则 ··曾中會中 十會中會·曹t台十會t會會 …:…216 7.2,4增量访问… 216 7.3结构化存储实现:复合文档…… 217 目录 73,1 LockBytes对象和 ock Bytes接口 4會■ 218 7.3.2复合文档API函数介绍………… ↓■吾普↓·最 73.3零内存保存特性和 IRootStorage接囗… 734存储对象流对象和文件的CES信息 ………222 7.3.5复合文档与结构化存储 中中非44中 74永久对象实现…… …………∷………224 74.1永久接口……………… 225 74.2永久对象的存储特性… P昏晋昏■备晋备晶备聊●4鼻 226 74.3永久对象例子程序…… …228 44复合文档例子程序 232 75本章小结 量●申申电·●中◆●●卩■4·即●·自』●咱幽●·●·咖●申申如申 ………238 第8章命名和绑定技术 會■曾會■1■ 8.1名字技术基础 8.1.1COM名字对象 _··中·中···-■··↓—■A↓昌A昌++4+◆++→+备 8.1.2使用名字对象:绑定过程 240 3.2 MOniker接口…… …242 8.2.1名字管理 8.22利用 MOniker实现绑定… 244 8.23管理复合名字对象 245 8.2.4名字解析…… 83复合名字对象 ·····■····■·自卓·昏····晋十P吾普■■晋如·吾如婚ψ·■·自■■如嚕聊會◆喜4s;。 248 8.3.1复合名字对象结构… 248 832ROT和绑定环境对象 ◆曾中中自『■晋會■會會·◆·咖咖自即·■■●■4●●·●咖·咖 249 833复合名字对象绑定过程的剖析 郾■↓如■4自咖吾·备■■卜晶昌ψ福↓++晷d 253 8.3.4 IOlelternContainer接门 8.4COM名宇对象分类 ++ ……""……"…""…257 841COM提供的系统名字对象…………………………………257 8.4.2URL名字对象 …263 843自定义名字对象… 8.5COM名字对象的应用 “-“中·中會◆Tr『十·· 中。●e自歌 267 8.5.1服务程序中名字对象的应用… 暑■d最 h↓b 8,52客户程序中名字对象的应用 269 第9章统一据传輸 ↓4+4-·“→·曾+曾中曾『會日日十···÷····日·····中 272 9.1统一数据传输基础 中·电·司 272 91,1数据交换与传输协议的分离 272 9.1.2应用:剪贴板和拖放 274 9.2数据传输机制 ···+卜日*.·4··↓吾山 9.2.1数据结构 FORMATETC和 STGMEDIUM………………… 275 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论