关于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
- 关于Win32API(主要是一个宏观上分类)
- 关于 Win32API 中的 LoadLibrary
- 关于Win32API中的MAKELONG
- 关于c#调用win32api
- 宏观上把握DbUtils
- 【html】主要是关于标签等基础
- 宏观与微观:星系与原子,宇宙是一个自包含结构体
- 推荐一个电子版Win32API大全
- win32api的一个小疑惑
- FFMPEG理解一个偶然遇到了ffmpeg,看起来不多,而且通用性很强,算是一个扎实的技术。 研究了两天了,万事开头难啊。 主要是新手学习一个东西的时候,没有宏观的概念,如果猛地往某个细节去钻,往往碰
- 宏观上把握SpringMVC框架
- dubbo-宏观上的总结
- 封装的一个mysql_lib.php, 主要是一个分页模型
- 关于iOS多线程的使用(主要是关于GCD的)
- Win32API
- POJ3295,Tautology,看到分类是构造法吓住了,主要是递归
- IIS6上部署MVC3程序:主要是程序集完整
- MFC是Win32API的包装类
- 第9周项目1-猴子选大王
- 第10周 项目3 - 利用二叉树遍历思想解决问题
- Your project contains error(s) please fix them ...... android创建第一个项目报错与解决办法
- 百度云推送10101错误
- MySQL绿色版的安装(mysql-5.6.24-win32.zip)
- 关于Win32API(主要是一个宏观上分类)
- 第十一周项目1--二叉树算法验证(1)
- 【前端性能】必须要掌握的原生JS实现JQuery
- Python核心数据类型——数字
- Android Studio 下载地址
- 流API--流的迭代
- 第8周实践项目2 - 建立链串的算法库
- 第十周项目一-建立二叉树算法库
- 第12周 项目1—图基本算法库