图书目录

目    录

第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