WEB开发网
开发学院软件开发VC 编写可复用性更好的C++代码:Band对象和COMToys(5)... 阅读

编写可复用性更好的C++代码:Band对象和COMToys(5)

 2006-07-21 11:46:08 来源:WEB开发网   
核心提示:第一部分:Band 对象介绍第二部分:BandObj的类层次和MyBands服务程序的注册第三部分:深入Band内部,揭开Band的面纱第四部分:Band对象使用中遇到的一些问题第五部分 建立自己的COM编程平台ComToys概要:可重用类就像小巧的 COM 积木一样,编写可复用性更好的C++代码:Band对象和COM

第一部分: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积木呢?

1 2 3 4 5  下一页

Tags:编写 复用 更好

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接