目 录
第1篇 Windows API基础篇
第1章 Win32 API基础 2
1.1 引言 2
1.2 API概念 3
1.2.1 解决问题的3个途径 3
1.2.2 API释义 4
1.2.3 体验API的存在 5
1.2.4 API函数的分类 6
1.3 动态库与动态链接 8
1.3.1 动态库位于何处 8
1.3.2 静态链接与动态链接 9
1.3.3 动态链接的优点 10
1.4 获取API信息资源 11
1.4.1 MSDN——Windows API的技术库 11
1.4.2 精采网站——程序员的乐园 12
1.5 风险警示 17
第2章 PB的函数、结构和数据类型 18
2.1 函数 18
2.1.1 函数概述 18
2.1.2 函数的类型 20
2.1.3 定义函数 20
2.1.4 函数调用的优先级 23
2.1.5 函数的过载和重载 23
2.1.6 向函数传递参数 24
2.1.7 函数的返回值 25
2.2 结构 25
2.2.1 结构概述 25
2.2.2 定义结构 26
2.2.3 结构的赋值与引用 27
2.3 PB的数据类型、变量和常量 28
2.3.1 标准数据类型 28
2.3.2 Any数据类型 29
2.3.3 变量和常量 30
第3章 外部函数的声明和调用 33
3.1 外部函数声明 33
3.1.1 何处声明 33
3.1.2 声明格式的约定 34
3.1.3 Alias For的作用 35
3.2 PB与DLL之间参数传递方式 38
3.2.1 参数传递的两种方式——值传递与引用传递 38
3.2.2 如何确定参数的传递方式 39
3.3 向DLL函数传递不同类型的参数 40
3.3.1 传递数值型数据 40
3.3.2 传递字符串型数据 40
3.3.3 传递结构型数据 42
3.3.4 传递数组 43
3.3.5 NULL值传递 47
3.3.6 传递属性 47
3.3.7 能传递函数指针吗 48
3.3.8 能传递Any数据类型吗 48
3.4 数据类型的转换 49
3.4.1 API函数的C原型 49
3.4.2 PB声明中数据类型转换 51
3.4.3 数据类型转换的进一步讨论 52
3.5 API函数标识常量及其逻辑运算 55
3.5.1 函数标识常量的定义 55
3.5.2 函数标识常量的作用 57
3.5.3 常量的位逻辑运算 58
3.5.4 创建数值位逻辑运算用户对象 62
3.6 外部函数调用错误信息及排错技巧 68
3.6.1 常见错误信息解析 68
3.6.2 防止错误的一些基本规则 70
3.7 API函数调用失败错误代码和信息 72
3.7.1 获得Win32 API函数调用失败错误代码 72
3.7.2 根据错误代码获取错误信息 73
3.7.3 获取错误信息应用示例 74
第2篇 Windows系统信息篇
第4章 Windows系统版本信息 80
4.1 判断Windows系统平台类型 80
4.1.1 判断Windows系统平台类型 80
4.1.2 判断Windows NT系统版本类型 83
4.2 获取Windows系统版本的详细信息 85
4.2.1 Windows系统主要版本特征 85
4.2.2 相关API函数和结构 86
4.2.3 获取系统版本详细信息示例 88
4.3 获取Windows系统产品ID 90
4.3.1 产品ID在注册表中位置 90
4.3.2 应用示例 91
第5章 Windows系统目录 93
5.1 Windows系统目录的获取 93
5.1.1 取得Windows的安装路径 93
5.1.2 多用户系统下共享Windows路径获取 94
5.1.3 Windows系统System目录路径 95
5.2 系统特殊目录的获取 97
5.2.1 特殊文件夹标识——CSIDL码 97
5.2.2 获取特殊文件夹相关API函数 98
5.2.3 应用示例 98
5.3 临时文件目录的获取 100
5.3.1 相关API函数 100
5.3.2 应用示例 101
第6章 Windows系统信息摘要 102
6.1 获取系统处理器信息 102
6.1.1 相关API函数和结构 102
6.1.2 应用示例 104
6.2 获取系统内存信息 109
6.2.1 相关API函数和结构 109
6.2.2 应用示例 110
6.3 获取计算机和系统用户名称 111
6.3.1 获取计算机标识名称 111
6.3.2 设置计算机标识名称 112
6.3.3 获取系统当前用户的名称 113
6.4 获取系统信息摘要综合示例 116
6.4.1 创建获取系统综合信息用户对象 116
6.4.2 应用示例 122
第7章 Windows系统区域信息 124
7.1 系统区域 124
7.1.1 系统区域和区域代码 124
7.1.2 获取系统区域识别码 127
7.1.3 获取系统区域信息 128
7.1.4 设置系统区域信息 131
7.2 获取系统国家/地区、语言设置信息 133
7.2.1 国家/地区、语言信息标识 133
7.2.2 获取国家/地区、语言等区域信息 134
7.3 获取系统日期设置信息 137
7.3.1 日期信息标识 137
7.3.2 获取日期区域信息 138
7.3.3 国际化程序开发对日期设置的考虑 142
7.4 获取系统区域时间设置信息 145
7.4.1 时间信息标识 145
7.4.2 获取区域时间信息 146
7.5 获取系统货币设置信息 148
7.5.1 货币信息标识 148
7.5.2 获取货币区域信息 148
7.6 获取系统数字设置信息 153
7.6.1 数字信息标识 153
7.6.2 获取数字区域信息 153
第3篇 Windows系统操作篇
第8章 系统控制面板操作 158
8.1 控制面板操作命令 158
8.1.1 控制面板的启动 158
8.1.2 控制面板操作命令Rundll32 159
8.2 控制面板中子项的调用 160
8.2.1 控制面板中子项与.cpl文件 160
8.2.2 控制面板中内建子项的调用 161
8.2.3 使用Control.exe打开控制面板 163
8.2.4 应用示例 164
8.3 控制面板操作命令参考 168
8.3.1 控制面板命令详解 168
8.3.2 控制面板命令一览表 179
第9章 系统注册表访问 182
9.1 注册表概述 182
9.1.1 什么是注册表 182
9.1.2 注册表结构 183
9.1.3 键、子键和值项 185
9.1.4 注册表存储空间 187
9.1.5 注册表预定义键及其句柄 187
9.2 打开和关闭注册表键 188
9.2.1 打开注册表键 188
9.2.2 关闭注册表键 191
9.3 创建和删除注册表键 191
9.3.1 创建注册表键 191
9.3.2 删除注册表键 194
9.4 设置或删除注册表键值 195
9.4.1 设置注册表键值 195
9.4.2 删除注册表键值 200
9.5 注册表数据检索 201
9.5.1 枚举注册表键下的所有子键 201
9.5.2 枚举注册表键下面的值项 204
9.5.3 检索指定注册表键下的值项 206
9.6 注册表文件 208
9.6.1 注册表文件基本概念 208
9.6.2 将注册表键信息导出为注册表文件 209
9.6.3 将注册表文件信息添加到注册表中 212
9.7 注册表访问实例 213
9.7.1 Windows启动时自动执行某一程序 213
9.7.2 创建文件关联 216
9.7.3 创建应用程序“安装/删除”信息 222
第10章 系统桌面控制 226
10.1 桌面对系统界面的整合 226
10.2 系统桌面操作 227
10.2.1 获取系统任务栏设置 227
10.2.2 回收站操作 229
10.2.3 最近打开过的文档 233
10.3 桌面墙纸和屏幕保护程序的设置 234
10.3.1 相关API函数 235
10.3.2 设置桌面墙纸 236
10.3.3 设置屏幕保护程序 240
10.4 系统显示模式设置 243
10.4.1 使用环境对象获取当前显示模式 244
10.4.2 使用API函数获取显示模式更多信息 244
10.4.3 列出系统支持的所有显示模式 247
10.4.4 动态改变屏幕分辨率 252
10.5 获取或设置系统颜色 258
10.5.1 获取Windows系统显示要素的颜色 258
10.5.2 设置Windows系统显示要素的颜色 260
第11章 多媒体程序设计 262
11.1 波形音频的播放 262
11.1.1 波形音频 262
11.1.2 判断系统是否具备音频播放设备 263
11.1.3 使用PlaySound播放音频文件 263
11.1.4 使用PlaySound播放系统声音 265
11.1.5 使用sndPlaySound播放音频文件 268
11.2 媒体控制接口指令MCI 270
11.2.1 媒体控制接口指令MCI简介 270
11.2.2 媒体设备类型 272
11.2.3 MCI指令的构成 273
11.3 高级API多媒体控制函数 274
11.3.1 通过mciSendString函数发送MCI指令 274
11.3.2 获取MCI指令错误信息 275
11.4 使用MCI指令播放音频文件 276
11.4.1 播放音频文件的基本方法 276
11.4.2 长文件名音频文件的播放 277
11.4.3 连续播放某个音频文件 278
11.4.4 MIDI音乐的播放 280
11.5 使用MCI指令播放AVI视频 281
11.5.1 相关MCI指令的用法 281
11.5.2 AVI视频的播放 282
11.6 CD音频的播放 284
11.6.1 CD Audio相关MCI指令 284
11.6.2 定制CD播放器 286
第12章 ODBC数据源设置 292
12.1 ODBC基础 292
12.1.1 ODBC涵义 292
12.1.2 PB对ODBC数据源的访问 294
12.2 通过控制面板配置ODBC数据源 296
12.2.1 为PB应用定义ODBC数据源 296
12.2.2 为PB应用建立数据库配置文件 298
12.3 通过注册表配置ODBC数据源 300
12.3.1 注册表中有关ODBC的键 300
12.3.2 通过注册表动态注册ODBC驱动 303
12.3.3 通过注册表动态注册ODBC数据源 305
12.4 ODBC API函数调用 307
12.4.1 获取数据源DNS列表 307
12.4.2 获取系统安装的数据库驱动列表 312
12.4.3 使用SQLConfigDataSource函数配置数据源 314
12.4.4 获取当前ODBC连接的DBMS、数据库和用户 315
12.5 系统ODBC设置对话框的调用 317
12.5.1 调用“创建新数据源”设置向导 317
12.5.2 打开“ODBC数据源管理器” 318
第4篇 系统通用对话框篇
第13章 文件、文件夹选择通用对话框 320
13.1 PB的文件打开、保存对话框 320
13.1.1 打开文件对话框 320
13.1.2 保存文件对话框 321
13.2 内存管理函数 322
13.2.1 内存分配函数 322
13.2.2 内存锁定和释放函数 325
13.2.3 内存块复制函数 326
13.3 打开文件通用对话框的调用 327
13.3.1 相关函数和结构 327
13.3.2 调用示例 330
13.4 保存文件通用对话框的调用 333
13.4.1 相关函数和结构 333
13.4.2 调用示例 334
13.5 文件夹选择通用对话框的调用 338
13.5.1 相关函数和结构 338
13.5.2 调用示例 342
第14章 颜色及字体选择通用对话框 345
14.1 颜色选择通用对话框 345
14.1.1 相关函数和结构 345
14.1.2 颜色选择对话框调用示例 346
14.2 字体选择通用对话框 349
14.2.1 相关函数和结构 349
14.2.2 字体选择对话框调用示例 353
第15章 打印及打印机通用对话框 358
15.1 打印对话框 358
15.1.1 相关函数和结构 358
15.1.2 打印对话框调用 368
15.1.3 调用打印设置对话框 376
15.2 页面设置对话框 379
15.2.1 相关函数和结构 379
15.2.2 调用示例 382
15.3 打印机属性对话框 384
15.3.1 相关函数和结构 384
15.3.2 调用示例 384
第16章 系统其他一些对话框 387
16.1 消息对话框 387
16.1.1 MessageBox消息对话框 387
16.1.2 消息对话框调用示例 389
16.2 提示所需磁盘或文件对话框 392
16.2.1 相关API函数 392
16.2.2 调用示例 394
16.3 重新启动计算机对话框 395
16.3.1 相关API函数 395
16.3.2 调用示例 396
16.4 文件或文件夹属性对话框 397
16.5 互联网下载对话框 399
16.6 “关于”对话框 400
第5篇 文件、目录和磁盘操作篇
第17章 文件与目录访问 404
17.1 获取和设置文件属性 404
17.1.1 获取和设置文件属性的方法 404
17.1.2 应用示例 406
17.2 文件时间属性的读取和设置 408
17.2.1 访问文件时间属性的方法 408
17.2.2 获取文件对象的句柄 409
17.2.3 获取和设置文件时间函数 411
17.2.4 文件时间与系统时间的相互转换 412
17.2.5 创建访问文件时间用户对象 413
17.3 功能强大的SHFileOperation函数 417
17.3.1 函数SHFileOperation简介 417
17.3.2 文件的复制、移动或删除 419
17.4 Windows 2000/XP下文件加解密 424
17.4.1 文件加密 424
17.4.2 文件解密 425
17.5 长、短格式文件名的相互转换 425
17.5.1 将长文件名格式转换为短格式 425
17.5.2 将短文件名格式转换为长格式 426
17.6 目录操作 427
17.6.1 取得当前程序的工作路径 427
17.6.2 设置当前程序的工作路径 428
17.6.3 获取关联应用程序路径和名称 429
17.6.4 目录的创建与删除 431
17.7 神奇的ShellExecute函数 433
17.7.1 ShellExecute函数及其功能 433
17.7.2 ShellExecute功能演示 436
17.7.3 ShellExecuteEX函数及其功能 440
第18章 磁盘驱动器访问和控制 445
18.1 获取磁盘驱动器信息 445
18.1.1 获取磁盘驱动器列表 445
18.1.2 确定磁盘驱动器类型 447
18.1.3 获取磁盘的卷标及序列号 448
18.1.4 获取磁盘容量信息 450
18.2 获取硬盘驱动器物理信息 453
18.2.1 获取磁盘设备的句柄 453
18.2.2 访问系统设备的底层API函数 454
18.2.3 获取硬盘设备的物理信息 455
18.3 CD-ROM驱动器控制 461
18.3.1 判断系统是否安装有CD-ROM驱动器 461
18.3.2 判断CD-ROM驱动器中光盘是否准备就绪 463
18.3.3 判断系统是否安装有DVD驱动器 465
18.3.4 CD-ROM驱动器锁定 473
18.3.5 CD-ROM驱动器弹出与载入 477
18.4 软磁盘控制 480
18.4.1 判断软盘是否准备就绪 481
18.4.2 格式化磁盘 482
18.5 定制目录浏览对话框 484
18.5.1 设计思路 484
18.5.2 程序设计 486
第6篇 窗口控制篇
第19章 窗口操作 496
19.1 窗口与窗口的句柄 496
19.1.1 什么是窗口 496
19.1.2 窗口句柄 496
19.2 窗口标题栏的控制 497
19.2.1 为标题栏增加闪烁效果 498
19.2.2 控制窗口标题栏的隐藏或显示 501
19.2.3 通过窗口消息动态改变窗口标题 508
19.2.4 无标题栏浮动窗口的建立 510
19.2.5 为窗口设置不同类型的边框 513
19.3 通过窗口函数控制系统任务栏 514
19.3.1 隐藏系统任务栏上的“开始”按钮 515
19.3.2 隐藏系统任务栏 517
19.4 窗口透明效果的实现 518
19.4.1 窗口透明效果 519
19.4.2 Windows 2000/XP中窗口半透明效果的实现 520
19.5 为窗口创建渐变色填充背景 522
19.5.1 区域填充API函数和结构 522
19.5.2 从RGB值获取红、绿、蓝三原色分量 525
19.5.3 获取窗口设备场景的句柄 527
19.5.4 窗口矩形渐变色填充背景的实现 528
19.5.5 窗口三角形渐变色填充背景的实现 533
19.6 以动画效果打开或关闭窗口 540
19.6.1 使窗口产生动画的外部函数 540
19.6.2 创建窗口动画效果用户对象 543
19.7 异形窗口的实现 547
19.7.1 椭圆形或圆形窗口的建立 547
19.7.2 圆角矩形窗口的建立 549
19.7.3 不规则多边形窗口的建立 551
19.7.4 组合形状窗口的建立 553
19.8 窗口一些系统属性的控制 556
19.8.1 将窗口始终置于任务栏上方 556
19.8.2 设置或取消全窗口拖曳功能 558
19.8.3 设置或取消窗口动画显示功能 559
19.9 强化窗口工具栏和状态栏功能 561
19.9.1 限制窗口的最大和最小尺寸 561
19.9.2 PB窗口工具栏和状态栏的类名称 562
19.9.3 强化窗口工具栏和状态栏功能 565
第20章 窗口菜单 575
20.1 位图菜单的实现 575
20.1.1 带图标菜单的实现 575
20.1.2 全位图格式菜单的实现 585
20.2 自动隐藏菜单和多列菜单的实现 587
20.2.1 窗口菜单自动隐藏功能的实现 587
20.2.2 菜单多列显示的实现 589
20.3 具有历史记录功能菜单的实现 595
20.3.1 实现方法 595
20.3.2 应用示例 598
20.4 窗口系统菜单的控制 603
20.4.1 窗口系统菜单及相关API函数 603
20.4.2 窗口关闭、最大化、最小化系统菜单控制 606
20.4.3 将自定义菜单项添加到窗口系统菜单中 609
20.5 彩色菜单的实现 613
20.5.1 实现彩色菜单功能的函数 613
20.5.2 建立为菜单涂色的“刷子” 615
20.5.3 实现彩色菜单应用实例 615
20.6 带背景贴图菜单的实现 620
20.6.1 创建位图“刷子” 620
20.6.2 贴图背景菜单应用实例 621
20.6.3 为菜单增加滚动能力 624
第21章 命令按钮 626
21.1 IE风格按钮的实现 626
21.1.1 IE风格按钮的特点 626
21.1.2 IE风格按钮的实现 630
21.2 音效按钮的实现 637
21.2.1 音效按钮的实现 637
21.2.2 带系统音的音效按钮 639
附录A 函数索引 641
附录B 结构索引 644
附录C 示例索引 646