关于Win32API(主要是一个宏观上分类)

来源:互联网 发布:大连外国语大学网络课 编辑:程序博客网 时间:2024/06/10 06:03

Windows API所提供的功能可以归为七类:


基础服务(Base Services),提供对Windows系统可用的基础资源的访问接口。比如象:文件系统(file system)、外部设备(device)、进程(process)、线程(thread)以及访问注册表(Windows registry)和错误处理机制(error handling)。

这些功能接口位于,16位Windows下的kernel.exe、krnl286.exe或krnl386.exe系统文档中;

以及32位Windows下的kernel32.dll和advapi32.dll中。



图形设备接口(GDI),提供功能为:输出图形内容到显示器、打印机以及其他外部输出设备。

它位于16位Windows下的gdi.exe;以及32位Windows下的gdi32.dll。





图形化用户界面(GUI),提供的功能有创建和管理屏幕和大多数基本控件(control),比如按钮和滚动条。接收鼠标和键盘输入,以及其他与GUI有关的功能。这些调用接口位于:16位Windows下的user.exe,以及32位Windows下的user32.dll。从Windows XP版本之后,基本控件和通用对话框控件(Common Control Library)的调用接口放在comctl32.dll中。



通用对话框链接库(Common Dialog Box Library),为应用程序提供标准对话框,比如打开/保存文档对话框、颜色对画框和字体对话框等等。这个链接库位于:16位Windows下的commdlg.dll中,以及32位Windows下comdlg32.dll中。它被归类为User Interface API之下。



通用控件链接库(Common Control Library),为应用程序提供接口来访问操作系统提供的一些高级控件。比如像:状态栏(status bar)、进度条(progress bars)、工具栏(toolbar)和标签(tab)。这个链接库位于:16位Windows下的commctrl.dll中,以及32位Windows下comctl32.dll中。。它被归类为User Interface API之下。



Windows外壳(Windows Shell),作为Windows API的组成部分,不仅允许应用程序访问Windows外壳提供的功能,还对之有所改进和增强。它位于16位Windows下的shell.dll中,以及32位Windows下的shell32.dll中(Windows 95则在shlwapi.dll中)。它被归类为User Interface API之下。
网络服务(Network Services),为访问操作系统提供的多种网络功能提供接口。它包括NetBIOS、Winsock、NetDDE及RPC等。



××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

Web相关API 
Internet Explorer网页浏览器也提供许多程序接口,提供以下接口:


可嵌入的网页浏览器控件,位于shdocvw.dll和mshtml.dll之中。
urlmon.dll中的命名服务(URL moniters service),利用COM对象为应用程序提供解析URL服务。应用程序也可以为其他程序提供自己的URL处理程序。
WinInet IE的网络层,支持HTTP和HTTPS等协议。
一个支持多种语言文本的链接库(mlang.dll)。
DirectX Transforms,一组图像过滤组件。
XML支持(MSXML组件)。
和Windows的邮件功能相关的API,例如地址本和邮件API,在Windows 7取消邮件功能之后也随之从Windows API中去除。由于Windows Mail在Windows Vista上取代了Outlook Express,对应的API也随之变化。






多媒体相关API
自从Windows 95 OSR2以来,Microsoft把DirectX API作为Windows安装的一部分。DirectX提供一组松散相关的多媒体和游戏服务,包括:
Direct3D可以作为OpenGL的替代,来访问3D加速硬件。
DirectDraw提供硬件加速2D framebuffer(帧缓冲)访问接口。自DirectX 9以来,相比Direct3D更倾向于后者,因为Direct3D提供更全面的高性能图形功能(毕竟2D渲染只是3D渲染的(不严格)子集)。已被Direct2D替代。
DirectSound提供底层次的硬件加速声卡访问。被XAudio替代。
DirectInput用来与输入设备(摇杆和gamepad)进行通信。已被DirectX 9中引入的XInput所替代。
DirectPlay提供一个多人游戏的架构(multiplayer gaming infrastructure)。它已经被DirectX 9所替代,Microsoft不建议用它开发游戏。
DirectShow可以创建和运行通用的多媒体渠道(generic multimedia pipelines)。它可以与GStreamer框架相媲美,并且经常被用来渲染游戏视频和创建媒体播放器(Windows Media Player及诸如FFDShow之类的编解码器正是基于此;但在Windows Vista及更高版本中,


DirectShow被Media Foundation替代)。不建议用DirectShow开发游戏。
DirectMusic提供类似MIDI的功能。与DirectSound一起被XAudio替代。




程序通信API
Windows API的功能主要通过使操作系统和应用程序之间的交互来实现。为了实现不同Windows应用程序的通信,微软随着主要Windows API,推出一系列的技术。最初的DDE(Dynamic Data Exchange)升级为对象连接与嵌入(Object Linking and Embedding),再后来是组件对象模型(COM)


×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××


封装库 
微软利用许多更底层的Windows API函数,开发出许多封装库(wrapper),让应用程序以更抽象的方式与Windows API进行交互。

MFC(Microsoft Foundation Class Library)用C++ 类来封装Windows API的功能,因而允许用更为面向对象的方式与API进行交互。

ATL(Active Template Library)是对COM的面向模板(template oriented)的封装。

WTL(Windows Template Library)作为ATL的增强,被用来作为MFC的轻型的替代物。

 

其他著名的封装库是Borland公司的产品,为了与MFC竞争而推出的OWL(Object Windows Library)提供了类似的面向对象封装。

不久Borland又推出VCL(Visual Component Library)来取而代之。


大多数的Windows 程序框架(application framework)是对Windows API的封装,因而.NET Framework、Java以及其他在Windows下的程序语言,都是(或者包含)封装库。

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

下面的连接是Win32API函数的列表。  就像一个字典似的 。

https://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=vs.85).aspx

0 0