Welcome

首页 / 软件开发 / C++ / COM应用程序框架 1.2 设计方案 试验A版

COM应用程序框架 1.2 设计方案 试验A版2011-04-07 vckbase 许松森本文只介绍《COM应用程序框架》的主要设计部分,更多、更详细的文档信息请参见下 载文件包中的文档和源代码。

一、设计说明

《COM应用程序框架》是把标准的Microsoft Windows多文档处理应用程序使用COM技术 来设计.所以针对多文档处理应用程序的需求,不再多写。如果您不了解请参见MSDN或者 是其它编程基础方面的书籍。

《COM应用程序框架》分为两种,一种是COM多文档应用程序框架,第二种是单文档应 用程序框架。在这里我们只介绍多文档应用程序,不介绍单文档应用程序。

《COM应用程序框架》建立在一个单独的AIFrame.DLL文件中,所有的功能都通过COM接 口进行操作.《COM应用程序框架》将使用如下两种库的组合进行设计,1.使用MFC+ATL组 合, 2.使用WTL+ATL组合,下面分别对这两种组合的优点和缺点说明一下,最后选择一种 最优组合。

1.使用MFC+ATL组合图:

2.使用WTL+ATL组合图:

从上面两附图中很容易看出,使用MFC+ATL组合开发COM应用程序框架,MFC存在一层函 数调用,代码执行速度会慢一些。小程序可能看不出来,大程序也就明显了。 如果 使用WTL+ATL组合开发COM应用程序框架,就不会多一层调用,代码执行速度非常快,就像 是用Win32 SDK编写代码一样没有什么区别,因为WTL是模板代码,在编译后不会存在一层 函数调用。所以《COM应用程序框架》将采用WTL+ATL组合进行设计,这可能是最佳方案。

二、通用设计

1.数据视图

所谓数据视图,就是添加到《COM应用程序框架》中每一个窗口,无论这个窗口是用做 什么,还是什么形状的,统称为数据视图。

所有客户端程序向《COM应用程序框架》添加的数据视图必须从IDataView纯虚接口继 承下来,必须是.这样《COM应用程序框架》才能工作正常。

数据视图纯虚接口:IDataView。父类是IDispatch。

2.命令的响应函数

函数名称:NotifyCommand(UINT codeNotify, UINT cmdID, VARIANT_BOOL *bHandle);

参数:codeNotify - 通报代码,现在没有使用。

cmdID – 某个命令ID,可以是菜单也可以是工具格中的按钮。

bHandle – 如果命令还继续向下路径设置为VARIANT_TRUE,不向下路径设置为 VARIANT_FALSE.