首页
社区
课程
招聘
[推荐]WIN32 API 参考 Online
发表于: 2009-8-6 15:18 14340

[推荐]WIN32 API 参考 Online

2009-8-6 15:18
14340
作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的。本书首先对Win32 API函数做完整的概述;然后收录五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务;在附录部分,讲解如何在Visual Basic和Delphi中对其调用。

    本书是从事Windows应用程序开发的软件工程师的必备参考手册。


  Win32 API作为 Microsoft 32位平台(包括:Windows 9x,Windows NT3.1/4.0/5.0,WindowsCE)的应用程序编程接口,它是构筑所有32位Windows平台的基石,所有在Windows平台上运行的应用程序都可以调用这些函数。

    从事Windows应用程序开发,离不开对Win32 API函数的调用。只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。

    近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内很少有相关的新版资料出版。为了满足广大开发人员的迫切需求,我们经过认真收集、整理素材,组织编写了这本与各种Microsoft 32位平台最新版本同步的Win32 API参考手册。

    全书收录了五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务。所有函数均附有功能说明、参数说明、返回值说明、备注以及引用说明。另外,在本书的第一章,我们对WiN32 API函数作了完整的概述;在附录部分,讲解了如何在Visual Basic和Delphi中对其调用。

    由于篇幅较大,涉及技术内容广泛,加之时间仓促,书中难免存在不少错误或疏漏,希望广大读者给与批评指正。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
概论

为什么使用 API

   在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数。这些函数在程序员手中犹如"积木块"一样,可搭建出各种界面丰富、功能灵活的应用程序。不过,由于这些函数结构复杂,所以往往难以理解,而且容易误用。

    随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序员可以采用"所见即所得"的编程方式来开发具有精美用户界面和功能的应用程序。这些可视化编程环境操作简便、界面友好,比如:Visual C++,Delphi,Visual Basic等等。在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能。事实上,这些类库和控件都是构筑在Windows API的基础上的,但它们使用方便,加速了Windows应用程序的开发,所以受到程序员的普遍采用。有了这些类库和控件,程序员们便可以把主要精力放在整体功能的设计上,而不必过于关注具体细节。不过,这也导致了非常多的程序员在类库面前"固步自封",对下层API函数的强大功能一无所知。

    实际上。程序员要想开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数。虽然类库和控件使应用程序的开发容易得多,但它们只提供Microsoft Windows的一般功能,对于一些比较复杂和特殊的功能来说,单使用类库和控件是难以实现的,必须直接使用API函数来编写。API函数是构筑整个Windows框架的基石,只有充分理解和利用API函数,才能深入到Windows的内部,充分发挥各种32位平台的强大功能和灵活性,才能成功地扩展和突破类库、控件和可视开发环境的限制。

简介

Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。

    使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。

    在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。

    标准Win32 API函数可以分为以下几类:

       窗口管理

        窗口通用控制

        Shell特性

        图形设备接口

        系统服务

        国际特性

        网络服务
   

在下面各节中,我们分别介绍这7种类型的API函数。
2009-8-6 15:19
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
窗口管理函数

窗口管理函数向应用程序提供了一些创建和管理用户界面的方法。你可以使用窗口管理函数创建和使用窗口来显示输出、提示用户进行输入以及完成其他一些与用户进行交互所需的工作。大多数应用程序都至少要创建一个窗口。

    应用程序通过创建窗口类及相应的窗口过程来定义它们所用窗日的外观和行为。窗口类可标识窗口的缺省属性,比如窗口是否接受双击鼠标按钮的操作。或是否带有菜单。窗口过程中包含的代码用于定义窗口的行为,完成所需的任务,以及处理用户的输入。

    应用程序可使用GDI函数来产生窗口的输出。由于所有的窗口都共享显示屏幕,所以应用程序不接受对整个屏幕的访问。系统管理所有的输出内容,并对它们进行排列和剪裁,使其能够适合相应的窗口。应用程序可以在处理输入消息时,或为了响应系统的需求而在窗口中绘图。当窗口的大小或位置发生变化时,系统通常会向应用程序发送一个消息,要求它对该窗口中原来未显露的区域进行重画。

    应用程序以消息的形式接受鼠标和键盘输入。系统将鼠标移动、鼠标按钮操作转换为输入消息,并将这些消息放入该应用程序的消息队列中。系统为每个应用程序都自动提供一个消息队列。应用程序使用消息函数从消息队列中获取消息,并将它们分派给适当的窗口过程进行处理。

    应用程序可以直接处理鼠标和键盘输人,也可以让系统使用菜单和键盘加速健将这些低级输入转换成命令消息。你可以使用菜单向用户展现一个命令列表。系统对所有菜单操作所需的动作进行管理,包括让用户选择一个命令,然后再向窗日过程发送一个标识该选择的消息。键盘加速键是应用程序定义的按键操作组合,系统可将其转换为消息。加速键通常对应于菜单中的某个命令,并与该命令产生相同的消息。

    应用程序通过在对话框中向用户提示附加信息来响应命令消息。对话框实际是一个临时的窗口,用于显示信息或提示输入。一个对话框通常由一些表示按钮和方框的控制组成,可供用户进行选择或输入信息。对话框中可包括用于输入正文、滚动正文、从列表中选择列表项等操作的控制。对话框管理和处理来自这些控制的输入,使应用程序可使用这些信息,来完成所要求的命令操作。

    通过使用"资源"可以共享很多有用的数据,比如位图、图标、字体和字符串等,只需将这些数据作为"资源"添加到应用程序或DLL文件中。应用程序通过使用资源函数,找到资源并将它们加载到内存来获取这些数据。

    窗口管理函数还提供了其他一些与窗口有关的特性,比如插入标记(Caret)、剪贴板、光标、挂钩(Hook)、图标以及菜单等函数。

    窗口管理函数包括以下几类:

    易用特性函数(Accessibility Features)

    Win32 API提供的一系列易用特性使得有残疾的人也能很容易的使用计算机,Win32 API提供了一些函数和结构来控制这些特性。

    按钮函数(Button)

    Microsoft提供了对话框和控制来支持应用程序与用户之间的交互通讯。按钮就是一种控制,用户可通过点击按钮来向应用程序提供输入信息。

    插入标记函数(Caret)

    一个插入标记是位于窗口绘图区中的一个闪动的直线、方块或图标。插入标记通常用于指示文本或图形将插入的位置。Win32应用程序可以使用插入标记函数来创建一个插入标记,改变它的闪动频率,显示、隐藏插入标记,或重新设置插入标记的位置。

    组合框函数(Combo Box)

    组合框是由COMBOBOX类定义的一种控制,综合了列表框和编辑控制的很多功能。使用组合框函数可以在组合框中显示或获取不同类型的数据。

    通用对话框函数(Common Dialog Box)

    通用对话框是在通用对话框库中定义的,其功能是用来完成一些通用的任务,比如打开文件、打印文档等。通用对话框为用户提供了一个统一的用户界面,使用户在不同的应用程序中完成通用任务时的操作都相同,不必每次都学习不同的操作过程。

    光标函数(Cursor)

    光标是显示屏幕上的一个小图形,其所在的位置由指点设备比如鼠标、光笔或轨迹球等控制。当用户移动鼠标时,系统就会随之移动光标的位置。应用程序使用Win32光标函数可以创建、加载、显示、移动、限制和删除光标。

    对话框函数(Dialog Box)

    对话框是应用程序创建的一个临时窗口,用于获取用户的输入。应用程序通常使用对话框向用户显示一些命令提示信息。一个对话框一般由一个或多个控制(子窗口)组成,这些控制可用来输入文本、选择选项或执行命令动作。

    编辑控制函数(Edit Control)

    编辑控制是一个矩形窗口,通常用在对话框中,用户可通过键盘向编辑控制中输入和编辑文本。系统对Unicode文本(字符采用双字节编码)和ANSI(字符采用单字节编码)文本都支持。

    图标函数(Icon)

    图标是一个图片,由一个位图图像组成,并和一个掩码组合构成该图片的透明区域。当提到图标时,可以是下列两种情况:

    1)单个图标图像。资源类型为RT_ICON。

    2)一组图标图像,系统或应用程序可从中选择。资源类型为RT_GROUP_JCON。

    应用程序使用图标函数可以创建、显示、删除和复制图标。

    键盘加速健函数(Keyboard Accelerator)

    键盘加速键(或简称为加速键)是一个按键操作或多个按键操作的组合,可向应用程序发送WM_COMMAND或WM_SYSCOMMAND消息。

    使用键盘加速键函数可以拷贝、创建、加载或删除加速键表,* 图标是一个图片,由一个位图图像组成,并和一个掩码组合构成该图片的透明区域。当提到图标时,可以是下列两种情况:

    1)单个图标图像。资源类型为RT_ICON。

    2)一组图标图像,系统或应用程序可从中选择。资源类型为RT_GROUP_JCON。

    应用程序使用图标函数可以创建、显示、删除和复制图标。

    键盘加速健函数(Keyboard Accelerator)

    键盘加速键(或简称为加速键)是一个按键操作或多个按键操作的组合,可向应用程序发送WM_COMMAND或WM_SYSCOMMAND消息。

    使用键盘加速键函数可以拷贝、创建、加载或删除加速键表,还可以将加速键消息转换为命令消息。

    键盘输入函数(Keyboard Input)

    键盘输入函数提供了接受和处理键盘输入的方法。

    列表框函数(List Box)

    Microsoft的Win32 API提供了对话框和控制来支持应用程序与用户之间的交互通讯。列表框是一个控制窗口,其中包含一系列选项,可供用户进行选择。使用列表框函数可以在列表框中显示或获取不同类型的数据。

    菜单函数(Menu)

    菜单函数向Win32应用程序提供了一系列创建、管理和使用菜单的方法,包括对菜单条、菜单项。

    于菜单等的处理。

    消息和消息队列函数(Message and Message Queue)

    消息和消息队列函数向Win32应用程序提供了一系列使用消息和消息队列的方法,包括对消息进行

    传播、发送、获取、转换等操作。

    鼠标输入函数(Mouse Input)

    鼠标输入函数提供了接受和处理鼠标输入的方法。

    多文档接口函数(Multiple Document Interface)

    多文档接口(MDI)是应用程序定义用户界面的一种规范,在这种界面下,用户可以同时使用多个文档。

    资源函数(Resource)

    一个资源是一些二进制数据,可以添加到Win32应用程序的可执行文件中。资源既可以是标准的,也可以是自己定义的。标准资源中的数据包括图标、光标、菜单、对话框、位图、增强元文件、字体、加速键表、消息表入口、字符串表入口或版本。应用程序定义的资源(也称为定制的资源)可以包含特

    殊应用程序所需的任何数据。

    使用资源函数可以添加、删除、拷贝、替换或加载各种资源数据。

    滚动条函数(Scroll Bar)

    在Win32应用程序的窗口中,可以显示比该窗口的显示区更大的数据对象,比如文档或位图。当窗口提供了滚动条时,用户就可以通过拖动滚动条来浏览该数据对象中位于显示区外面的部分。

    滚动条包括水平滚动条和垂直滚动条。使用滚动条函数可以创建和管理这两种滚动条。

    窗口函数(Window)

    在图形化的Win32应用程序中,窗口是屏幕上的一个矩形区域,应用程序可在该区域中显示输出结果,并接受用户输入。因此,一个图形化的Win32应用程序的首要任务之一就是创建一个窗口。

    一个窗口与其他窗口共享显示屏幕,也包括其他应用程序所创建的窗口。一次只能有一个窗口接受用户的输入。用户可以使用鼠标、键盘或其他输人设备与该窗口及拥有该窗口的应用程序进行交互。使用窗口函数可以创建和管理窗口。

    窗口类函数(Window Class)

    一个窗口类是一个属性的集合,系统将该属性集合用作创建窗口的模板。每个窗口都是某个窗口类的一个成员。使闲置或删除窗口属性。

Win32 API提供的一系列易用特性使得有残疾的人也能很容易的使用计算机,Win32 API提供了一些函数和结构来控制这些特性。

易用特性函数

SOUNDSENTRYProc

函数功能:该函数是一个库定义的回调函数,当SOUNDSENTRY易用特性存在,并且一个基于win32的应用程序(或者在窗口内运行的应用程序)通过计算机的内置扬声器发声时,它产生一个控制的可视化消息。

    函数原型:LRESULT CALLBACK SOUNDSENTRYProc(DWORD dwMillisec,DWORD fdwEffect);

    参数:

Millisec:指定可视化消息的持续时间,以毫秒为单位。该消息是在一个基于win32的应用程序(或运行在窗口的应用程序)发声时显示出来的。

    tdwEffect:指定要显示的可视化消息的类型。当前值通常应为SSWF_CUSTOM。

    返回值:如果可视化消息已经或将要正确显示,那么返回值为TRUE,如果消息异步,并当调用该函数时其状态无效,那么应该返回TRUE。如果出错使得消息无法显示,那么返回值为FALSE。若想获得更多错误信息,请调用GetLastError函数。

    备注:包含SOUNDSENTRYProc函数的库必须是一个32位的DLL,并且该 DLL必须导出名为SOUNDSENTRYProc的函数,即供外部调用和连接。SOUNDSENTRYProc函数只是在应用程序或库调用SystemParameterslnfo函数之后才调用。SystemParameterslnfo函数指定SPI_SETSOUNDSENTRY项的值以及SOUNDSENTRY结构的地址,在SOUNDSENTRY结构中,成员iWindowsEffect的值设为SSWF_CUSTOM。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;库文件:用户自定义。

"red"]SystemParametersinfo

