标题：WindowsCE嵌入式高级编程及其实例详解
内容简介
全书共分15章，分别为WindowsCE以及开发环境概述、图形编程、对话框控件、进程、线程、文件、多媒体编程、WindowsCE基础数据库编程、SQLCE3.0数据库编程、串口编程、网络编程概述、UDP编程、TCP编程、DLL编程以及COM编程。本书中的很多技术和参考示例是作者多年技术研发工作的经验总结和提炼升华，具备很强的借鉴和指导意义。读者在具备一定的C++知识的基础上，通过本书的学习，可以快速提高WindowsCE的编程能力和实际开发水平。《WindowsCE嵌入式高级编程及其实例详解》示例基于WindowsMobile6平台进行讲述演示，这些示例也可极其方便地应用到WindowsCE4.2、WindowsCE5.0、WindowsCE6.0等WindowsCE标准平台。
编辑推荐
通过《WindowsCE嵌入式高级编程及其实例详解》（用C++实现），您将会学到WindowsCE编程的基础知识和实战技术。
实用开发技术：本书中讲述的实例能够辅助开发人员设计出界面美观、功能强大、性能稳定的WindowsCE应用程序，同时书中的相关代码模块对于工程技术人员具有极高的参考价值，为读者日后设计开发项目提供借鉴和参考。读者在具备一定的C++知识的基础上，再通过对本书的学习，可以快速提高WindowsCE编程能力和实际开发水平。
目录
前言
第1章 Windows CE及开发环境概述 1
1.1 Windows CE概述 1
1.1.1 Windows CE嵌入式系统概述 1
1.1.2 Windows CE版本 2
1.1.3 Windows CE 6.0概述 2
1.1.4 嵌入式开发流程 4
1.2 开发环境概述 4
1.2.1 Visual Studio 2005的Visual C++——Windows CE开发环境概述 4
1.2.2 示例程序HelloWorld 5
1.3 Windows CE附带远程工具概述 10
第2章 图形编程 14
2.1 设备环境类 14
2.2 图形对象类（GDI） 15
2.3 绘制各种图形 27
2.4 绘制位图 38
2.4.1 CDC绘图函数描述 38
2.4.2 动画效果 43
2.4.3 抓屏 44
2.4.4 图形显示特技 47
2.5 显示压缩格式图片 50
2.5.1 SHLoadImageFile方法 50
2.5.2 Imaging技术 51
2.6 简单二维曲线示例 62
2.6.1 二维曲线类C2Dgraph的创建 62
2.6.2 使用二维曲线类C2DGraph绘制曲线 72
第3章 对话框控件 75
3.1 常用控件 75
3.1.1 微调按钮 75
3.1.2 滑动条 78
3.1.3 进度条 81
3.1.4 列表视图控件 82
3.1.5 树控件 91
3.2 创建图形显示控件 97
3.3 创建LED数字显示控件 105
第4章 进程 114
4.1 进程 114
4.1.1 进程概述 114
4.1.2 进程创建 114
4.1.3 进程终止 117
4.1.4 其他进程函数 118
4.1.5 “进程列举并管理”实例 119
4.2 进程间通讯 129
第5章 线程 148
5.1 线程 148
5.1.1 线程概述 148
5.1.2 线程优先级 148
5.1.3 线程API函数 149
5.2 线程同步 151
5.2.1 未使用线程同步 152
5.2.2 利用事件同步 155
5.2.3 利用互斥同步 158
5.2.4 利用临界区同步 161
5.2.5 利用信号量同步 163
第6章 文件 166
6.1 文件基本操作 166
6.2 文件综合操作示例 176
6.3 内存映射文件 187
6.3.1 内存映射文件概述 187
6.3.2 利用内存映射文件实现进程间通讯 190
6.4 文件系统管理 198
6.5 注册表编程 203
6.5.1 注册表简介 203
6.5.2 注册表API函数 203
6.5.3 注册表操作举例 207
第7章 多媒体编程 211
7.1 Direct Show介绍 211
7.1.1 DirectShow技术框架 212
7.1.2 过滤器（Filter） 212
7.1.3 Filter Graph Manager 213
7.1.4 Pin 214
7.1.5 DirectShow 接口定义介绍 214
7.2 媒体播放器示例 215
7.3 摄像头捕捉示例 236
7.3.1 摄像头捕捉概述 236
7.3.2 摄像头捕捉示例 238
第8章 Windows CE基础数据库编程 255
8.1 EDB概述 255
8.1.1 装配数据卷 256
8.1.2 卸载数据库卷 257
8.1.3 创建数据库 257
8.1.4 创建会话对象 259
8.1.5 打开数据库 259
8.1.6 事务操作 262
8.1.7 删除数据库 263
8.1.8 枚举数据库卷以及数据库 264
8.1.9 查找或移动记录 267
8.1.10 写记录 270
8.1.11 读取记录 271
8.1.12 删除记录 272
8.1.13 流操作 272
8.2 数据库操作综合示例 274
第9章 SQLCE数据库编程 310
9.1 SQL Server FOR CE的介绍 310
9.1.1 SQLCE简介 310
9.1.2 SQL Server CE 3.0的安装 311
9.1.3 SQLCE 3.0连接配置 313
9.2 OLEDB 编程访问SQLCE 3.0 318
9.2.1 OLE DB 概述 318
9.2.2 OLEDB 编程 319
9.3 SQLCE远程数据访问 332
9.3.1 Pull（拉数据） 333
9.3.2 Push（推数据） 334
9.3.3 Submit（远程T-SQL操作） 335
9.4 远程数据访问综合示例 335
第10章 串口编程 351
10.1 串口概述 351
10.2 串口编程API函数介绍 352
10.3 CE串口综合示例 360
10.4 GPS编程示例 378
第11章 网络编程概述 398
11.1 套接字编程基础 398
11.1.1 WinSock初始化和释放 399
11.1.2 创建套接字 401
11.1.3 关闭套接字 401
11.1.4 绑定套接字 402
11.1.5 监听套接字 403
11.1.6 等待连接 404
11.1.7 建立连接 405
11.1.8 发送数据 405
11.1.9 接收数据 406
11.1.10 设置套接字模式 407
11.1.11 Select I/O模型 408
11.2 PING编程 410
11.2.1 PING编程概述 410
11.2.2 PING编程示例 411
11.3 RAS拨号编程 414
11.3.1 建立拨号连接 414
11.3.2 关闭拨号连接 418
11.3.3 列举已建立的活动连接 419
11.3.4 列举电话簿条目 420
第12章 UDP编程 422
12.1 UDP编程概述 422
12.2 UDP编程示例 422
第13章 TCP编程 435
13.1 TCP编程概述 435
13.2 TCP客户端示例 435
13.3 TCP服务器端示例 451
第14章 DLL编程 473
14.1 DLL概述 473
14.2 DLL的调用 474
14.2.1 静态调用 474
14.2.2 动态调用 474
14.3 DLL的创建 475
14.3.1 Windows CE DLL的创建 476
14.3.2 基于MFC的Regular DLL的创建 481
14.3.3 资源DLL 486
第15章 COM编程 490
15.1 COM基本知识概述 490
15.1.1 什么是COM 490
15.1.2 什么是接口 490
15.1.3 COM基本结构 491
15.2 使用ATL创建COM示例 492
15.2.1 ATL对COM支持概述 492
15.2.2 ATL创建COM对象示例 493
15.2.3 创建客户端调用CEComServer 497
15.3 可连接点对象及示例 499
15.3.1 可连接点对象概述 499
15.3.2 连接点示例 501
15.4 创建ActiveX控件 509
15.4.1 ActiveX概述 509
15.4.2 使用MFC向导创建一个简单的ActiveX控件 509
……
序言
Microsoft Windows CE是一个紧凑、高效和可扩展的操作系统，适用于多种嵌入式产品。它是拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境，专门面向只有有限资源的硬件系统。同时，它的模块化设计方式使得系统开发人员和应用开发人员能够使用它来定制多种多样的产品，例如客户电子设备、专用工业控制器以及嵌入式通信设备等。
Windows CE经过10多年的风风雨雨，产生了几个比较重要的里程碑，分别是Windows CE 3.0、Windows CE 4.2、Windows CE 5.0、Windows CE 6.0，至今Windows CE 3.0和Windows CE 4.2依旧在一些工业和商业中服役着。本书将重点基于Windows CE 5.0和Windows CE 6.0来介绍Windows CE应用程序的开发，其中绝大部分示例代码依旧适应于Windows CE 3.0、Windows CE 4.2等老的Windows CE操作系统。
从Windows CE 5.0开始，Windows CE 5.0之上的应用程序开发，微软推荐使用Microsoft Visual Studio 2005的Visual C++开发工具，之前我们大都采用Embedded Visual C++（EVC）开发工具。采用VS 2005的Visual C++开发基于Windows CE的智能应用程序比EVC更加方便智能。
目前，已经面世的Windows CE类开发书籍并不是很多，限制了许多读者的学习空间，而本书由浅入深、循序渐进的介绍方式，理论与实际相结合的说明方法，相信会为读者带来耳目一新的感觉。
《EVC高级编程及其应用开发》一书是作者在2005年编著的第一本关于Windows CE应用程序开发方面的书籍，本书在《EVC高级编程及其应用开发》的基础上进行更新升级，以适应Windows CE的发展以及开发工具的升级。
本书示例基于Windows Mobile 6平台进行讲述演示，这些示例也可极其方便地应用到Windows CE 4.2、Windows CE 5.0、Windows CE 6.0等Windows CE标准平台。全书共分15章，分别为Windows CE以及开发环境概述、图形编程、对话框控件、进程、线程、文件、多媒体编程、Windows CE基础数据库编程、SQLCE 3.0数据库编程、串口编程、网络编程概述、UDP编程、TCP编程、DLL编程以及COM编程。读者在具备一定的C++知识的基础上，通过本书的学习，可以快速提高Windows CE的编程能力和实际开发水平。
本书主要由汪兵编写，同时参与部分编写工作的还有李存斌、陈鹏、李洪、郭晓鹏、樊建平、谭显东、董威、李众、母德宝、刘天星、胡喆、林金钟、赖少梅等。在本书编写过程中，得到了中国水利水电出版社计算机编辑室全体同志的大力支持和帮助，在此一并表示衷心的感谢。
由于时间仓促及作者水平有限，书中错误和不妥之处在所难免，敬请广大读者批评指正。
作 者