编写可复用性更好的C++代码:Band对象和COMToys(5)
第一部分: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,ICborder="0" alt="编写可复用性更好的C++代码:Band对象和COMToys(5)(图二)" width="256" height="151" />
图十六 MyBands的体系结构
查看图十七 多继承
既然多继承如此之好,为什么MFC不用它呢?因为一碰到具体的类——那些有真实函数和数据的类时——多继承便引起混淆。如果你写x = m_foo,这里的 m_foo是个从A继承还是从B继承的呢?而且MFC从CObject派生了它的所有类,用多继承会导致可怕的菱形层次。虽然可以用虚基类来克服这种不足,但事情会更糟。所以创建MFC的那位哥们儿聪明地决定避开多继承。(待续)
查看 进入讨论组讨论。- 最新文章
- 在VB中设计倒计时程序[01-03]
- 用VB函数轻松访问系统注册表[01-03]
- 在VisualBasic中使用Rundll32.exe和Ru..[01-03]
- VB中的处理问题[01-03]
- VB中调用带参数存储过程的实现[01-03]
- 使用ADD-IN技术加强VisualBasic开发环境[01-03]
- 相关文章