函数功能:该函数查询或设置系统级参数。该函数也可以在设置参数中更新用户配置文件。

    函数原型:B00L SystemParametersinfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);

    参数:

    uiAction:该参数指定要查询或设置的系统级参数。其取值如下;

    SPI_GETACCESSTIMEOUT:检索与可访问特性相关联的超时段的信息,PvParam参数必须指向某个ACCESSTIMEOUT结构以获得信息,并将该结构中的cbSjze成员和ulParam参数的值设为sizeof(ACCESSTIMEOUT)。

    SPI_GETACTIVEWINDOWTRACKING:用于Windows 98和Windows NT 5.0及以后的版本。它表示是否打开活动窗口跟踪(激活该窗口时鼠标置为开状态),pvParam参数必须指向一个BOOL型变量(打开时接收值为TRUE,关闭时为FALSE)。

    SPI_GETACTIVEWNDTRKZORDER;用于Windows 98和Windows NT 5.0及以后版本。它表示通过活动窗口跟踪开关激活的窗口是否要置于最顶层。pvParam参数必须指向一个BOOL型变量,如果要置于顶层,那么该变量的值为TRUE,否则为FALSE

    SPI_GETACTIVEWNDTRKTIMEOUT:用于Windows 98和 Windows NT 5.0及以后版本。它指示活动窗口跟踪延迟量,单位为毫秒。pvParam参数必须指向DWORD类型变量,以接收时间量。

    SPI_GETANIMATION:检索与用户活动有关的动画效果。pvParam参数必须指向ANIMATIOINFO结构以接收信息。并将该结构的cbSize成员和ulParam参数置为sizeof(ANIMATIONINFO)。

    SPI_GETBEEP:表示警告蜂鸣器是否是打开的。pvParam参数必须指向一个BOOL类型变量,如果蜂鸣器处于打开状态,那么该变量的值为TRUE,否则为FALSE

    SpI_GETBORDER:检索决定窗口边界放大宽度的边界放大因子。pvParam参数必须指向一个整型变量以接收该值。

    SPI_GETDEFAULTINPUTLANG:返回用于系统缺省输入语言的键盘布局句柄。pvParam参数必须指向一个32位变量,以接收该值。

    SPI_GETCOMBOBOXANIMATION:用于Windows 98和Windows NT 5.0及以后版本。它表示用于组合柜的动打开效果是否允许。pvParam参数必须指向一个BOOL变量,如果允许,那么变量返回值为TRUE,否则为FALSE

    SPI_GETDRAGFULLWINDOWS:确定是否允许拖拉到最大窗口。pvParam参数必须指向BOOL变量,如果允许,返回值为TRUE,否则为FALSE。对于Windows 95系统,该标志只有在安装了Windows plusl才支持。

    SPI_GETFASTTASKSWITCH:该标志已不用!以前版本的系统使用该标志来确定是否允许Alt+Tab快速任务切换。对于Windows 95、Windows 98和Windows NT 4.0版而言,快速任务切换通常是允许的。

    SPI_GETFILTERKEYS:检索有关FILTERKEYS(过滤键)易用特征信息。pvParam参数必须指向接收信息的filterkeys结构,并将该结构中的cbSze成员和ulParam参数的值设为sizeof(FILTERKEYS)。

    SPI_GETFONTSMOOTHING:表示字体平滑处理特征是否允许。该特征使用字体保真技术,通过在不同灰度级上涂上像素使字体曲线显得更加平滑。参数pvParam必须指向BOOL类型变量,如果该特征被允许,那么返回值为TRUE,否则为FALSE。对于Windows 95系统,该标志只有在安装了Windows plusl才支持。

    SPI_GETFOREGROUNDFLASHCOUNT:用于Windows 98和Windows NT 5.0及以后版本。它表示在拒绝前台切换申请时系统闪烁任务条按钮的次数。参数pvParam必须指向DWORD变量,以接收该值。

    SPI_GETFOREGROUNDLOCKTIMEOUT:用于Windows NT 5.O及以后版本或Windows 98。它表示在系统禁止应用程序强行将自己进入前台期间的时间量,单位为毫秒.参数pvParam必须指向DWORD变量以接收时间值。

    SPI_GETGRADIENTCAPTIONS:用于Windows 98和Windows NT 5.0及以后版本。它表示是否允许有用于窗口标题栏的倾斜效果。参数pvParam必须指向BOOL变量,其值在允许时为TRUE,禁止时为FALSE

    SPL_GETGRIDGRANULARITY:检索桌面大小网格的当前颗粒度值。参数pVparam必须指向一个整型变量以接收该值。

    SPI_GETHIGHCONTRAST:用于Windows 95及更高版本、Windows NT 5.0及以后版本。检索与HighContrast易用特征有关的信息。pvParam参数必须指向用于接收该信息的HIGHCONTRAST结构,该结构中的。cbSize成员和ulParam参数的值应设为sizeof(NIGHCONTRAST)。

    SPI_GETICONMETRICS:检索与图标有关的度量信息。参数pvParam必须指向一个ICONMETRICS结构以接收信息。该结构中的。cbSize成员和ulParam参数的值应设为sizeof(ICONMETRICS)。

    SPI_GETICONTITLELOGFONT:检索当前图标标题字体的逻辑字体信息。参数ulParam规定了logfont结构的大小,参数pvParam必须指向要填充的Iogfont结构。

    SPI_GETICONTITLEWRAP:确定是否允许图标标题环绕。pvParam参数必须指向一个BOOL类型变量,该变量的值在允许时为TRUE,否则为FALSE

    SPI_GETKEYBOARDDELAY:检索键盘重复击键延迟设置,该值范围从0(大约25Oms延迟)到3(大约1秒延迟)。与该范围里每一个值相关的实际延迟时间可能与硬件有关。pvParam参数必须指向一个整型变量以接收设置值。

    SPI_GETKEYBOARDPREF:用于Windows 95及以后版本。Windows NT 5.O及以后版本。它确定用户是否依赖键盘而非鼠标,是否要求应用程序显示键盘接口,以免隐藏。pvParam参数必须指向一个BOOL类型变量,如果用户依赖键盘,那么该变量取值为TRUE,否则为FALSE

    SPI_GETKEYBOARDSPEED:检索键盘重复击键速度设置情况,该值范围从0(大约30次/秒)至31(大约25次/秒)。实际的击键速率与硬件有关,而且变动的线性幅度有可能高达20%。参数pvParam必须指向DWORD变量以接收设置值。

    SPI_GETLISTBOXSMOOTHSCROLLING:用于Windows 98和Windows NT 5.0及以后版本。表示是否允许有列表栏的平滑滚动效果。pvParam参数必须指向BOOL变量,如果允许,则该值为TRUE,否则为FALSE

    SPI_GETLDWPOWERACTIVE:确定是否允许屏幕保护的低电压状态。如果允许,那么指向BOOL变量的pvParam参数会接收到TRUE值,否则为FALSE。对于Windows 98,该标志对16位和32位应用程序都支持。

    对于Windows 95,该标志只支持16位应用程序。对于Windows NT,在Windows NT 5.0及以后版本中支持32位应用程序,对16位应用程序则不支持。

    SPI_GETLOWPOWERTIMEOUT:检索用于屏幕保护的低电压状态超时值。pvParam参数必须指向一个整型变量,以接收该值。对于Windows 98该标志支持16位和32位应用程序。对于Windows95,该标志只支持16位应用程序。对于Windows NT,该标志支持Windows NT 5.0及以后版本上的32位应用程序。不支持16位应用程序。

    SPI_GETMENUDROPALIGNMENT。确定弹出式菜单相对于相应的菜单条项是左对齐,还是右对齐、参数pvParam必须指向一个BOOL类型变量,如果是左对齐。那么该变量值为TRUE,否则为FALSE。SPI_GETMINIMIZEDMETRICS:检索最小化窗口有关的度量数据信息。参数pvParam必须指向MINIMIZEDMETRCS结构,以接收信息。该结构中的cbSize和ulParam参数的值应设为sizeof(MINIMIZEDMETRICS)。

    SPI_GETMOUSE:检索鼠标的2个阈值和加速特性。pvParam参数必须指向一个长度为3的整型数组,分别存储此值。

    SPI_GETMOUSEHOVERHEGHT:用于Windows NT 4.0及以后版本或Windows 98。获得在TrackMouseEvent事件中,为产生WM_MOUSEOVER消息而鼠标指针必须停留的矩形框的高度,以像素为单位。参数pvParam必须指向一个UINT变量以接收这个高度值。

    SPI_GETMOUSEHOVERTIME:用于Windows NT 4.0及以后版本、Windows 98,获得在TrackMouseEvent事件中,为产生WM_MOUSEOVER消息而鼠标指针必须停留在矩形框内的时间,单位为毫秒。参数pvParam必须指向一个UINT变量以接收该时间值。

    SPI_GETMOUSEHOVERWIDTH:用于Windows NT 4.0及以后版本、Windows 98。获得在TrackMouseEvent事件中,为产生WM_MOUSEOVER消息而鼠标指针必须停留的矩形框的宽度,以像素为单位。参数pvParam必须指向一个UINT变量以接收这个宽度值。

    SPI_GETMOUSEKEYS:检索与MOUSEKEYS易用特征有关的信息,pvParam参数必须指向某个MOUSEKEYS结构,以获取信息。应将结构的cbSize成员和ulParam参数设置为sizeof(MOUSEKEYS)。

    SPI_GETMOUSESPEED:用于Windows NT 5.0及以后版本、Windows 98。检索当前鼠标速度。鼠标速度决定了鼠标移动多少距离,鼠标的指针将移动多远。参数pvParam指向一个整型变量,该变量接收1(最慢)至20(最快)之间的数值。缺省值为们10。这个值可以由最终用户使用鼠标控制面板应用程序或使用调用了SPI_SETMOUSESPEED的应用程序来设置。

    SPI_GETMOUSETRAILS:用于WpvParam必须指向一个BOOL类型变量,如果是左对齐。那么该变量值为TRUE,否则为FALSE

    SPI_GETMINIMIZEDMETRICS:检索最小化窗口有关的度量数据信息。参数pvParam必须指向MINIMIZEDMETRCS结构,以接收信息。该结构中的cbSize和ulParam参数的值应设为sizeof(MINIMIZEDMETRICS)。

    SPI_GETMOUSE:检索鼠标的2个阈值和加速特性。pvParam参数必须指向一个长度为3的整型数组,分别存储此值。

    SPI_GETMOUSEHOVERHEGHT:用于Windows NT 4.0及以后版本或Windows 98。获得在TrackMouseEvent事件中,为产生WM_MOUSEOVER消息而鼠标指针必须停留的矩形框的高度,以像素为单位。参数pvParam必须指向一个UINT变量以接收这个高度值。

    SPI_GETMOUSEHOVERTIME:用于Windows NT 4.0及以后版本、Windows 98,获得在TrackMouseEvent事件中,为产生WM_MOUSEOVER消息而鼠标指针必须停留在矩形框内的时间,单位为毫秒。参数pvParam必须指向一个UINT变量以接收该时间值。

    SPI_GETMOUSEHOVERWIDTH:用于Windows NT 4.0及以后版本、Windows 98。获得在TrackMouseEvent事件中,为产生WM_MOUSEOVER消息而鼠标指针必须停留的矩形框的宽度,以像素为单位。参数pvParam必须指向一个UINT变量以接收这个宽度值。

    SPI_GETMOUSEKEYS:检索与MOUSEKEYS易用特征有关的信息,pvParam参数必须指向某个MOUSEKEYS结构,以获取信息。应将结构的cbSize成员和ulParam参数设置为sizeof(MOUSEKEYS)。SPI_GETMOUSESPEED:用于Windows NT 5.0及以后版本、Windows 98。检索当前鼠标速度。鼠标速度决定了鼠标移动多少距离,鼠标的指针将移动多远。参数pvParam指向一个整型变量,该变量接收1(最慢)至20(最快)之间的数值。缺省值为们10。这个值可以由最终用户使用鼠标控制面板应用程序或使用调用了SPI_SETMOUSESPEED的应用程序来设置。

    SPI_GETMOUSETRAILS:用于Windows 95及更高版本。它用来表示是否允许MouseTrails(鼠标轨迹)。该特征通过简单地显示鼠标轨迹并迅速擦除它们来改善鼠标的可见性。参数prParam必须指向一个整型变量来接收该值。如果这个值为0或1,那么表示禁止该特征。如果该值大于1,则说明该特征被允许,并且该值表示在鼠标轨迹上画出的光标数目。参数ulParam不用。

    SPI_GETNONCLIENTMETRICS:检索与非最小化窗口的非客户区有关的度量信息。参数pvParam必须指向NONCLIENTMETRICS结构,以便接收相应值。该结构的。cbSize成员与ulParam参数值应设为sizeof(NONCLIENTMETRICS)。对于Windows 98,该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT该标志在NT 5.0及以后版本中支持32位应用程序,不支持16位应用程序。

    SPI_GETPOWEROFFACTIVE:确定是否允许屏幕保护中关电。TRUE表示允许,FA参数pvParam必须指定SERIALKEYS结构来接收信息。该结构中的cbSize成员和ulParam参数的值要设为sizeof(SERIALKEYS)。

    SPI_GETSHOWSOUNDS:确定ShowSounds易用特性标志是开或是关。如果是开,那么用户需要一个应用程序来可视化地表达信息,占则只能以听得见的方式来表达。参数pvParam必须指向一个BOOL类型变量。该变量在该特征处于开状态时返回TRUE,否则为FALSE。使用这个值等同于调用GetSystemMetrics(SM_SHOWSOUNDS)。后者是推荐使用的调用方式。

    SPI_GETSNAPTODEFBUTTON:用于Windows NT 4.0及以后版本、Windows 98:确定 Snap-TO-Default-Button(转至缺省按钮)特征是否允许。如果允许,那么鼠标自动移至缺省按钮上,例如对话框的"Ok""Apply"按钮。pvParam参数必须指向Bool类型变量,如果该特征被允许,则该变量接收到TRUE,否则为FALSE

    SPI_GETSOUNDSENTRY:检索与SOUNDSENTRY可访问特征有关的信息。参数pvParam必须指向SOUNDSENTRY结构以接收信息。该结构中的。cbSize或员和ulParam参数的值要设为sizeof(SOUNDSENTRY)。

    SPI_GETSTICKYKEYS:检索与StickyKeys易用特征有关的信息。参数 pvParam必须指向STICKYKEYS结构以获取信息。该结构中的cbSze成员及ulParam参数的值须设为sizeof(STICKYKEYS)。

    SPI_GETSWITCHTASKDISABLE:用于Windows NT 5.0、Windows 95及以后版本,确定是否允许Alt+Tab和AIt+Esc任务切换。参数pvParam必须指向UINT类型变量,如果禁止任务切换,那么返回值为1,否则为0。在缺省情况下,是允许进行任务切换的。

    SPI_GETTOGGLEKEYS:检索与ToggleKeys易用特性有关的信息。参数pvParam必须指向TOGGLEKEYS结构以获取信息。该结构中的cbSize成员和ulParam参数值要设置sizeof(TOGGLEKEYS)。

    SPI_GETWHEELSCROLLLINES:用于Windows NT 4.0及以后版本、Windows 98。当前轨迹球转动时,获取滚动的行数。参数pvParam必须指向UINT类型变量以接收行数。缺省值是3。

    SPI_GETWINDOWSEXTENSION:在Windows 95中指示系统中是否装了Windows Extension和Windows Plus!。

    参数ulParam应设为1。而参数pvParam则不用。如果安装了Windows Extenson,那么该函数返回TRUE,否则为FALSE

    SPI_GETWORKAREA:检索主显示器的工作区大小。工作区是指屏幕上不被系统任务条或应用程序桌面工具遮盖的部分。参数pvParam必须指向RECT结构以接收工作区的坐标信息,坐标是用虚拟屏幕坐标来表示的。为了获取非主显示器的工作区信息,请调用GetMonitorlnfo函数。参数ulParam指定宽度,单位是像素。

    SPI_ICONVERTICALSPACING:设置图标单元的高度。参数ulParam指定高度,单位是像素。

    SPI_LANGDRIVER:未实现。

    SPI_SCREENSAVERRUNNING:改名为SPI_SETSCREENSAVERRUNNING。

    Spl_SETACCESSTIMEOUT:设置与可访问特性有关的时间限度值,参数 pvParam必须指向包含新参数的ACCESSTIMEOUT结构,该结构的cbSize成员与ulParam参数的值要设为sizeof(ACCESSTMEOUT)。

    SPI_SETACTIVEWINDOWTRACKING:用于Windows NT 5.0及以后版本、Windows 98。设置活动窗口追踪的开或关,如果把参数pvParam设为TRUE,则表示开。pvParam参数为FALSE时表示关。

    SPI_SETACTIVEWNDTRKZORDER:用于Windows NT 5.0及以后版本、Windows 98。表示是否把通过活动窗口跟踪而激活的窗口推至顶层。参数pvParam设为TRUE表示推至顶层,FALSE则表示不推至顶层。

    SPI_SETACTIVEWNDTRKTIMEOUT:用于Wlindows NT 5.0及以后版本、Windows 98。设置活动窗口跟踪延迟。

    参数pvParam设置在用鼠标指针激活窗口前需延迟的时间量,单位为毫秒。

    SPI_SETBEEP:将警蜂器打开或关闭。参数ulParam指定为TRUE时表示打开,为FALSE时表示关闭。

    SPI_SETBORDER:设置确定窗口缩放边界的边界放大因子。参数ulParam用来指定该值。

    SPI_SETCOMBOBOXANIMATION:用于Windows NT 5.0及以后版本和Windows 98。允许或禁止组合滑动打开效果。如果设置pvParam参数为TRUE,则表示允许有倾斜效果,如果设为FALSE则表示禁止。

    SPI_SETCURSORS:重置系统光标。将ulParam参数设为0并且pvParam参数设为NULL。

    SPI_SETDEFAULTINPUTLANG:为系统Shell(命令行解器)和应用程序设置缺省的输入语言。指定的语言必须是可使用当前系统字符集来显示的。pvParam参数必须指向DWORD变量,该变量包含用于缺省语言的键盘布局句柄。

    SpI_SETDESKpATTERN:通过使Windows系统从WIN.INI文件中pattern=设置项来设置当前桌面模式。

    SPI_SETDESKWALLPAPER:设置桌面壁。pvParam参数必须指向一个包含位图文件名,并且以NULL(空)结束的字符串。

    SPI_SETDOUBLECLICKTIME:设ulParam参数的值为目标双击时间。双击时间是指双击中的第1次和第2次点击之间的最大时间,单位为毫秒。也可以使用SetDoubleClickTime函数来设置双击时间。为获取当前双击时间,请调用GetDoubleClickTime函数。

    SPI_SETDOUBLECLKHEGHT:将ulParam参数的值设为双击矩形区域的高度。双击矩形区域是指双击中的第2次点击时鼠标指针必须落在的区域,这样才能记录为双击。

    SPI_SETDOUBLECLKWIDTH:将ulParam参数的值设为双击矩形区域的宽度。

    SPI_SETDRAGFULLWINDOWS:设置是否允许拖至最大窗口。参数uIParam指定为TRUE时表示为允许,为FALSE则不可。对于Windows 95,该标志只有在安装了Windows plusl才支持。

    SPI_SETDRAGHEIGHT:设置用于检测拖拉操作起点的矩形区域的高度,单位为像素。参考GETSYSTEMMETRICS函数的nlndex参数中的SM_CXDRAG和SM_CYDRAG。

    SPI_SETDRAGWIDTH:设置用于检测拖拉操作起点的矩形区域的宽度,单位为像素。

    SPI_SETFASTTASKSWITCH:该标志己不再使用。以前版本的系统使用此标志来允许或不许进行Alt+Tab快速任务切换。对于Windows 95、Windows 98和Windows NT 4.0,通常都允许进行快速任务切换。参考SPI_SETSWITCHTASKDISABLE。

    SPI_SETFILTERKEYS:设置FilterKeys易用特性的参数。参数pvParam必须指向包含新参数的FILTERKEYS结构,该结构中的cbSize成员和参数ulParam的值应设为sizeof(FILTERKEYS)。

    SPI_SETFONTSMOOTHING:允许或禁止有字体平滑特性。该特性使用字体保真技术,通过在不同灰度级上涂画像素点来使得字体曲线显得更加平滑,为了允许有该特性,参数ulParam应设为TRUE值,否则为FALSE。对于Windows 95,只有在安装了Windows plusl才支持该标志。

    SPI_SETFOREGROUNDFLASHCOUNT:用于Windows 98和Windows NT 5.0及以后版本。设置SetForegroundWindow在拒绝前台切换申请时闪烁任务拦按钮的次数。

    SPI_SETFOREGROUNDLOCKTIMEOUT:用于Windows 98和Windows NT 5.0及以后版本。它用来设置在用户输入之后,系统禁止应用程序强行将自己进入前台期间的时间长度,单位为毫秒。参数pvParam设置这个新的时间限度值。

    SPI_SETGRADIENTCAPTIONS:用于Windows 98和Windows NT 5.0及以后版本。允许或禁止窗口标题栏有倾斜效果。如果允许则将参数pvParam设置为TRUE,否则设为FALSE。有关倾斜效果方面更多信息,请参考GetSysColor函数。

    SPI_SETGRIDGRANULARITY:将桌面缩放时网格的颗粒度值设置为参数ulParam中的值。

    SPI_SETHANDHELD:内部使用,应用程序不应使用该值。

    SPI_SETHIGHCONTRAST:用于Windows 95及以后版本、Windows NT 5.0及以后版本。设置HighContrast可访问特性的参数。参数pvParam必须指向HIGHCONTRAST结构,该结构包含新的参数。该结构中的cbSize成员及参数ulParam的值设为sizeof(HIGHCONTRAST)。

    SPI_SETICONMETRICS:设置与图标有关的信息。参数pvParam必须指向包含新参数的ICONMETRICS结构,另外还要将参数ulParam和该结构中的cbSize成员的值设置为sizeof(ICONMETRICS)。

    SPI_SETICONS:重新加载系统图标。参数ulParam的值应设为0,而pvParam参数应设为NULL。

    SPI_SETICONTITLELOGFONT:设置用于图标标题的字体。参数ulParam指定为logfont结构的大小,而参数pvParam必须指向一个LOGFONT结构。

    SPI_SETICONTITLEWRAP:打开或关闭图标标题折行功能。若想打开折行功能,则把参数ulParam设为TRUE,否则为FALSE

    SPI_SETKEYBOARDDELAY:设置键盘重复延迟。参数ulParam必须指定为0,1,2或3。其中0表示设置为最短延迟(大约 250ms)3,表示最大延迟(大约 1 秒)。与每个值对应的实际的延迟时间根据硬件情况有可能有些变化。

    SPI_SETKEYBOARDPREF:用于Windows 95及以后版本、Windows NT 5.0及以后版本,设置键盘优先序。如果用户依赖键盘而不是鼠标,那么可将参数ulParam指定为TRUE,否则设为FALSE,并且要求应用程序显示而不隐蔽键盘接口。

    SPI_SETKEYBOARDSPEED:设置键盘重击键速度。参数ulParam必须指定一个从0到31的值,其中0表示设置成最快速度(大约30次/秒),31表示设置为最低速度(大约2。5次/秒),实际的重速率与硬件有关,而且可能变动幅度高达20%。如果ulParam大于31,那么该参数仍设置为31。

    SPI_SETLANGTOGGLE:为输入语言间切换设置热键集。参数ulParam和pvParam不用。该值通过读取注册表来设置键盘属性表单中的快捷键。在使用该标志之前必须设置注册表,注册表中的路径是"1"=Alt+shift,"2"=Ctrl+shift,"3"=none(无)。

    SPI_SETLISTBOXSMOOTHSCROLLING:用于Windows 98和Windows NT 5.0及以后版本。允许或不许列表栏有平滑滚动效果。参数pvParam设置为TRUE表示允许有平滑滚动效果,为FALSE则表示禁止。

    SPI_SETLOWPOWERACTIVE:激活或关闭低电压屏幕保护特性。参数ulParam设为1表示激活,0表示关闭。参数pvParam必须设为NULL。对于Windows 98,该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT.该标志只支持NT 5.0及以后版本的32位应用程序,不支持16位应用程序。

    SPI_SETLOWPOWERTIMEOUT:用于设置低电压屏幕保护中的时间值(也称超时值,即在超过某一时间段后自动进行屏幕保护),单位为秒。uIParam参数用来指定这个新值。参数pvParam必须为NULL。对于Windows98,该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT该标志只支持NT 5.0及以后版本的32位应用程序,不支持16位应用程序。

    SPI_SETMENUDROPALIGNMENT:设置弹出或菜单的对齐方式。参数ulParam指定为TRUE时表示是右对齐,FALSE时为左对齐。

    SPI_SETMINIMIZEDMETRICS:设置与最小化窗口有关的数据信息,参数pvParam必须指向包含新参数的MINIMIZEDMETRICS结构。该结构中的cbSize成员与ulParam参数的值应设为sizeof(MINMIZEDMETRICS)。

    SPI_SETMOUSE:设置鼠标的两个阀值和加速率。参数pvParam必须指向一个长度为3的数组,以指定这些值。详细请参考mouse_event。

    SPI_SETMOUSEBUTTONSWAP:调换或恢复鼠标左右按钮的含义,为FALSE时表示恢复原来的含义。

    SPI_SETMOUSEHOVERHEGHT:用于Windows 98和Windows NT 4.0及以后版本。设置鼠标指针停留区域的高度,以像素为单位。鼠标指针在此区域停留是为了让TrackMouseEvent产生一条WM_MUOSEHOVER消息,参数ulParam用来设置此高度值。

    SPI_SETMOUSEHOVERTIME:用于Windows 98和Windows NT 4.0及以后版本。设置鼠标指针为了让TrackMouseEvent产生WM_MOUSEHOVER事件而在停留区域应停留的时间。该标志只有在将调用dwHoverTime参数中的HOVER_DEFAULT值传送到TrackMouseEvent时才使用。参数ulParam设置这个新的时间值。

    SPI_SETMOUSEHOVERWIDTH:用于Windows 98和Windows NT 4.0及以后版本。设置鼠标指针停留区域的宽度,以像素为单位。参数ulParam设置该新值。

    SPI_SETMOUSEKEYS:设置MouseKeys易用特性的参数。参数pvParam必须指向包含新参数的MOUSEKEYS结构。结构中的cbSize成员与参数ulParam的值应设为sizeof(MOUSEKEYS)。

    SPI_SETMOUSESPEED:用于Windows NT 5.0及以后的版本和Windows 98,设置当前鼠标速度。参数pvParam必须指向一个1(最慢)至20(最快)之间的整数。缺省值是10。一般可以使用鼠标控制面板应用程序来设置该值。

    SPI_SETMOUSETRAILS:用于Windows 95及以后版本:允许或禁止有MoouseTrails(鼠标轨迹)特性。该特性通过简短地显示鼠标光标轨迹,并迅速地擦除它们来提高鼠标的可见度。禁止该特性可将参数ulParam设为0或1,允许时,将ulParam设置为一个大于1的数值,该值表示轨迹中画出的光标个数。

    SPI_SETNONCLIENTMETRICS:设置与非最小化窗口的非客区有关的数据信息,参数pvParam必须指向NONCLIENTMETRICS结构,该结构包含新的参数。其成员cbSzie和参数ulParam的值应设为sizeof(NONCLIENTMETRICS)。

    SPI_SETPENWINDOWS;用于Windows 95及以后版本:指定是否加载笔窗口,当加载时,参数ulParam设为TRUE,不加载时为FALSE。参数pvParam为NULL。

    SPI_SETPOWEROFFACTIVE:激活或关闭屏幕保护特性参数。ulParam设为1表示激活,0表示关闭。参数pvParam必须为NULL。对于Windows 98,该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT,该标志支持Windows NT 5.0及以后版本的32位应用程序,不支持16位应用程序。

    SPI_SETPOWEROFFTIMEOUT:设置用于关闭屏幕保护所需的时间值(也称超时值)。参数ulParam指定该值。参数pvParam必须为NULL。对于Windows 98.该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT,该标志支持Windows NT 5.0及以后版本上的32位应用程序,不支持16位应用程序。

    SPI_SETSCREENREADER;用于Windows 95及以后版本、Windows NT 5.0及以后版本,表示屏幕审阅程序是否运行。参数uiparm指定为TRUE表示运行该程序,FALSE则不运行。

    SPI_SETSCREENSAVERRUNNING:用于Windows 95及以后版本,内部使用。应用程序不应该使用此标志SPI_SETSETSCREENSAVETIMEOUT:参数ulParam值为屏幕保护器时间限度值。该值是一个时间量,以秒为单位,在屏幕保护器激活之前,系统应该一直是空闲的,超过这个值就激活屏幕保护器。

    SPI_SETSERIALKEYS:用于Windows 95及以后版本:设置SerialKeys易用特性的参数。参数pvParam必须指向包含新参数的SERIALKEYS结构,其成员cbSize和参数ulParam应设为sizeof(SERIALKEYS)。

    SPI_SETSHOWSOUNDS:将ShowSounds易用特性设置为打开或关闭。参数ulParam指定为TRUE时表示打开,FALSE表示关闭。

    SPI_SETSNAPTODEFBUTTON:用于Windows NT 4.0及以后版本、Windows 98。允许或禁止有snap-to-default-button(跳转至缺省按钮)特性。如果允许,那么鼠标光标会自动移至缺省按钮上,例如对话柜中的OK或"apply"按钮。参数ulParam设为TRUE表示允许该特性,FALSE表示禁止。

    SPI_SETSOUNDSENTRY:设置SOUNDSENTRY易用特性的参数。参数pvParam必须指向SOUNDSENTRY结构,该结构包含新参数,其成员cbSize和参数ulParam的值应设为sizeof(SOUNDSENTRY)。

    SPI_SETSTICKYKEYS:设置stickykeys可访问特性的参数。参数pvParam必须指向包含新参数的stickykeys结构,其成员cbSize和ulParam参数的值要设为sizeof(STICKYKEYS)。

    SPI_SETSWITCHTASKDISABLE:用于Windows NT 5.0及以后版本,允许或禁止有Alt+Tab和Alt+Esc任务切换特性。参数ulParam设为1表示允许有该特性,设为0则表示禁止。缺省情况下是允许有任务切换特性的。

    SPI_SETTOGGLEKEYS:设置togglekeys可访问特性的参数,参数PvParam必须指向TOGGLEKEYS结构,该结构中包含新的参数。其成员cbSize和参数ulParam的值要设为sizeof(togglekeys)。

    SPI_SETWHEELSCROOLLLINES:用于Windows 98和Windows NT 4.O及以后版本。设置当鼠标轨迹球转动时

    要滚动的行数,滚动的行数是由参数ulParam设置的,该行数是在鼠标轨迹球滚动,井且没有使用修改键时的滚动行数。如果该数值为0,那么不会发生滚动,如果滚动行数比可见到的行数要大,尤其如果是WHEEL_PAGESCROLL(#defined sa UINT_MAX),那么滚动操作应该被解释成在滚动条的下一页或上一页区点击一次。

    SPI_SETWORKAREA:设置工作区域大小。工作区是指屏幕上没有被系统任务栏或桌面应用程序桌面工具遮盖的部分。参数pvParam是一个指针。指向RECT结构,该结构规定新的矩形工作区域,它是以虚拟屏幕坐标来表达的。在多显示器系统中,该函数用来设置包含特定矩形的显示器工作区域。如果PvParam为NULL,那么该函数将主显示器的工作区域设为全屏。

    ulParam:与查询或设置的系统参数有关。关于系统级参数的详情,请参考uiAction参数。否则在没有指明情况下,必须将该参数指定为O。

    pvParam:与查询或设置的系统参数有关。关于系统级参数的详情,请参考uiAction参数。否则在没有指明情况下,必须将该参数指定为NULL。

    fWinlni:如果设置系统参数,则它用来指定是否更新用户配置文件(Profile)。亦或是否要将WM_SETTINGCHANGE消息广播给所有顶层窗口,以通知它们新的变化内容。该参数可以是0或下列取值之一:

    SPIF_UPDATEINIFILE:把新的系统参数的设置内容写入用户配置文件。

    SPIF_SENDCHANGED:在更新用户配置文件之后广播WM_SETTINGCHANGE消息。

    SPI_SENDWININICHANGE与 SPIF_SENDCHANGE一样。

    返回值:如果函数调用成功,返回值非零:如果函数调用失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。

    备注:该函数一般与应用程序,例如控制面板一起使用。它可以允许用户对Windows任意进行定制。

    盘布局名称是从对应于布局的16进制语言标识符引生而来的。例如,美国英语(U.S.Englisth)的语言标识符为" 0×0409",则主美国英语键盘布局命名为"00000409"其他的键盘布局如Dvotak等,命名为"00010409""00020409"等,关于此的列表参见MAKELANGID宏。

    Wiows CE操作系统只支持下列uiAction值:

    SPI_GETBATTERYIDLETIMEOUT:在WINDOWS CE没有因用户操作而挂起之前,干电池电源能坚持给系统供电的时间量可以使用该标志得到。以秒为单位,如果pvParam为0,那么该标志被忽略。

    SPI_GETEXTERNALIDLETIMEOUT:在 Windows CE没有因用户操作而挂起之前,交流电源能坚持给系统供电时间的时间量可以使用该标志得到。参数pvParam指向一个DWORD类型变量,以返回时间值,单位为秒。如果pvParam为0,那么该标志被忽略。

    SPI_GETMOUSE:检索鼠标的两个阈值和速度。

    SPI_GETOEMINFO:返回一个字符串,该字符串包含型号和制造商名称。参数ulParam指定为pvParam参数中缓冲区的长度,在成功返回时,参数pvParam中包含Unicode字符集中的字符串。

    SPI_GETPLATFORMTYPE:返回一个指定Windows CE设备类型的字符串,例如"H/PC"。参数ulParam规定pvParam参数缓冲区的长度,后者在成功返回时包含一个Unicode字符集中的字符串。该字符串允许象 H/PC EXPLORER一样的应用程序来确定设备类型。

    SPI_GETWAKEUPDLETIMEOUT:在用户通知重新激活某个挂起的设备之后,可获取的Windows CE延缓响应的时间量。参数pvParam指向一个DWORD类型变量以返回时间值,单位为秒。如果pvParam值为0那么该标志被忽略。

    SPI_GETWORKAREA:检索工作区大小。工作区是指没有被任务遮盖的屏幕部分。

    SPI_SETBATTERYidletimeout:在Windows CE没有因用户操作而挂起之前,电池电源能坚持给系统供电的时间量可以使用该标志来设置。只要键盘或触摸屏处在活动状态(有输入),那么Windows CE操作系统及电池电源仍将工作。参数ulParam指定要设置的时间,单位为秒。如果ulParam设置为0,那么该标志被忽略。

    SPI_SETEXTERNALIDLETIMEOUT:在Windows CE没有因用户操作而挂起之前,交流电源能坚持给系统供电的时间量可以使用该标志来设置。只要键盘或触摸屏幕处在活动状态,那么Windows CE操作系统及AC电源仍将工作。参数ulParam指定要设置的时间,单位为秒。如果ulParam设为0,那么该标志被忽略。SPL_SETMOUSE:设置鼠标的两个阈值和速度。

    SPI_SETWAKEUPIDLETIMEOUT:在用户通知重新激活某个挂起的设备之后,Windows CE延缓响应的时间长度量可使用该标志来设置。参数ulParam指定这个时间量,单位为秒,如果ulParam设置为0,那么该标志被忽略。

    SPI_SETWORKAREA设置工作区大小,工作区是指没有被任务条遮盖的屏幕部分。如果用来获取平台类型或OEM信息串的pvParam缓冲区太小,那么该函数会调用失败,并出现错误值ERROR_INSUFFICENT_BUFFER。Windows CE只支持该函数的UNICODE版。Windows CE不支持参数fWinlni的取值为SPIF_SENDWININICHANGE的情形。
2009-8-6 15:23
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
按钮函数

Microsoft提供了对话框和控制来支持应用程序与用户之间的交互通讯。按钮就是一种控制,用户可通过点击按钮来向应用程序提供输入信息。



CheckDlgButton


函数功能:该函数改变按钮控制的选中状态。

    函数原型:BOOL CheckDlgButton(HWNDhDlg,int nlDButton,UINT uCheck);

    参数:

    hDlg:指向含有该按钮的对话框的句柄。

    nlDButton:标识要修改的按钮。

    uCheck:给定该按钮的选中状态。该参数可取下列值,这些值的含义如下:

    BST_CHECKED:设置按钮状态为己选中(checked)。

    BST_INDETERMINATE:设置按钮状态变灰,表示不确定状态。只有在该按钮具有BS_3STATE或BS_AUTO3STATE样式时才能使用该值。

    BST_UNCHECKED:设置按钮为未选中状态(unchecked)。

    返回值:如果函数执行成功,返回值非零;如果函数失败,则返回值为零。若想获取更多错误信息,请调用 GetLastError函数。

    速查;Windows NT:3.1 及以上版本;WindowS:95及以上版本;Windows CE:不支持:头文件:Winuser.h;库文件:user32.lib。

CheckRadioButtoh

函数功能:该函数给一组单选按钮中的一个指定按钮加上选中标志,并且清除组中其他按钮的选中标志。

    函数原型:BOOL CheckRadioButtoh(HWNDhDlg, intnlDFirstButton, intnlDLastBUtton, intnlDCheckButton);

    参数:

    hDlg:指向包含单选按钮的对话框的句柄。

    nlDFirstButton:指定组中第1个单选按钮的标识符。

    nlDLastButton:指定组中最后一个单选按组的标识符。

    nlDCheckButton:指出要选中的那个单选按钮的标识符。

    返回值:如果函数执行成功,返回值非零;如果失败,则返回零。若想获取更多错误信息,请调用GetLastError函数。

    速查:Windows NT:3.1及以上版本;Windows:95及以广版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。


IsDlgButtonChecked


函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。

    函数原型:UINT IsDlgButtonChecked(HWND hDlg,Int nlDBUtton);

    参数:

    hDlg:指向包含按钮控制的对话框。

    nkDButtom:指定按钮控制的整型标识符。

    返回值:使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE样式创建的按钮的返回值可以是如下值之一:

    BST_CHECKED:表示按钮被选中。

    BST_INDETERMINATE:表示按钮是灰色的,即为不确定状态(只有具有BS_3STATE或BS_AUTO3STATE样式的按钮才使用该值)。

    BST_UNCHECKED:表示该按钮未选中(unckecked)。如果该按钮用其他任何样式,那么返回值为零。

    速查:Windows NT:3.1及以11版本;Windows:95及以上版本;Windows CE:不支持:头文件:winuser.h;库文件:user32.lib。
2009-8-6 15:26
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
插入标记函数

一个插入标记是位于窗口绘图区中的一个闪动的直线、方块或图标。插入标记通常用于指示文本或图形将插入的位置。Win32应用程序可以使用插入标记函数来创建一个插入标记,改变它的闪动频率,显示、隐藏插入标记,或重新设置插入标记的位置。


CreateCaret

函数功能;该函数为系统插入标记创建一个新的形状,并且将插入标记的属主关系指定给特定的窗口。插入标记的形状。可以是线、块或位图。

    函数原型:BOOL CreateCaret(HWND hWnd,HBIBMAP hBitmap,int nHeight);

    参数:

    hWnd:指定佣有插入标记的窗口。

    hBitmap:标识用于定义插入标记形状的位图。如果该参数为NULL,那么插入标记是实心的(原色),如果该参数为(HBITMAP)1,那么插入标记是灰色的。如果该参数是位图句柄,那么插入标记就是指定的位图。位图句栖必须已中由CreateBitmap、CreatDIBitmap或LoadBitmap函数创建。

    如果hBitmap为位图句栖,那么CreateCaret函数将忽略参数nWidth和nHeight,因为该位图定义了自己的宽度和高度。

    nWidth:按逻辑单位指定插入标记的宽度,如果该参数为零,那么宽度就设为系统定义的窗口边界宽度。如果hBitmap是位图句柄,那么函数CreateCaret忽略该参数。

    nHeight:按逻辑单位指定插入标记的高度。如果该参数为零,那么高度就设为系统定义的窗口边界高度如果hBitmap是位图句柄,那么函数CreateCaret忽略该参数。

    返回值:如果函数执行成功,返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误 信息,请调用GetLastError函数。

    备注:参数nWidth和nHeight指定了插入标记的宽度和高度,这些值按逻辑单位表示;按像素表示的真正 宽度和高度与窗口的映射模式有关。

    CreateCaret函数自动清除前一个插入标记的形状,不考虑拥有该插入标记的窗口。新创建的插入标记一直隐藏,直到应用程序调用ShowCaret函数使该插入标记可见为止。

    系统为每个队列提供一个插入标记。窗口只有在它有键盘焦点(focus)或者它是活动窗口时才创建插入标记。该窗口应在键盘焦点消失或窗口变为不活动之前,清除插入标记。

    可以通过使用GetSystemMetrics函数,并指定SM_CXBORDER和SM_CYBORDER值来检索系统窗口边界的宽度或高度。使用窗口边界的宽度或高度可以保证插入标记在高分辨率屏幕上可见。

    对于Windows CE:Windows CE不支持hBitmap参数,并且该参数应设为NULL。Windows CE缺省的是实心(Solid)插入标记。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。

DestroyCaret

函数功能:该函数清除插入标记的当前形状,从窗口中释放插入标记,并且删除屏幕上的插入标记。如果插入标记的形状是基于位图的,那么DestroyCaret不释放该位图。

    函数原型:BOOL DestroyCaret(VOLD)

    参数:无。

    返回值:如果函数执行成功,则返回值非零:如果函数失败,则返回值为零。若想获取更多错误信息,请调用GetLastError函数。

    备注:只有当前任务中的窗口拥有插入标记时DestoryCaret才清除插入标记。如果插入标记不为当前任务中的窗口拥有,那么DestroyCaret不执行任何操作,并且返回FALSE。

    系统为每个队列提供一个插入标记。只有当窗口有键盘焦点或窗口是活动的时候,才创建插入记号。窗口应该在键盘焦点消失或窗口变为不活动之前清除插入标记。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。

GetCaretBlinkTime

函数功能:该函数返回一个公用的时间,单位为毫秒。该时间是转化插入标记的像素而需要的时间。用户可以使用控制面板来设置这个值。

    函数原型:UINT GetCaretBlinkTime(VOLD)

    参数:无。

    返回值:如果该函数执行成功,那么返回值就是闪烁时间,单位为毫秒;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2009-8-6 15:28
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
GetCaretPos

函数功能:该函数将插入标记的位置(按客户区坐标)信息拷贝到指定的POINT结构中。

    函数原型:BOOL GetCaretPos(LPP0lNT IpPoint);

    参数:

    IpPoint:指向POINT结构的指针。该结构接收插入标记的客户坐标信息。

    返回值:如果函数执行成功,那么返回值非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。

    备注:插入标记位置通常是按包含该插入标记的窗口的客户坐标形式给出的。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows:1.0及以上版本;头文件:Winuser.h;文件:user32.lib。

HideCaret

函数功能:该函数将屏幕上的插入标记清除。实际上是隐藏插入标记,并不是删除其当前形状或使插入点无效。

    函数原型:B00L HideCaret(HWND hWnd);

    参数:

    hWnd:标识有插入标记的窗口。如果该参数为NULL,那么HideCaret函数搜索当前任务,以发现拥有插入标记的窗口。

    返回值:如果函数执行成功,那么返回值为非零:如果函数失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。

    备注:只有指定的窗口拥有插入标记时,HideCaret才隐藏插入标记。如果指定的窗口没有插入标记,那么函数HideCaret什么也不做,并且返回FALSE。

    隐藏操作是累计的,如果应用程序连续5次调用HideCaret,那么该程序也必须调用ShowCaret 5次才能显示插入标记。

    速查;Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:USer32.lib。

SetCaretBlinkTime

函数功能:该函数将插入标记的闪烁时间设置为一个指定的数目,该数目的单位为毫秒,闪烁时间就是转化插入标记像素所需的时间,单位为毫秒。

    函数原型:BOOL SetCaretBlinkTime(UINT uMSeconds);

    参数:

    uMSeconds:指定新的闪烁时间,时间单位为毫秒。

    返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。

    备注:用户可以使用控制面板来设置闪烁时间。应用程序应遵守用户的设置。只有允许用户设置闪烁时间的应用程序(例如控制面板)才应该使用SetCaretBlinkTime函数。

    如果改变了闪烁时间,那么后续激活的应用程序会使用修改后的闪烁时间,即使在键盘焦点消失或为非活动时,恢复前一个闪烁时间值,这是由于多线程环境的缘故,在这种环境中,禁止使用一个应用程序与激活另一个应用程序并不同步。这种特性允许系统即使在当前应用程序挂起时也可以激活另一个应用程序。

    对于Windows CE:在Windows CE系统中,在一个应用程序中改变插入标记的闪烁时间不会影响后续加载的应用程序中的闪烁时间。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。

SetCaretPos

函数功能:该函数将插入标记移动到指定的坐标上。如果拥有该插人标记的窗口是使用CS_OWNDC类样式创建的,那么指定的坐标依据与该窗口相关的设备环境的映射模式而定。

    函数原型:BOOL SetCaretPos(int X,int Y);

    参数:

    X:指定插入标记新的X坐标。

    Y:指定插入标记新的Y坐标。

    返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。

    备注:函数SetCaretPos不管插入标记是否隐藏都将移动它。系统为每个队列提供一个插入标记。窗口只能对自己拥有的插入标记进行位置的设置。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:头文件:Winuser.h;库文件:user32.lib。

ShowCaret

函数功能:该函数使插入标记在屏幕的当前位置上可见。当插入标记变为可见时,它自动开始闪烁。

    函数原型:BOOL ShowCaret(HWND hWnd);

    参数:

    hWnd:标识拥有插入标记的窗口。如果该参数为NULL,那么ShowCaret搜索当前任务以发现有插入标记的窗口。

    返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。

    备注:只有指定的窗口拥有插入标记,并且该插入标记具有形状,没有连续隐藏2次或多次时,ShowCaret才能显示该插入标记。如果这几个条件中的一个或多个没满足,那么ShowCaret函数什么也不做,并且返回FALSE。

    速查:Windows NT:3.1及以上版本Windows:95及以上版本Windows CE:1.0及以版本;头文件:winuser.h;库文件:user32.lib。
2009-8-6 15:30
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
组合框函数

组合框是由COMBOBOX类定义的一种控制,综合了列表框和编辑控制的很多功能。使用组合框函数可以在组合框中显示或获取不同类型的数据。


CCHookProc

函数功能:该挂钩函数是一个应用程序或库定义的回调函数。ChooseColor函数与此函数一起使用挂钩函数贮存信息或通告,此信息和通告应用于Color公共对话框的缺省对话框函数。

    LPCEHOOPROC类型定义了一个指向此回调函数的指针。CCHOOkProc是一个应用程序定义的函数名的位置占有者。

    函数原型:UINT CALLBACK CCHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向信息指定的Color对话框的句柄。

    uiMag:标识存放的信息。

    wParam:指定有关信息号的其他信息。精确意义根据UiMdsg参数的值来决定。

    IParam:指定有关消息的其他信息。精确意义由uiMsg参数的值米决定。如果uiMsg多数表明WM_IMTDIALOG消息,IParam是一个指向含有当对话框创建时指定的值的CHOOSECOLOR结构的指针。

    返回值;如果挂钩函数返回零值,缺省对话框函数处理消息。如果挂钩函数返回非零值,缺省对话框函数忽略消息。

    备注当用ChooseColor函数创建一个Color对话框时,应用程序可以为对话框函数提供CCHookProc挂钩函数来处理消息。应用传送到对话创建函数中的CHOOSECOLOR结构可使挂钩函数生效,也可指定IpfnHook成员中挂钩函数的地址和指定Flags成员中CC_ENABIEHOOK标志。缺省对话框函数把消息WM_INITDIALOG传送到挂钩函数之前先处理此消息。对于其他所有的消息,挂钩函数首先存放消息。然后其返回值决定此缺省对话函数是处理消息或忽略消息。如果挂钩函数处理WM_CTLCOLORDIG消息,那么必须返回一个有效的刷子句柄以绘制对话框的背景。总之,如果挂钩函数处理任何一种WM_CTLCOLOR消息,它必须返回一个有效的刷了句柄以刷指定的控制板的背景。

    不要从挂钩函数中调用EndDialog函数。相反地挂钩函数能调用PostMessage函数来把带有IDABORT值的WMCOMMAND消息传送到对话框枢函数中。传送LDABORT消息使对话框关闭并使对话框返回值为FALSE。如果要知道为什么挂钩函数关闭对话框,必须在挂钩函数和应用程序之间提供自身联系机理。

    可以对公共对话框的标准控制面板进行子分类。但是公共对话框函数也可以对控制面板子分类、正因如此,在挂钩函数处理消息时必须对控制面板进行子分类。这就保证在对话框函数设置于分类函数之前,子分类函数存放了指定的控制消息。
2009-8-6 15:37
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
CFHookProc

函数功能:该挂钩函数是一个应用程序定义的或库定义的回调函数,此回调函数与ChooseFont函数一起使用。挂钩函数接收用于Font公共对话框的缺省对话框函数的消息和通告。

    LPCFHOOKPROC类型定义了一个指向这种回调函数的指针。CFHOOKProc是一个由应用程序定义的函数名的位置占有者。

    函数原型:UINT CALLBACK CFHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向消息所指的Font对话框窗口的句柄。

    uiMsg:指定存放的消息。

    wParam:指定有关消息的其他信息。精确的意义根据uiMsg参数的值来决定。

    IParam:指定有关消息的其他信息。精确的意义根据uiMSg参数的值来决定。如果uiMsg参数表明WM_INITDIALOG消息,则IParam是一个指向CHOOSEFONT结构的指针,该结构含有创建公共对话框时指定的值。

    返回值:如果挂钩函数返回零值,缺省对话框函数处理消息。如果挂钩函数返回一个非零值,缺省对话框函数忽略消息。

    备注:用ChooseFont函数创建一个Font对话框时,可以为对话框函数提供挂钩函数来处理消息。

    为使挂钩函数生效,要用传送到对话创建函数的CHOOSEFONT结构,指定IpfnHook成员中挂钩函数的地址和Flags成员中CF_ENABLEHOOK标志。

    缺省的对话框函数处理WM_INTDIALOG消息后,把它传送给挂钩函数。对于其他消息,挂钩函数首先存放此消息。然后挂钩函数的返回值决定缺省对话函数是否处理消息或忽略它。

    如果挂钩函数处理 WM_CTLCOLORDLG信息,它必须返回一个有效的刷子句柄,以刷对话的背景。

    总之,如果挂钩函数处理任何一个WM_CTLCOLOR消息,那么必须返回一个有效刷子句柄,以绘制指定控制的背景不须从挂钩函数调用EndDialog函数。相反,挂钩函数能调用PostMessage函数,把带有IDABORT值的一个WM_CDOMMAND信息传送给对话框函数Posting IDABORT关闭对话框,使对话框函数退回FALSE值,若要了解为什么挂钩函数关闭对话框,必须提供挂钩函数和应用程序之间的联系机理。

    可以对公共对话框的标准控制面板进行子分类。但是公共对话框函数也可以对控制面板进行子分类。正因如此,必须在挂钩函数WM_INTDIALDG处理消息时对控制面板子分类。这就保证对话框函数设置子分类函数之前,子分类函数接收指定的控制消息。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:用户自定义。

ChooseColor

    函数功能:该函数创建一个能使用户从中选择颜色的通用颜色对话框。

    函数原型:BOOL ChooseColor(LPCHOOSECOLOR IpCC);

    参数:

    lpCC:指向一个包括初始化对话框信息的CHOOSECOLOR结构。当ChooseColor函数返回时,此结构含有有关用户颜色选择的信息。

    返回值:如果用户点击对话框中的OK按钮,返回值为非零值。CHOOSECOLOR结构中的rgbResult成员含有用户选择的颜色的RGB颜色值。如果用户取消或关闭Color对话框或错误出现,返回值为零。若想获得更多错误信息,请调用CommDlgExtondedError函数,此函数的返回值为下列中的一个:

    CDERR_FINDRESFAILURE;CDERR_MEMLOCKFAILURE;CDERR_INITIALIZATION;

    CDERR_NOHINSTANCE;CDERR_LOCKRESFAILURE;CDERR_NOHOOK

    CDERR_LOADRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADSTRFAlLURE;

    CDERR_STRUCTSIZE;CDERR_MEMALLOCFAILURE

    备注Color对话框不支持彩色调色板,对话框提供的颜色的选择仅限于系统颜色和这些颜色的混合值,可以为对话框提供一个CCHOOKProc程序,此挂钩程序能处理发送给对话框的信息。通过建立CHOOSECOLOR结构中Flags成员的CC_ENABLEHOOK标志和指定IpfnHook成员中挂钩程序的地址,可使挂钩程序生效。

ChooseFont

函数功能:该函数创建一个使用户选择逻辑字体属性的对话框,这些属性包括字体名称、字体风格(如粗体、斜体或正常体)、字号、效果(如强调线,下划线或字体颜色)和手写体(或字符集)。

    函数原型:BOOL ChooseFont(LPCHOOSEFONT Ipcf);

    参数:

    Ipcf:指向一个含有初始化对话框信息的CHOOSEFONT结构。当返回ChooseFont函数时,此结构含有用户对字体选择的信息。

    返回值:如果用户点击对话框的OK按钮,返回值为非零值,CHOOSEFONT结构中的成员表明用户的选择。如果用户取消或关闭Font对话框或出现错误信息,返回值为零。若想获得更多错误信息。请调用CommDlgExtendedError函数,其返回值如下:

    CDERR_FINDRESFAILURE;CDERR_NOHINSTANCE;CDERR_INITIALIZATION;CDERR_NOHOOK

    CDERR_LOCKRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADRESFAILURE;

    CDERR_STRUCTSIZE;CDERR_LOADSTRFAILURE;CDERR_MAXLESSTHANMIN

    CDERR_MEMALLOCFAILURE;CDERR_NOFONTS;CDERR_MEMLOCKFAILURE

    备注:可以为Font对话框提供一个CFHOOKProc挂钩程序。此挂钩程序能够处理发送给对话框的信息。

    通过建立CHOOSEFONT结构中Flags成员的CE ENABLEHOOK标志和指定IPfn Hook成员中挂钩程序的地址可以使挂钩程序有效。

    挂钩程序可以把信息WM_CHOOSEFONT_GETLOGLONT,WM_CHOOSEFONT_SETFLAGS和

    WM_CHOOSEFONT_SETLOGFONT消息发送给对话框以便得到和创建当前值和对话框的图标。

CommDlgExtendedError

函数功能:该函数返回一个对话框错误代码,此代码显示出在执行下列对话框函数时要出现的最近的错误:ChooseColor,GetOpenFileName,ChooseFont,GetSaveFileName,FindText,PrintDlg,ReplaceText,PageSetpDlg。

    函数原型:DWORD CommDlgExtendedError(VOID)

    参数:无。

    返回值:如果最近一次对话框函数调用成功,返回值不确定,如果对话框函数因为用户关闭或取消对话框而返回FALSE,则返回值为零。否则返回值是非零错误代码。有关更多的信息,参见下列说明部分。

    备注:CommDlgExtendedError函数可以返回公共对话框函数中的一般的错误代码。

    另外,也返回某一具体公共对话框的错误代码。由CommDlgExtendedError返回的错误代码在CDERR.H文件里定义:

    下面是CommDlgExtendedError的返回错误代码值。

    CDERR_DIALOGFAILURE:对话框不能创建。DialogBox函数对对话框函数的调用失败,例如如果公共对话框的调用指定一个无效的窗口句柄,则此种错误产生。

    CDERR_FINDRESFAILURE:公共对话框函数没能找到指定资源。

    CDERR_INITIALIZATION:公共对话框函数在初始化过程中失败。当没有足够内存时此错误出现。

    CDERR_LOADRESFAILURE:公共对话框函数没能调出指定的资源。

    CDERR_LOADSTRFAILURE:公共对话框函数没能调出指定的串。

    CDERR_LOCKRESFAILURE:公共对话框函数没能销定指定的资源。

    CDERR_EMAILCOLFAILURE;公共对话框函数不能为内部结构分配内存。

    CDERR_NOHINSTANCE:在对应的公共对话框初始化结构Flags成员中设置ENABLETEMPLATE标志,但是在提供相应的事例句柄时出错。

    CDERR_NOHOOK:在对应的公共对话框初始化结构Flags成员中设置ENABLEHOOK标志,但是在提供相应的挂钩程序指针时出错。

    CDERR_NOTEMPLATE:在对应的公共对话框初始化结构Flag成员中设置ENABLETEMPLATE标志,但是在提供相应的模板时出错。

    CDERR_REGISTERMSGFAIL:当RegisterWindowMessage函数被公共对话框函数调用时,该函数返回错误代码。

    CDERR_STRUCTSIZE:对应的公共对话框初始化结构旧IStructSize成无效成员。

    下列为Print Dlg函数的返回值。

    PDERR_CREATEICFAILURE:当PrintDlg函数想创建一个信息表时出错。

    PDERR_DEFAIKTDFFERENT:利用在DEVNAMES结构中wDefault成员指定的DN_DEFAULTPRN标志,可以调用PrintDlg函数。但是被另外一个结构成员描述的打印机与当前缺省的打印机不匹配。(此错误发生在储存DEVNAMES结构和用户利用控制面板改变缺省打印机时)。要使用DEVNAMES结构所描述的缺省打印机,必须清空DN_DEFAULTPRN标志并且要再一次调用PrintDlg。要使用缺省打印机,必须用NULL取代DEVNAMES结构俐DEVMODE结构,如果此结构存在的话),并且要再一次调用PrintDlg函数。

    PDERR_DNDMMISMATCH:OEVMOOE和DEVNAMFS结构中的数据描述了两种不同的打印机。

    PDERR_GETDEVMODEFAIL;打印机驱动程序不能初始化一个DEVMODE结构(这种错误代码只用于Windows 3.0及以上版本的打印机驱动程序)。

    PDERR_INITFAILURE:PrintDlg函数不能初始化,并且没有更多的错误代码来描述此错误。

    PDERR_LOADDRVFAILURE:PrinDlg函数不能为指定的打印机装备设备驱动器。

    POERR_NODEFAULTPRN:不存在缺省打印机。

    POERR_NODEVKES:未发现打印机驱动程序。

    PDERR_PARAEFAILURE:PrintDlg函数在分析WIN.INI文件中的[devces]部分的字符串时出错。

    PDERR_PRINTERNOTFOUND;WIN.INI文件的[device]部分不包含所请求打印机的入口

    PDERR_RETDEFFAILURE_PD:RETURNDEFAULT标志被指定在PRINTDLG结构的Flags成员中。但hDevMode或hDevNames成员不是NULL。

    PDERR_SETUPFAILURE:PrintDlg函数在装载所需要的资源时出错。

    下面是ChooseFont函数的返回值。

    CFERR_MAXLESSTHANMIN:CHOOSEFONT结构中的nSizeMax成员所给定的大小小于nSizeMin成员给定的大小。

    CFERR_NOFONTS:不存在字体。

    下面是GetOpenFileName和GetSaveFileName函数的返回值。

    FNERR_BUFFERTOOSMALL:由OPENFILENAME结构的lpstrFile成员指向的缓冲区对由用户指定的文件名来说太小。前两种IpstrFile缓冲区的字节含有一个指定大小的整型值。用来存放全文件名。

    FNERR_INVAIDFILENAME:文件名无效。

    FNERR_SUBASSFAILIIRE:由于没有足够内存,在对列表框分类时出错。

    下面是FindText和ReplaceText函数的返回值。

    FRERR_BUFFERLENGTHZERO:结构FINDREPLACE中的一个成员指向一个无效的缓冲区。

    在Windows CE中Windows CE支持另外的四种返回值,如下:

    CDERR_REGISTRYFAILURE 公共对话框函数无法读注册表。

    下面的一些返回值只适用于PrintDlg函数。

    PDERR_NOPORTS:没有注册的端口PDERR_NOPRINTERS:没有注册的打印机

    PDERR_CREATEDCFAILURE:CreateDC调用失败

    Windows CE不支持CDERR_LOADSTRFAILURE、CDERR_MEMLOCKFAILURE或CDERR_REGISTERMSGFAIL返回值。Windows CE也不支持任何PDERR_错误值。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:头文件:commdlg.h;库文件:comdlg32.lib。

