Programming 版 (精华区)

发信人: lofe ()感激生活(), 信区: Programming
标  题: COM难在哪里(一)
发信站: 哈工大紫丁香 (Sun Sep  3 08:11:30 2000), 转信

    ATL的code读起来是让人烦的,不过读进去会有收获倒也是真的。天下没有free lu
nch嘛。ATL自己也是改来改去的,从2.0到3.0就有挺大的变化。不过无论如何,那些东
西可以不全清楚;COM的一些协议和约定也毕竟是死东西,象在registry的什么地方写个
什么东西之类的(而且ATL wizard可以帮你打点)。就象FTP协议,虽然烦可是写个简单
的FTP server并不难:只要照协议去做就行了。当然,不包括界面。
    COM难在什么地方呢?我以为在以下三点:时间有限,先说一。
一. 通过property得到另外一个COM object。
    看看OutLook,支持Folders.Item(0).Messages.Item(0).Remove或者Folders.Item
(0).Messages.Item(0).MarkAsReadOnly之类的操作。具体名称可能不对,但类似的功能
有;有更简单的写法,那是因为Item是default method。
    OK,每一个“.”可都是给user返回了一个COM对象。COM对象之间可是二进制分割的
,这意味着对某一封信的操作不需要通过OutLook的菜单或Folders对象。可是当你做了
这些操作之后,OutLook必须立刻知道:状态栏上得显示出有多少未读或总共剩多少的信
息;还有很多其他的内部同步会更加复杂。这些同步需要COM对象之间的通知;可是按照
COM标准的sink是很慢的。而且这些特点对对象的划分、设计都提出了很高的要求。
    所有这一切,都是为了让user用起来方便。:((

--
※ 修改:.haojs 于 Sep  3 08:09:06 修改本文.[FROM: bbs.hit.edu.cn]
--
※ 转寄:.武汉白云黄鹤站 bbs.whnet.edu.cn.[FROM: bbs.hit.edu.cn]

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: haojs.bbs@bbs.whnet.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.393毫秒