目 录 2
第1篇 WindoWS API基础篇 2
第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.8能传递Any数据类型吗 48
3.3.7能传递函数指针吗 48
3.4数据类型的转换 49
3.4.1API函数的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 获得Win32API函数调用失败错误代码 72
3.7.2根据错误代码获取错误信息 73
3.7.3获取错误信息应用示例 74
第2篇Windows系统信息篇 80
第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.3应用示例 98
5.2.2获取特殊文件夹相关API函数 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.1 国家/地区、语言信息标识 133
7.2获取系统国家/地区、语言设置信息 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.2获取数字区域信息 153
7.6.1数字信息标识 153
7.6获取系统数字设置信息 153
第3篇Windows系统操作篇 158
第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.1控制面板命令详解 168
8.3控制面板操作命令参考 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.3.1创建注册表键 191
9.3创建和删除注册表键 191
9.2.2关闭注册表键 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.1 波形音频的播放 262
11.1.1波形音频 262
第11章多媒体程序设计 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.3MCI指令的构成 273
11.3高级API多媒体控制函数 274
11.3.1通过mciSendString函数发送MCI指令 274
11.3.2获取MCI指令错误信息 275
11.4.1 播放音频文件的基本方法 276
11.4使用MCI指令播放音频文件 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.1 ODBC基础 292
12.1.1 ODBC涵义 292
第12章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.ODBCAPI函数调用 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篇 系统通用对话框篇 320
第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.1 相关函数和结构 349
14.2字体选择通用对话框 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.2调用示例 384
15.3打印机属性对话框 384
15.3.1相关函数和结构 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篇 文件、目录和磁盘操作篇 404
第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篇 窗口控制篇 496
第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.1 实现方法 595
20.3具有历史记录功能菜单的实现 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.1IE风格按钮的特点 626
21.1.2 IE风格按钮的实现 630
21.2音效按钮的实现 637
21.2.1音效按钮的实现 637
21.2.2带系统音的音效按钮 639
附录A函数索引 641
附录B结构索引 644
附录C示例索引 646