DlgDirListComboBox

函数功能:该函数用一个目录列表来填充指定的组合框

    函数原型:int DlgDirListComboBox(HWND hDlg,LPTSTR lpPathSpec,int nlDComboBox,int nlDStaticPath,UINT uFiletype);

    参数:

    hDlg:包含组合框的对话框句柄。

    lpPathSpel:指向一个以NULL结束的字符串,格式为 [driver][/][directory/][.][filename]

    如果指定的串包括一个驱动器或目录路径,在填充列表之前,DlgDirListComboBox函数改变当前驱动

    器和目录。在列表被填充之后,驱动器和目录路径从lpPathspec参数标识的串中移出来。

    nlDComboBox:指定对话框中组合框的标识符。如果hlDComboBox为零,则DlgDirlistComboBox函数没有组合框存在或不试图填充它。

    hlDStatic Path:指定静态控制的标识符,此静态控制用于显示当前目录。如果nlDStasticPath为零,DlgDirListComboBox函数认为没有这样的控制。

    uFiletype:指定被显示的文件的属性。它可以是下列的任意组合:

    DDL_ARDIVE:包括档案文件。

    DDL_DIRECTORY:包括子目录,子目录名必须用方括号括起来([])。

    DDL_DRIVES:包括驱动器,驱动器列在格式[-X-]中,其中X为驱动器字母名。

    DDL_EXCIUSIVE:包括仅带指定属性的文件,缺省时,写保护文件被引出,即使DDL_READ WRITE没有被指定。

    DDL_HIDBEN:包括隐含文件。DDL_READONLY:包括只读文件。

    DDL_READWRITE:包括读写文件且不带有别的属性。DDL_SYSTEM:包括系统文件。

    DDL_POSTMSGS:把信息传递到应用信息队列,缺省时,DlgDirlist函数把信息直接发送给对话框过程。

    返回值:如果函数调用成功,返回值为非零值,否则返回值为零。例如,如果tpPatbSpec指定的串不是一个有效路径,函数调用失败。若想获得更多错误信息,请调用GetLastError函数。

    备注;如果参数lpszPatbSpec指向一个零字节串或一个指定驱动器目录,或两者的串,但没有文件名,那么认为文件名为"."。

    Windows NT:如果有目录列表的话,则显示长文件名。

    Windows 95:目录列表显示短文件名(为8.3形式)。可以用SHGetFilelnfo或GetFullPathName函数来得到相应的长文件名。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib:Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。
