译者序 1
前言 1
第一部分 Windows编程基础 1
第1章 Hello Windows CE 1
1.1 Windows CE和标准Windows的差别 1
1.1.1 资源有限的Windows CE设备 2
1.1.2 Unicode编码 2
1.1.3 新的控件 2
1.1.4 组件化设计 3
1.1.5 Win32子集 3
1.2 仍然是Windows 编程 3
1.3 第一个Windows CE应用程序 4
1.3.1 创建第一个Windows CE应用程序 6
1.3.2 运行程序 8
1.3.3 出了什么问题 8
1.4 Hello2程序 9
1.5 剖析窗口应用程序 11
1.5.1 窗口 11
1.5.2 窗口类 11
1.5.3 窗口过程 11
1.5.4 消息的生命期 12
1.5.5 注册窗口类 14
1.5.6 创建窗口 16
1.5.7 消息循环 18
1.5.8 窗口过程 19
1.6 Hello CE 21
1.7 运行Hello CE 27
第2章 在屏幕上绘图 28
2.1 绘图基础 29
2.1.1 合法和非法区域 29
2.1.2 设备上下文 30
2.2 文本输出 31
2.2.1 设备上下文属性 32
2.2.2 TextDemo示例程序 33
2.2.3 字体 38
2.2.4 未完成的任务 50
2.3 位图 50
2.3.1 设备相关位图 51
2.3.2 设备无关位图 51
2.3.3 DIB区域 52
2.3.4 绘制位图 54
2.3.5 A1phaBlending 56
2.4 线和形体 57
2.4.1 线 57
2.4.2 形体 59
2.4.3 填充函数 62
2.4.4 Shapes示例程序 63
第3章 输入:键盘、鼠标和触摸屏 70
3.1 键盘 70
3.1.1 输入焦点 70
3.1.2 键盘消息 71
3.1.3 键盘函数 76
3.1.4 KeyTrac示例程序 77
3.2 鼠标和触摸屏 85
3.2.1 鼠标消息 85
3.2.2 使用触摸屏 86
3.2.3 TicTacl示例程序 92
第4章 窗口、控件和菜单 101
4.1 子窗口 101
4.2 窗口管理函数 101
4.2.1 枚举窗口 102
4.2.2 寻找窗口 102
4.2.3 移动窗口 103
4.2.4 编辑窗口结构的内容 103
4.3 窗口控件 105
4.3.1 使用控件工作 106
4.3.2 按钮控件 107
4.3.3 编辑控件 109
4.3.4 列表框控件 109
4.3.5 组合框控件 110
4.3.6 静态文本控件 111
4.3.7 滚动条控件 111
4.3.8 控件和颜色 114
4.4 菜单 115
4.5 资源 117
4.5.1 资源脚本 117
4.5.2 图标 119
4.5.3 加速键 119
4.5.4 位图 120
4.5.5 字符串 120
4.6 DOlView示例程序 121
第5章 通用控件与Windows CE 138
5.1 通用控件编程 138
5.2 通用控件 140
5.2.1 命令栏 140
5.2.2 其他菜单控件 158
5.2.3 日历控件 159
5.2.4 时间日期选择器控件 161
5.2.5 列表视图控件 163
5.2.6 CapEdit控件 165
5.3 其他一些通用控件 165
5.4 不支持的通用控件 167
第6章 对话框和属性表 168
6.1 对话框 168
6.1.1 对话框资源模板 169
6.1.2 创建对话框 171
6.1.3 对话框过程 172
6.1.4 非模态的对话框 175
6.1.5 属性表 177
6.1.6 通用对话框 182
6.2 DlgDemo范例程序 182
第二部分 Windows CE编程 207
第7章 内存管理 207
7.1 内存基础知识 207
7.1.1 关于RAM 208
7.1.2 关于ROM 208
7.1.3 关于虚拟内存 208
7.1.4 应用程序的地址空间 211
7.2 不同类型的内存分配 212
7.2.1 虚拟内存 213
7.2.2 堆 218
7.2.3 本地堆 218
7.2.4 独立堆 220
7.2.5 栈 223
7.2.6 静态数据 223
7.2.7 字符串资源 225
7.2.8 选择适当的内存类型 226
7.2.9 管理低内存状态 226
第8章 模块、进程和线程 229
8.1 模块 229
8.2 进程 232
8.2.1 创建进程 232
8.2.2 终止进程 234
8.2.3 其他进程 235
8.3 线程 236
8.3.1 系统调度器 236
8.3.2 创建线程 238
8.3.3 设置和查询线程优先级 240
8.3.4 设置线程时间片 241
8.3.5 挂起和恢复线程 241
8.4 纤程 242
8.5 线程本地存储 244
8.6 同步 245
8.6.1 事件 246
8.6.2 等待 247
8.6.3 信号量 251
8.6.4 互斥量 252
8.6.5 复制同步句柄 253
8.6.6 临界区 253
8.6.7 互锁变量访问 255
8.7 进程间通信 256
8.7.1 查找其他进程 256
8.7.2 WMCOPYDATA 257
8.7.3 命名内存映射对象 257
8.7.4 点对点消息队列 259
8.7.5 使用文件和数据库通信 262
8.8 XTalk示例程序 262
8.9 异常处理 274
8.9.1 C++异常处理 274
8.9.2 Win32异常处理 277
第9章 Windows CE文件系统 281
9.1 Windows CE文件系统API 281
9.1.1 标准文件vo 282
9.1.2 内存映射文件 289
9.1.3 文件系统浏览 290
9.2 存储处理 296
9.2.1 对象存储 297
9.2.2 使用文件API来访问卷 297
9.2.3 存储管理器 298
第10章 注册表 305
10.1 注册表组织 305
10.2 注册表API 306
10.2.1 打开和创建主键 306
10.2.2 读取注册表值 307
10.2.3 写入注册表值 308
10.2.4 删除注册表主键和值 308
10.2.5 枚举注册表主键 309
10.2.6 刷新注册表主键 309
10.2.7 注册表改动通知 310
10.2.8 RegView示例程序 310
第11章 Windows CE数据库 326
11.1 两种数据库 326
11.2 基本概念 326
11.3 数据库API 328
第12章 通知 347
12.1 用户通知 347
12.2 计时器事件通知 351
12.3 系统事件通知 352
12.4 NoteDemo示例程序 353
12.5 查询已设定的通知 365
12.6 气泡通知 366
12.6.1 添加气泡通知 366
12.6.2 修改气泡通知 368
12.6.3 删除气泡通知 369
第三部分 高级Windows CE 371
第13章 Windows CE网络 371
13.1 Windows网络支持 371
13.1.1 WNet函数 372
13.1.2 ListNet示例程序 381
13.2 TCP/IP编程 391
13.2.1 套接字编程 391
13.2.2 阻塞套接字与非阻塞套接字 400
第14章 设备间通信 403
14.1 红外通信 403
14.1.1 红外基础 403
14.1.2 设备发现 404
14.1.3 发布红外服务 405
14.1.4 查询和设置红外套接字选项 407
14.1.5 MySquirt示例程序 407
14.2 蓝牙 423
14.2.1 蓝牙协议栈 424
14.2.2 蓝牙发现 425
14.2.3 发布一个服务 432
14.2.4 通过WinSock进行蓝牙通信 435
14.2.5 通过虚拟COM端口进行蓝牙通信 437
14.2.6 BtSquirt示例程序 441
第15章 系统程序设计 465
15.1 Windows CE的内存体系结构 465
15.1.1 应用程序的地址空间 466
15.1.2 内核态的地址空间 467
15.2 编写跨平台的Windows CE应用程序 468
15.2.1 平台与操作系统版本 468
15.2.2 编译时的版本确定 469
15.2.3 显式链接 471
15.2.4 运行时的版本检测 471
15.3 电源管理 472
15.3.1 关机的含义 472
15.3.2 查询电源状态 473
15.3.3 电源管理器 474
15.3.4 不使用电源管理器来管理电源 478
第16章 串行通信 482
16.1 基本串行通信 482
16.1.1 打开和关闭串行端口 482
16.1.2 读写串行端口 483
16.1.3 异步串行1/ 484
16.1.4 配置串行端口 485
16.1.5 设置端口的超时值 487
16.1.6 查询串行驱动程序的能力 489
16.1.7 控制串行端口 490
16.1.8 清除错误并查询状态 491
16.1.9 保持活动状态 492
16.2 CeChat示例程序 492
第17章 设备驱动程序和服务 507
17.1 驱动程序基础 507
17.1.1 驱动程序的名称 508
17.1.2 设备驱动加载过程 508
17.1.3 枚举活动的驱动 512
17.1.4 读写设备驱动 513
17.2 编写Windows CE流式设备驱动 514
17.2.1 流式驱动的入口函数 515
17.2.2 缓冲区管理 521
17.2.3 驱动程序接口类 527
17.2.4 设备驱动程序的电源管理 529
17.3 设备驱动程序的构建 531
17.3.1 Debug Zone 531
17.3.2 Genric驱动程序示例 532
17.4 服务 539
17.4.1 服务的体系结构 539
17.4.2 服务的生命周期 539
17.4.3 应用程序对服务的控制 541
17.4.4 服务DLL的入口函数 542
17.4.5 服务的IOCTL命令 543
17.4.6 超级服务 546
17.4.7 Services.exe的命令行 549
17.4.8 TickSrv示例服务 549