Windows.h

windows.h是在可在C和C++中使用的仅用于Windows的头文件，其中包含所有Windows API中函数的声明、程序员常用的Windows宏和各种函数所要使用到的数据类型和子系统。它定义了大量可在C和C++中使用的适用于Windows的特定函数。在源文件中添加windows.h头文件并将其链接到对应的lib中，就可以将Win32 API包含到项目里边。假如你要使用***.dll中所包含的函数，那么你就应该将程序链接到***.lib中（在MinGW中，这个扩展将会变为***.dll.a）。一些头文件不会与.dll 关联，而与静态库关联（例如scrnsave.h 需要scrnsave.lib）。

包含的头文件 
windows.h中本身包含许多子头文件。由于它们之间特殊的依赖关系，这些子头文件很多都不能被程序单独地包含（它们不是自包含的）。

下面是Windows.h头文件中可能包含的头文件与它们各自的作用的一个对照：

 excpt.h –异常处理
 stdarg.h –变量参数函数（也是标准 C 头文件）
 windef.h –各种宏和类型
 winnt.h –各种宏和类型（适用于Windows NT ）
 basetsd.h –各种类型
 guiddef.h – GUID类型
 ctype.h –字符分类（标准 C 标头）
 string.h –字符串和缓冲区（标准 C 标头）
 winbase.h – kernel32.dll ：内核服务； advapi32.dll ：内核服务（例如CreateProcessAsUser 函数），访问控制（例如AdjustTokenGroups 函数）。
 winerror.h – Windows 错误代码
 wingdi.h – GDI （图形设备接口）
 winuser.h – user32.dll ：用户服务
 winnls.h – NLS（本地语言支持）
 wincon.h –控制台服务
 winver.h –版本信息
 winreg.h – Windows 注册表
 winnetwk.h – WNet（Windows 网络）
 winsvc.h – Windows 服务和SCM （服务控制管理器）
 imm.hhh – IME （输入法编辑器）

额外包括的 

 cderr.h – CommDlgExtendedError函数错误代码
 commdlg.h –常用对话框
 dde.h – DDE （动态数据交换）
 ddeml.h – DDE 管理库
 dlgs.h –常用对话框的各种常量
 lzexpand.h – LZ (Lempel-Ziv) 压缩/解压缩
 mmsystem.h – Windows 多媒体
 nb30.h – NetBIOS
 rpc.h – RPC （远程过程调用）
 shellapi.h – Windows Shell API
 wincrypt.h –加密 API
 winperf.h –性能监控
 winresrc.h –用于资源
 winsock.h – Winsock （Windows 套接字），1.1 版
 winspool.h –打印后台处理程序
 winbgim.h –标准图形库

OLE 和 COM 相关 

 ole2.h – OLE （对象链接和嵌入）
 objbase.h – COM （组件对象模型）
 oleauto.h – OLE 自动化
 olectlid.h –各种GUID定义

宏 
有几个宏会影响 windows.h 的行为。

 UNICODE –定义后，这会导致TCHAR直接成为WCHAR而不是CHAR的同义词，并且所有使用文本的类型通用 API 函数和消息都将定义为 -W 版本而不是 -A 版本。 （它类似于 Windows C 运行时的 _UNICODE 宏。 )
 RC_INVOKED –在资源编译器 (RC. EXE) 正在使用，而不是 C 编译器。
 WINVER –用于启用仅在较新操作系统中可用的功能。对于 Windows XP将其定义为 0x0501，对于Windows Vista将其定义为 0x0600。
 WIN32_LEAN_AND_MEAN –用于减小头文件的大小并加快编译速度。不包括密码学、 DDE 、 RPC 、 Windows Shell和Winsock 之类的东西。

补充 

 Windows.pas
Windows API
微軟API
C函式庫
C头文件