2009-8-6 15:39
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
DlgDirSelectEx

函数功能:该函数从单选列表框中检取当前选择,列表框已经由DlgDirlist函数填充,并且选择内容为一个驱动器字母,文件名或目录名。

    函数原型:BOOL DlgDirSelectEx(HWND hDlg,LPTSTR lpString,int nCount,int nlDListBox);

    参数:

    hDlg:包括列表框的对话框句柄。

    lpString:指向存放选择路径的一个缓冲区。

    ncount:指定由lpString指向的缓冲区的字节长度。

    nlDListBox:指定对话框中列表框的整型标识符。

    返回值:如果当前选择为目录名,返回值为非零值。如果当前选择不是一个目录名,返回值为零,若想获得更多错误信息,请调用函数GetLastError函数。

    备往:DlgDirSelectEx函数把选择复制到由IpString参数指向的缓冲区,如果当前选择是一个目录名或驱动器字母,DlgDirSelectEx则删除方括号(对于驱动器字母,则删去破折号)。这样以便目录名或驱动器字母能插入一个新的路径。如果没有选择,lpString不改变。 DlgDirSelectEx函数把消息LB_GETCURSEL和消息LB_GETTEXT发送到列表框,函数禁止从列表框返回多于一个的文件名。列表框不应是复选的列表框,如果是的话,此函数不返回零值且Ipstring参数保持不变。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

