本书集中提供了一些能够体现COM最常用特性的例子,这些例子分别覆盖了使用COM的几个方面,即从进程内DLL到远程访问应用程序,从直接使用COM API到使用活动模板库(ATL)类来处理大部分工作。本书共分两部分,共12章。\r\n\r\n 本书对软件开发人员具有很高的参考价值,也适合大专院校学生阅读。\r\n
\r\n
致谢 \r\n\r\n 前言 \r\n\r\n 第一部分COM基础知识 \r\n\r\n 第一章COM对象 \r\n\r\n 1. l什么是 COM \r\n\r\n 1. 2为什么要开发COM \r\n\r\n 1. 3 COM还有什么用 \r\n\r\n 1. 4 COM如何工作 \r\n\r\n 1. 5怎样用C++创建一个COM对象 \r\n\r\n 1. 6怎样用C++与COM对象通信 \r\n\r\n 1. 7怎样消灭COM对象 \r\n\r\n 1. 8怎样用#import和智能指针创建COM对象 \r\n\r\n 1. 9怎样用C++编写一个COM对象 \r\n\r\n 1. 10直接使用C++编写COM对象 \r\n\r\n 1. 11怎样用MFC编写COM对象 \r\n\r\n 1. 12怎样用ATL编写COM对象 \r\n\r\n 1. 13怎样用VB创建COM对象 \r\n\r\n 1. 14怎样用VJ++创建COM对象 \r\n\r\n 1. 15什么是服务控制器 \r\n\r\n 1. 16小结 \r\n\r\n 第二章COM通信 \r\n\r\n 2. 1COM对象如何通信 \r\n\r\n 2. 2基本的IDL文件格式 \r\n\r\n 2. 3简单参数类型 \r\n\r\n 2. 4变量属性 \r\n\r\n 2. 5数组 \r\n\r\n 2. 6结构与COM类 \r\n\r\n 2. 7封装联合 \r\n\r\n 2. 8内存指针 \r\n\r\n 2. 9 VB参数类型 \r\n\r\n 2. 10反向通信 \r\n\r\n 2. 11连接点和接收器 \r\n\r\n 2. 12 ActiveX事件 \r\n\r\n 2. 13小结 \r\n\r\n 第三章其他COM问题 \r\n\r\n 3. 1封装和聚合 \r\n\r\n 3. 2安全性 \r\n\r\n 3. 3许可(Licensing) \r\n\r\n 3. 4多任务 \r\n\r\n 3. 5小结 \r\n\r\n 第四章COM+ \r\n\r\n 4. 1客户/用务器结构的发展 \r\n\r\n 4. 2COM的发展 \r\n\r\n 4. 3DLL监管器 \r\n\r\n 4. 4编写你自己的DLL监管程序 \r\n\r\n 4. 5Microsoft事务服务器( MTS) \r\n\r\n 4. 6什么是COM+ \r\n\r\n 4. 7属性编程 \r\n\r\n 4. 8构件目录 \r\n\r\n 4. 9COM+和EJB \r\n\r\n 4. 10小结 \r\n\r\n 第二部分COM实例 \r\n\r\n 第五章创建和访问COM对象 \r\n\r\n 5. l例 1使用 C++和 COM API创建 COM对象 \r\n\r\n 5. 2例2使用C++和智能指针创建COM对象 \r\n\r\n 5. 3例3使用MFC和晚绑定创建COM对象 \r\n\r\n 5. 4例4使用智能指针和晚绑定创建COM对象 \r\n\r\n 5. 5例5使用MFC创建ActiveX控件 \r\n\r\n 5. 6例 6使用 Visual Basic创建 ActiveX控件 \r\n\r\n 5. 7例 7使用 Visual Basic创建 COM对象 \r\n\r\n 5. 8例 8使用 WsualJ++创建 COM对象 \r\n\r\n 第六章使用MFC编写COM服务器 \r\n\r\n 6. l例9编写接口服务器工程 \r\n\r\n 6. 2例10在MFC中编写 COM DLL服务器 \r\n\r\n 6. 3例11在MFC中编写 COM EXE服务器 \r\n\r\n 6. 4例12在MFC中编写支持晚绑定的COM服务器 \r\n\r\n 6. 5例13在MFC中编写带连接点的COM服务器 \r\n\r\n 6. 6例14在MFC中编写带接收器的COM客户程序 \r\n\r\n 6. 7例15在MFC中编写一个COM单用服务器 \r\n\r\n 6. 8例16在MFC中聚合COM对象 \r\n\r\n 6. 9例问在MFC中编写ActiveX控件 \r\n\r\n 第六章使用ATL编写COM服务器 \r\n\r\n 7. l例18使用ATL编写 COM DLL服务器 \r\n\r\n 7. 2例19使用ATL编写 COM EXE服务器 \r\n\r\n 7. 3例20使用ATL编写 COM DLL服务 \r\n\r\n 7. 4例21扩展你的ATL COM类 \r\n\r\n 7. 5例22编写支持晚绑定的ATL服务器 \r\n\r\n 7. 6例23编写ATL单用类服务器 \r\n\r\n 7. 7例24编写可剪裁的ATL COM服务器 \r\n\r\n 7. 8例25编写带有连接点的ATL COM服务器 \r\n\r\n 7. 9例26使用ATL聚合COM对象 \r\n\r\n 第八章使用VB和VJ++编写COM服务器 \r\n\r\n 8. l例27使用VB编写COM ActiveX服务器 \r\n\r\n 8. 2例28在VB客户端中添加接收器 \r\n\r\n 8. 3例29使用VJ++编写COM DLL服务器 \r\n\r\n 8. 4例30在VJ++客户端中添加接收器 \r\n\r\n 第九章COM通信 \r\n\r\n 9. l例对使用C++传递数据给一个COM对象 \r\n\r\n 9. 2例32使用C++在线程之间传递接口指针 \r\n\r\n 9. 3例33在C++和VB之间传递数据 \r\n\r\n 9. 4例34在VC++和VB之间传递数据集合 \r\n\r\n 9. 5例35在C++和VJ++之间传递数据 \r\n\r\n 第十章COM+实例 \r\n\r\n 10. 1例36使用ATL编写MTS或COM+服务器 \r\n\r\n 10. 2例37在MTS中注册一个服务器 \r\n\r\n 10. 3例38在COM+中注册一个服务器 \r\n\r\n 10. 5例39使用COM+事件服务器 \r\n\r\n 10. 7例40编写并使用COM+排队COM服务器 \r\n\r\n 第十一章访问数据库对象 \r\n\r\n 11. l例41使用C++和ADO访问数据库 \r\n\r\n 11. 2例42使用VB和ADO访问数据库 \r\n\r\n 11. 3例43使用VJ++和ADO访问数据库 \r\n\r\n 第十二章其他例子 \r\n\r\n 12. l例44使用MFC在COM对象中添加许可 \r\n\r\n 12. 2例45使用ATL在COM对象中添加许可 \r\n\r\n 12. 3例46处理COM的错误 \r\n\r\n 12. 4例47使用MFC关闭“BOth” COM对象的序列化要求 \r\n\r\n 12. 5例48使用ATL关闭“Both” COM对象的序列化要求. \r\n\r\n 附录A COM表 \r\n\r\n 附录B COM错误提示 \r\n
\r\n
本书内容
本书的例子被划分成几章, 它们覆盖了使用COM的几个不同方面——从进程内的DLL到远程访问应用程序, 从直接使用COM API到使用活动模板库(ATL)类来处理大部分工作. 内容上联系紧密的章组成为一个部分.
第一部分:COM基本知识
虽然我尽量试图使这本书以例子为主, 但我想还是应该先了解一点原理, 当你的程序不能正常运行时它们可能会对你有所帮助. 当然, 你也可以跳过这一部分不看, 只是在第二部分中我经常引用第一部分的内容, 所以最好还是看一看.
第二部分:COM实例
本书的第二部分由COM实例组成, 从COM初期ActiveX控件的实例一直到现在MTS和COM+实例. 这些实例将着重介绍如何使用API. MFC(微软基本类库). ATL. VB或VJ++来创建和访问COM对象, 其中又涉及到多任务. 继承和回传等问题.
关于CD
本书附有一张CD, 对书中的每个例子CD中都有一个相应的VC++. VB或VJ++6. 0的工程. 如果你想找某个例子的工程, 只需在CD的子目录中找到这个例子的编号即可.
关于Samplewizard
CD还有一个功能即“样例向导(SampleWizard)”功能, 它可以帮助你直接将书中的例子粘贴到你的应用程序中去. 这个功能还可以引导你浏览书中的例子, 如果你选中了其中一个, 它就会详细列出在工程中添加该例所需的指令和代码. 它还允许你把例子中的工程名称(如 WZd)换成你自己的.
这个样例向导在CD的\SWD目录下. 它借用了各个例子下的\Wizard目录, 包含该例特殊的部分. 你只需执行SW.EXE, 向导就会引导你完成剩下的步骤.
这个功能在Developer Studio中尤其有用. 当然别忘了将这个目录设置成工程的当前路径[$(WkspDir)], 这样你需要的例子就可以直接拷贝到你的工程目录中去了.