社区
网络编程
帖子详情
投递成功后但未完成的重叠操作如何取消掉?
saiyaman5
2011-03-24 05:03:42
如题,WSASend/WSARecv投递成功但未完成,这时由于某些原因我想取消掉,应该如何做,先closesocket(),然后再删除这两个函数锁定的缓冲区没问题吧?
...全文
90
4
打赏
收藏
投递成功后但未完成的重叠操作如何取消掉?
如题,WSASend/WSARecv投递成功但未完成,这时由于某些原因我想取消掉,应该如何做,先closesocket(),然后再删除这两个函数锁定的缓冲区没问题吧?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
哈利路亚1874
2011-03-24
打赏
举报
回复
我一般会维护一个未决链表,如果要取消掉,直接从链表中移去就行了
jwybobo2007
2011-03-24
打赏
举报
回复
可以的
stjay
2011-03-24
打赏
举报
回复
如果不再使用socket,可以closesocket
如继续使用socket,则用CancelIO,要在投递IO的线程里执行,具体看MSDN
最简单的就是全部线程执行CancelIO
fishion
2011-03-24
打赏
举报
回复
这样应该没什么问题
可以找一下网上一些成熟的例子来看看
Windows 系统错误代码简单分析
Microsoft Windows 系统错误代码简单分析: 0000
操作
已
成功
完成
。 0001 错误的函数。 0002 系统找不到指定的文件。 0003 系统找不到指定的路径。 0004 系统无法打开文件。 0005 拒绝访问。 0006 句柄无效。 0007 存储区控制块已损坏。 0008 可用的存储区不足, 无法执行该命令。 0009 存储区控制块地址无效。 0010 环境错误。 0011 试图使用不正确的格式加载程序。 0012 访问代码无效。 0013 数据无效。 0014 可用的存储区不足,无法
完成
该
操作
。 0015 系统找不到指定的驱动器。 0016 无法删除该目录。 0017 系统无法将文件移到其他磁盘驱动器上。 0018 没有其他文件。 0019 媒体写保护。 0020 系统找不到指定的设备。 0021 设备尚
未
准备好。 0022 设备无法识别该命令。 0023 数据错误(循环冗余检查)。 0024 程序发出命令,但是该命令的长度错误。 0025 驱动器在磁盘上无法定位指定的区域或磁道。 0026 无法访问指定的磁盘或软盘。 0027 驱动器找不到所请求的扇区。 0028 打印机缺纸。 0029 系统无法写入指定的设备。 0030 系统无法读取指定的设备。 0031 与系统连接的设备不能正常运转。 0032 其他进程正使用该文件,因此现在无法访问。 0033 另一进程已锁定该文件的某一部分,因此现在无法访问。 0034 驱动器中的软盘不正确。请将 %2 (卷标序列号: %3)插入驱动器 %1。 0036 打开共享的文件太多。 0038 已到达文件结尾。 0039 磁盘已满。 0050 不支持此网络请求。 0051 远程计算机无法使用。 0052 网络中存在重名。 0053 找不到网络路径。 0054 网络正忙。 0055 指定的网络资源或设备已不可用。 0056 已经达到网络命令的极限。 0057 网络适配器出现错误。 0058 指定的服务器无法执行所请求的
操作
。 0059 网络出现意外错误。 0060 远程适配器不兼容。 0061 打印机队列已满。 0062 服务器上没有存储等待打印的文件的空间。 0063 已经删除等候打印的文件。 0064 指定的网络名无法使用。 0065 拒绝访问网络。 0066 网络资源类型错误。 0067 找不到网络名。 0068 已超过本地计算机网络适配器卡的名称极限。 0069 已超过网络 BIOS 会话的极限。 0070 远程服务器已经暂停或者正在启动过程中。 0071 由于该计算机的连接数目已达到上限,此时无法再连接到该远程计算机。 0072 指定的打印机或磁盘设备已经暂停。 0080 该文件存在。 0082 无法创建该目录或文件。 0083 INT 24 失败。 0084 处理该请求的存储区不可用。 0085 正在使用该本地设备名。 0086 指定的网络密码不正确。 0087 参数错误。 0088 网络出现写入错误。 0089 此时系统无法启动其他进程。 0100 无法创建其他系统标志。 0101 属于其他进程的专用标志。 0102 标志已经设置, 无法关闭。 0103 无法再次设置该标志。 0104 中断时无法请求专用标志。 0105 此标志先前的所有权已终止。 0106 请将软盘插入驱动器 %1。 0107 后续软盘尚
未
插入,程序停止。 0108 磁盘正在使用或已由其他进程锁定。 0109 管道已经结束。 0110 系统无法打开指定的设备或文件。 0111 文件名太长。 0112 磁盘空间不足。 0113 没有其他可用的内部文件标识符。 0114 目标内部文件标识符不正确。 0117 该应用程序所运行的 IOCTL 调用不正确。 0118 校验写入的开关参数值不正确。 0119 系统不支持所请求的命令。 0120 该系统上不支持此功能。 0121 标记已超时。 0123 文件名、目录名或卷标语法错误。 0124 系统调用层不正确。 0125 磁盘没有卷标。 0126 找不到指定的模块。 0127 找不到指定的过程。 0128 没有要等候的子进程。 0129 模式下运行。 0130 试图使用
操作
(而非原始磁盘I/O)的已打开磁盘分区的文件句柄。 0131 试图将文件指针移至文件开头之前。 0132 无法在指定的设备或文件中设置文件指针。 0133 对于包含已连接驱动器的驱动器,不能使用 JOIN 或 SUBST 命令。 0134 试图在已经连接的驱动器上使用 JOIN 或 SUBST 命令。 0135 试图在已经替换的驱动器上使用 JOIN 或 SUBST 命令。 0136 系统试图删除尚
未
连接的驱动器的 JOIN。 0137 系统试图删除尚
未
替换的驱动器的替换项。 0138 系统试图将驱动器连接到已连接的驱动器下的目录。 0139 系统试图将驱动器替换成已替换的驱动器下的目录。 0140 系统试图将驱动器连接到已替换的驱动器的一个目录中。 0141 系统试图将驱动器替换成到已连接的驱动器下的目录。 0142 此时系统无法运行 JOIN 或 SUBST。 0143 系统无法将驱动器连接到或替换成同一驱动器下的目录。 0144 此目录不是该根目录的子目录。 0145 该目录
未
清空。 0146 指定的路径已经在替换中使用。 0147 资源不足,无法执行该命令。 0148 此时无法使用指定的路径。 0149 试图连接或替换某个驱动器目录,该驱动器上的某个目录是上一次替换的目标目录。 0150 CONFIG.SYS 文件
未
指定系统跟踪信息,或禁止跟踪。 0151 DosMuxSemWait 的指定信号事件的数目不正确。 0152 DosMuxSemWait 没有运行;已经设置太多的标志。 0153 DosMuxSemWait 列表不正确。 0154 输入的卷标超过目标文件系统的标号字符长度极限。 0155 无法创建其他线程。 0156 接收进程拒绝该信号。 0157 已经放弃该区域,因此无法锁定。 0158 该区域已经解除锁定。 0159 线程标识符的地址错误。 0160 传到 DosExecPgm 的参数字符串错误。 0161 指定的路径无效。 0162 信号已挂起。 0164 系统无法创建其他线程。 0167 无法锁定文件的范围。 0170 所要求的资源正在使用中。 0173 锁定请求对于提供的
取消
区域不重要。 0174 文件系统不支持到锁定类型的自动更改。 0180 系统检测到错误的区域号码。 0182
操作
系统无法运行 %1。 0183 不能创建已经存在的文件。 0186 传送的标志不正确。 0187 找不到指定的系统信号名称。 0188
操作
系统无法运行 %1。 0189
操作
系统无法运行 %1。 0190
操作
系统无法运行 %1。 0191 无法在 Win32 模式下运行 %1。 0192
操作
系统无法运行 %1。 0193 %1 不是有效的 Win32 应用程序。 0194
操作
系统无法运行 %1。 0195
操作
系统无法运行 %1。 0196
操作
系统无法运行此应用程序。 0197 当前无法配置
操作
系统运行此应用程序。 0198
操作
系统无法运行 %1。 0199
操作
系统无法运行此应用程序。 0200 代码段应小于 64K。 0201
操作
系统无法运行 %1。 0202
操作
系统无法运行 %1。 0203 系统找不到输入的环境选项。 0205 在命令子树中的进程没有信号句柄。 0206 文件名或扩展名太长。 0207 环 2 堆栈正在使用中。 0208 输入的全局文件名字符 * 或 ? 不正确,或指定的全局文件名字符太多。 0209 所发送的信号不正确。 0210 无法设置信号处理程序。 0212 区域已锁定,无法重新分配。 0214 附加到此程序或动态链接模块的动态链接模块太多。 0215 无法嵌套调用 LoadModule。 0216 图像文件 %1 有效,但不适用于本机类型。 0230 管道状态无效。 0231 所有的管道实例都处于忙状态。 0232 管道正在关闭。 0233 在管道的另一端没有进程。 0234 有更多可用的数据。 0240 已
取消
会话。 0254 指定的扩展属性名无效。 0255 扩展属性不一致。 0258 等待
操作
过时。 0259 没有其他可用数据。 0266 无法使用复制功能。 0267 目录名无效。 0275 扩展属性不匹配缓冲区。 0276 所装载的文件系统上的扩展属性文件已被损坏。 0277 扩展属性表格文件已满。 0278 指定的扩展属性句柄无效。 0282 安装的文件系统不支持扩展属性。 0288 试图释放不属于调用者的多路同步信号。 0298 信号
投递
的次数太多。 0299 仅
完成
部分 ReadProcessMemory 或 WriteProcessMemory 请求。 0300
操作
锁定请求被拒绝。 0301 系统接收了一个无效的
操作
锁定确认。 0317 在 %2 的消息文件中,系统无法找到消息号为 0x%1 的消息文本。 0487 试图访问无效地址。 0534 运算结果超过 32 位。 0535 该管道的另一方有一进程。 0536 等候进程打开管道的另一端。 0994 拒绝对扩展属性的访问。 0995 由于线程退出或应用程序的要求, I/O
操作
异常终止。 0996
重叠
的 I/O 事件不处于已标记状态。 0997 正在处理
重叠
的 I/O
操作
。 0998 对内存位置的无效访问。 0999 执行页内
操作
出错。 1001 递归太深;堆栈溢出。 1002 窗口无法用来发送消息。 1003 无法
完成
此项功能。 1004 标志无效。 1005 卷不包含已识别的文件系统。请确认所有需要的文件系统驱动程序都已经加载,而且卷没有任何损坏。 1006 某文件的卷已在外部改变,因而打开的文件不再有效。 1007 要求的
操作
无法以全屏幕模式执行。 1008 试图引用并不存在的符号。 1009 配置注册表数据库已损坏。 1010 配置注册表主键无效。 1011 无法打开配置注册表主键。 1012 无法读取配置注册表主键。 1013 无法写入配置注册表主键。 1014 必须使用日志文件或其他副本来恢复注册表数据库中的某个文件。恢复
成功
。 1015 注册表已损坏。可能是一个包含注册表数据文件的结构已损坏,也可能内存中该文件的系统映像已损坏,或者因为备份副本(或日志)不存在(或损坏)导致无法恢复该文件。 1016 由注册表引起的 I/O
操作
发生了不可恢复的错误。注册表将不能读取、写出或刷新包含注册表系统映像的其中一个文件。 1017 系统试图将文件加载或还原到注册表中,但是,指定的文件不是注册表文件格式。 1018 试图在注册表键(已经标记为删除)中
完成
的
操作
非法。 1019 系统无法在注册表日志文件中分配所需的空间。 1020 无法在已经有子键或键值的注册表项中创建符号链接。 1021 在易失的父键下不能创建固定的子键。 1022 通知的更改请求已经
完成
,并且返回信息还没有被送到调用者的缓冲区中。调用者需要列举所有文件以找到改动的内容。 1051 已将停止控制发送给与其他运行服务相关的服务。 1052 所要求的控制对此服务无效。 1053 服务没有及时地响应启动或控制请求。 1054 无法为该服务创建线程。 1055 服务数据库已锁定。 1056 该服务的实例已在运行。 1057 帐户名无效或者不存在,或者指定帐户名的密码无效。 1058 服务无法启动,可能因为被禁用,也可能因为没有关联的可用设备。 1059 已经指定了循环服务的从属关系。 1060 指定的服务不是所安装的服务。 1061 该服务此时无法接收控制消息。 1062 服务尚
未
启动。 1063 服务进程无法连接到服务控制程序。 1064 处理控制请求时,服务出现意外情况。 1065 指定的数据库不存在。 1066 服务返回服务特定的错误码。 1067 进程意外地终止。 1068 无法启动从属服务或组。 1069 由于登录失败,没有启动服务。 1070 启动后,服务保持在启动挂起状态。 1071 指定的服务数据库锁定无效。 1072 指定的服务已经标记为删除。 1073 指定的服务已经存在。 1074 系统当前正以上一次运行
成功
的配置运行。 1075 从属服务不存在,或已经标记为删除。 1076 已接受使用当前引导作为最后的有效控制设置。 1077 自从上一次启动以后,没有再次启动过该服务。 1078 该名称已经用作服务名或服务显示名。 1079 此服务的帐户不同于运行于同一进程上的其它服务的帐户。 1080 只能为 Win32 服务设置失败
操作
,不能为驱动程序设置。 1081 这个服务所运行的进程和服务控制管理器相同。所以,如果服务进程意外中止的话,服务控制管理器无法进行任何
操作
。 1082 这个服务没有设置恢复程序。 1083 配置成在该可执行程序中运行的这个服务不能执行该服务。 1100 已经到达磁带的物理尽头。 1101 磁带访问到文件标记。 1102 到达磁带或分区首部。 1103 磁带访问到文件组的末尾。 1104 磁带上没有其他数据。 1105 磁带无法分区。 1106 访问多重卷分区的新磁带时, 当前的区块大小不正确。 1107 加载磁带时,找不到磁带分区信息。 1108 无法锁定媒体退出功能。 1109 无法卸载媒体。 1110 驱动器中的媒体已经更改。 1111 已经复位 I/O 总线。 1112 驱动器中没有媒体。 1113 在目标多字节代码页中不存在对单码字符的映射。 1114 动态链接库 (DLL) 初始化例程失败。 1115 正在关闭系统。 1116 无法终止系统关机,因为没有进行中的关机
操作
。 1117 由于 I/O 设备出现错误,无法运行该请求。 1118 串行设备初始化失败。将卸载串行驱动程序。 1119 无法打开正与其他设备共享中断请求 (IRQ) 的设备。至少有一个使用该 IRQ 的设备已经打开。 1120 由于再次写入串行口,串行 I/O
操作
已结束。(IOCTL_SERIAL_XOFF_COUNTER 为零。) 1121 由于超时,串行 I/O
操作
已结束。 (IOCTL_SERIAL_XOFF_COUNTER
未
达到零。) 1122 在软盘上找不到标识符地址标记。 1123 软盘扇区标识符字段与软盘控制器磁道地址不匹配。 1124 软盘控制器报告软盘驱动程序不能识别的错误。 1125 软盘控制器返回的结果和注册的不一致。 1126 访问硬盘时,再校准
操作
失败,再试一次后也无法
操作
。 1127 访问硬盘时,磁盘
操作
失败,再试一次后仍没有作用。 1128 访问硬盘时,需要重启动磁盘控制器,但仍
未
成功
。 1129 磁带已卷到尽头。 1130 可用的服务器存储区不足,无法执行该命令。 1131 检测到潜在的死锁情况。 1132 指定的基址或文件偏移量没有正确对齐。 1140 试图更改系统电源状态的
操作
被另一应用程序或驱动程序禁止。 1141 系统 BIOS 无法更改系统电源状态。 1142 试图在一文件上创建超过系统允许数额的链接。 1150 指定的程序需要新的 Windows 版本。 1151 指定的程序不是 Windows 或 MS-DOS 程序。 1152 无法启动指定程序的多个实例。 1153 指定的程序是为 Windows 的早期版本编写的。 1154 运行此应用程序所需的某个库文件已损。 1155 没有应用程序与该
操作
中所指定的文件关联。 1156 将命令发送到应用程序时出现错误。 1157 找不到运行此应用程序所需的某个库文件。 1158 当前进程已使用了 Window 管理器对象的系统允许的所有句柄。 1159 消息只能与同步
操作
一起使用。 1160 指出的源元素没有媒体。 1161 指出的目标元素已包含媒体。 1162 指出的元素不存在。 1163 指出的元素是
未
显示的存储资源的一部分。 1164 指出的设备需要重新初始化,因为硬件有错误。 1165 设备显示在尝试进一步
操作
之前需要清除。 1166 设备显示它的门仍是打开状态。 1167 设备没有连接。 1168 找不到元素。 1169 索引中没有同指定项相匹配的项。 1170 在对象上不存在指定的属性集。 1171 传递到 GetMouseMovePoints 的点不在缓冲区中。 1172 跟踪(工作站)服务没运行。 1173 找不到卷 ID。 1175 无法删除要被替换的文件。 1176 无法将替换文件移到要被替换的文件。要被替换的文件保持原来的名称。 1177 无法将替换文件移到要被替换的文件。要被替换的文件已被重新命名为备份名称。 1178 卷更改记录被删除。 1179 卷更改记录服务不处于活动中。 1180 找到一份文件,但是可能不是正确的文件。 1181 日志项已从日志中删除。 1200 指定的设备名无效。 1201 设备当前虽然
未
连接, 但它是记忆连接。 1202 试图记起已经记住的设备。 1203 网络供应商不接受给定的网络路径。 1204 指定的网络供应商名无效。 1205 无法打开网络连接配置文件。 1206 网络连接配置文件已损坏。 1207 无法列举非包容类。 1208 出现扩展错误。 1209 指定组名的格式无效。 1210 指定计算机名的格式无效。 1211 指定事件名的格式无效。 1212 指定域名的格式无效。 1213 指定服务名的格式无效。 1214 指定网络名的格式无效。 1215 指定共享名的格式无效。 1216 指定密码的格式无效。 1217 指定的邮件名无效。 1218 指定邮件目的地的格式无效。 1219 所提供的凭据与现有凭据设置冲突。 1220 试图与网络服务器建立会话,但目前与该服务器建立的会话太多。 1221 网络上的其他计算机已经使用该工作组或域名。 1222 网络不存在或者没有启动。 1223 用户已经
取消
该
操作
。 1224 所要求的
操作
无法在已经打开用户映射区域的文件中运行。 1225 远程系统拒绝网络连接。 1226 已经关闭网络连接。 1227 网络传输的终点已经有一个地址与其关联。 1228 网络终点尚
未
与地址关联。 1229 试图在不存在的网络连接中
操作
。 1230 试图在活动的网络连接上进行无效
操作
。 1231 不能访问网络位置。有关网络疑难解答的信息,请参阅 Windows 帮助。 1232 不能访问网络位置。有关网络疑难解答的信息,请参阅 Windows 帮助。 1233 不能访问网络位置。有关网络疑难解答的信息,请参阅 Windows 帮助。 1234 远程系统的目标网络端点没有运行任何服务。 1235 该请求已经终止。 1236 本地系统已经终止网络连接。 1237 无法
完成
操作
。请再试一次。 1238 无法创建到该服务器的连接,因为已经到达了该帐户同时连接的最大数目。 1239 试图在该帐户
未
授权的时间内登录。 1240 尚
未
授权此帐户从该站登录网络。 1241 网络地址无法用于要求的
操作
。 1242 服务已经注册。 1243 指定的服务不存在。 1244 由于尚
未
验证用户身份,无法执行要求的
操作
。 1245 由于用户尚
未
登录网络,无法运行要求的
操作
。指定的服务不存在。 1246 继续工作。 1247
完成
初始化
操作
后,试图再次运行初始化
操作
。 1248 没有其他本地设备。 1249 指定的站点不存在。 1250 具有指定名称的域控制器已经存在。 1251 只有连接到服务器上时,才支持该
操作
。 1252 即使没有改动,组策略框架也应该调用扩展。 1253 指定的用户没有一个有效的配置文件。 1254 Microsoft Small Business Server 不支持此
操作
。 1300 不是对所有的调用方分配引用特权。 1301 帐户名与安全标识符之间的映射
未
完成
。 1302 没有为该帐户明确地设置系统配额限制。 1303 没有可用的密钥。返回已知的密钥。 1304 密码太复杂, 无法转换成 LAN Manager 密码。返回的 LAN Manager 密码是空字符串。 1305 修订级别
未
知。 1306 表示两个修订级别不兼容。 1307 无法将此安全标识符指定为该对象的拥有者。 1308 无法将此安全标识符指定为主要的对象组。 1309 当前并
未
模拟客户的线程试图
操作
模拟令牌。 1310 不可以禁用该组。 1311 目前没有可用的登录服务器处理登录请求。 1312 指定的登录会话不存在。该会话可能已终止。 1313 指定的权限不存在。 1314 客户不保留请求的权限。 1315 提供的名称不是正确的帐户名称格式。 1316 指定的用户已经存在。 1317 指定的用户不存在。 1318 指定的组已经存在。 1319 指定的组不存在。 1320 或者指定的用户帐户已经是某个特定组的成员,或者也可能指定的组非空而不能被删除。 1321 指定的用户帐户不是所指定组帐户的成员。 1322 上次保留的管理帐户无法关闭或删除。 1323 无法更新密码。所输入的密码不正确。 1324 无法更新密码。所提供的新密码包含不可用于密码的值。 1325 无法更新密码。为新密码提供的值不符合字符域的长度、复杂性或历史要求。 1326 登录失败: 用户名
未
知或密码错误。 1327 登录失败: 用户帐户限制。 1328 登录失败: 违反帐户登录时间限制。 1329 登录失败: 禁止用户登录到该计算机上。 1330 登录失败: 指定的帐户密码已过期。 1331 登录失败: 当前禁用帐户。 1332
未
完成
帐户名与安全性标识符之间的映射。 1333 一次请求的本地用户标识符(LUID)太多。 1334 没有其他可用的本地用户标识符(LUID)。 1335 对这个特定使用来说,安全标识符的子部分是无效的。 1336 访问控制清单(ACL)结构无效。 1337 安全标识符结构无效。 1338 安全描述符结构无效。 1340 无法创建继承的访问控制列表(ACL)或访问控制项目(ACE)。 1341 当前已禁用服务器。 1342 当前已启用服务器。 1343 所提供的值是无效的标识符授权值。 1344 没有更多的内存用于更新安全信息。 1345 指定的属性无效,或指定的属性与整个组的属性不兼容。 1346 或者没有提供所申请的模仿级别,或者提供的模仿级别无效。 1347 无法打开匿名级安全性符号。 1348 所请求的验证信息类别无效。 1349 该类符号不能以所尝试的方式使用。 1350 无法在没有相关安全性的对象上运行安全
操作
。 1351
未
能从域控制器读取配置信息,或者是因为机器不可使用,或者是访问被拒绝。 1352 安全帐户管理程序(SAM)或本地安全颁发机构(LSA)服务器状态不正确,所以无法运行安全
操作
。 1353 域处于执行安全
操作
的错误状态。 1354 该
操作
只能在域的主域控制器中执行。 1355 指定的域不存在或联系不上。 1356 指定的域已经存在。 1357 试图超过每个服务器域数目的极限。 1358 由于严重的媒体错误或磁盘的数据结构损坏,无法
完成
所请求的
操作
。 1359 发生内部错误。 1360 通用的访问类型包含在访问掩码中,该掩码已经映射为非通用类型。 1361 安全性描述符的格式错误(绝对或自相关)。 1362 请求的
操作
只准登录进程使用。该调用过程并
未
被记录为登录进程。 1363 无法用已经使用的标识符来启动新的登录会话。 1364 指定的确认数据包
未
知。 1365 登录会话的状态与请求的
操作
不一致。 1366 登录会话标识符正在使用中。 1367 登录请求包含无效的登录类型值。 1368 在使用命名管道读取数据之前,无法经由该管道模拟。 1369 注册表子树的事务状态与所请求的
操作
不兼容。 1370 突发的内部安全性数据库故障。 1371 无法在内部帐户下运行该
操作
。 1372 无法在该内部特定组中运行该
操作
。 1373 无法在该内部特定用户中运行该
操作
。 1374 因为该组当前是用户的主要组,所以不能从此组中删除用户。 1375 该符号已作为主要符号使用。 1376 指定的本地组不存在。 1377 指定的帐户名不是本地组的成员。 1378 指定的帐户名已经是本地组的成员。 1379 指定的本地组已经存在。 1380 登录失败: 用户在本计算机上没有被授与所需注册类型。 1381 超过了可以存储在单个系统中的最大机密限制。 1382 机密的长度超过了最大允许值。 1383 本地安全授权数据库包含内部不一致的错误。 1384 登录时,用户的安全性上下文累积太多的安全标识符。 1385 登录失败: 用户在本计算机上没有被授与所需注册类型。 1386 经交叉加密的密码必须更改用户密码。 1387 成员不存在,因此无法将其添加到本地组或从中删除。 1388 新成员的帐户类型有误,因此无法将其添加到本地组。 1389 指定的安全标识符太多。 1390 经交叉加密的密码必须更改该用户密码。 1391 表示 ACL 没有可继承的组件。 1392 文件或目录已损坏,无法读取数据。 1393 磁盘结构已损坏,无法读取数据。 1394 指定的登录会话没有用户会话密钥。 1395 正在访问的服务允许特定数目的连接。因为连接的数目已达到服务可接受的数目,所以此时无法创建新的服务连接。 1396 登录失败: 该目标帐户名称不正确。 1397 相互身份验证失败。该服务器在域控制器的密码过期。 1398 在客户机和服务器之间有一个时间差。 1400 窗口句柄无效。 1401 菜单句柄无效。 1402 光标句柄无效。 1403 加速键表的句柄无效。 1404 挂接句柄无效。 1405 多重窗口位置结构句柄无效。 1406 无法创建最上层的子窗口。 1407 找不到窗口类。 1408 窗口无效;属于其他线程。 1409 已经注册热键。 1410 类已经存在。 1411 类不存在。 1412 类窗口仍打开着。 1413 索引无效。 1414 图标句柄无效。 1415 使用私人对话框窗口字。 1416 找不到列表框标识符。 1417 找不到任何通配符。 1418 线程没有打开剪贴板。 1419 尚
未
注册热键。 1420 该窗口不是有效的对话框窗口。 1421 找不到控制标识符。 1422 由于没有编辑控制, 因此该组合框的消息无效。 1423 窗口不是组合框。 1424 高度必须小于 256。 1425 设备上下文(DC)句柄无效。 1426 挂接过程类型无效。 1427 挂接过程无效。 1428 不能在无模块句柄的情况下设置非本地的挂接。 1429 只能全局设置该挂接过程。 1430 已安装日记挂接过程。 1431
未
安装挂接过程。 1432 单选列表框的消息无效。 1433 LB_SETCOUNT 发送到活动的列表框。 1434 该列表框不支持制表符。 1435 无法破坏由其他线程所创建的对象。 1436 子窗口不能有菜单。 1437 窗口没有系统菜单。 1438 消息框样式无效。 1439 系统范围内的(SPI_*)的参数无效。 1440 屏幕已经锁定。 1441 多重窗口位置结构中所有窗口句柄必须具有相同的父窗口。 1442 窗口不是子窗口。 1443 GW_* 命令无效。 1444 线程标识符无效。 1445 无法处理非多文档接口(MDI)窗口的消息。 1446 弹出式菜单已激活。 1447 窗口没有滚动条。 1448 滚动条范围不能大于 MAXLONG。 1449 无法以指定的方式显示或关闭窗口。 1450 系统资源不足,无法
完成
所请求的服务。 1451 系统资源不足,无法
完成
所请求的服务。 1452 系统资源不足,无法
完成
所请求的服务。 1453 配额不足,无法
完成
请求的服务。 1454 配额不足,无法
完成
请求的服务。 1455 页面交换文件太小,无法
完成
此项
操作
。 1456 找不到菜单项。 1457 键盘布局句柄无效。 1458 不允许使用挂钩类型。 1459 该
操作
需要交互式窗口工作站。 1460 由于超时时间已过,该
操作
返回。 1461 无效监视器句柄。 1500 事件日志文件已损坏。 1501 无法打开事件日志文件, 因此无法启动事件记录服务。 1502 事件日志文件已满。 1503 事件日志文件在两次读取
操作
间已发生变化。 1601 无法访问 Windows 安装服务。请与技术支持人员联系,确认 Windows 安装服务是否注册正确。 1602 用户
取消
了安装。 1603 安装时发生严重错误。 1604 安装已挂起,
未
完成
。 1605 这个
操作
只对当前安装的产品有效。 1606 功能 ID
未
注册。 1607 组件 ID
未
注册。 1608
未
知属性。 1609 句柄处于不正确的状态。 1610 这个产品的配置数据已损坏。请与技术支持人员联系。 1611 组件限制语不存在。 1612 这个产品的安装来源无法使用。请验证来源是否存在,是否可以访问。 1613 Windows 安装服务无法安装这个安装程序包。您必须安装含有 Windows 安装服务新版本的 Windows Service Park。 1614 产品已卸载。 1615 SQL 查询语法不正确或不被支持。 1616 记录字符域不存在。 1617 设备已被删除。 1618 正在进行另一个安装
操作
。请在继续这个安装
操作
之前
完成
那个
操作
。 1619
未
能打开这个安装程序包。请验证程序包是否存在,是否可以访问;或者与应用程序供应商联系,验证这是否是有效的 Windows 安装程序包。 1620
未
能打开这个安装程序包。请与应用程序供应商联系,验证这是否是有效的 Windows 安装程序包。 1621 启动 Windows 安装服务用户界面时有错误。请与技术支持人员联系。 1622 打开安装日志文件时出错。请验证指定的日志文件位置是否存在,是否可以写入。 1623 安装程序包的语言不受系统支持。 1624 应用变换时出错。请验证指定的变换路径是否有效。 1625 系统策略禁止这个安装。请与系统管理员联系。 1626 无法执行函数。 1627 执行期间,函数出了问题。 1628 指定了无效的或
未
知的表格。 1629 提供的数据类型不对。 1630 这个类型的数据不受支持。 1631 Windows 安装服务
未
能启动。请与技术支持人员联系。 1632 临时文件夹已满或无法使用。请验证临时文件夹是否存在,是否可以写入。 1633 这个处理器类型不支持该安装程序包。请与产品供应商联系。 1634 组件没有在这台计算机上使用。 1635 无法打开修补程序包。请验证修补程序包是否存在,是否可以访问;或者与应用程序供应商联系,验证这是否是有效的 Windows 安装修补程序包。 1636 无法打开修补程序包。请与应用程序供应商联系,验证这是否是有效的 Windows 安装修补程序包。 1637 Windows 安装服务无法处理这个修补程序包。您必须安装含有 Windows 安装服务新版本的 Windows Service Pack。 1638 已安装这个产品的另一个版本。这个版本的安装无法继续。要配置或删除这个产品的现有版本,请用“控制面板”上的“添加/删除程序”。 1639 无效的命令行参数。有关详细的命令行帮助,请查阅 Windows 安装服务的 SDK。 1640 在终端服务远程会话期间,只有管理员有添加、删除或配置服务器软件的权限。如果您要在服务器上安装或配置软件,请与网络管理员联系。 1641 要求的
操作
已
成功
结束。要使改动生效,必须重新启动系统。 1642 Windows 安装服务无法安装升级修补程序,因为被升级的程序丢失,或者升级修补程序将更新此程序的其他版本。请确认要被升级的程序在您的计算机上且您的升级修补程序是正确的。 1700 串绑定无效。 1701 绑定句柄的类型错误。 1702 绑定句柄无效。 1703 不支持 RPC 协议顺序。 1704 RPC 协议序列无效。 1705 字符串的全球唯一标识符(UUID)无效。 1706 终点的格式无效。 1707 网络地址无效。 1708
未
找到终点。 1709 超时设置值无效。 1710 找不到该对象的全球唯一标识符(UUID)。 1711 该对象的全球唯一标识符(UUID)已经注册。 1712 这一类型的全球唯一标识符(UUID)已经注册。 1713 RPC 服务器正在监听。 1714 尚
未
注册协议顺序。 1715 RPC 服务器不处于监听状态。 1716 管理程序的类型
未
知。 1717 接口
未
知。 1718 没有绑定。 1719 没有协议序列。 1720 无法创建终点。 1721 资源不足, 无法
完成
该
操作
。 1722 RPC 服务器无法使用。 1723 RPC 服务器太忙,无法
完成
此项
操作
。 1724 网络选项无效。 1725 该线程中不存在活动的远程过程调用。 1726 远程过程调用失败。 1727 远程过程调用失败并且无法执行。 1728 远程过程调用(RPC)协议出现错误。 1730 RPC 服务器不支持传输语法。 1732 不支持这种类型的全球唯一标识符。 1733 标识无效。 1734 数组边界无效。 1735 绑定类型中不包含项目名。 1736 名称语法无效。 1737 不支持这种命名语法。 1739 没有可用的网络地址,无法创建全球唯一标识符(UUID)。 1740 终结点重复。 1741 身份验证类型
未
知。 1742 调用次数的上限太小。 1743 字符串太长。 1744 找不到 RPC 协议序列。 1745 过程号超出范围。 1746 此次绑定不包含任何身份验证信息。 1747 身份验证服务
未
知。 1748 身份验证级别
未
知。 1749 安全描述符无效。 1750 身份验证服务
未
知。 1751 项目无效。 1752 服务器的终结点无法执行此项
操作
。 1753 终点的映射器没有更多的终点可用。 1754 没有导出任何接口。 1755 项目名不完整。 1756 版本选项无效。 1757 没有其他成员。 1758 可以导出全部内容。 1759
未
找到接口。 1760 项目已经存在。 1761 项目找不到。 1762 名称服务不可用。 1763 网络地址集无效。 1764 不支持请求的
操作
。 1765 没有可供冒仿的安全性描述符。 1766 远程过程调用(RPC)出现内部错误。 1767 RPC 服务器企图进行整除零运算。 1768 RPC 服务器出现寻址错误。 1769 RPC 服务器中的浮点运算造成被零除。 1770 RPC 服务器产生了浮点下溢错误。 1771 RPC 服务器产生了浮点上溢错误。 1772 可用于自动句柄绑定的 RPC 服务器列表已经用完。 1773 无法打开字符转换表文件。 1774 包含字符转换表的文件小于 512 个字节。 1775 在远程过程调用中,客户机向主机传送了一个空的描述体句柄。 1777 远程过程调用中的描述体句柄发生变化。 1778 发送到远程过程调用的绑定句柄不匹配。 1779 占位程序无法获得远程过程调用的句柄。 1780 将空的参考指针发送给占位程序。 1781 列举值超出范围。 1782 字节数目太小。 1783 占位程序接收到错误数据。 1784 所提供的用户缓冲区对所申请的
操作
无效。 1785 无法识别磁盘媒体。它可能还
未
格式化。 1786 工作站没有信任密码。 1787 服务器上的安全数据库中没有该工作站信任关系的计算机帐户。 1788 建立主域和受托域间的信任关系失败。 1789 建立工作站和主域间的信任关系失败。 1790 网络登录失败。 1791 该线程执行过程中已经进行了远程过程调用。 1792 试图登录网络,但网络登录服务尚
未
启动。 1793 用户帐户已到期。 1794 重定向程序正在使用,无法卸载。 1795 已经安装所指定的打印机驱动程序。 1796 指定的端口
未
知。 1797 打印机驱动程序
未
知。 1798 打印处理程序
未
知。 1799 指定的分隔符文件无效。 1800 指定的优先级无效。 1801 打印机名无效。 1802 打印机已经存在。 1803 打印机命令无效。 1804 指定的数据类型无效。 1805 指定的环境无效。 1806 没有其他绑定。 1807 使用的帐户是跨网络的信任帐户。请使用全局用户帐户或本地用户帐户来访问此服务器。 1808 所使用的帐户是计算机帐户。请使用全局用户帐户或本地用户帐户来访问该服务器。 1809 使用的帐户是服务器信任帐户。请使用全局用户帐户或本地用户帐户来访问该服务器。 1810 指定的域名或安全标识符与域的信任信息不一致。 1811 服务器正在使用中, 无法卸载。 1812 指定的映像文件不包含资源部分。 1813 在映像文件中找不到指定的资源类型。 1814 在映像文件中找不到指定的资源名称。 1815 在映像文件中找不到指定的资源语言 ID 。 1816 可用的配额不足,无法执行该命令。 1817 没有已注册的接口。 1818 远程过程调用被
取消
。 1819 绑定句柄不包含所有需要的信息。 1820 远程调用过程中发生通讯失败。 1821 所需的身份验证级别不被支持。 1822 主要的名称没有注册。 1823 指定的错误不是有效的 Windows RPC 错误代码。 1824 已分配仅在本机上有效的 UUID。 1825 产生了特定的安全包错误。 1826 没有
取消
线程。 1827 在编码/解码处理时的
操作
无效。 1828 序列化软件包的版本不兼容。 1829 RPC 占位程序的版本不兼容。 1830 RPC 管道对象无效或已损坏。 1831 试图在 RPC 管道对象上进行无效
操作
。 1832 不被支持的 RPC 管道版本。 1898 找不到组成员。 1899 无法创建终结点映射数据库条目。 1900 对象的全球标识符(UUID)为空。 1901 指定的时间无效。 1902 指定的表单名无效。 1903 指定的表单大小无效。 1904 指定的打印机句柄正在等候处理 1905 指定的打印机已经删除。 1906 打印机的状态无效。 1907 用户首次登录前,必须先更改其密码。 1908 找不到该域的域控制器。 1909 引用的帐户目前被锁定,可能无法登录。 1910 没有发现指定的此对象导出者。 1911 没有发现指定的对象。 1912 没有发现指定的对象解析器。 1913 一些待发数据仍停留在请求缓冲区内。 1914 无效的异步远程过程调用句柄。 1915 这个
操作
的异步 RPC 调用句柄不正确。 1916 RPC 管道对象已经关闭。 1917 RPC 调用在全部的管道都被处理之前
完成
。 1918 没有其他可用的数据来自 RPC 管道。 1919 这个机器没有可用的站点名。 1920 系统无法访问此文件。 1921 系统无法解析文件名。 1922 项目不是所要的类型。 1923 无法将所有对象的 UUID 导出到指定的项。 1924 无法将接口导出到指定的项。 1925 无法添加指定的配置文件项。 1926 无法添加指定的配置文件元素。 1927 无法删除指定的配置文件元素。 1928 无法添加组元素。 1929 无法删除组元素。 2000 像素格式无效。 2001 指定的驱动程序无效。 2002 该
操作
的窗口样式或类属性无效。 2003 不支持请求的图元文件
操作
。 2004 不支持请求的转换
操作
。 2005 不支持请求的剪辑
操作
。 2010 指定的颜色管理模块无效。 2011 指定的颜色文件配置无效。 2012 找不到指定的标识。 2013 所需的标识不存在。 2014 指定的标识已经存在。 2015 指定的颜色文件配置与任何设备都不相关。 2016 找不到该指定的颜色文件配置。 2017 指定的颜色空间无效。 2018 图像颜色管理没有启用。 2019 在删除该颜色转换时有一个错误。 2020 指定的颜色转换无效。 2021 指定的转换与位图的颜色空间不匹配。 2022 指定的命名颜色索引在配置文件中不存在。 2108 网络连接已
成功
, 但需要提示用户输入一个不同于原始指定的密码。 2202 指定的用户名无效。 2250 网络连接不存在。 2401 在这个网络连接上已存在打开的文件或
未
处理的请求。 2402 活动的连接仍然存在。 2404 设备正由活动进程使用,无法断开连接。 3000 指定的打印监视程序
未
知。 3001 指定的打印机驱动程序正在使用中。 3002 找不到假脱机文件。 3003 没有发出 StartDocPrinter 调用。 3004 尚
未
发出 AddJob 调用。 3005 指定的打印处理程序已经安装。 3006 指定的打印监视程序已经安装。 3007 该指定的打印监视器不具备所要求的功能。 3008 指定的打印机监视器正在使用中。 3009 当打印机有作业排成队列时此
操作
请求是不允许的。 3010 请求的
操作
成功
。只有重新启动系统,更改才会生效。 3011 请求的
操作
成功
。只有重新启动服务,更改才会生效。 3012 找不到打印机。 4000 WINS 在处理命令时遇到执行错误。 4001 无法删除本地的 WINS。 4002 从文件引入失败。 4003 备份失败。以前执行过完整的备份吗? 4004 备份失败。请检查备份数据库的目标目录。 4005 名称在 WINS 数据库中不存在。 4006 不允许进行
未
配置部分的复制。 4100 DHCP 客户获得一个在网上已被使用的 IP 地址。直到 DHCP 客户可以获得新的地址前,本地接口将被禁用。 4200 WMI 数据提供程序不能识别传来的 GUID 是否有效。 4201 WMI 数据提供程序无法识别传来的实例名是否有效。 4202 WMI 数据提供程序无法识别传来的数据项目标识符是否有效。 4203 无法
完成
WMI 请求,请重试一次。 4204 找不到 WMI 数据提供程序。 4205 WMI 数据提供程序引用到一个
未
注册的实例组。 4206 WMI 数据块或事件通知已启用。 4207 WMI 数据块不再可用。 4208 WMI 数据服务无法使用。 4209 WMI 数据提供程序无法
完成
请求。 4210 WMI MOF 信息无效。 4211 WMI 注册信息无效。 4212 WMI 数据块或事件通知已禁用。 4213 WMI 数据项目或数据块为只读。 4214 WMI 数据项目或数据块不能更改。 6118 该工作组的服务器列表当前不可用。 6200 要正常运行,任务计划程序服务的配置必须在系统帐户中运行。单独的任务可以被配置成在其他帐户中运行。 7001 指定的会话名无效。 7002 指定的协议驱动程序无效。 7003 在系统路径上找不到指定的协议驱动程序。 7004 在系统路径上找不到指定的终端连接驱动程序。 7005 不能为这个会话创建一个事件日志的注册键。 7006 同名的一个服务已经在系统中存在。 7007 在会话上一个关闭
操作
挂起。 7008 没有可用的输出缓冲器。 7009 找不到 MODEM.INF 文件。 7010 在 MODEM.INF 中没有找到调制解调器名称。 7011 调制解调器没有接受发送给它的指令。验证配置的调制解调器与连接的调制解调器是否匹配。 7012 调制解调器没有响应发送给它的指令。验证该调制解调器是否接线正确并且打开了电源开关。 7013 由于断开连接,载波检测失败或载波停止。 7014 在要求的时间内没有发现拨号音。确定电话线连接正确并可使用。 7015 在远程站点回叫时检测到了占线信号。 7016 在回叫时远程站点上检测到了声音。 7017 传输驱动程序错误 7022 找不到指定的会话。 7023 指定的会话名称已处于使用中。 7024 由于终端连接目前正在忙于处理一个连接、断开连接、复位或删除
操作
,无法
完成
该请求的
操作
。 7025 试图连接到其视频模式不受当前客户支持的会话。 7035 应用程序尝试启动 DOS 图形模式。不支持 DOS 图形模式。 7037 您的交互式登录权限已被禁用。请与您的管理员联系。 7038 该请求的
操作
只能在系统控制台上执行。这通常是一个驱动程序或系统 DLL 要求直接控制台访问的结果。 7040 客户
未
能对服务器连接消息作出响应。 7041 不支持断开控制台会话。 7042 不支持重新将一个断开的会话连接到控制台。 7044 远程控制另一个会话的请求被拒绝。 7045 拒绝请求的会话访问。 7049 指定的终端连接驱动程序无效。 7050 不能远程控制请求的会话。这也许是由于该会话被中断或目前没有一个用户登录。另外,您不能从该系统控制台远程控制一个会话或远程控制系统控制台。并且,您不能远程控制您自己的当前会话。 7051 该请求的会话没有配置成允许远程控制。 7052 连接到这个终端服务器的申请被拒绝。终端服务器客户许可证目前正在被另一个用户使用。请与系统管理员联系,获取一份新的终端服务器客户,其许可证号码必须是有效的、唯一的。 7053 连接到这个终端服务器的申请被拒绝。还没有为这份终端服务器客户输入您的终端服务器客户许可证号码。请与系统管理员联系,为该终端服务器客户输入一个有效的、唯一的许可证号码。 7054 系统已达到其授权的登录限制。请以后再试一次。 7055 您正在使用的客户没有使用该系统的授权。您的登录请求被拒绝。 7056 系统许可证已过期。您的登录请求被拒绝。
中文API支持库(1.0-0
_取鼠标句柄() 获取目前选择的鼠标指针的句柄。获取目前选择的鼠标指针的句柄。这个函数返回的是当前线程的指针——不能获取其他应用程序的指针。 _寻找窗口() 寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题)。找到窗口的句柄。如
未
找到相符窗口,则返回零。会设置GetLastError。 _广播系统消息() 将一条系统消息广播给系统中所有的顶级窗口。大于零表示
成功
;-1表示出错。如设置了BSF_QUERY,而且至少有一个消息接收者返回零,那么这个函数返回零。 _
取消
息鼠标位置() 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置。返回值,X坐标对应于结果值的低字,Y坐标对应于高字。 _
取消
息时间() 取得消息队列中上一条消息处理完毕时的时间。返回一个时间,表示为自系统启动以来经历的毫秒数。 _
投递
消息() 将一条消息
投递
到指定窗口的消息队列。
投递
的消息会在Windows事件处理过程中得到处理。在那个时候,会随同
投递
的消息调用指定窗口的窗口函数。特别适合那些不需要立即处理的窗口消息的发送。如消息
投递
成功
,则返回TRUE(非零)。会设置GetLastError。 _
投递
线程消息() 将一条消息
投递
给应用程序。这条消息由应用程序的内部GetMessage循环获得,但不会传给一个特定的窗口。如消息
投递
成功
,则返回TRUE(非零)。会设置GetLastError。 _注册窗口消息() 获取分配给一个字串标识符的消息编号。返回值为&C000 到 &FFFF之间的一个消息编号。零意味着出错。注:如果没有一个子类处理程序的帮助,这个函数就没有什么用。 _回应消息() 如将消息传送给位于不同进程的一个窗口,通常第一个进程会暂时挂起,直到另一个进程中的窗口函数
完成
操作
为止。在目标进程的窗口函数
完成
之前,另一个进程可用这个函数向第一个进程返回一个结果,使之能继续进行。返回值,如准备答复的消息是由另一个进程发来的,则返回TRUE。如果它是从同一个进程中发出来的,则返回FALSE(此时,该函数没有任何效果)。 _发送消息() 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。返回值由具体的消息决定。 _发送回调消息() 将一条消息发给窗口。该函数最大的特定是可以立即返回。目标窗口函数执行完毕后,会用回调函数的形式将结果返回。返回值,TRUE表示
成功
,FALSE表示失败。会设置GetLastError。 _发送超时消息() 向窗口发送一条消息。如窗口位于不同的线程中,则利用这个函数可以指定一个超时值,以便在另一个进程挂起的时候防止调用进程也永远挂起。
成功
时返回TRUE,失败时返回FALSE。会设置GetLastError。 _发送通知消息() 向窗口发送一条消息。如目标窗口位于同调用方相同的线程内,则这个函数会表现为SendMessage函数。而且除非消息得到处理,否则函数不会返回。如目标窗口从属于一个不同的线程,则函数会立即返回。返回TRUE表示
成功
,FALSE表示出错。会设置GetLastError。 _关闭内核对象() 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。返回值非零表示
成功
,零表示失败。会设置GetLastError。 _比较文件时间() 根据FILETIME结构的信息,对比两个文件的时间。如两个时间相等,就返回零;如lpFileTime1小于lpFileTime2,返回-1;如lpFileTime2小于lpFileTime1,返回1。 _删除文件() 返回值非零表示
成功
,零表示失败。会设置GetLastError。 _关闭搜索句柄() 关闭由FindFirstFile函数创建的一个搜索句柄。返回值非零表示
成功
,零表示失败。会设置GetLastError。 _刷新文件缓冲区() 针对指定的文件句柄,刷新内部文件缓冲区。返回值非零表示
成功
,零表示失败。会设置GetLastError。 _刷新文件映射缓冲区() 将写入文件映射缓冲区的所有数据都刷新到磁盘。返回值非零表示
成功
,零表示失败。会设置GetLastError。 注解:如与远程系统建立了文件映射,那么虽然这个函数可保证数据已在当前系统写入,但不能保证数据实际写入远程系统的磁盘——除非用FILE_FLAG_WRITE_THROUGH 选项打开文件。该选项的作用是禁止写延迟,所有更新的数据都必须立即写入磁盘。 _取可执行文件类型() 判断指定文件是哪一种类型的可执行文件。返回值非零表示
成功
,零表示失败。 _取压缩文件尺寸() 判断一个压缩文件在磁盘上实际占据的字节数。返回文件长度。&HFFFFFFFF表示出错。注意如lpFileSizeHigh不为NULL,且结果为&HFFFFFFFF,那么必须调用GetLastError,判断是否实际发生了一个错误,因为这是一个有效的结果。 注解:如磁盘卷已被压缩,可检查这个函数的结果是否与GetFileSize函数的结果有异,从而判断文件是否也被压缩(如有异,表明文件已被压缩)。 _取当前目录() 返回值为写到lpBuffer的字节数。如nBufferLength的长度不够,不足以容纳目录,则返回值是必要的缓冲区长度(要求至少这个长度),其中包括空中止字符。零表示失败。会设置GetLastError。 _取磁盘剩余容量() 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量。返回值非零表示
成功
,零表示失败。会设置GetLastError。 注解:在采用FAT16格式的windows95系统中,如一个驱动器(分区)的容量超过了2GB,则不应使用这个函数。此时,这个函数能识别的最大分区容量只有2GB。 _取驱动器类型() 判断一个磁盘驱动器的类型。返回值,如驱动器不能识别,则返回零。如指定的目录不存在,则返回1。如执行
成功
,则用下述任何一个常数指定驱动器类型:DRIVE_REMOVABLE, DRIVE_FIXED, DRIVE_REMOTE, DRIVE_CDROM 或 DRIVE_RAMDISK。 _取压缩文件全名() 取得一个压缩文件的全名。文件必须是用 COMPRESS.EXE 程序压缩的,而且在压缩时适用/r选项。返回值,1表示
成功
,LZERROR_BADVALUE 表示失败。 _取文件属性() 取指定文件的属性。返回值,-1表示出错。如返回包含了标志的一个Long值,则指定文件的属性。其中的标志对应于带有FILE_ATTRIBUTE_*前缀的常数。具体参考BY_HANDLE_FILE_INFORMATION结构的File Attribute Types table表格。 _取文件长度() 返回文件长度。&HFFFFFFFF表示出错。注意如lpFileSizeHigh不为NULL,且结果为&HFFFFFFFF,那么必须调用GetLastError,判断是否实际发生了一个错误,因为这是一个有效的结果。 _取文件类型() 在给出文件句柄的前提下,判断文件类型。返回值为下述常数之一:FILE_TYPE_UNKNOWN 文件类型
未
知;FILE_TYPE_DISK 属于磁盘文件;FILE_TYPE_CHAR 文件是一个控制台或打印机;FILE_TYPE_PIPE 文件是个管道 。 _取文件版本信息() 从支持版本标记的一个模块里获取文件版本信息。返回值非零表示
成功
,零表示失败。会设置GetLastError。 _取文件版本信息长度() 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区。返回值,容纳文件的版本资源所需的缓冲区长度。如文件不包含版本信息,则返回一个0值。会设置GetLastError。 _取文件全名() 获取指定文件的完整路径名。返回值,装载到lpBuffer中的字符数量(排除空中止字符)。如缓冲区的长度不足以容下完整的路径,则返回值就是要求的缓冲区大小。零表示失败。会设置GetLastError。 _取逻辑驱动器() 判断系统中存在哪些逻辑驱动器字母。返回值的二进制位标志着存在哪些驱动器。其中,位0设为1表示驱动器A:存在于系统中;位1设为1表示存在B:驱动器;以次类推。 _取逻辑驱动器列表() 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径。返回值,保存到lpBuffer的字符数量(排除空中止字符)。如缓冲区的长度不够,不能容下路径,则返回值就变成要求的缓冲区大小。零表示失败。会设置GetLastError。 _取INI整数() 从INI文件中指定的条目获取一个整数值。返回值,找到的键的值;如指定的条目
未
找到,就返回默认值。如找到的数字不是一个合法的整数,函数会返回其中合法的一部分。 注解:在Windows NT中,有些初始化文件实际是在注册表中。可在注册表的下面这个项处找到这些文件的一个列表:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping _取INI小节键值表() 获取指定小节所有项名和值的一个列表。返回值,存放到lpReturnedString缓冲区的字符数量。如缓冲区的容量不够大,不能容下所有信息,就返回nSize-2。参考对GetPrivateProfileInt函数的注解。 _取INI文本() 从INI文件中指定的条目取得字串。返回值,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2)。 注解:如lpKeyName参数为NULL,那么lpReturnedString缓冲区会载入指定小节所有设置项的一个列表。每个项都用一个NULL字符分隔,最后一个项用两个NULL字符中止。也请参考GetPrivateProfileInt函数的注解。 _取系统INI整数() 取得win.ini初始化文件中指定条目的一个整数值。返回值,找到条目的值;如指定的条目
未
找到,就返回默认值。如找到的数字不是一个合法的整数,函数就会返回其中合法的一部分。 _取系统IN表I小节键值() 获取指定小节(在win.ini文件中)所有项名和值的一个列表。返回值,装载到lpReturnedString缓冲区的字符数量。如缓冲区的长度不足以容下所有信息,则返回nSize-2。参考GetPrivateProfileInt函数的注解。 _取系统INI文本() 为win.ini初始化文件中指定的条目取得字串。返回值,存放到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpAppName或lpKeyName为NULL,则返回nSize-2)。 _取短文件名() 获取指定文件的短路径名。返回值,装载到lpszShortPath缓冲区的字符数量。如lpszShortPath的长度不足,不能容下文件名,就返回需要的缓冲区长度。 _取Windows系统目录() 这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中,包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中,往往需要管理员权限才可对这个目录进行写
操作
。返回值Long,存放到lpBuffer缓冲区的字符数量。如lpBuffer不够大,不能容下文件名,则返回要求的缓冲区长度。 _取临时文件名() 返回值,最终用于生成文件名的wUnique数字的值。如wUnique参数不为零,这就是参数的值。零表示失败。会设置GetLastError。 _取临时路径() 获取为临时文件指定的路径。返回值,装载到lpBuffer的字符数。如当前缓冲区的长度不够,不能容下整个路径,则返回lpBuffer需要的长度。零表示失败。会设置GetLastError。 注解:临时路径是由TMP环境变量指定的一个路径。如TMP不存在,则是由TEMP环境变量指定的路径。如果这两个环境变量都不存在,就是当前目录。 _取磁盘卷标信息() 获取与一个磁盘卷标有关的信息。返回值非零表示
成功
,零表示失败。会设置GetLastError。 _取Windows目录() 这个函数能获取Windows目录的完整路径名。在这个目录里,保存了大多数windows应用程序文件及初始化文件。返回值,复制到lpBuffer的一个字串的长度。如lpBuffer不够大,不能容下整个字串,就会返回lpBuffer要求的长度。零表示失败。会设置GetLastError。 _锁定文件() 在windows中,文件可用共享模式打开——在这种情况下,多个进程可同时访问该文件。利用这个函数,要对文件进行读写的一个应用程序可将文件的某一部分锁定起来,使其不能由其他应用程序访问。这样便避免了同时读写时发生的冲突。返回值,非零表示
成功
,零表示失败。会设置GetLastError。 注解:锁定的区域不能进行
重叠
操作
。由不同的
操作
系统决定,可能要求先运行share.exe才能保证该函数正常工作。 _LZ关闭() 关闭由LZOpenFile 或 LZInit函数打开的一个文件。 _LZ复制() 复制一个文件。如源文件已压缩,则会在复制期间解压。文件必须是用微软公司的compress.exe或等效工具压缩的。 返回值:如执行
成功
,返回目标文件的大小,以字节为单位。如执行出错,会返回小于零的一个常数,如下表:LZERROR_BADINHANDLE 源文件无效;LZERROR_BADOUTHANDLE 目标文件无效;LZERROR_GLOBALLOC 内部解压缓冲区的内存容量不足;LZERROR_GLOBLOCK 内部解压缓冲区的句柄无效;LZERROR_READ 无效的源文件格式;LZERROR_UNKNOWNALG 解压DLL不能识别源文件采用的压缩算法;LZERROR_WRITE 在磁盘上写入输出文件时出错,通常是由于磁盘空间不足造成的。 _LZ初始化() 这个函数用于初始化内部缓冲区。对一个给出打开文件句柄的一个文件进行解压时,将用到这个缓冲区。注意
完成
后一定用LZClose关闭这个句柄。最多只能同时打开16个压缩文件句柄 。返回值:由lz32.dll库使用的、那个文件的一个特殊句柄。这个文件句柄兼容于LZCopy, CopyLZFiles, LZRead 和 LZSeek函数。如果出错,该函数会返回下表列出的出错代码之一:LZERROR_BADINHANDLE 源文件无效;LZERROR_BADOUTHANDLE 目标文件无效;LZERROR_GLOBALLOC 内部解压缓冲区的内存容量不足;LZERROR_GLOBLOCK 内部解压缓冲区的句柄无效;LZERROR_READ 无效的源文件格式;LZERROR_UNKNOWNALG 解压DLL不能识别源文件采用的压缩算法 LZERROR_WRITE 在磁盘上写入输出文件时出错,通常是由于磁盘空间不足造成的。 _LZ读() 将数据从文件读入内存缓冲区。如hfFile是一个压缩文件的句柄,同时那个压缩文件是由LZOpenFile 或 LZInit函数打开的,这个函数就会在读入数据的同时对文件进行解压处理。 返回值,实际读入的字节数。如这个数字小于cbread,表明早已抵达了文件的末尾。如出错,返回下表列出的常数之一:LZERROR_BADINHANDLE 源文件无效;LZERROR_BADOUTHANDLE 目标文件无效;LZERROR_GLOBALLOC 内部解压缓冲区的内存容量不足;LZERROR_GLOBLOCK 内部解压缓冲区的句柄无效;LZERROR_READ 无效的源文件格式;LZERROR_UNKNOWNALG 解压DLL不能识别源文件采用的压缩算法;LZERROR_WRITE 在磁盘上写入输出文件时出错,通常是由于磁盘空间不足造成的。 _LZ移位() 设置一个文件中进行读写的当前位置。如hfFile是一个压缩文件的句柄,同时那个压缩文件是由LZOpenFile 或 LZInit函数打开的,这个函数就会根据文件的解压版本进行查找。 返回值,返回一个新位置,采用从文件起始处计算的字节偏移量。如出错,返回下表列出的常数之一:LZERROR_BADINHANDLE 源文件无效;LZERROR_BADOUTHANDLE 目标文件无效;LZERROR_GLOBALLOC 内部解压缓冲区的内存容量不足;LZERROR_GLOBLOCK 内部解压缓冲区的句柄无效;LZERROR_READ 无效的源文件格式;LZERROR_UNKNOWNALG 解压DLL不能识别源文件采用的压缩算法;LZERROR_WRITE 在磁盘上写入输出文件时出错,通常是由于磁盘空间不足造成的。 _文件映射() 将一个文件映射对象映射到当前应用程序的地址空间。MapViewOfFileEx允许我们指定一个基本地址来进行映射。返回值,文件映射在内存中的起始地址,零表示出错。会设置GetLastError。 注解:dwFileOffsetLow和dwFileOffsetHigh必须反映一个偏移距离,它由系统的内存分配精度决定。例如,假设系统的内存精度是64KB(即最小分配单位是64KB),则这些值必须是64KB的整数倍。大多数应用程序都简单的用零从文件的起始处开始映射。lpBaseAddress也必须是内存分配精度的整数倍。声明中的参数类型为Any,而参数表中都是Long,我也不明白。但关于这个函数的英文资料的确是这样的。 _查询DOS设备() 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况。返回值,零表示出错。如执行
成功
,返回保存到lpTargetPath的字符数。会设置GetLastError。注解:可用DefineDosDevice函数将映射变成DOS设备名。适用平台:Windows NT。 _注册表关闭键() 关闭系统注册表中的一个项(或键)。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表远程连接() 访问远程系统的部分注册表。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表创建键() 在指定的项下创建一个新项。如指定的项已经存在,那么函数会打开现有的项。返回值,,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表删除键() 删除现有项下方一个指定的子项。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表删除值() 删除指定项下方的一个值。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表枚举键() 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。注解:用RegQueryInfoKey判断容纳最长那个项所需的缓冲区长度。 _注册表枚举值() 枚举指定项的值。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表刷新键() 将对项和它的子项作出的改动实际写入磁盘。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表载入键() 从以前用RegSaveKey函数创建的一个文件里装载注册表信息。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表通知键值改变() 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。适用平台:Windows NT。 _注册表打开键() 打开一个现有的注册表项。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。注解:在NT环境下,这个函数会使用默认的安全参数。 _注册表打开键增强() 打开一个现有的项。在win32下推荐使用这个函数。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。 _注册表查询值() 取得指定项或子项的默认(
未
命名)值。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。注解:win32应用程序应该使用RegQueryValueEx。lpValue被定义成一个字串,以维持同win16的兼容性(在win16中,值全都是字串)。 _注册表查询值增强() 获取一个项的设置值。返回值,零(ERROR_SUCCESS)表示
成功
。其他任何值都代表一个错误代码。
AP函数大全
很全的API函数
API之网络函数---整理网络函数及功能
API之网络函数1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举
操作
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 WNetEnumResource 枚举网络资源 WNetGetConnection 获取本地或已连接的一个资源的网络名称 WNetGetLastError 获取网络错误的扩展错误信息 WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 WNetGetUser 获取一个网络资源用以连接的名字 WNetOpenEnum 启动对网络资源进行枚举的过程 2. API之消息函数 BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息
投递
到指定窗口的消息队列 PostThreadMessage 将一条消息
投递
给应用程序 RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ReplyMessage 答复一个消息 SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 SendMessageCallback 将一条消息发给窗口 SendMessageTimeout 向窗口发送一条消息 SendNotifyMessage 向窗口发送一条消息 3. API之文件处理函数 CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 CompareFileTime 对比两个文件的时间 CopyFile 复制文件 CreateDirectory 创建一个新目录 CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 CreateFileMapping 创建一个新的文件映射对象 DeleteFile 删除指定文件 DeviceIoControl 对设备执行指定的
操作
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 FindFirstFile 根据文件名查找文件 FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 GetBinaryType 判断文件是否可以执行 GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 GetCurrentDirectory 在一个缓冲区中装载当前目录 GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 GetDriveType 判断一个磁盘驱动器的类型 GetExpandedName 取得一个压缩文件的全名 GetFileAttributes 判断指定文件的属性 GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 GetFileSize 判断文件长度 GetFileTime 取得指定文件的时间信息 GetFileType 在给出文件句柄的前提下,判断文件类型 GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 GetFullPathName 获取指定文件的完整路径名 GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 GetOverlappedResult 判断一个
重叠
操作
当前的状态 GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 GetPrivateProfileString 为初始化文件中指定的条目取得字串 GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 GetProfileString 为win.ini初始化文件中指定的条目取得字串 GetShortPathName 获取指定文件的短路径名 GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 GetTempPath 获取为临时文件指定的路径 GetVolumeInformation 获取与一个磁盘卷有关的信息 GetWindowsDirectory 获取Windows目录的完整路径名 hread 参考lread hwrite 参考lwrite函数 lclose 关闭指定的文件 lcreat 创建一个文件 llseek 设置文件中进行读写的当前位置 LockFile 锁定文件的某一部分,使其不与其他应用程序共享 LockFileEx 与LockFile相似,只是它提供了更多的功能 lopen 以二进制模式打开指定的文件 lread 将文件中的数据读入内存缓冲区 lwrite 将数据从内存缓冲区写入一个文件 LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 LZCopy 复制一个文件 LZInit 这个函数用于初始化内部缓冲区 LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 LZRead 将数据从文件读入内存缓冲区 LZSeek 设置一个文件中进行读写的当前位置 MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 MoveFile 移动文件 OpenFile 这个函数能执行大量不同的文件
操作
OpenFileMapping 打开一个现成的文件映射对象 QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 ReadFile 从文件中读出数据 ReadFileEx 与ReadFile相似,只是它只能用于异步读
操作
,并包含了一个完整的回调 RegCloseKey 关闭系统注册表中的一个项(或键) RegConnectRegistry 访问远程系统的部分注册表 RegCreateKey 在指定的项下创建或打开一个项 RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 RegDeleteKey 删除现有项下方一个指定的子项 RegDeleteValue 删除指定项下方的一个值 RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx RegEnumKeyEx 枚举指定项下方的子项 RegEnumValue 枚举指定项的值 RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 RegGetKeySecurity 获取与一个注册表项有关的安全信息 RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 RegOpenKey 打开一个现有的注册表项 RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 RegQueryInfoKey 获取与一个项有关的信息 RegQueryValue 取得指定项或子项的默认(
未
命名)值 RegQueryValueEx 获取一个项的设置值 RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 RegRestoreKey 从一个磁盘文件恢复注册表信息 RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 RegSetKeySecurity 设置指定项的安全特性 RegSetValue 设置指定项或子项的默认值 RegSetValueEx 设置指定项的值 RegUnLoadKey 卸载指定的项以及它的所有子项 RemoveDirectory 删除指定目录 SearchPath 查找指定文件 SetCurrentDirectory 设置当前目录 SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 SetFileAttributes 设置文件属性 SetFilePointer 在一个文件中设置当前的读写位置 SetFileTime 设置文件的创建、访问及上次修改时间 SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 SetVolumeLabel 设置一个磁盘的卷标(Label) SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 UnlockFile 解除对一个文件的锁定 UnlockFileEx 解除对一个文件的锁定 UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 VerFindFile 用这个函数决定一个文件应安装到哪里 VerInstallFile 用这个函数安装一个文件 VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 VerQueryValue 这个函数用于从版本资源中获取信息 WriteFile 将数据写入一个文件 WriteFileEx 与WriteFile类似,只是它只能用于异步写
操作
,并包括了一个完整的回调 WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 WritePrivateProfileString 在初始化文件指定小节内设置一个字串 WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 4. API之打印函数 AbortDoc
取消
一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 AddMonitor 为系统添加一个打印机监视器 AddPort 启动“添加端口”对话框,允许用户在系统可用端口列表中加入一个新端口 AddPrinter 在系统中添加一台新打印机 AddPrinterConnection 连接指定的打印机 AddPrinterDriver 为指定的系统添加一个打印驱动程序 AddPrintProcessor 为指定的系统添加一个打印处理器 AddPrintProvidor 为系统添加一个打印供应商 AdvancedDocumentProperties 启动打印机文档设置对话框 ClosePrinter 关闭一个打开的打印机对象 ConfigurePort 针对指定的端口,启动一个端口配置对话框 ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 DeleteForm 从打印机可用表单列表中删除一个表单 DeleteMonitor 删除指定的打印监视器 DeletePort 启动“删除端口”对话框,允许用户从当前系统删除一个端口 DeletePrinter 将指定的打印机标志为从系统中删除 DeletePrinterConnection 删除与指定打印机的连接 DeletePrinterDriver 从系统删除一个打印机驱动程序 DeletePrintProcessor 从指定系统删除一个打印处理器 DeletePrintProvidor 从系统中删除一个打印供应商 DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 DocumentProperties 打印机配置控制函数 EndDocAPI 结束一个
成功
的打印作业 EndDocPrinter 在后台打印程序的级别指定一个文档的结束 EndPage 用这个函数
完成
一个页面的打印,并准备设备场景,以便打印下一个页 EndPagePrinter 指定一个页在打印作业中的结尾 EnumForms 枚举一台打印机可用的表单 EnumJobs 枚举打印队列中的作业 EnumMonitors 枚举可用的打印监视器 EnumPorts 枚举一个系统可用的端口 EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 EnumPrinters 枚举系统中安装的打印机 EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 EnumPrintProcessors 枚举系统中可用的打印处理器 Escape 设备控制函数 FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 GetForm 取得与指定表单有关的信息 GetJob 获取与指定作业有关的信息 GetPrinter 取得与指定打印机有关的信息 GetPrinterData 为打印机设置注册表配置信息 GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 OpenPrinter 打开指定的打印机,并获取打印机的句柄 PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ReadPrinter 从打印机读入数据 ResetDC 重设一个设备场景 ResetPrinter 改变指定打印机的默认数据类型及文档设置 ScheduleJob 提交一个要打印的作业 SetAbortProc 为Windows指定
取消
函数的地址 SetForm 为指定的表单设置信息 SetJob 对一个打印作业的状态进行控制 SetPrinter 对一台打印机的状态进行控制 SetPrinterData 设置打印机的注册表配置信息 StartDoc 开始一个打印作业 StartDocPrinter 在后台打印的级别启动一个新文档 StartPage 打印一个新页前要先调用这个函数 StartPagePrinter 在打印作业中指定一个新页的开始 WritePrinter 将发送目录中的数据写入打印机 5. API之文本和字体函数 AddFontResource 在Windows系统中添加一种字体资源 CreateFont 用指定的属性创建一种逻辑字体 CreateFontIndirect 用指定的属性创建一种逻辑字体 CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与DrawText相似,只是加入了更多的功能 EnumFontFamilies 列举指定设备可用的字体 EnumFontFamiliesEx 列举指定设备可用的字体 EnumFonts 列举指定设备可用的字体 ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 GetCharWidth 调查字体中一个或多个字符的宽度 GetFontData 接收一种可缩放字体文件的数据 GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 GetKerningPairs 取得指定字体的字距信息 GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 GetTextAlign 接收一个设备场景当前的文本对齐标志 GetTextCharacterExtra 判断额外字符间距的当前值 GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 GetTextColor 判断当前字体颜色。通常也称为“前景色” GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 GetTextExtentPoint 判断一个字串的大小(范围) GetTextFace 获取一种字体的字样名 GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 PolyTextOut 描绘一系列字串 RemoveFontResource 从Windows系统中删除一种字体资源 SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 SetTextColor 设置当前文本颜色。这种颜色也称为“前景色” SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 TabbedTextOut 支持制表站的一个文本描绘函数 TextOut 文本绘图函数 6. API之菜单函数 AppendMenu 在指定的菜单里添加一个菜单项 CheckMenuItem 复选或撤消复选指定的菜单条目 CheckMenuRadioItem 指定一个菜单条目被复选成“单选”项目 CreateMenu 创建新菜单 CreatePopupMenu 创建一个空的弹出式菜单 DeleteMenu 删除指定的菜单条目 DestroyMenu 删除指定的菜单 DrawMenuBar 为指定的窗口重画菜单 EnableMenuItem 允许或禁止指定的菜单条目 GetMenu 取得窗口中一个菜单的句柄 GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 GetMenuContextHelpId 取得一个菜单的帮助场景ID GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 GetMenuItemCount 返回菜单中条目(菜单项)的数量 GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 GetMenuState 取得与指定菜单条目状态有关的信息 GetMenuString 取得指定菜单条目的字串 GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 GetSystemMenu 取得指定窗口的系统菜单的句柄 HiliteMenuItem 控制顶级菜单条目的加亮显示状态 InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 InsertMenuItem 插入一个新菜单条目 IsMenu 判断指定的句柄是否为一个菜单的句柄 LoadMenu 从指定的模块或应用程序实例中载入一个菜单 LoadMenuIndirect 载入一个菜单 MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ModifyMenu 改变菜单条目 RemoveMenu 删除指定的菜单条目 SetMenu 设置窗口菜单 SetMenuContextHelpId 设置一个菜单的帮助场景ID SetMenuDefaultItem 将一个菜单条目设为默认条目 SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) SetMenuItemInfo 为一个菜单条目设置指定的信息 TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 7. API之位图、图标和光栅运算函数 BitBlt 将一幅位图从一个设备场景复制到另一个 CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 CreateBitmap 按照规定的格式创建一幅与设备有关位图 CreateBitmapIndirect 创建一幅与设备有关位图 CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 CreateCursor 创建一个鼠标指针 CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 CreateDIBSection 创建一个DIBSection CreateIcon 创建一个图标 CreateIconIndirect 创建一个图标 DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 DestroyIcon 清除图标 DrawIcon 在指定的位置画一个图标 DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 GetBitmapDimensionEx 取得一幅位图的宽度和高度 GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 GetIconInfo 取得与图标有关的信息 GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 LoadIcon 从指定的模块或应用程序实例中载入一个图标 LoadImage 载入一个位图、图标或指针 MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 StretchBlt 将一幅位图从一个设备场景复制到另一个 StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 8. API之绘图函数 AbortPath 抛弃选入指定设备场景中的所有路径。也
取消
目前正在进行的任何路径的创建工作 AngleArc 用一个连接弧画一条线 Arc 画一个圆弧 BeginPath 启动一个路径分支 CancelDC
取消
另一个线程里的长时间绘图
操作
Chord 画一个弦 CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 CloseFigure 描绘到一个路径时,关闭当前打开的图形 CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) CopyMetaFile 制作指定(标准)图元文件的一个副本 CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) CreateEnhMetaFile 创建一个增强型的图元文件设备场景 CreateHatchBrush 创建带有阴影图案的一个刷子 CreateMetaFile 创建一个图元文件设备场景 CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 CreatePen 用指定的样式、宽度和颜色创建一个画笔 CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 CreateSolidBrush 用纯色创建一个刷子 DeleteEnhMetaFile 删除指定的增强型图元文件 DeleteMetaFile 删除指定的图元文件 DeleteObject 删除GDI对象,对象使用的所有系统资源都会被释放 DrawEdge 用指定的样式描绘一个矩形的边框 DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 DrawFocusRect 画一个焦点矩形 DrawFrameControl 描绘一个标准控件 DrawState 为一幅图象或绘图
操作
应用各式各样的效果 Ellipse 描绘一个椭圆,由指定的矩形围绕 EndPath 停止定义一个路径 EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 ExtCreatePen 创建一个扩展画笔(装饰或几何) ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 FillPath 关闭路径中任何打开的图形,并用当前刷子填充 FillRect 用指定的刷子填充一个矩形 FlattenPath 将一个路径中的所有曲线都转换成线段 FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 FrameRect 用指定的刷子围绕一个矩形画一个边框 GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 GdiFlush 执行任何
未
决的绘图
操作
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 GetBkColor 取得指定设备场景当前的背景颜色 GetBkMode 针对指定的设备场景,取得当前的背景填充模式 GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 GetCurrentObject 获得指定类型的当前选定对象 GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 GetMiterLimit 取得设备场景的斜率限制(Miter)设置 GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 GetObjectAPI 取得对指定对象进行说明的一个结构 GetObjectType 判断由指定句柄引用的GDI对象的类型 GetPath 取得对当前路径进行定义的一系列数据 GetPixel 在指定的设备场景中取得一个像素的RGB值 GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 GetROP2 针对指定的设备场景,取得当前的绘图模式 GetStockObject 取得一个固有对象(Stock) GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 LineDDA 枚举指定线段中的所有点 LineTo 用当前画笔画一条线,从当前位置连到一个指定的点 MoveToEx 为指定的设备场景指定一个新的当前画笔位置 PaintDesk 在指定的设备场景中描绘桌面墙纸图案 PathToRegion 将当前选定的路径转换到一个区域里 Pie 画一个饼图 PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 PlayMetaFile 在指定的设备场景中回放一个图元文件 PlayMetaFileRecord 回放来自图元文件的单条记录 PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 Polygon 描绘一个多边形 Polyline 用当前画笔描绘一系列线段 PolyPolygon 用当前选定画笔描绘两个或多个多边形 PolyPolyline 用当前选定画笔描绘两个或多个多边形 Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 SelectClipPath 将设备场景当前的路径合并到剪切区域里 SelectObject 为当前设备场景选择图形对象 SetArcDirection 设置圆弧的描绘方向 SetBkColor 为指定的设备场景设置背景颜色 SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 SetMiterLimit 设置设备场景当前的斜率限制 SetPixel 在指定的设备场景中设置一个像素的RGB值 SetPixelV 在指定的设备场景中设置一个像素的RGB值 SetPolyFillMode 设置多边形的填充模式 SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 9. API之设备场景函数 CombineRgn 将两个区域组合为一个新区域 CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 CreateDC 为专门设备创建设备场景 CreateEllipticRgn 创建一个椭圆 CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 CreateIC 为专用设备创建一个信息场景 CreatePolygonRgn 创建一个由一系列点围成的区域 CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 CreateRectRgn 创建一个矩形区域 CreateRectRgnIndirect 创建一个矩形区域 CreateRoundRectRgn 创建一个圆角矩形 DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 EqualRgn 确定两个区域是否相等 ExcludeClipRect 从专用设备场景的剪裁区中去
掉
一个矩形区。矩形内不能进行绘图 ExcludeUpdateRgn 从专用设备场景剪裁区去
掉
指定窗口的刷新区域 ExtCreateRegion 根据世界转换修改区域 ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 FillRgn 用指定刷子填充指定区域 FrameRgn 用指定刷子围绕指定区域画一个外框 GetBoundsRect 获取指定设备场景的边界矩形 GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 GetClipRgn 获取设备场景当前剪裁区 GetDC 获取指定窗口的设备场景 GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 GetGraphicsMode 确定是否允许增强图形模式(世界转换) GetMapMode 为特定设备场景调入映象模式 GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 GetRgnBox 获取完全包含指定区域的最小矩形 GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 GetViewportExtEx 获取设备场景视口(viewport)范围 GetViewportOrgEx 获取设备场景视口起点 GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 GetWindowExtEx 获取指定设备场景的窗口范围 GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 GetWindowRgn 获取窗口区域 GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 IntersectClipRect 为指定设备定义一个新的剪裁区 InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 InvertRgn 通过颠倒每个像素值反转设备场景指定区域 LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 ModifyWorldTransform 根据指定的模式修改世界转换 OffsetClipRgn 按指定量平移设备场景剪裁区 OffsetRgn 按指定偏移量平移指定区域 OffsetViewportOrgEx 平移设备场景视口区域 OffsetWindowOrgEx 平移指定设备场景窗口起点 PaintRgn 用当前刷子背景色填充指定区域 PtInRegion 确定点是否在指定区域内 PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) RectInRegion 确定矩形是否有部分在指定区域内 RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 ScaleViewportExtEx 缩放设备场景视口的范围 ScaleWindowExtEx 缩放指定设备场景窗口范围 ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 SelectClipRgn 为指定设备场景选择新的剪裁区 SetBoundsRect 设置指定设备场景的边界矩形 SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) SetMapMode 设置指定设备场景的映射模式 SetRectRgn 设置区域为指定的矩形 SetViewportExtEx 设置设备场景视口范围 SetViewportOrgEx 设置设备场景视口起点 SetWindowExtEx 设置指定设备场景窗口范围 SetWindowOrgEx 设置指定设备场景窗口起点 SetWindowRgn 设置窗口区域 SetWorldTransform 设置世界转换 ValidateRgn 激活窗口中指定区域,把它从刷新区移走 WindowFromDC 取回与某一设备场景相关的窗口的句柄 10. API之硬件与系统函数 ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 Beep 用于生成简单的声音 CharToOem 将一个字串从ANSI字符集转换到OEM字符集 ClipCursor 将指针限制到指定区域 ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 DestroyCaret 清除(破坏)一个插入符 EnumCalendarInfo 枚举在指定“地方”环境中可用的日历信息 EnumDateFormats 列举指定的“当地”设置中可用的长、短日期格式 EnumSystemCodePages 枚举系统中已安装或支持的代码页 EnumSystemLocales 枚举系统已经安装或提供支持的“地方”设置 EnumTimeFormats 枚举一个指定的地方适用的时间格式 ExitWindowsEx 退出windows,并用特定的选项重新启动 ExpandEnvironmentStrings 扩充环境字串 FreeEnvironmentStrings 翻译指定的环境字串块 GetACP 判断目前正在生效的ANSI代码页 GetAsyncKeyState 判断函数调用时指定虚拟键的状态 GetCaretBlinkTime 判断插入符光标的闪烁频率 GetCaretPos 判断插入符的当前位置 GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 GetCommandLine 获得指向当前命令行缓冲区的一个指针 GetComputerName 取得这台计算机的名称 GetCPInfo 取得与指定代码页有关的信息 GetCurrencyFormat 针对指定的“地方”设置,根据货币格式格式化一个数字 GetCursor 获取目前选择的鼠标指针的句柄 GetCursorPos 获取鼠标指针的当前位置 GetDateFormat 针对指定的“当地”格式,对一个系统日期进行格式化 GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 GetEnvironmentVariable 取得一个环境变量的值 GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 GetKBCodePage 由GetOEMCP取代,两者功能完全相同 GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 GetKeyboardLayoutName 取得当前活动键盘布局的名称 GetKeyboardState 取得键盘上每个虚拟键当前的状态 GetKeyboardType 了解与正在使用的键盘有关的信息 GetKeyNameText 在给出扫描码的前提下,判断键名 GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 GetLocaleInfo 取得与指定“地方”有关的信息 GetLocalTime 取得本地日期和时间 GetNumberFormat 针对指定的“地方”,按特定的格式格式化一个数字 GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 GetSysColor 判断指定windows显示对象的颜色 GetSystemDefaultLangID 取得系统的默认语言ID GetSystemDefaultLCID 取得当前的默认系统“地方” GetSystemInfo 取得与底层硬件平台有关的信息 GetSystemMetrics 返回与windows环境有关的信息 GetSystemPowerStatus 获得与当前系统电源状态有关的信息 GetSystemTime 取得当前系统时间,这个时间采用的是“协同世界时间”(即UTC,也叫做GMT)格式 GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 GetThreadLocale 取得当前线程的地方ID GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) GetTimeFormat 针对当前指定的“地方”,按特定的格式格式化一个系统时间 GetTimeZoneInformation 取得与系统时区设置有关的信息 GetUserDefaultLangID 为当前用户取得默认语言ID GetUserDefaultLCID 取得当前用户的默认“地方”设置 GetUserName 取得当前用户的名字 GetVersion 判断当前运行的Windows和DOS版本 GetVersionEx 取得与平台和
操作
系统有关的版本信息 HideCaret 在指定的窗口隐藏插入符(光标) IsValidCodePage 判断一个代码页是否有效 IsValidLocale 判断地方标识符是否有效 keybd_event 这个函数模拟了键盘行动 LoadKeyboardLayout 载入一个键盘布局 MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 mouse_event 模拟一次鼠标事件 OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 OemToChar 将OEM字符集的一个字串转换到ANSI字符集 SetCaretBlinkTime 指定插入符(光标)的闪烁频率 SetCaretPos 指定插入符的位置 SetComputerName 设置新的计算机名 SetCursor 将指定的鼠标指针设为当前指针 SetCursorPos 设置指针的位置 SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 SetEnvironmentVariable 将一个环境变量设为指定的值 SetKeyboardState 设置每个虚拟键当前在键盘上的状态 SetLocaleInfo 改变用户“地方”设置信息 SetLocalTime 设置当前地方时间 SetSysColors 设置指定窗口显示对象的颜色 SetSystemCursor 改变任何一个标准系统指针 SetSystemTime 设置当前系统时间 SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 SetThreadLocale 为当前线程设置地方 SetTimeZoneInformation 设置系统时区信息 ShowCaret 在指定的窗口里显示插入符(光标) ShowCursor 控制鼠标指针的可视性 SwapMouseButton 决定是否互换鼠标左右键的功能 SystemParametersInfo 获取和设置数量众多的windows系统参数 SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 UnloadKeyboardLayout 卸载指定的键盘布局 VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 11. API之进程和线程函数 CancelWaitableTimer 这个函数用于
取消
一个可以等待下去的计时器
操作
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 CreateEvent 创建一个事件对象 CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) CreateMutex 创建一个互斥体(MUTEX) CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 CreatePipe 创建一个匿名管道 CreateProcess 创建一个新进程(比如执行一个程序) CreateSemaphore 创建一个新的信号机 CreateWaitableTimer 创建一个可等待的计时器对象 DisconnectNamedPipe 断开一个客户与一个命名管道的连接 DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 ExitProcess 中止一个进程 FindCloseChangeNotification 关闭一个改动通知对象 FindExecutable 查找与一个指定文件关联在一起的程序的文件名 FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 FreeLibrary 释放指定的动态链接库 GetCurrentProcess 获取当前进程的一个伪句柄 GetCurrentProcessId 获取当前进程一个唯一的标识符 GetCurrentThread 获取当前线程的一个伪句柄 GetCurrentThreadId 获取当前线程一个唯一的线程标识符 GetExitCodeProces 获取一个已中断进程的退出代码 GetExitCodeThread 获取一个已中止线程的退出代码 GetHandleInformation 获取与一个系统对象句柄有关的信息 GetMailslotInfo 获取与一个邮路有关的信息 GetModuleFileName 获取一个已装载模板的完整路径名称 GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 GetPriorityClass 获取特定进程的优先级别 GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 GetProcessTimes 获取与一个进程的经过时间有关的信息 GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 GetSartupInfo 获取一个进程的启动信息 GetThreadPriority 获取特定线程的优先级别 GetTheardTimes 获取与一个线程的经过时间有关的信息 GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 LoadModule 载入一个Windows应用程序,并在指定的环境中运行 MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 SetPriorityClass 设置一个进程的优先级别 SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 SetProcessWorkingSetSize 设置
操作
系统实际划分给进程使用的内存容量 SetThreadPriority 设定线程的优先级别 ShellExecute 查找与指定文件关联在一起的程序的文件名 TerminateProcess 结束一个进程 WinExec 运行指定的程序 12. API之控件与消息函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗口的最小化子窗口 AttachThreadInput 连接线程输入函数 BeginDeferWindowPos 启动构建一系列新窗口位置的过程 BringWindowToTop 将指定的窗口带至窗口列表顶部 CascadeWindows 以层叠方式排列窗口 ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 CloseWindow 最小化指定的窗口 CopyRect 矩形内容复制 DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 DestroyWindow 清除指定的窗口以及它的所有子窗口 DrawAnimatedRects 描绘一系列动态矩形 EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 EnumChildWindows 为指定的父窗口枚举子窗口 EnumThreadWindows 枚举与指定任务相关的窗口 EnumWindows 枚举窗口列表中的所有父窗口 EqualRect 判断两个矩形结构是否相同 FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 FlashWindow 闪烁显示指定窗口 GetActiveWindow 获得活动窗口的句柄 GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 GetClassLong 取得窗口类的一个Long变量条目 GetClassName 为指定的窗口取得类名 GetClassWord 为窗口类取得一个整数变量 GetClientRect 返回指定窗口客户区矩形的大小 GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 GetFocus 获得拥有输入焦点的窗口的句柄 GetForegroundWindow 获得前台窗口的句柄 GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 GetParent 判断指定窗口的父窗口 GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID GetWindowLong 从指定窗口的结构中取得信息 GetWindowPlacement 获得指定窗口的状态及位置信息 GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 GetWindowTextLength 调查窗口标题文字或控件内容的长短 GetWindowWord 获得指定窗口结构的信息 InflateRect 增大或减小一个矩形的大小 IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 IsChild 判断一个窗口是否为另一窗口的子或隶属窗口 IsIconic 判断窗口是否已最小化 IsRectEmpty 判断一个矩形是否为空 IsWindow 判断一个窗口句柄是否有效 IsWindowEnabled 判断窗口是否处于活动状态 IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 IsWindowVisible 判断窗口是否可见 IsZoomed 判断窗口是否最大化 LockWindowUpdate 锁定指定窗口,禁止它更新 MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 MoveWindow 改变指定窗口的位置和大小 OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 OpenIcon 恢复一个最小化的程序,并将其激活 PtInRect 判断指定的点是否位于矩形内部 RedrawWindow 重画全部或部分窗口 ReleaseCapture 为当前的应用程序释放鼠标捕获 ScreenToClient 判断屏幕上一个指定点的客户区坐标 ScrollWindow 滚动窗口客户区的全部或一部分 ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 SetActiveWindow 激活指定的窗口 SetCapture 将鼠标捕获设置到指定的窗口 SetClassLong 为窗口类设置一个Long变量条目 SetClassWord 为窗口类设置一个条目 SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 SetForegroundWindow 将窗口设为系统的前台窗口 SetParent 指定一个窗口的新父 SetRect 设置指定矩形的内容 SetRectEmpty 将矩形设为一个空矩形 SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID SetWindowLong 在窗口结构中为指定的窗口设置信息 SetWindowPlacement 设置窗口状态和位置信息 SetWindowPos 为窗口指定一个新位置和状态 SetWindowText 设置窗口的标题文字或控件的内容 SetWindowWord 在窗口结构中为指定的窗口设置信息 ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 ShowWindow 控制窗口的可见性 ShowWindowAsync 与ShowWindow相似 SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 TileWindows 以平铺顺序排列窗口 UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 UpdateWindow 强制立即更新窗口 ValidateRect 校验窗口的全部或部分客户区 WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
重叠
I/O(Overlapped I/O)
重叠
函数(如:WSARecv)的参数中都有一个 Overlapped 参数,我们可以假设是把我们的WSARecv这样的
操作
“绑定”到这个
重叠
结构上,提交一个请求,而不是将
操作
立即
完成
,其他的事情就交给
重叠
结构去做,而其中
重叠
结构又要与Windows的事件对象“绑定”在一起,这样我们调用完 WSARecv 以后就可以“坐享其成”,等到
重叠
操作
完成
以后,自然会有与之对应的事件来通知我们
操作
完成
,然后我们就可以来根据
重叠
操作
的结果取得我们想要的数据了。套接字的
重叠
I/O模型才是真正意义上的异步I/O模型。
网络编程
18,358
社区成员
64,186
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章