DlgDirSelectComboBox
函数功能:该函数从由DlgDirlistcomboBox函数填充的组合框中检取当前选择。选择内容为一个驱动器字母、文件名或目录名。

    函数原型:BOOL DlgDirSelectComboBox(HWND hDlg,LPTSTR lpString,int nCount,int nlDComboBox);

    参数:

    hDlg:包括组合框的对话框的句柄。

    IpString:指向存放选择路径的缓冲区。

    nCount:指定IpString参数指向的缓冲区的字节长度。

    nlDComboBox:指定控制对话框的组合框的整型标识符。

    返回值:如果当前选择为一个目录名,返回值为非零值;否则,返回值为零值。若想获得更多错误信息,请调用GetLastError函数。

    备注:如果当前选择指定于一个目录名或驱动器字母,DlgDirSelectComboBoxEx函数则删方括号(对驱动器字母则删除破折号),以便使文件名或驱动器字母能插入新的路径或文件名,如果没有选择,IpString参数指向的缓冲区的内容没有改变。DlgDirselectComboBoxEx函数不允许从组合框返回多于一个的文件名。

    DlgDirSectectComboBoxEx把消息CB_GETCILRSEL和CB_GETLBTEXT发送到组合框。在Win32API中,可应用带有三种组合框的DlgDirSelectComboBoxEx函数(三种组合框为CBS_SIMPLE,CBS_DROPDOWN,与CBS_DROPDOWNLIST)。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

