历史上没有哪种操作系统像Windows那样引起如此多的争议和混乱。当然,也没有哪种操作系统像Windows那样拥有数以百万计的用户。无论你是否喜欢,Windows就在你面前。你无法忽略Windows如此庞大的用户群,对于程序员来说,现在几乎没有什么工作不需要具有Windows知识。
早先程序员开发Windows程序时可选择的工具只有C/C++。这种语言的历史导致了WindowsAPl的文档中充满了抽象和不完整的信息,同时那些范例也像C语言本身一样深奥和神秘。接下来出现的Delphi标志着一个崭新的Windows编程时代的来临。利用它可以在前所未闻的极短时间内构建出复杂的、先进的程序。虽然Delphi尽了最大的努力使程序员与底层的Windows架构分离开来,然而,Delphi程序员仍发现了一些如果不通过底层的Windows APl就无法克服的编程障碍。虽然有少量书籍涉及在Delphi中使用WindowsAPI,但是没有任何一本对相关内容做了深入的探讨。很多杂志上的文章都对API子集有很详细的介绍,但是除非Delphi程序员具有C语言编程经验,同时花时间将C的范例转换为Delphi的,否则这些文章是毫无帮助的。本书正是在这种情况下诞生的。
本书是一本在Delphi中使用Windows 32位API函数的参考手册。因而,它不是Windows或者Delphi的编程教程,同时它也不是解决特定问题的Delphi技巧集。到现在为止,本书是Delphi程序员使用Windows API编程的最完整以及最精确的参考手册。本书不是完整的WindowsAPI函数参考书,WindowsAPI包含数以千计的函数,如果全部都介绍的话,本书将比你手中的书厚很多。然而,本书包含了WindowsAPI中最常用以及最重要的部分。另外,所有的函数在Windows 95/98/Me及Windows NT/2000下都是可用的。大多数的函数在较早的WindowsNT中也可以起作用。
各章内容概要
第1章:Delphi与WindowsAPI
这一章将读者引入本书。本章包含了Windows编程中常用的概念以及技巧,同时介绍了在Delphi环境下用Win32API编程的一些细微差别。
第2章:窗口创建函数
创建窗口是Windows程序中最基础的部分。第2章涵盖了低层的窗口创建及类(class)注册函数。本章的范例包括了使用低层API函数建立窗口、控制窗口的技巧,以及如何利用WindowsAPI函数扩展Delphi控件的功能。
第3章:消息处理函数
Windows通过消息机制来实现程序之间以及程序同系统的通信。本章涵盖了所有消息处理及发送函数。本章中的范例包括利用系统已注册的或者用户自定义的消息实现进程间通信,以及如何安装系统钩子函数。
第4章:内存管理函数
只有那些最简单的程序才不需要动态内存分配。本章涵盖了那些分配、释放系统内存以及虚拟内存的函数。本章包含的范例演示了堆管理例程、虚拟内存分配,以及获得已分配内存的信息。
第5章:动态链接库函数
动态链接库是Windows操作系统架构的核心,Windows要正常运行就离不开它们。本章涵盖了装载动态链接库和引入其中函数的API函数,本章的范例包含了如何在运行时装载动态链接库和引入其中的函数,以及如何建立用户定义的动态链接库入口点函数。
第6章:进程与线程函数
多任务系统允许同时运行多个程序,或者是在一个程序内同时执行多个线程。本章涵盖了建立和处理进程和线程的API函数,本章的范例包括建立及销毁一个线程,执行一个外部进程,建立互斥,以及使用线程事件。
第7章:定时器函数
在某些情况下,通过设置定时器来重复调用函数是惟一的编程解决办法。本章涵盖了那些建立低层Windows定时器的API函数。本章的范例中包含了如何通过建立高精度的定时器来测量代码性能。
第8章:错误函数
在编程过程中,错误处理是必不可少的一个环节。本章涵盖了调试及错误处理方面的API函数。本章的范例包括显示系统错误信息字符串以及用户自定义错误。
.第9章:图形设备接口函数
任何Windows下的图形编程都涉及到基本的图形设备接口函数。本章涵盖了建立和处理设备环境的API函数。本章的范例包括建立多种不同的设备环境,获得设备属性,以及更改显示模式。
第10章:绘画与绘制函数
基本的图形输出包括画线、圆形、矩形和其他几何形状。本章涵盖了所有的几何绘画与绘制函数。本章的范例包括绘制直线与形状(shape),建立画刷及画笔,以及一个快速的位图淡入淡出的实现。
第11章:区域与通道函数
很多图形编程资料中都忽略了区域及通道函数,然而这些函数可以让开发者实现一些奇妙的效果。本章涵盖了建立及处理区域和通道的API函数。在本章的范例中包括剪裁图像的输出以适应一个区域或者通道,以及运用通道来实现一些特殊的文本效果。
第12章:位图与图元文件函数
位图和图元文件是两种被Windows内部所支持的图像文件格式。位图函数是几乎所有Windows下图像编程的基础,本章涵盖了所有建立和处理位图及图元文件的API函数。本章的范例包括建立设备独立和设备依赖的位图,建立图元文件,以及分析图元文件记录。
第13章:文本输出函数
几乎任何程序在任何时候都需要在屏幕上输出文本。没有程序不需要显示文本信息,本章涵盖了处理字体和在屏幕上显示文本的API函数。本章的范例包括枚举系统中安装的字体,检索字体信息、字体嵌入,以及一些文本输出函数的使用。
本书约定
本书使用了一些不同的英文字体来表示不同的含义。所有的范例代码使用如下字体,例如:
function HelloThere(Info:string):Integer;
begin
ShowMessage(Info);
end;
为与其他的Delphi编程工作保持一致,书中的代码符合Borland代码约定,包括变量名称和标识符的大小写混合命名,保留字全部为小写,以及嵌套代码逐层缩进两格,代码中的常量字母全部为大写,例如TRUE和FALSE。另外,如果在某一个单元里面使用了另外一个单元中定义的函数,那么包含这个函数的单元名称就必须包含在调用单元的Uses段中。不过本书涉及的绝大部分APl函数都被定义在Windows.pas中,而该单元是自动包含在Uses段中的。
函数描述
书中对API函数的描述以一种特殊的格式编排以便读者可以快速地看到函数参数的描述和提示、更详细的函数说明、使用范例,以及参数可接受的常量值。
每一个API函数描述包括了精确的Delphi源代码中的语法,函数的用途描述,函数参数列表及其描述,函数的返回值,相关函数的列表,以及该函数的一个使用范例。每一个在函数中用到的常量在函数的范例后都会有一个常量描述表。所有的常量定义都会写在一个地方以便查阅。对于一些使用了相同类型参数的API函数,常量描述表就会同前面的相重复。这样重复的目的是为了避免读者在查阅常量描述的时候反复地在常量描述表与函数描述之间翻宋翻去。星号(*)表示此函数在本书中没有介绍。
范例程序
尽管每一个作者都会在规定的写书截止日期前赶进度,但是我不想为此而降低范例程序的质量。读者还需要考虑到一些代码运行的特定环境,例如许多图形处理方面的范例在低于256色的显示模式下无法工作。
本书面向的读者
这本书属于参考手册一类的书籍,因此基本没有介绍通用的Windows和Delphi下的编程,本书的读者应该具有Delphi编程的知识,以及一定的Windows编程的基础知识。当然这并不意味着初级或者中级Delphi程序员不能从书中获益,实际上,相当多的范例可以解决编程中的实际问题。书中大量经过验证的范例可以使刚入门的Delphi程序员获得很多APl函数的使用经验。作为一本参考手册,可能不需要将本书从头到尾看一遍,然而,书中的章节是按照由浅入深的结构合理组织的,本书由最基本的、建立窗口的API函数开始,步步深入到专门的API函数。
如果你需要一本介绍Delphi编程的书,或者一本循序渐进的Windows编程教程书,有大量的书籍可供选择。然而如果你在编程中遇到问题需要利用WindowsAPI函数来解决,如果你需要开发Delphi的扩展组件和对象,或者想得到WindowsAPI编程的范例,那么这本书就是为你而写。作为Delphi程序员,你不可能找到比本书更全面、更准确的Win32API指导书籍了。