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

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

 2006-07-21 11:46:12 来源:WEB开发网   
核心提示:第一部分:Band 对象介绍第二部分:BandObj的类层次和MyBands服务程序的注册第三部分:深入Band内部,揭开Band的面纱第四部分 Band对象使用中遇到的一些问题前面所描述的是一些Band对象的基本操作和处理,编写可复用性更好的C++代码:Band对象和COMToys(4),这些基本操作理论上都是按照你

第一部分:Band 对象介绍

第二部分:BandObj的类层次和MyBands服务程序的注册

第三部分:深入Band内部,揭开Band的面纱

第四部分 Band对象使用中遇到的一些问题

前面所描述的是一些Band对象的基本操作和处理,这些基本操作理论上都是按照你设计好的思路实现了所要的功能。但在实际的编程过程中,并不是每一件事情都按照它应该的方式进行。下面将告诉你有关Band对象使用中可能遇到的问题。

文档中说桌面Band必须实现IPersistStream接口来存储持久性数据。到底是什么数据呢?根据跟踪诊断显示,只有桌面Band 会查询IPersistStream接口,而Explorer是不会查询IPersistStream接口的,但要查询IPersistStreamInit接口。那么IPersistStream有什么用呢?又一则隐藏在微软例子代码中的注释是这样说的:"如果用户要拖拽桌面Band离开任务栏到桌面上,则IPersistStream是必须要实现的接口。"如第一部分中的图二所示,如果你不想要这个特性,就不用实现IPersistStream接口。

TRACE还显示Windows查询IOleCommandTarget 和IDiscardableBrowserProperty接口。后面的这个接口是我特别喜爱的接口之一,它没有函数!有人会问怎么可能一个接口不带函数呢?IDiscardableBrowserProperty只是用来通知IE:"如果你访问另一个页面,便可以丢弃我的页面数据。它们是可消耗的。"有关IDiscardableBrowserProperty的详细信息参见MSDN的另一篇文章:"Discardable Properties for Your Web Pages in Internet Explorer 4.0"。

最后,TRACE揭示Windows还要查询另一个神秘的接口,它就是——{EA5F2D61-E008-11CF-99CB-00C04FD64497},这个ID未出现在任何文档里面,源文件或注册表当中。如果有那位仁兄知道有关这个接口的信息的话,请把它公诸于世。

1 2 3 4 5 6  下一页

Tags:编写 复用 更好

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