第1章 从COM说起 1
1.1 为什么要使用COM技术 1
1.2 COM的几个基本概念 2
1.3 COM接口初探 3
1.4 说说GUID、CLSID、IID 4
1.5 COM服务器的形式 5
1.6 用MFC实现一个COM服务器的简单步骤 6
1.6.1创建一个MFC AppWizard(DLL)项目 7
1.6.2 声明组件和接口的GUID 7
1.6.4 声明组件类CTestSvr 8
1.6.3 声明组件和接口 8
1.6.5 实现类厂和接口映射 10
1.6.6 为嵌套类实现IUnknown接口 10
1.6.7 实现ITest接口的方法TestMethod 11
1.6.8 管理全局对象计数 11
1.6.9 实现一个客户应用程序 11
1.7 Delphi对COM的包装 13
1.7.1 创建一个ActiveX Library项目 14
1.7.2 为项目添加一个COM类 14
1.8 Windows Shell扩展的实质 17
2.1 Shell名字空间的使用 19
2.1.1 Shell名字空间的单一结构 19
第2章 Windows Shell名字空间 19
2.1.2 名字空间中元素的标识 20
2.1.3 Shell名字空间的漫游机制 20
2.1.4 Shell名字空间提供的接口 21
2.2 搭建一个真正的资源浏览器的框架 22
2.2.1 使用MFC AppWizard(exe)创建一个项目 22
2.2.2 修改程序的界面架构 22
2.2.3 将树型视图的根节点绑定到名字空间的根 26
2.2.4 介绍几个重要的辅助函数 30
2.2.5 当用户选中树型视图节点时,实现漫游 35
2.2.6 看看我们的框架 39
2.3 常用的参考信息 40
第3章 Windows Shell扩展 55
3.1 Shell扩展的基本概念 55
3.2 Shell扩展的分类 56
3.3 Windows Shell如何访问Shell扩展 57
3.4 编写Shell扩展的基本步骤 58
3.4.1 手工实现Shell扩展(无需编程) 59
3.4.2 需要编程实现的Shell扩展 64
第4章 拷贝钩子处理程序 67
4.1 拷贝钩子处理程序的使用 67
4.2 用VC 6实现一个拷贝钩子处理程序 67
4.2.1 创建一个空的DLL项目 68
4.2.2 为项目添加一个类CCopyHook 68
4.2.4 给DLL添加两个全局变量 70
4.2.3 为项目添加另一个类CCopyHookClassFactory 70
4.2.5 给DLL添加几个需要实现的标准函数 71
4.2.6 为类CCopyHook添加实现代码 71
4.2.7 为类CCopyHookClassFactory添加实现代码 74
4.2.8 实现DLL中的几个全局函数 76
4.2.9 为DLL添加一个DEF文件 78
4.2.10 编译链接该DLL项目生成CopyHook.dll 78
4.2.11 编辑该拷贝钩子处理程序的注册文件 78
4.2.12 测试该拷贝钩子处理程序 79
4.3 用Delphi 5来实现这个拷贝钩子 80
4.3.1 创建一个ActiveX Library项目 80
4.3.2 为项目添加一个COM类TMyCopyHook 81
4.3.3 实现TMyCopyHook 83
4.3.4 实现服务器的注册与反注册 84
4.3.5 编译链接并测试该拷贝钩子处理程序 85
4.4 常用的参考信息 86
第5章 上下文相关菜单处理程序 89
5.1 上下文相关菜单处理程序的使用 89
5.2 用VC 6实现一个上下文相关菜单处理程序 90
5.2.1 创建一个空的DLL项目 91
5.2.2 为项目添加一个类CContextMenuExt 91
5.2.3 为类CContextMenuExt添加实现代码 93
5.2.4 为类CContextMenuExt实现一个类工厂 101
5.2.7 编辑上下文相关菜单处理程序的注册文件 102
5.2.5 添加并实现DLL服务器的框架 102
5.2.6 编译链接该DLL项目生成ContextMenuExt.dll 102
5.2.8 测试该上下文相关菜单处理程序 103
5.3 Delphi 5的实现 103
5.3.1 创建一个ActiveX Library项目 103
5.3.2 为项目添加完成处理功能的COM类TContextMenu 104
5.3.3 实现TContextMenu 104
5.3.4 实现服务器的注册与反注册 109
5.3.5 编译链接并测试该上下文相关菜单处理程序 110
5.4 常用的参考信息 111
6.2.1 为项目添加一个类CDrapDropExt 119
6.2 用VC 6实现一个拖放处理程序 119
6.1 拖放处理程序的使用 119
第6章 拖放处理程序 119
6.2.2 为类CDrapDropExt添加实现代码 121
6.3 常用的参考信息 128
第7章 图标处理程序 131
7.1 图标处理程序的使用 131
7.2 用VC 6实现一个图标处理程序 132
7.2.1 创建一个空的DLL项目 133
7.2.2 为项目添加一个类CIconHandler 133
7.2.3 为项目添加需要的资源 136
7.2.4 为类CIconHandler添加实现代码 136
7.2.6 添加并实现DLL服务器的框架 140
7.2.5 为类CIconHandler实现一个类工厂 140
7.2.8 编辑该图标处理程序的注册文件 141
7.2.7 编译链接该DLL项目生成IconHandler.dll 141
7.2.9 测试该图标处理程序 142
7.3 Delphi 5的实现 143
7.3.1 创建一个ActiveX Library项目 143
7.3.2 为项目添加一个COM类TMyIconHandler 143
7.3.3 为DLL项目添加图标资源 145
7.3.4 实现TMyIconHandler 146
7.3.5 实现服务器的注册与反注册 148
7.3.6 编译链接并测试该图标处理程序 149
7.4 常用的参考信息 149
8.1 属性表处理程序的使用 153
第8章 属性表处理程序 153
8.2 用VC 6实现一个属性表处理程序 155
8.2.1 创建一个空的DLL项目 155
8.2.2 为项目添加一个类CPropSheetHandler 155
8.2.3 为项目添加需要的资源 156
8.2.4 为类CPropSheetHandler添加实现代码 157
8.3 常用的参考信息 165
第9章 放置处理程序 171
9.1 放置处理程序的使用 171
9.2 用VC 6实现一个支持特定文件类型拖放的程序 171
9.2.1 使用MFC AppWizard创建一个简单编辑器 172
9.2.2 分析AppWizard生成的程序框架 173
9.3 常用的参考信息 177
第10章 数据处理程序 181
10.1 数据处理程序的使用 181
10.2 常用的参考信息 181
第11章 任务条通知区 189
11.1 任务条通知区的管理机制 189
11.2 用VC 6更新任务条通知区 190
11.2.1 创建一个MFC AppWizard(exe)项目 191
11.2.2 为项目添加类CTrayNotifyIcon并对其进行分析 191
11.2.3 为项目添加一个辅助类CTrayRessurectionWnd 193
11.2.4 为类CTrayRessurectionWnd添加实现代码 194
11.2.5 为项目添加另一个辅助类CTrayTimerWnd 195
11.2.6 为类CTrayTimerWnd添加实现代码 196
11.2.7 为类CTrayNotifyIcon添加实现代码 198
11.2.8 为类CTrayNotifyIcon添加测试代码 205
11.3 Delphi 5的实现 206
11.3.1 组件的类别 206
11.3.2 建立组件的准备工作 207
11.3.3 组件的创建步骤 207
11.3.4 在Delphi中安装自定义的组件 209
11.3.5 创建TTrayIcon组件并为其添加成员 209
11.3.6 为TTrayIcon组件添加实现代码 212
11.4 常用的参考信息 221
11.3.7 安装TTrayIcon组件并在应用程序中进行测试 221
第12章 应用程序桌面任务条 223
12.1 应用程序桌面任务条的管理机制 223
12.1.1 桌面任务条的注册与删除 224
12.1.2 桌面任务条的状态 224
12.1.3 桌面任务条的外观 225
12.1.4 系统发给任务条的通知消息 225
12.2 用VC 6创建应用程序桌面任务条 226
12.2.1 创建一个MFC AppWizard(exe)项目 226
12.2.2 为项目添加类CAppBar并对其进行分析 227
12.2.3 为类CAppBar添加实现代码 228
12.3.1 创建TAppBar类并为其添加成员 246
12.3 Delphi 5中更为漂亮的实现 246
12.2.4 为类CAppBar添加测试代码 246
12.3.2 为TAppBar类添加实现代码 251
12.3.3 从TAppBar类派生自己的任务条 270
12.4 常用的参考信息 270
第13章 Windows Shell链接 273
13.1 Shell链接的使用 273
13.1.1 .lnk文件 274
13.1.2 IShellLink接口 274
13.2 用VC 6实现Shell链接 276
13.2.1 创建一个以对话框为基础的应用程序项目 276
13.2.3 添加核心代码 277
13.2.2 为项目添加必要的资源 277
13.3.1 创建一个普通的应用程序项目 279
13.3 Delphi 5的实现 279
13.3.2 创建程序自身的Shell链接 280
13.3.3 获取Shell链接存储的信息 281
13.3.4 测试应用程序 284
13.4 常用的参考信息 284
第14章 屏幕保护程序 285
14.1 屏幕保护程序的运行机制 285
14.2.1 创建一个普通的应用程序项目并调整其配置 287
14.2.2 为屏幕保护窗口创建一个基类CScreenSaverWnd 287
14.2 用VC 6创建一个屏幕保护程序 287
14.2.3 为配置对话框创建一个基类CScreenSaverDlg 293
14.2.4 从CScreenSaverWnd派生一个可用的屏保类CMySaver 295
14.2.5 实现屏幕保护程序的输出函数 299
14.2.6 添加需要的资源 302
14.2.7 编译链接并安装测试该屏幕保护程序 302
14.3 用VC6创建一个屏幕保护程序的管理程序 302
14.3.1 开始屏保 303
14.3.2 禁止/允许屏保 304
14.3.3 运行屏保 305
14.3.4 打开显示属性 306
14.4 用Delphi 5创建屏幕保护程序 307