第一部分 Windows编程基础 1
第一章 Hello Windows CE 1
1.1 WINDOWS CE有何独特之处? 1
1.1.1 Windows CE设备中的资源很少 2
1.1.2 Unicode 2
1.1.3 新的控件 2
1.2 仍然是WINDOWS编程 3
1.2.1 窗口类 4
1.2.2 第一个程序 5
致谢 9
简介 11
1.2.3 Hungarian表示法 11
1.2.4 我的编程风格 12
1.2.5 编译HelloCE 13
第二章 屏幕绘图 29
2.1 画图基础 30
2.1.1 有效区域和无效区域 30
2.1.2 设备环境 31
2.2 写文本 32
2.2.1 设备环境属性 33
2.2.2 TextDemo范例程序 34
2.2.3 字体 40
2.2.4 FontList范例程序 44
2.3 位图 54
2.3.1 依赖于设备的位图 54
2.3.2 独立于设备的位图 55
2.3.3 DIB部件 56
2.3.4 绘制位图 58
2.4.1 线条 60
2.4 线条与形状 60
2.4.2 形状 62
2.4.3 Shapes范例程序 65
第三章 输入:键盘、输入笔和菜单 75
3.1 键盘 75
3.1.1 输入焦点 75
3.1.2 键盘消息 76
3.1.3 键盘函数 81
3.1.4 KeyTrac示例程序 83
3.2 输入笔和触摸屏 92
3.2.1 输入笔消息 92
3.2.2 TicTacl示例程序 100
3.3 菜单 110
3.3.1 处理菜单命令 112
3.4.1 资源脚本 113
3.4 资源 113
3.4.2 图标 115
3.4.3 加速键 116
3.4.4 位图 117
3.4.5 字符串 117
3.4.6 TicTac2示例程序 118
第四章 窗口、控件和对话框 133
4.1 子窗口 133
4.1.1 窗口管理函数 134
4.1.2 滚动条和FontList2示例程序 136
4.2 WINDOWS控件 152
4.2.1 按钮控件 152
4.2.2 编辑控件 155
4.2.3 列表框控件 155
4.2.4 组合框控件 156
4.2.5 静态控件 157
4.2.6 滚动条控件 157
4.2.7 CtlView示例程序 157
4.3 对话框 188
4.3.1 对话框资源模板 189
4.3.2 创建对话框 191
4.3.3 对话框过程 193
4.3.4 无模式对话框 196
4.3.5 属性表 197
4.3.6 通用对话框 203
4.3.7 DlgDemo示例程序 204
4.4 结论 238
5.1 编写通用控件 239
第五章 通用控件和Windows CE 239
第二部分 Windows CE基础 239
5.2 通用控件 241
5.2.1 命令栏 241
5.2.2 CmdBar示例程序 252
5.2.3 命令带区 266
5.2.4 CmdBand示例程序 275
5.2.5 月历控件 289
5.2.6 日期和时间选择器控件 291
5.2.7 查看列表控件 294
5.2.8 LView示例程序 296
5.3 其他通用控件 315
5.4 不支持的通用控件 316
6.1 内存基础知识 317
6.1.1 关于RAM 317
第六章 内存管理 317
6.1.2 关于ROM 318
6.1.3 关于虚拟内存 318
6.1.4 Windows CE地址空间 319
6.1.5 应用程序的地址空间 323
6.2 内存分配的不同类型 326
6.2.1 虚拟内存 326
6.2.2 堆 331
6.2.3 本地堆 332
6.2.4 单独的堆 333
6.2.5 堆栈 335
6.2.6 静态数据 336
6.2.7 字符串资源 338
6.2.9 管理低内存状态 339
6.2.8 选择正确的内存类型 339
第七章 文件、数据库和注册表 343
7.1 WINDOWS CE文件系统 344
7.1.1 对象存储库与其他存储介质的对比 345
7.1.2 标准文件I/O 345
7.1.3 创建和打开文件 346
7.1.4 读取和写入 347
7.1.5 FileView示例程序 353
7.1.6 内存映射文件和对象 370
7.1.7 查看文件系统 374
7.2 数据库 379
7.2.1 基本定义 379
7.2.2 数据库API 380
7.2.3 AlbumDB示例程序 396
7.3 注册表 427
7.3.1 注册表结构 427
7.3.2 注册表API 428
7.3.3 RegView示例程序 432
7.4 结论 449
第八章 进程与线程 451
8.1 进程 451
8.1.1 创建进程 452
8.1.2 终止进程 455
8.1.3 其他进程 455
8.2 线程 456
8.2.1 系统调度 457
8.2.2 千万不要这样做! 458
8.2.3 创建线程 459
8.2.4 线程本地存储器 462
8.3.1 事件 464
8.3 同步 464
8.3.2 等待 466
8.3.3 互斥体 469
8.3.4 临界区域 470
8.3.5 互锁变量访问 471
8.4 进程间通信 472
8.4.1 查找其他进程 473
8.4.2 XTALK示例程序 474
8.5 异常处理 487
8.5.1 _ _try, _ _except块 487
8.5.2 _ _try, _ _finally块 490
第三部分 通信 493
第九章 串行通信 493
9.1 基本驱动程序 493
9.1.2 列举活动的驱动程序 494
9.1.1 驱动程序名 494
9.1.3 读写设备驱动程序 497
9.2 基本串行通信 499
9.2.1 打开和关闭串行端口 499
9.2.2 读写串行端口 500
9.2.3 异步串行I/O 501
9.2.4 配置串行端口 502
9.2.5 设置端口超时值 504
9.2.6 查询串行驱动程序的性能 506
9.2.7 控制串行端口 507
9.2.8 清除错误并查询状态 508
9.2.9 保持活动 509
9.3 红外端口 510
9.3.1 原始IR 510
9.3.2 IrComm 512
9.4 CECHAT范例程序 513
第十章 Windows网络和IrSock 531
10.1 WINDOWS网络支持 531
10.1.1 WNet函数 532
10.1.2 ListNet示例程序 542
10.2 基本套接字 549
10.2.1 初始化WinSock DLL 550
10.2.2 流式套接字 551
10.2.3 IrSock 556
10.2.4 MySqurt示例程序 562
10.3 TCP/IP PING 576
第十一章 连接到桌面 581
11.1 WINDOWS CE远程API 582
11.1.1 RAPI概述 582
11.1.2 预定义的RAPI函数 585
11.1.3 RapiDir示例程序 591
11.1.4 自定义RAPI函数 595
11.1.5 RapiFind示例程序 600
11.2 CEUTIL函数 609
11.3 连接通知 613
11.3.1 注册表方法 613
11.3.2 COM方法 614
11.3.3 CnctNote示例程序 616
11.3.4 Windows CE端的连接检测 624
11.4 文件筛选程序 625
11.4.1 注册文件筛选程序 626
11.4.2 文件筛选程序接口 631
11.4.3 ICeFileFilterOptions接口 635
11.4.4 DivFile筛选程序范例 635
第十二章 外壳编程——第一部分 649
第四部分 高级主题 649
12.1 使用外壳 650
12.1.1 外壳名称空间 650
12.1.2 专用文件夹 651
12.1.3 快捷方式 654
12.1.4 配置Start菜单 654
12.1.5 最近使用的文档列表 655
12.2 任务栏 656
12.2.1 TBIcons示例程序 657
12.3 Out Of Memory对话框 664
12.4 通知 665
12.4.1 用户通知 665
12.4.2 定时器事件通知 668
12.4.3 系统事件通知 668
12.4.4 MyNotify示例程序 669
12.5 控制台应用程序 679
12.5.1 CEFind示例程序 680
第十三章 外壳编程——第二部分 685
13.1 辅助输入面板 685
13.1.1 使用SIP 686
13.1.2 对SIP更改的反应 690
13.1.3 Windows CE 2.1设备上的输入面板 691
13.2 编写输入方法 693
13.2.1 SIP组件 693
13.2.2 输入方法中的线程问题 694
13.2.3 IInputMethod接口 694
13.2.4 IIMCallback接口 698
13.2.5 NumPanel范例输入方法 700
13.3.1 硬件键的虚拟代码 720
13.3 硬件键 720
13.3.2 使用应用程序运行键 722
13.3.3 动态跳过应用程序运行键 723
第十四章 系统编程 727
14.1 启动过程 727
14.1.1 复位 728
14.1.2 NK.exe 728
14.1.3 加电但不启动系统 735
14.2 系统配置 735
14.3 编写跨平台的Windows CE应用程序 736
14.3.1 平台和操作系统版本 736
14.3.2 编译时版本问题 737
14.3.3 显式链接 738
14.3.4 运行时版本检查 740
附录 COM基础 743