FindText

函数功能:该函数创建一个系统定义的无模式Find对话框,为使用户指定一个串来查找文本内的文字。

    函数原型:HWND FindText(LPFINDREPLACE lpfr);

    参数:

    Ipfr:指向一个FINDEPLACE结构,此结构包含用来初始对话框的信息。对话框用此结构把用户输入的信息传送到应用程序。有关更多的信息,请参见下面说明部分。

    返回值:如果函数调用成功,返回值是对话框的窗口句柄。可以使用窗口句柄与对话框联系或关闭它;如果函数调用失败,返回值为NULL。若想获得更多的错误信息,请调用CommDlgExtendedError函数。其返回值如下:

    CDERR_FINDRESFAILURE;CDERR_MEMLOCKFAILURE;CDERR_INITIALIZATION

    CDERR_NOHINSTANCE;CDERR_LOCKRESFAILURE;CDERR_NOHOOK

    CDERR_LOADRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADSTRFAILURE

    CDERR_STRUCTSIZE;CDERR_MEMALLOCFAILURE;FRERR_BUFFERLENGTHZERO

    备注:FindText函数不执行查找操作,相反,对话框把FINDMSGSTRING己登记的信息传送到对话框窗口的窗口函数。当创建对话框时FINDReplace结构中的hwndCwner成员标识窗口。

    调用Find Text函数前,必须调用RegisterWindowMessage函数以得到FINDMSGSTRING信息的标识符,对话框函数在用户点击FindNext按钮或对话框被关闭时利用此标识符传送信息。FINDMSGSTRING信息的IParam参数包含一个指向FINDREPLACE结构的指针,此结构的Flags成员显示开诚信息的事件。

    其他成员显示用户的输入。

    若想创建对话框,必须利用应用程序的主信息链中的IsDialogMessage函数来保证对话框正确处理键盘输入,例如Tab和Esc键。IsDialogMessage返回值显示Find对话框是否处理信息。

    可以为Find对话框提供一个挂钩函数FRHookProc。挂钩函数可处理发送到对话框中的信息。为使挂钩函数生效,可设置HNDREPLACE结构的Flags成员的FR_ENABLEHOOK标志,且指定IpfnHook成员中挂钩函数的地址。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:comdlg32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

