[转]走进IE编程 (3)真的需要精通ATL吗?

基本上IE编程是围绕着ATL框架展开的, 所以, 我们不得不面对ATL说点什么,
ATL是一个基于COM(组件对象模型)SDK的框架库,如果你甚至连COM都不知道是什么,建议先阅读一些有关COM的技术书

籍(注1), 大致了解下COM出现的原因,目的,了解什么是类厂及意义,COM对象是怎样被创建和调用,以及引用计数

的维护等. 最后,写几个简单的COM调用程序就可以了,如果你想更深入地理解COM,也不是短时期就能有所成效的,

幸运的是ATL框架库就是最好的示例.
ATL封装了类厂管理类 - CComCoClass, 引用计数管理类 - CComObjectRootEx, 事实上, 当你在Visual Studio

可视化开发环境中, 添加一个简单的COM对象类时, 你可以看到它是从CComCoClass, CComObjectRootEx派生的.

而最终COM对象的创建是由CCOMMoudle类完成的,具体根据全局静态的COM映射表,然后调用CComModule::Init

(...). 所以, 你再也不用原始的方法去创建类厂, 对全局和局部对象引用计数的管理, 所有这一切ATL的类框架

已经帮你完成了, 所有你需要做的就是从这些基类派生自已的COM对象类, 更为幸运的是VS集成开发环境已经帮

助我们自动完成了初始代码的创建, 一个典型的案例就是在你的工程中添加一个新的COM对象.

上面说了这么多, 其是, 只是简单地讲了下COM和ATL的关系, 事实上, 要将晦涩的每个技术问题解释的相当清楚

, 已超出本文的范围, 附注推荐的书籍将帮助你打开这第一扇门(实际上你可能只需阅读前面几个章节, 了解一

下why > what > how就足够了).

如果说ATL是IE编程的壳, 那么IE事件的交互, 对IE接口的实现(implementation), 就是IE编程的血肉部分. 说

到事件交互, 就不得不谈到IE是怎样传递事件到你自定的事件接收器(sink), 这是由事件连接点(connection

point)完成的, 以后我们将进一步接触这个问题. 另一方面, 对IE接口的实现也正是开发IE插件的精髓, 诸如,

工具条(toolbar), 工具按钮(button), 侧边栏(sidebar)等. 稍后, 我将一一讲到.

总而言之, 精通ATL/COM是完全没有必要的, 从表象上去大致理解下COM对象的创建,管理,事件接收,接口的实现

就可以了, 如果要深入理解COM在基于组件(component)的软件开发中的优势和好处, 建议你再去深入阅读 < <COM

技术内幕>>(注1).


注1: < <COM技术内幕>> 潘爱民译.
    < <ATL开发指南>>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值