编写可复用性更好的C++代码:Band对象和COMToys(5)
2006-07-21 11:46:08 来源:WEB开发网第一部分:Band 对象介绍
第二部分:BandObj的类层次和MyBands服务程序的注册
第三部分:深入Band内部,揭开Band的面纱
第四部分:Band对象使用中遇到的一些问题
第五部分 建立自己的COM编程平台ComToys
概要:
可重用类就像小巧的 COM 积木一样,人们可以在不同场合以不同方式装配这些 COM 来创建更加精致的对象。但是如何创建这些 COM 呢?本文使用 MyBands 和 BandObj框架作为实验平台开发了一个可重用库:它就是 COMToys......。COMToys提供了一种用C++编写COM的方法或途径,这些方法和途径适用于任何类型的COM对象,不论你是使用MFC。还是其它的什么东西。COMToys是一种态度——它告诉人们用C++编写COM组件并不难,情况也确实是这样!
前面我们讨论了一个叫MyBands的程序,这个程序有功能之一就是可以将编辑框控制放到Windows的任务栏中。此外,MyBands实现了三种Windows的Band对象,其中就有Web搜索框,如图一所示:
图一 任务栏中的Web搜索框
为了实现MyBands程序,我编写了一个迷你型Band对象框架:BandObj,其对应的实现类是CBandObjDll,CBandObjFactory,和CBandObj。这个框架提供了编写各种Band对象所需要的支持。利用这个Band对象框架,你不必做太多的工作就能开发出满足自己需要的Band应用。
CBandObj中有许多代码实现不同的接口像IDeskBand,IOleWindow,IContextMenu等等,但只有一个接口与Band对象的处理有关,即IDeskBand接口。其它的代码都与此无关。CBandObj中IContextMenu的实现没有涉及到Band对象的任何东西;它只需要一个菜单。而IOleWindow只要一个窗口句柄。还有其它的一些实现情况也一样。CBandObj框架尽可能地抽象这些接口并将它们封装在可重用类中——像小巧的COM积木,你可以在不同场合以不同方式装配这些COM来创建更加精致的对象。那么如何创建这些小巧的COM积木呢?
更多精彩
赞助商链接