FRHookProc

  函数功能:该函数是由应用程序定义或库定义的回调函数。它和FindText函数或Replace Text函数一定使用。挂钩函数接收用于Find或Replace公共对话框的缺省对话框函数的消息和通告。

    LPFRHOOKPROC类型定义了一个指向此回调函数的指针,FRHookProc是一个应用程序定义的函数名的位置持有者。数原型:UINT CALLBACK FRHookProc(HWND hdlg,UINT uiMsg WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向消息所传送到的Find或Replace公共对话框窗口的句柄。

    uiMsg:指定有放的消息。

    wParam:指定有关消息的另外的信息,精确的意义要根据uiMsg参数的值来定。

    IParam:指定有关消息的另外的信息,精确的意义要根据uiMsg参数的值来定。如果uiMsg参数表明WM_INItDIALOG消息。IParam是一个指向FINDREPLACE结构的指针,该结构包含公共对话框创建时指定的值。

    返回值:如果挂钩函数返回零,缺省对话框函数处理消息;如果挂钩函数返回非零值,缺省对话框函数忽略消息。

    备注:当用FindText,或ReplaceText函数创建一个Find或Replace公共对话框时,可提供一个处理与公共对话框函数有关的信息和通告的FRHookProc挂钩函数。为使挂钩函数生效,应用传送到公共创建函数的FINDREPLACE结构且指定IpfnHook成员中挂钩函数的地址和指定Flags成员中FR_ENABLEHOOK标志的地址。缺省对话框函数处理WM_INTTDIALOG消息后,把它传递给挂钩函数,对于其他所有消息,挂钩函数首先接收消息,然后挂钩函数的返回值决定缺省对话框函数是处理消息或忽略它。如果挂钩函数处理WM_CTLCOLORDLG消息,那么必须返回一个有效的刷子句柄,以便绘制对话框的背景。总之如果挂钩函数处理任何一种WM_HLOLOR信息,那么必须返回一个有效的刷子句柄以绘制指定控制的背景。

    不须从挂钩函数调用EndDialog函数。相反,挂钩函数能调用PostMessage函数把带有IDABORT值的一个WM_COMMAND信息传送给对话框函数Posting IDABORT关闭对话框,使对话框函数返回FALSE值,若要了解为什么挂钩函数关闭对话框,必须提供挂钩函数和应用程序之间的联系机理。

    可以对公共对话框的标准控制面板进行子分类。但是公共对话框函数也可以对控制面板进行子分类。正因如此,必须在挂钩函数函数WM_INTDIALDG消息时对控制面板子分类。这就保证对话框函数设置子分类函数之前,子分类函数接收指定的控制消息。

GetFTitle

函数功能:该函数返回由IpszFile参数标识的文件名。

    函数原型:short GetFTitle(LPCTSTR LPTSTR IpszTitle,WORD cbBuf);

    参数:

    IpszFile:指向一个文件名或文件位置的指针。

    IpszTitle:指向一个缓冲区,在此缓冲区中函数复制文件名。

    chBuf:指定由IpszTitle函数指向的缓冲的字节长度。

    返回值:如果函数调用成功,返回值为零;如果文件名无效,返回值为一负值。如果由IpszTitle参数指向的缓冲区的太小,返回值为一正整数,其值指定了所需缓冲区的大小。所需缓冲区的大小还包括结尾的NULL字符。

    备注:如果由IpszFile参数指向的缓冲区包含下列任何一个成员,GetFileTitle函数返回一个错误信息值。

    一个空字符串;一个含有星号()、开括号([)、闭方括号(])的串、一个以冒号(:)、斜杠(/)或倒斜杠结尾的串;一个长度超过缓冲区长度的串;一个无效字符(如,一个空格或一个不能打印的字母):为得到文件名所需的缓冲区的大小,用设置为NULL的IpszTitle和设置为零的cbBuf调用函数。函数将返回所需的大小。

    GetFileTitle函数返回一个串,系统应用此串为用户显示文件名。这就意味着如果返回串应用在文件系统函数的调用中不可能准确地标识文件。

    如果证IpszTitle缓冲区太小,GetFile Title返回的大小需要含有显示名。在IpszFile缓冲区指定的需要的大小和字符之间没有许可的联系。

    速查:Windows NT:3.1及以上版本:Windows:95及以上版本:Windows CE:不支持:头文件:Commdlg.h;库文件:comdlg32.fib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

GetSaveFileName

函数功能:该函数创建一个Save公共对话框,以便用户指定驱动器、目录和文件名。

    函数原型:BOOL GetSaveFileName(LPOPENFILENAME Ipofn);

    参数:

    Ipofn:指向一个包含初始化对话框信息的OPENFILENAME结构。当GetsaveFileName函数返回时,此结构含有关于用户文件选择的信息。

    返回值:如果用户指定了一个文件名且点击OK按钮,返回值为非零值。由OPENFILENAME结构中的归IpstrFile成员指向的缓冲区含有全路径和用户指定的文件名。如果用户取消或关闭Save对话框或错误出现,返回值为零。若想获得有关更多的错误信息,请调用CommDlgExtendError函数,其返回值同GetOpenFileName返回值。

    速查:Windows NT:3.1引及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:commdlg.h;库文件:comdlg32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。
2009-8-6 15:41
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
GetSaveFileName

函数功能:该函数创建一个Save公共对话框,以便用户指定驱动器、目录和文件名。

    函数原型:BOOL GetSaveFileName(LPOPENFILENAME Ipofn);

    参数:

    Ipofn:指向一个包含初始化对话框信息的OPENFILENAME结构。当GetsaveFileName函数返回时,此结构含有关于用户文件选择的信息。

    返回值:如果用户指定了一个文件名且点击OK按钮,返回值为非零值。由OPENFILENAME结构中的归IpstrFile成员指向的缓冲区含有全路径和用户指定的文件名。如果用户取消或关闭Save对话框或错误出现,返回值为零。若想获得有关更多的错误信息,请调用CommDlgExtendError函数,其返回值同GetOpenFileName返回值。

OFNHookProc

函数功能:该挂钩函数是应用程序定义的或库定义的回调函数,此回调函数与Explorer_Style和Save As公共对话框一起使用。函数贮存从公共对话框发送来的消息或通知LPOFNHOOKPROC类型定义一个指向回调函数指针,OFNHOOKProc是应用程序定义的或库定义的函数名的位置占有者,当创建一个Open或Save As公共对话框时,如果没有指定OFN_EXPLORER标志且需一个挂钩函数。必须用旧式的OFNHookProcOldSttyle挂钩函数。这种情况下对话框将显示旧式的用户界面。

    函数原型:UINT CALLBACK OFNHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向Open或Save as对话框的子对话框的句柄。用GetParent函数可得到指向Open或Save As对话框窗口的句柄。

    uiMsg.标识存放的消息。

    wParam:指定有关消息的其他信息。精确的意义要根据uiMSg参数的值来决定。

    IParam;指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。如果uiMsg参数显示了WM_INITDIALOG消息,IParam是一个指向OPENFILENAME结构的指针。该结构含有创建对话框时指定的值。

    返回值:如果挂钩函数返回零,缺省对话框函数处理消息。如果挂钩函数返回非零值,缺省对话框函数忽略消息。对于CDN_SHAREVIOLATION和CDN_FILEOK通告消息,挂钩函数应该返回非零值,以表明已经利用SetWindowLong函数设置了一个非零DWL_MSGRESULT值。

    备注:当用GetOpenFileName或GetSaveFileName函数创建浏览器风格的Open或Save As公共对话框时,可以提供一个OFNHookProc挂钩函数。为使挂钩函数生效,须应用传递到对话创建函数的OPENFILENAME结构,且须指定一个指向PfnHook成员中的挂钩函数的指针,及指定Flags成员中OFN_ENABLEHOOK标识。

    如果为浏览器风格的公共对话框提供了一个挂钩函数,系统创建了一个缺省对话框的子对话框,挂钩函数为子对话框作为对话函数,此子对话框以OPENHLENAME结构指定的模块为基础,或如果没有指定模板,对话框是一个缺省的子对话框。当缺省对话框函数正在创建WM_INITDALOG消息时,创建了子对话框。在子对话框处理它本身的WM_INITDIALOG消息时,缺省对话函数删除掉标准控制面板,如果需要,可为子对话框的其他的任何一个控制面板提供空间,然后系统将CDN_INITDONE通告消息发送给挂钩函数。

    挂钩函数不接收指定给缺省对话框的标准控制面板的消息。可以对控制面板进行子分类,但是如果控制面板使应用程序与公共对话框将来的版本不一致,那么不能进行子分类。但浏览器风格的公共对话框提供了一套消息,此挂钩函数可利用此消息来最小化和控制对话框。它包括了从对话框发送来的一组通知消息,还有可以发送到从对话框检取信息的消息。关于这些消息的全部列表,参见EXplorer-Style HookProcedures。如果挂钩函数处理WM_CTLCOLORDLG信息,它必须返回一个有效的刷子句柄,以刷对话的背景。总之,如果挂钩函数处理任何一个WM_CTLCOLOR消息,那么必须返回一个有效刷子句柄,以绘制指定控制背景。不须从挂钩函数调用EndDialog函数。相反,挂钩能调用PostMessage函数把带有IDABORT值的一个WM_COMMAND信息,传送给对话框函数Posting IDABORT来关闭对话框,使对话框函数返回FALSE值。若要了解为什么挂钩函数关闭对话框,必须提供挂钩函数和应用程序之间的联系机理。

OFNHookProcOldStyle

函数功能:该挂钩函数是应用程序定义或库定义的回调函数。此回调函数与Open和Save AS公共话框一起使用。函数接收指定给对话框函数的消息或通告。LPOFNHOOKPROC类型定义了一个指向这种回调函数的指针。OFNHookProcOldStyle是应用程序定义的或库定义的函数名的位置占有者。当创建一个Open或Save As公共对话框时,如果指定OFN_EXPLORER标志且需一个挂钩函数,那么必须应用一个Explorer_style的OFNHookProc挂钩函数。

    函数原型:UINT CALLBACK OFNHookProcOldStyle(HWND hdlg,UINT uiMsg WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向消息指定的Open或Save As对话框窗口。

    uiMsg:标识接收的消息。

    wParam:指定有关消息的其他信息。精确的意义要根据uiMSg参数的值来决定。

    IParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。如果uiMsg参数显示了WM_INITDIALOG消息,IParam是一个指向OPENFILENAME结构的指针。该结构含有创建对话框时指定的值。

    返回值:如果挂钩函数返回零,缺省对话框函数处理消息;如果挂钩函数返回非零值,缺省对话框忽略消息。

    备注:当用GetOpenFileName或GetSaveFileName函数创建一个旧式的Open或Save As对话框时。可以提供一个OFNHookProcOldStyle挂钩函数。为使挂钩函数生效,须应用传递到对话创建函数的OPENHLENAME结构,且须指定一个指向IpnHook成员中的挂钩函数的指针,及指定Flags成员中OFN_ENABLEHOOK标识。如果挂钩函数处理WM_CTLCOLORDLG消息,那么必须返回一个有效的刷子句柄,以便绘制对话框的背景。总之,如果挂钩函数处理任何一种WM_CTLCOLOR信息,那么必须返回一个有效的刷子句柄以绘制指定控制的背景。不须从挂钩函数调用EndDialog函数。相反,挂钩函数能调用PostMessage函数,把带有IDABORT值的一个WM_COMMAND信息传送给对话框函数PostingIDABORT,并关闭对话框,使对话框函数返回 FALSE值,若要了解为什么挂钩函数关闭对话框,必须提供挂钩函数和应用程序之间的联系机理。可以对公共对话框的标准控制面板进行子分类。但是公共对话框函数也可以对控制面板进行子分类。正因如此,必须在挂钩函数WM_INTDIALDG处理消息时对控制面板子分类。这就保证对话框函数设置子分类函数之前,子分类函数接收指定的控制消息。
PagePaintHook

函数功能:该挂钩函数是一个由应用程序或库定义的回调函数,该回调函数与PageSetup函数一起使用。该函数接收制作PageSetup对话框中样本页绘图的消息。LLPPAGEPAINTHOOK类型定义了一个指向此回调函数的指针。PagePaintHook是由应用程序或库定义的函数名的位置持有者。

    函数原型:UINT CALLBACK PagePaintHook(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向pagesetup对话枢窗口的句柄。

    uiMsg:标识接收的消息。

    wparam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。

    IParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。

    返回值:如果挂钩函数对前三个绘图顺序消息中的任何一个返回值为TRUE。且前三个消息为WM_PSD_PAGESETUPDLG,WM_PSD_FULLPAGERECT或WM_PSD_MINMARGINRECT),对话框不再发送消息。且直到下一次系统需要重画样本页时才绘出样本页。如果对所有的三个消息。挂钩函数返回FALSE,对话框发送给图顺序的保留的消息。

    如果挂钩函数对绘图顺序中保留消息的任何一个,返回值为TRUE,那么对话框不绘样本页对应的部分,如果挂钩函数对这些信息中的任何一个返回值为FALSE,对话框绘样本页部分。

    备注PageSetup对话框含有一个样本页的构想。此构想展示了用户选择如何影响打印输出的外观。构想由代表选择页或信封类型的长方形组成,点线长方形代表当前页边。部分字母展示了文本在打印出的页中的状况。当用PageSetupDlg函数创建Page Setup Dialog对话框时,可提供一个PagePaintHook挂钩函数来制作样本页的表观。

    为使挂钩函数生效,须用传递到创建对话函数的PAGESETUPDLG结构,且指定一个指向

    IpfnPagePrintHook成员中挂钩函数的指针和指定Flags成员中PSD_ENABLEPAGEPAINTHOOK标志。

    无论何时,只要对话框将要绘样本页的内容,那么挂钩函数就接受以下列顺序列表的消息:WM_PSD_PAGESETUPDLG:对话框将要绘样本页,挂钩函数利用此消息准备给样本页里的内容。

    WM_PSD_FULLPAGERECT:对话框要绘样本页,此信息指定样本页的长方形边。

    WM_PSD_MINMARGINRECT:对话框将要绘样本页,此信息指定空白长方形。

    WM_PSD_MARGINRECT:对话框将要绘空白长方形。

    WM_PSD_REEKTEXTRECT:对话框将要在空白长方形内绘Greek文本。

    WM_PSD_ENVSTAMPRECT:对话框将要在信封样本页上绘邮票长方形。此消息仅发向信封。

    WM_PSD_YAFULLPAGERECT:对话框将要绘信封样本页的返回地址部分。此消息仅发向信封和其他纸张大小。
PageSetupDlg

函数功能:该函数创建一个PageSetup对话框,此对话框能使用户指定打印页的属性。这些属性包括纸张大小和来源,送纸方向和页边距。

    函数原型:BOOL PageSetupDlg(LPPAGESETUPDLGI ppsd);

    参数:

    Ippsd:指向一个包含初始化对话框信息的PAGESETUPDLG结构。当函数返回时,该结构存放有关用户选择的信息。

    返回值:如果用户点击OK钮,返回值为非零值,Ippsp参数指向的PAGESETUPDLG结构中的成员显示用户的选择。如果用户取消或关闭PageSetup对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用CommDlgExtendedError函数
PageSetupHook

函数功能:该挂钩函数为由应用程序或库定义的回调函数。此回调函数与PageSetupDlg函数一起使用,它接收为PageSetup公用对话框设置缺省对话框的消息或通告。LPPAGESETUPHOOK类型定义了一个指向此回调函数的指针。PageSetupHook是由应用程序或库定义的函数名的位置持有者。

    函数原型:UINT CALLBACK PageSetupHook(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向消息指定给Page Setup对话框窗口的句柄。

    uiMsg:标识接收的消息。

    wParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。

    IParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。

    返回值:如果挂钩函数返回零,则缺省对话框函数处理消息;返回非零值,将忽略消息。
PrintDIg

函数功能:该函数显示打印对话框或打印设置对话框。打印对话框使用户指定特殊的打印工作的特点。

    打印设置对话框不能应用在新应用程序中,它已经被PageSetupDlg函数创建的打印设置公共对话框所替代。

    函数原型:BOOL PrintDIg(LPPRINTDLG Ippd);

    参数:

    Ippd:指向一个含有初始化对话框信息的PRINTDLG结构。当PRINTDLG函数返回时,此结构含有关用户选择的信息。

    返回值:如果用户点击OK按钮,返回值为非零值。由lppd参数指向的PRINTDLG结构中的成员显示用户的选择。如果用户取消或关闭Print或PrinterSetup对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用CommDlgError函数。如果用户取消或关闭对话框,函数返回零值:否则,返回值如下:

    CDERR_FINDRESFAILURE PDERR_CRETELCFAILUPE

    COERR_INITIALIZATION PDERR_DEFAULTDIFFERENT

    CDERR_LOADRESFAILURE PDERR_DNDMMISMATCH

    CDERR_LOADSTRFAILURE PDERR_GETDEVMODEFAIL

    CKERR_LOCKRESFAILURE PDERR_INITFAILURE

    CDERR_MEMALLOCFAILURE PDERR LOADDRVFAILURE

    CDERR_MEMLOCKFAILURE PDERR_NODEFAULTPRN

    CDERR_NOHINSTANCE PDERR_NODEVICES

    CDFRR_NOHOOK PDERR_PARSEFAILURE

    CDERR_NOTEMPLATE PDERR_PRINTERNOTFOUND

    CDERR_STRUCTSIZE PDERR_RETDEFFAILURE

    备注:如果挂钩函数(由PRINTDLG结构中的IpfnrintHOOk成员或IpfnSetupHOOk成员指向的)处理WM_CTLCOLORDLG信息,挂钩函数必须返回一个刷子句柄,此刷了用来刷控制背景。

    Windows NT 5.0以及以后的版本:可用PrintDlgEx函数来显示一个Print属性页,此属性页有一个含有Print公共对话框相似的控制的General页,其控制与Print公共对话框中的控制相似。

    Windows CE:PRINTDLG结构包含Windows CE中不同的成员。
2009-8-6 15:43
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
PrintDlgEx

函数功能:该函数显示一个Print属性页。该属性页使用户指定特定的打印工作的特性,一个Print属性页有一个控制的General页。该控制与Print中的对话框相似。属性页也有另外紧随General页的指定的应用程序和指定的驱动器特性页。

    函数原型:HRESULT PrintDlgEx(LPPRINTDLGEX Ippd);

    参数:

    Ippd:指向一个包括初始化属性页信息的PRINTDLGEX结构。当PrintDlgEx函数返回时,此结构含有关于用户选择的信息。

    返回值:如果函数调用成功,返回值为S_OK,且PRINTDLGEX结构中的dw ResuhltAction成员含有下列值:

    PD_RESULT_APPLY:用户点击Apply按钮,然后点击Cancel按钮,这显示出用户想应用在属性页中做的改变,但还不想打印。当Apply按钮被点击时,PRINTDLGEX结构包含用户指定的信息。

    PD_RESUCT_CANCEI:用户点击Cancel按钮,PRINTDLGEX结构中的信息未被改变。

    PD_RESUCT_PRINT:用户点击Print按钮,PRINTDLGEX结构含有用户指定的信息。

    如果函数调用成功,返回值可能是下列COM错误代码中的一个,有关更多的信息请参见ErrorHandling。

    E_OUTOFMEMORT:内存不足;E_INVALIDARG:一个或更多的参数无效。

    E_POINTER:指针失效;E_HANDLE:句柄失效;E_FAIL:不确定的错误。

    备注:有关更多的信息,请见Print Propertysheet。

PrintHookProc


函数功能:该挂钩函数是一个由应用程序或库定义的回调函数,此回调函数与PrintDlg函数一起使用。

    函数接收指定给Print公共对话框的缺省对话框函数的消息和通知。LPPWTHOOKPROC类型定义了一个指向此回调函数的指针。PrintHookProc为由应用程序或库定义的函数名的位置占有者。

    函数原型:UINT CALLBACK PrintHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向消息指定给的Print公共对话框窗口的句柄。

    uiMsg:标识接收的消息。

    wParam:指定有关消息的其他信息、精确的意义由uiMsg参数的值来决定。

    IParam:指定有关消息的其他信息、精确的意义由uiMsg参数的值来决定。

    返回值:如果挂钩函数返回值为零,缺省对话框函数处理消息;返回非零值,将忽略消息。

    备注:当用PrintDlg函数创建一个Print公共对话框时,可以提供一个PrintHookProc挂钩函数来处理指定给对话框函数的消息或通知。

    为使挂钩函数生效,要用传递到创建对话框函数的PRINTDLG结构,且要指定IpfnPrintHook成员中挂钩函数的地址和指定Flags成员中PD_ENABLEPRINTHOOK标志。

    缺省对话框函数把消息WM_InITDIALOG传送到挂钩函数之前先处理此消息。对于其他所有的消息,挂钩函数首先存放消息。然后其返回值决定此缺省对话函数是处理消息或忽略消息。
Replace Text

函数功能。该函数创建一个系统定义的无模式对话框,此对话框使用户查找或替代一个串,或执行控制和替代操作。

    函数原型:HWND Replace Text (LPFINDREPLACE Ipfr);

    参数:

    Ipfr:指向一个包含初始化对话框的信息的FINDREPLACE结构。对话框应用此结构把用户输入的有关信息传送到应用程序。有关更多的信息,见卜列说明部分。

    返回值:如果函数调用成功,返回值为对话框的窗口句柄,可以用窗口句柄与对话框联系或关闭它。如果函数调用失败,返回值为NULL。若想获得更多的错误信息,调用CommDlgExError函数,其返回值如下:

    CDERR_FINDRESFAILURE CDERR_MEMLOCKFAILURE

    CDERR_INITIALIZATION COERR_NOHINSTANCE

    CDERR_LOADRESFAILURE CDERR_NOHOOK

    CDERR_LOADSTRFAILURE CDERR_BITEMPLATE

    CDERR_LOCKRESFAILURE CDERR_STRUCTSIZE

    CDERR_MEMALLOCFAILURE FRERR_BUFFERLENGTHZERO

    备注:PepIACE Text函数不执行文本替代操作。相反,对话框把FINDSGSTRING 已登记的信息传送到对话框窗口的窗口函数。当创建对话框时,FINDREPLACE结构的hwndowner成员指定该对话框窗口。

    调用ReplaceText函数之前,必须调用RegisterWindowMessage函数为FINDSGSTRING信息登记标识。

    当用户击点Find Next,Replace ALL按钮时,或当关闭对话框时,对话框函数应用这些标识发送信息。

    FINDMSGSTRING信息中的IParam参数含有一个指向FINDREPLACE结构的指针。此结构的Flags成员表明了形式信息的事件。该结构中其他的成员表明用户的输入信息。

    如果创建了Replace对话框,必须应用应用程序信息链中的IsDialogMesssage函数来保证对话框能正确处理链盘输入信息,例如Tab键和Esc键。

    ISDialogMessage函数返回值表明Replace对话框是否处理信息。

    可以为Replace对话枢提供一个FRHookProc挂钩函数,此挂钩函数能处理发送到对话框中的信息。

    为使一个挂钩函数生效,可设置FINDREPLACE结构中Flags成员的FR_ENABLEHOOK标志且指定IpfnHook成员中挂钩函数的地址。
SetupHookProc

函数功能:该挂钩函数是一个由应用程序或库定义的回调函数,该回调函数与PrintDlg函数一起使用。

    其他同函数19。

    函数原型:UINT CALLBACK SetupHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向消息指定给的Print公共对话框窗口的句柄。

    UiMsg:标识接收的消息。

    wParam:指定有关消息的其他信息、精确的意义由uiMSg参数的值来决定。

    IParam:指定有关消息的其他信息、精确的意义由uiMsg参数的值来决定。

    返回值:如果挂钩函数返回值为零,缺省对话框函数处理消息;返回非零值,将忽略消息。

    备注;PrintSetup对话框函数已经被PageSetup对话框所取代。这需要用新的应用程序来使用。但是,为了一致性,PrintDlg函数仍支持Print Setup对话框的显示。可以提供一个SetupHookProc函数给PrintSetup对话框,从便处理指定给对话框函数的消息和通知。为使挂钩函数生效,要用传递到对话创建函数的PRINTDLG结构,且指定IpfnSetupHook成员中挂钩函数的地址和指定Flags成员中PD_ENABLESETUPHOOK标志。
2009-8-6 15:44
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
国际特性函数

这些特性有助于用户编写国际化的应用程序。Unicode字符集使用16位的字符值来表示计算过程中所用的字符,比如各种符号,以及很多编程语言。国家语言支持(NLS)函数可帮助用户将应用程序本地化;输入方法编辑器(IME)函数(在Windows亚洲版中可用)用于帮助用户输入包含Unicode和DCBS字符的文本。

    国际特性函数包括以下几类:

    输入方法编辑器函数(Input Method Editor)

    输入方法编辑器(IME)有助于简化用户的文本输入过程(文本中包含Unicode字符和双字节字符DBCS)。

    输入方法编辑器函数用于创建和管理IME窗口。

    国家语言支持函数(National Language Support)

    使用国家语言支持函数可以帮助Win32应用程序支持世界各地的不同语言,满足不同地区用户的特殊需要。

    Unicode和字符集函数(Unicode and Character Set)

    Win32 API通过Unicode和传统字符集可以支持国际上的很多不同的书写语言。Unicode是一种世界通用的字符编码标准,它使用16位的字符值来表示各种字符,包括技术符号和出版所用的特殊字符。传统字符集是指以前所用的字符编码标准,比如Windows ANSI字符集,它是使用8位的字符值或8位值的组合来表示在指定的语言或地理区域中所用的字符。

    Unicode和字符集函数用于对字符集进行操作。
2009-8-6 15:49
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
网络服务函数

网络函数允许网络上的不同计算机的应用程序之间进行通讯。

    网络函数用于在网络中的各计算机上创建和管理共享资源的连接,例如共享目录和网络打印机。

    网络接口包括Windows网络函数、Windows套接字(Socket)、NetBIOS、RAS、SNMP、Net函数,以及网络DDE。Windows 95只支持这些函数中的一部分。

    网络服务函数包括以下几类:

    DLC函数(DLC)

    数据连接控制(DLC)接口是一个具有特殊目的的、不可路由的协议。它不是用于运行Windows和Windows NT的计算机之间的通讯,而是为运行Windows或Windows NT的计算机与IBM主机或直接连接到网络上的打印机之间提供了连通性。

    网络函数(Net)

    对于基于OS/2的服务器来说,Microsoft LAN Manager所支持的Net函数提供了很多网络操作系统所需的功能,这些功能在本地操作系统中被忽略了。Windows NT、Windows 95和Windows 98具有很多内置的网络功能,因此,有些原始的Net函数就不再支持了。

    Windows NT、Windows 95和Windows 98支持多种网络函数。Net函数集提供了一些其他网络函数来覆盖的附加功能。另外,还可以使用这些函数来监测和管理基于OS/2的LAN Mansger服务器。

    NetBIOS函数

    Win32应用程序可以使用Network Basic Input/Output System(NetBIOS)接口与网络中的其他计算机上的应用程序进行通讯。

    NetBIOS接口包括一系列显式命令,由一个被称为网络控制块(NCB)的结构提供。应用程序可以对任何支持NetBIOS接口的协议发出NetBIOS命令。

    网络DDE函数(Networking DDE)

    一个进程可以使用Win32 API提供的网络动态数据交换(DDE)函数与在网络中的不同计算机上运行的进程建立会话。

    RAS服务器管理函数(RAS Server Administration)

    在Windows NT 4.0上,可使用RAS服务器管理函数来实现RAS服务器管理功能。Windows 95不提供RAS服务器支持。

    远程访问服务函数(Remote Access Service)

    使用远程访问服务(RAS)可以使远程用户犹如直接连接到计算机网络上一样地访问一个或多个RAS服务器。

    远程访问服务函数用于实现远程访问服务功能。

    服务函数(Service)

    Win32 API提供了一套完整的服务函数。这些函数应该可以代替NetService函数,除非需要控制LANManager2.x服务器上的服务。

    服务函数用于控制服务。一个服务就是一个应用程序,管理员可以使用服务控制程序接口来控制服务。

    Windows网络函数(Windows Networking)

    Windows提供的Windows网络(Wnet)函数使用户可以在应用程序中实现网络功能,而不需使用特殊的网络供应程序或物理的网络实现。原因是Wnet函数是网络无关的。

系统服务函数

系统服务函数为应用程序提供了访问计算机资源以及底层操作系统特性的手段,比如访问内存、文件系统、设备、进程和线程。应用程序使用系统服务函数来管理和监视它所需要的资源。例如,应用程序可使用内存管理函数来分配和释放内存,使用进程管理和同步函数来启动和调整多个应用程序或在一个应用程序中运行的多个线程的操作。

    系统服务函数提供了访问文件、目录以及输入输出(I/O)设备的手段。应用程序使用文件I/O函数可以访问保存在指定计算机以及网络计算机上的磁盘和其他存储设备上的文件和目录。这些函数支持各种文件系统,从FAT文件系统,CD-ROM文件系统(CDFS),到NTFS。

    系统访问函数为应用程序提供了一些可以与其他应用程序共享代码或信息的方法。例如,可以将一些有用的过程放到DLL中,使它们对所有的应用程序都可用。应用程序只需使用DLL函数将动态链接库加载进来并获取各过程的地址,就可以使用这些过程了。通讯函数用于向通讯端口写入数据及从通讯端口读出数据,并控制这些端口的操作方式。有几种内部通讯(IPC)的方法,比如DDE、管道(Pipe)、邮槽(Mailslot)和文件映射。对于提供安全属性的操作系统来说,应用程序可使用安全函数来访问安全数据,并保护这些数据不会被有意或无意地访问或破坏。

    使用系统服务函数可以访问有关系统和其他应用程序的信息。应用程序可用系统信息函数来确定计算机的特别属性,比如是否出现鼠标、显示屏幕上的元素具有多大尺寸。注册和初始化函数用于将应用程序的特殊信息保存到系统文件中,以便于该应用程序的新实例对象,甚至其他应用程序都可以获取和使用这些信息。

    应用程序使用系统服务函数可以处理执行过程中的的一些特殊情况,比如错误处理、事件日志、异常处理。还有一些属性可用于调试和提高性能。例如,使用调试函数可对其他进程的执行过程进行单步控制,而性能监视函数则可对某个进程的执行路径进行跟踪。

    系统服务函数还提供了一些特性,可用于创建其他类型的应用程序,比如控制台应用程序和服务。

    系统服务函数包括以下几类:

    访问控制函数(Access Control)

    Microsoft Windows NT所提供的安全功能对Win32应用程序是自动使用的。在系统中运行的每个应用程序都受由Windows NT的特殊配置所提供的安全功能所影响。Windows NT是支持Win32安全功能的唯一平台。

    Windows NT的安全功能对大多数Win32函数的影响都是最小的,不需要安全功能的Win32应用程序不必合并任何特殊代码。不过,你可使用Windows NT的安全属性向Win32应用程序提供一些服务。

    访问控制函数提供了一系列控制访问Win32对象(比如文件)、管理函数(比如设置系统时间或审核运行动作的函数)的Windows NT安全模型。

    原子函数(Atom)

    原子表格是一个系统定义的表格,用于保存字符串和相应的标识符。应用程序将一个字符串放到原子表格中,并接受一个16位的整数(称为一个原于),用于访问该字符串。放到原子表格中的字符串被称为原子名字。

    原子函数提供了一系列对原子进行添加、删除、初始化等的操作。

    客户服务器访问控制函数(Client/Server Access Control)

    客户/服务器访问控制函数包括三类:

     用于模拟客户机。

     用于检查和设置私有对象上的安全描述符。

     用于生成安全时间日志中的审核消息。

    剪贴板函数(Clipboard)

    剪贴板是由一系列函数和消息组成,Win32应用程序可使用它来传输数据。由于所有的应用程序都可以访问剪贴板,所以数据可以很容易地在应用程序之间或一个应用程序内部进行传输。

    通讯函数(Communication)

    通讯资源是一个物理或逻辑设备,用于提供双向的异步数据流。例如,串行端口、并行端口、传真机以及调制解调器都是通讯资源。对于每个通讯资源都有一个服务供应程序(包含一个库或驱动程序),使应用程序可以访问该资源。通讯函数是通讯设备所使用的函数。

    控制台函数(Console)

    Microsoft Windows和Windows NT提供了控制台函数,用于管理字符模式的应用程序(这种应用程序未提供自己的图形用户界面)的输入和输出(I/O)

    数据解压库函数(Data Decompression Library)

    数据解压库函数在LZEXPAND.DLL中声明,用于对压缩的文件进行解压。

    调试函数(Debugging)

    调试器是一个应用程序,开发人员可使用它来检查和改正编程错误。Win32 API的调试函数为用户提供了一系列的调试手段。

    设备输入和输出函数(Device Input and OutPut)

    Win32应用程序使用设备输入和输出控制与设备驱动程序进行通讯。被访问的设备由设备句柄标识;而设备驱动程序要完成的动作则由控制代码来指定。

    动态数据交换函数(Dynamic Data Exchange)

    Win32 API为不能使用"动态数据交换管理库(DDEML)"的应用程序提供了一系列实现动态数据交换的函数。

    动态数据交换管理函数(Dynamic Data Exchange Management)

    动态数据交换(DDE)是一种内部通讯方式,即使用共享内存在应用程序之间交换数据。应用程序可以使用DDE进行一次性的数据传输,以及数据的即时交换和更新。

    动态数据交换管理函数为用户提供了一系列管理动态数据交换的手段。

    动态链接库函数(Dynamic-Link Library)

    动态连接库(DLL)是由函数和数据组成的一些模块。一个DLL是由它的调用模块(.EXE或.DLL)在运行时加载的。当一个DLL被加载后,它就被映射到其调用进程的地址空间中。

    DLL可以定义两种函数:外部的和内部的。外部函数可以被其他模块调用,内部函数只能在声明它的OLL内部被调用。尽管DLL可以输出数据,但它的数据通常只能由它的函数使用。

    DLL提供了一种使应用程序模块化的方法,这样就可以更容易地更新和重用程序的功能。DLL也有助于在几个应用程序同时使用相同的功能时减少内存开销,因为虽然每个应用程序都拥有一份数据的备份,但它们可以共享代码。

    错误函数(Error)

    写得好的应用程序应包括一些能够处理意外错误并可从错误中顺利恢复的代码。当发生错误时,应用程序可能需要用户进行干预,或自己恢复。在一些极端情况下,应用程序对能会将用户从系统中退出或关机。错误函数为用户痰腛LL内部被调用。尽管DLL可以输出数据,但它的数据通常只能由它的函数使用。

    DLL提供了一种使应用程序模块化的方法,这样就可以更容易地更新和重用程序的功能。DLL也有助于在几个应用程序同时使用相同的功能时减少内存开销,因为虽然每个应用程序都拥有一份数据的备份,但它们可以共享代码。

    错误函数(Error)

    写得好的应用程序应包括一些能够处理意外错误并可从错误中顺利恢复的代码。当发生错误时,应用程序可能需要用户进行干预,或自己恢复。在一些极端情况下,应用程序对能会将用户从系统中退出或关机。错误函数为用户提供了一些进行错误处理的方法。

    事件日志函数(Event Logging)

    很多应用程序都在不同的属性错误日志中记录错误和事件。这些属性错误日志具有不同的格式,并显示不同的用户界面,而且无法将数据合并起来得到一个完整的报告。因此,用户必须要检查各种数据来诊断问题。Windows NT的事件日志为应用程序(和操作系统)提供了一种标准、集中的方法,来记录重要的软件和硬件事件。事件日志服务将事件从不同的地方保存到一个称为"事件日志"的集合中。Windows NT还提供了一个事件浏览器和编程接口,用于查看日志和检查日志。事件日志函数提供了一系列编写和检查事件日志的方法。

    文件函数(File)

    文件是计算机存储信息的基本单位,不同的信息可分别存放在不同的文件中。应用程序可使用文件函数对文件进行输入和输出(I/O)操作。

    文件安装库函数(File Installation Library)

    Win32 API包含一个文件安装库,应用程序使用它可以更容易地安装文件,使安装程序能分析当前已安装的文件。

    文件映射函数(File Mapping)

    文件映射函数用于对文件映射对象进行操作。

    文件系统函数(File System)

    Win32应用程序依赖文件系统来保存和获取存储设备上的信息。文件系统提供了应用程序在与存储设备相关的个别卷上创建和访问文件及目录时所需的底层支持。

    每个文件系统都由一个或多个驱动程序和所支持的动态链接库(定义文件系统的数据格式和特性)组成。它们确定了文件名的约定、安全性及可恢复性的级别,以及输入输出(I/O)操作的一般性能。文件系统函数用于对文件系统进行操作。

    句柄和对象函数(Handle and Object)

    对象是一个表示系统资源的数据结构,比如表示一个文件、线程或图像。应用程序不能直接访问对象所表示的对象数据或系统资源,而是必须使用对象句柄。对象句柄可用于检查和修改系统资源。每个句柄在一个内部维护的表中都有一项。在这些项中包含资源的地址以及标识资源类型的方法。句柄和对象函数用于对句柄和对象进行操作。

    Hook函数

    Hook是系统消息处理机制中的一部分。在系统消息处理机制中,应用程序可安装一个子程序来监视系统中的消息传送情况,并可处理某些类型的消息(在这些消息到达目的窗口过程之前)。Hook函数用于对Hook进行操作。

    lmageHlp函数

    lmageHlp函数由IMAGEHLP DLL提供。lmageHlp函数可用于PE格式的图像。PE图像由一个兼容的Win32连接程序提供,比如由Microsoft Developer Studio提供。

    超大整数操作函数(Large Integer Operations)

    Win32 API提供了一系列超大整 邮槽是一种单向的内部处理通讯(IPC)机制。Win32应用程序可以在邮槽中保存消息,邮槽的所有者可以获取保存在其中的消息。这些消息通常是通过网络发送到一台指定的计算机上,或发送到某个指定域中的所有计算机上。域是一组工作站和服务器,共享一个组名。

    可以选择使用命名管道来代替邮槽进行内部处理通讯。命名管道是两个进程交换消息的一种简单方法。而邮槽则是一个进程向多个进程广播消息的一种简单方法。需要考虑的重要一点是邮槽使用邮包,而命名管道则不用。邮槽函数可用于创建邮槽、设置或获取邮槽信息。

    内存管理函数(Memory Management)

    内存管理函数用于分配和使用内存。

    管道函数(Pipe)

    管道是一段共享内存,用于进程通讯。创建管道的进程称为管道服务程序。连接管道的进程称为管道客户程序。某个进程向管道中写入信息,然后其他进程从管道中读出信息。管道函数用于创建、管理和使用管道。

    电源管理函数(Power Management)

    电源管理函数用于对计算机的电源进行管理。

    进程和线程函数(Process and Thread)

    一个Win32应用程序由一个或多个进程组成。在最简单的条件下,一个进程就是一个可执行程序,在该进程的环境中运行一个或多个线程。线程是操作系统分配处理器时间的基本单位。一个线程可以执行进程代码的任何部分,包括正被其他线程执行的部分。一个"纤度"(Fiber)是一个执行单位,必须由应用程序手工调度。"纤度"在调度它的线程环境中运行。

    作业对象允许进程组被作为一个单位进行管理。作业对象是可命名、可得到及可共享的对象,用于控制与其相关的进程的属性。在作业对象上完成的操作会影响所有与该作业对象相关的进程。

    进程和线程函数包括三类函数:进程和线程函数、作业对象函数、"纤度"函数。

    注册函数(Registry)

    注册表是一个系统定义的数据库,应用程序和系统构件可使用它来保存和获取配置数据。注册函数用于对注册表进行操作。

    字符串处理函数(string Manipulation)

    字符串处理函数用于对字符串进行处理。

    结构化的异常处理函数(Structured Exception Handling)

    异常是在程序执行过程中发生的一种事件,发生异常时需要执行正常的控制流程以外的代码。共有两种异常:硬件异常和软件异常。硬件异常是由CPU引发的,可能由于执行了某些指令序列而产生,比如除零操作,或访问一个无效的内存地址。软件异常是由应用程序或操作系统显式地引发。例如,当系统检测出一个无效的参数值时就会引发一个异常。

    结构化的异常处理是一种同时处理软件异常和硬件异常的机制。因此,在程序中可用作对硬件和软件异常一起进行处理。使用结构化的异常处理使用户可以完全控制对异常的处理,为调试器提供支持,并且对所有编程语言和机器都是可用的。

    同步函数(Synchronization)

    Win32 API提供了各种方法来调整执行过程中的多个进程。同步函数为线程提供了一系列对资源访问进行同步的机制。

    系统信息函数(System Information)

    系统信息函数用于修改系统的配置、设置和属性。

    系统消息函数(System Message)

    系统消息函数用于向一些系统部件发送系统消息,比如应用程序、网络驱动器、系统级设备驱动器等。

    系统关机函数(System Shutdown)

    应用程序可使用系统关机函数将当前的用户退出系统、关机,或锁定工作站。

    磁带备份函数(Tape Backup)

    备份应用程序可使用磁带备份函数从磁带中读取数据,向磁带中写入数据,初始化磁带,以及获取磁带或磁带驱动信息。

    时间函数(Time)

    Microsoft Windows和Windows NT提供了各种日期和时间函数,用于获取和设置系统及个别文件的日期和时间。

    使用时间函数可以检查和修改日期及时间。

    计时器函数(Timer)

    计时器是一个内部例程,它反复地测量一个指定的时间间隔(以毫秒为单位)。

    计时器函数用于对计时器进行操作。

    工具帮助函数(Tool Help)

    由"工具帮助库"所提供的函数可使用户更容易地获取有关当前正在执行的Win32应用程序的信息,为用户提供工具帮助服务。

    窗口站和桌面函数(Window Station and Desktop)

    窗口工作站和桌面函数主要是为Win32服务的开发人员提供的,用于对新的窗口工作站和桌面功能进行操作。开发由登录用户使用的典型应用程序的开发人员不必考虑窗口工作站和桌面。

    Windows NT 4.0访问控制函数(Windows NT 4.0 Access-Control)

    Windows NT 4.0访问控制函数用于对安全描述符和访问控制列表(ACL)进行操作。在更高版本的Windows NT中也支持这些函数。

    Windows NT 4.0访问控制函数是Microsoft Win32提供的三套访问控制函数之一。

    WinTrust函数

    WinTrust函数用于对指定的主题进行指定确认。
2009-8-6 15:50
0
雪    币: 104
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我晕~~ 还不如直接发个MSDN链接
2009-8-6 22:31
0
雪    币: 2307
活跃值: (1008)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
15
就是就是。。。
2009-8-6 23:10
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
16
是啊是啊
在这里online不好
2009-8-6 23:15
0
雪    币: 233
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
呵呵   发来这里也不错    MSDN觉得打开太慢了
2009-8-7 17:09
0
雪    币: 84
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
还不如上一个chm的附件。
2009-8-9 10:09
0
游客
登录 | 注册 方可回帖
返回
//