找回密码
 注册
搜索
查看: 4168|回复: 0

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html2 y6 `1 G5 E' a2 E8 `
1. API之网络函数
+ s* V+ @. ?% ~1 _WNetAddConnection 创建同一个网络资源的永久性连接 ! R3 Z- F) y; m$ g7 `. t( r
WNetAddConnection2 创建同一个网络资源的连接 . L: W: b: O- h+ ~- w
WNetAddConnection3 创建同一个网络资源的连接 % n% r+ J+ g/ t6 X4 Y, G
WNetCancelConnection 结束一个网络连接
( w0 P1 [/ \9 f* UWNetCancelConnection2 结束一个网络连接
) w# B$ w+ e" ~6 BWNetCloseEnum 结束一次枚举操作 ) x3 b( ^& a$ I( s/ I
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
; V* \4 t: _% X" |' q* CWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
: {$ O# b0 D  ?0 w2 I7 ]4 [0 gWNetEnumResource 枚举网络资源 ' p' _: `7 A1 I$ k' o6 v. m5 v- r7 e  e
WNetGetConnection 获取本地或已连接的一个资源的网络名称
2 j0 K* x3 {& U9 GWNetGetLastError 获取网络错误的扩展错误信息 % X# n& v+ X0 w7 e6 o9 |  e
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
3 ?; P: c: j7 s& U( t" T& e' uWNetGetUser 获取一个网络资源用以连接的名字
) d& V3 X2 B& `& U5 F. EWNetOpenEnum 启动对网络资源进行枚举的过程
- n7 h' _* E- F$ P1 |+ Z1 d2. API之消息函数
3 q8 @7 x: B/ A' W) RBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
$ k0 d; J# I% y, O: }: kGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 - O' o, Y- I& ~3 S3 ^/ @- I/ Y
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
0 {) q- M  Z) n# u1 kPostMessage 将一条消息投递到指定窗口的消息队列   F! ?4 V* _" f7 Q
PostThreadMessage 将一条消息投递给应用程序 1 O6 y* \3 `7 A: f
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 4 i1 s9 [, [2 @5 a" x
ReplyMessage 答复一个消息
5 w" G5 O$ j* s* GSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 : i( [& L: s2 X) U% b
SendMessageCallback 将一条消息发给窗口
. [% a9 d  C7 ^7 a8 [( fSendMessageTimeout 向窗口发送一条消息 & p6 ^) d0 l+ ?6 U, Q! y9 Q7 N1 s: k
SendNotifyMessage 向窗口发送一条消息 6 q: j3 O0 p$ _
3. API之文件处理函数 : [7 Q* |" s5 ~: L! A
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 $ ^9 a; K9 r* `! P; r9 C/ E
CompareFileTime 对比两个文件的时间
9 X8 ^+ Y+ a, p9 QCopyFile 复制文件 " u' Y8 N+ b3 k& R9 ~8 p: J
CreateDirectory 创建一个新目录
# K2 E: K8 V! @CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
' z8 y$ A9 c2 W5 R9 mCreateFileMapping 创建一个新的文件映射对象
$ n+ t$ z( Q  d5 k- hDeleteFile 删除指定文件
/ E# M9 ~8 q3 ]% {, HDeviceIoControl 对设备执行指定的操作
! R: V% ?: x( }3 ?: \DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
/ f7 H: \- R+ t: X& u( x  f4 BFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
4 d" f  @+ L: W4 u; e) xFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 + d  J9 m! Z, R' C7 ~7 R- Z# `
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 2 r" ?& H5 }/ h# D
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
! c1 t% h# E4 S' ^7 p$ nFindFirstFile 根据文件名查找文件
4 H8 I; I' ~1 H, uFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 0 B6 J. Y7 V9 ?
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
( U- O" A. Z- ?# I* {FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 - k& q  H( K: J& e( X' r
GetBinaryType 判断文件是否可以执行
. V2 u1 a) }( GGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 & n& {7 k0 d& N% X) w
GetCurrentDirectory 在一个缓冲区中装载当前目录
3 E/ h: M& [7 ^' oDWORD GetCurrentDirectory(
8 ]2 p9 I2 e1 g6 D# f( n    DWORD nBufferLength,    //缓冲区大小
, x! a9 c& T' o# i3 k% v    LPSTR lpBuffer          //缓冲区的首地址7 g1 I# r, @" d# ~2 z, b
    );
# T! P3 z; g9 M) U' qGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 * h1 |9 C- e# O8 f  `
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
$ g  ^1 e  }. m/ HGetDriveType 判断一个磁盘驱动器的类型 + s& r2 n6 c. T) d, J7 x/ ?
GetExpandedName 取得一个压缩文件的全名 $ z* B7 B0 Y8 j7 F
GetFileAttributes 判断指定文件的属性 " t% x' P# k7 I8 r$ ~6 G) n8 f
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
- ~3 h, X/ d$ S# z& H4 AGetFileSize 判断文件长度 * W: v% |# N1 l9 u# ^2 u/ `/ w, x
GetFileTime 取得指定文件的时间信息
; D0 a! X. E; K9 mGetFileType 在给出文件句柄的前提下,判断文件类型
& P0 X: `2 m1 I" z0 ~8 b5 IGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 ; K" a9 T. l/ p! Z
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
$ y0 K/ l; Z2 ~  AGetFullPathName 获取指定文件的完整路径名 5 |3 S# ^5 Y5 ^) o
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 5 ?7 U. k6 D8 p0 a  M- G" c# N
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 ; k6 p5 P, N' B. S
GetOverlappedResult 判断一个重叠操作当前的状态 & g" M, M0 K7 D2 S
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 ! e  u/ J' Z9 {" u/ K8 D+ U% L
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 % ~* J! N" E/ d, D, A8 m
GetPrivateProfileString 为初始化文件中指定的条目取得字串
& J: |7 f: e0 l$ _7 [# x9 m% Z- |9 aGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
/ n* I# N3 @! t3 O+ WGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
) I6 Q! \" M9 A7 s$ Y- LGetProfileString 为win.ini初始化文件中指定的条目取得字串 3 B2 t! c' h7 v; M2 J
GetShortPathName 获取指定文件的短路径名
# A2 D6 M6 H4 i7 r7 I4 jGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 * ~+ v* T0 t4 Z9 H, S
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
( O  Y3 D/ e0 \+ A# H6 F( Y5 fGetTempPath 获取为临时文件指定的路径
* T1 z! O- I0 t7 p' ]9 zGetVolumeInformation 获取与一个磁盘卷有关的信息
8 @0 ~- M# C8 AGetWindowsDirectory 获取Windows目录的完整路径名
/ M. B% @! F# n/ ^; k% }6 Thread 参考lread 7 S; W9 @7 ^1 V2 C- L
hwrite 参考lwrite函数 $ H2 M/ R, b; K# W' C
lclose 关闭指定的文件
+ U& V# A0 V: u0 j: g! Llcreat 创建一个文件 # \6 b" i# V* H  c3 l
llseek 设置文件中进行读写的当前位置 : V' X3 e3 N% K7 q) M+ X
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
0 z5 }0 Y4 ?0 f9 xLockFileEx 与LockFile相似,只是它提供了更多的功能 & ?6 r* M( |2 i0 w4 ?9 F7 `
lopen 以二进制模式打开指定的文件 1 B' F2 y, w7 F" Q3 V
lread 将文件中的数据读入内存缓冲区
9 `' u, ]/ E, [3 u* Flwrite 将数据从内存缓冲区写入一个文件 ; J; n5 y: u  ?" U, }
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 - u9 G/ D' I$ r; c( m
LZCopy 复制一个文件 ( ]% ^" g* Q4 |/ Q  m. E
LZInit 这个函数用于初始化内部缓冲区
1 t& a3 ~4 D! C1 y" ^, U" n% qLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
# k8 {6 @; ~9 D  qLZRead 将数据从文件读入内存缓冲区
% }& ~- L7 A8 ?LZSeek 设置一个文件中进行读写的当前位置 ' l7 v& ^) f7 m4 U" h: w+ R
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 $ z  A; {4 Z! b$ P% A
MoveFile 移动文件 8 X( q- p- I  A$ D, |
OpenFile 这个函数能执行大量不同的文件操作 0 ~/ R0 b- C, f
OpenFileMapping 打开一个现成的文件映射对象
5 p) a: `/ b4 Q6 R0 Y! F4 ]QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
, V6 k' A: k5 rReadFile 从文件中读出数据
6 I9 g' A# g4 n4 j3 bReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 0 y4 V% v/ E( M- L6 r& Z
RegCloseKey 关闭系统注册表中的一个项(或键)
. O5 o  [: o: w. wRegConnectRegistry 访问远程系统的部分注册表 6 _4 N: L: q# B- i9 U4 P# Q9 b
RegCreateKey 在指定的项下创建或打开一个项
* N6 p$ W  I7 N2 I, Y0 X; v  oRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 & u! [1 f+ [: D% k1 {6 Q3 G3 z0 W0 k
RegDeleteKey 删除现有项下方一个指定的子项 5 F+ v/ j) c" V1 D
RegDeleteValue 删除指定项下方的一个值 / U. R; X2 H- A" C( J" M- V
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx 9 y% `7 e1 z! v( i, ?
RegEnumKeyEx 枚举指定项下方的子项 * a* N4 `2 b  ]% e9 f9 T
RegEnumValue 枚举指定项的值
( ~3 ^2 l/ y- eRegFlushKey 将对项和它的子项作出的改动实际写入磁盘
# u8 v# @: f8 R+ r1 `8 c' _RegGetKeySecurity 获取与一个注册表项有关的安全信息
9 T" [' O2 B2 o, E* \) i% I3 _' X0 eRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 7 F% s; C) ^- j! u; L: u$ C
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
4 o2 a+ [# b1 c$ B- i9 \9 ~6 V1 BRegOpenKey 打开一个现有的注册表项 ) ]3 O2 B8 F& p2 ?
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
5 G! c% y9 q; l" M  ]8 c) `RegQueryInfoKey 获取与一个项有关的信息 # l! n3 T" B& s& G7 |' R0 U
RegQueryValue 取得指定项或子项的默认(未命名)值
; r5 e4 R% o- T1 P/ RRegQueryValueEx 获取一个项的设置值 / ]. G  o# Z/ @% P" K( e9 {
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 8 r( v& Y: ]3 G9 r  D
RegRestoreKey 从一个磁盘文件恢复注册表信息
4 T, _9 ?7 c! U, yRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 ; f& A% z% F9 J9 S# H" d& }
RegSetKeySecurity 设置指定项的安全特性
/ M7 C! ]( E* G% O# z  r$ S3 N5 pRegSetValue 设置指定项或子项的默认值
) X5 m( x- k: i! g+ |" URegSetValueEx 设置指定项的值
0 l: ?* b2 U* B) T. J) hRegUnLoadKey 卸载指定的项以及它的所有子项
; c/ l3 p% `! Y. f% }5 f1 LRemoveDirectory 删除指定目录 " D6 y9 m" y1 h
SearchPath 查找指定文件 " e* I) e7 Q8 @9 D3 z9 E! ?
SetCurrentDirectory 设置当前目录
- H% l+ Y! Q8 A# Q* d0 sSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 ' @: n9 S) l4 E: n
SetFileAttributes 设置文件属性
, s, {: ?7 u/ p( B" |# [. uSetFilePointer 在一个文件中设置当前的读写位置 ! _: _7 u! J4 d) E' d
SetFileTime 设置文件的创建、访问及上次修改时间 3 y; |( v! s: Z# i- X
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
% x1 P9 O6 o+ F# E! A! ]1 ZSetVolumeLabel 设置一个磁盘的卷标(Label) ! t- N# x. W$ f: d$ m
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 ! x, S- g$ J; y4 Q/ R- e
UnlockFile 解除对一个文件的锁定 ! n, w6 F& R8 k: d
UnlockFileEx 解除对一个文件的锁定 , Q/ v+ c+ O( b. f6 c( ]5 |6 O
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
5 T" t5 Z) `8 `% G) nVerFindFile 用这个函数决定一个文件应安装到哪里
; |6 `8 C+ L7 Y0 C& g* JVerInstallFile 用这个函数安装一个文件
# [( A+ M0 D* J6 |VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 ; O" x& C& O' l& B; F  `+ ^2 m; |, c' S
VerQueryValue 这个函数用于从版本资源中获取信息 ! C& u8 C, @0 @& p/ Z
WriteFile 将数据写入一个文件
! j4 X) q' @* K& |$ P- UWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
+ Z8 c. h# ?% ?8 @# QWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
5 C% W9 ?: Q  B3 ^0 M$ _WritePrivateProfileString 在初始化文件指定小节内设置一个字串 % b& b) E8 _! ?+ c
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 ) B$ u* s9 F; x6 M& Q( U7 h9 \* J
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 2 B3 A5 j9 o6 f& R; l
4. API之打印函数
  Q' Y9 a$ O1 S/ L" BAbortDoc 取消一份文档的打印 & G+ }, W$ a8 K* }8 Z1 X6 m) J7 B
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 . g9 O3 h  i$ x* t" m
AddForm 为打印机的表单列表添加一个新表单
, e0 c  J% p$ ^- tAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
8 E1 Z( @* C  g3 @* _: ?AddMonitor 为系统添加一个打印机监视器 " `5 \) y5 H$ |( ^
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
) f' y+ _, b3 DAddPrinter 在系统中添加一台新打印机 0 p, w' E% Y. f. Q* m* |
AddPrinterConnection 连接指定的打印机 ( V& J( p2 G% n! Y5 n) K7 N) d4 d7 }
AddPrinterDriver 为指定的系统添加一个打印驱动程序
- f* n! t# P7 x7 d5 f- FAddPrintProcessor 为指定的系统添加一个打印处理器
! ]  ~* |& R0 O1 P3 m  OAddPrintProvidor 为系统添加一个打印供应商
$ d' M  e: L" E. O, `AdvancedDocumentProperties 启动打印机文档设置对话框 7 k$ w5 S5 H: U6 q; |5 z
ClosePrinter 关闭一个打开的打印机对象 . y! I6 I* ~3 f: E) }
ConfigurePort 针对指定的端口,启动一个端口配置对话框
% t. K  [9 R6 ]; o+ d% O" w5 \ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
9 \2 K4 ^1 M7 H0 b* i6 WDeleteForm 从打印机可用表单列表中删除一个表单 # P. l* j# X! N* P/ ^
DeleteMonitor 删除指定的打印监视器 6 l2 G. J- [. _* W
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 ; X8 f! m9 i6 [
DeletePrinter 将指定的打印机标志为从系统中删除
' a. m. G4 \) U  s, y1 |: }; E6 oDeletePrinterConnection 删除与指定打印机的连接
! |/ q+ e# a' L# S, j9 _/ V  N! zDeletePrinterDriver 从系统删除一个打印机驱动程序
: f  ^  @0 w$ R9 v$ `7 i  |DeletePrintProcessor 从指定系统删除一个打印处理器 . @- _: Z) E' Z' S
DeletePrintProvidor 从系统中删除一个打印供应商 0 V9 a" v. e* p
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
5 e' r  U. l9 K3 W, w' K3 }9 W- oDocumentProperties 打印机配置控制函数
' K1 F$ r! g, B; MEndDocAPI 结束一个成功的打印作业 # e5 _: C  a0 M. }
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
- j. ^5 Z3 a1 B* [, \EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
5 ?- y5 Z0 x7 y3 W& a7 nEndPagePrinter 指定一个页在打印作业中的结尾 $ t+ m( C5 W3 r! s- b1 O/ ?8 A8 [8 m
EnumForms 枚举一台打印机可用的表单 . t; N: i- D7 I& [, E
EnumJobs 枚举打印队列中的作业
9 B( `2 y: d9 H. zEnumMonitors 枚举可用的打印监视器 4 r  [$ P; t6 b( a
EnumPorts 枚举一个系统可用的端口
6 M2 I! D. e8 Y5 [6 |+ B# j# y, jEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 . v% X$ u% [3 d" Z/ Q+ g
EnumPrinters 枚举系统中安装的打印机
6 o& |9 ]8 E/ Y8 PEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
' `! w/ W$ s3 KEnumPrintProcessors 枚举系统中可用的打印处理器   K& q' N& |  e/ n: c
Escape 设备控制函数 7 M; H2 U* _$ D
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 9 Z) m+ a# r- D$ i' Y  r$ V
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 * z9 j+ j3 }+ u5 g- b" g
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 0 L4 ]+ M, F) a0 v# z3 h1 }9 k
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
  w3 D" O0 a1 e* r4 Z: h" z  HGetForm 取得与指定表单有关的信息
8 E: y0 t9 I6 q1 l* `/ d/ c9 sGetJob 获取与指定作业有关的信息 + P: _1 c% @7 B. M, d$ H
GetPrinter 取得与指定打印机有关的信息 & l/ O" K7 A; E+ E
GetPrinterData 为打印机设置注册表配置信息
# s& k, b) E; F5 |GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
" F6 z6 n/ A( j. UGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 4 i. I6 _1 c6 T& U4 C: y8 N
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
  g: i: |9 x' Q; Q2 R0 bOpenPrinter 打开指定的打印机,并获取打印机的句柄
  V5 r; L4 S. x" t/ v2 o2 SPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
( o. l& i# A1 h, d5 C: k4 m1 uPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ' }2 F9 n: {% Q- j! l1 q. q
ReadPrinter 从打印机读入数据 " i- o; W5 S# u$ `, d8 {( [! q
ResetDC 重设一个设备场景
7 z/ q: x/ m; F& Y7 XResetPrinter 改变指定打印机的默认数据类型及文档设置 6 L4 \2 Z; R* j) G" V* Q; z, Z
ScheduleJob 提交一个要打印的作业
9 |0 x' C) E# R$ f4 M9 KSetAbortProc 为Windows指定取消函数的地址
6 v! b# Q- l% wSetForm 为指定的表单设置信息 + u: D4 o1 t7 ]8 Y+ E0 t/ e$ F
SetJob 对一个打印作业的状态进行控制
& B7 G8 n: K. Y2 N4 ?. jSetPrinter 对一台打印机的状态进行控制 - `. l3 s: O6 D1 x. t" D
SetPrinterData 设置打印机的注册表配置信息
# e% a, m; H- i5 S7 j: ]2 u. J0 ]+ `StartDoc 开始一个打印作业
9 ]0 l+ s  ?# A9 N5 }( XStartDocPrinter 在后台打印的级别启动一个新文档 . o, n# Y+ X* T
StartPage 打印一个新页前要先调用这个函数 / V0 d, j+ ~" C7 B& v" i% o
StartPagePrinter 在打印作业中指定一个新页的开始 % W* M  ?' P4 @" _" {" t
WritePrinter 将发送目录中的数据写入打印机
8 j$ E8 l  J# X3 a( E5. API之文本和字体函数
% ^7 k: D& H$ A4 {* O/ y! W# H- L4 d- vAddFontResource 在Windows系统中添加一种字体资源 # P/ A5 w4 h* U: ~3 a( d9 p& s
CreateFont 用指定的属性创建一种逻辑字体 3 Z5 f- J( P$ ?( P* }7 A
CreateFontIndirect 用指定的属性创建一种逻辑字体
; j/ o+ w$ j4 m+ DCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 / p- q5 l& t. ?- [4 |
DrawText 将文本描绘到指定的矩形中 7 X; r3 R# c8 g* n$ _
DrawTextEx 与DrawText相似,只是加入了更多的功能
2 |3 P8 J- x5 t2 D" ]" Q0 bEnumFontFamilies 列举指定设备可用的字体 3 L7 Z& f2 R8 C5 Q3 @3 s8 Y! h/ ~; `
EnumFontFamiliesEx 列举指定设备可用的字体
8 _& H3 |& g# p' w) _/ y* K- L1 vEnumFonts 列举指定设备可用的字体
$ a$ J* }) G5 y0 Y2 _9 J5 CExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
3 ?2 R5 O( B5 ^) E6 |GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 1 q  X8 b; G' @0 ~5 B0 m' E. q9 }
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
' d' {- E% P  `* m# i  ^: }GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 6 D, @  \) _8 [1 G2 P( R
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 ! W4 l/ E- R+ @6 D% l; D5 b
GetCharWidth 调查字体中一个或多个字符的宽度 ' ^9 f* q% G; s+ h# ~
GetFontData 接收一种可缩放字体文件的数据 7 d. J2 r* b# m" b& Q7 Q
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 : Z+ r8 P% k% _  I3 |% H8 I
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 2 I" ~. t  a* D
GetKerningPairs 取得指定字体的字距信息
; J/ i8 ?& X( w! e1 BGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 / n% h" s. f( V5 w  _
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 ) W. F& w$ \' F& _3 A) O* H$ Q
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 & ]7 G3 C6 @: T7 n
GetTextAlign 接收一个设备场景当前的文本对齐标志 ; d# c) h1 _" q0 d# j0 A
GetTextCharacterExtra 判断额外字符间距的当前值
: }% O8 P0 f' ?" V5 UGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 # e5 }' r: F/ l  i# p
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 * A% \7 f# V+ V$ t' M$ @
GetTextColor 判断当前字体颜色。通常也称为"前景色" 2 B4 E* L* J( G( ?1 O" _. m
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
5 _2 Q2 _3 z  H" B- A0 _GetTextExtentPoint 判断一个字串的大小(范围) # W/ T# P* F! {+ `3 X2 M* `. `' s
GetTextFace 获取一种字体的字样名 7 O/ t, \* I% q* W
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 6 e! t' r" N0 n% M: _" o( G
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
" D! O+ @  R- \PolyTextOut 描绘一系列字串
& s* I/ Q' \( C( B( [; q5 ?RemoveFontResource 从Windows系统中删除一种字体资源
1 F. t; L; o: R/ @7 `SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 % x* b, e; X  d0 M' N7 U
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 - t/ y) K" W; u4 ]) d( s
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
7 D( V1 [& ~- U8 x# X# x3 B1 TSetTextColor 设置当前文本颜色。这种颜色也称为"前景色" & V7 O8 S# W8 q# F( d  \
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
( ?8 y' n1 t) W6 G1 @, \0 rTabbedTextOut 支持制表站的一个文本描绘函数 / o( g9 U' z* `4 l% ^
TextOut 文本绘图函数
$ S; p$ h1 n7 dWINGDIAPI BOOL  WINAPI TextOut(
- o$ N5 t7 c: ?) vHDC,     //输出设备
3 j6 e( P9 z2 i. F2 r$ w' x/ \- xint,     //输出的横坐标
2 m; C; P" \# I- N, i  jint,     //纵坐标% n) g! q4 G! q2 r
LPCSTR, //输出的文本str
1 I- _+ F- p6 m9 g! a7 n: ?( pint);    //文本的长度:lstrlen(str)& r4 I- D; s- \- p! }
6. API之菜单函数 * E1 L( v7 w+ W: @
AppendMenu 在指定的菜单里添加一个菜单项 # O6 o, I3 r: R- r5 U$ z; x
CheckMenuItem 复选或撤消复选指定的菜单条目
9 W5 w, ]( d4 y9 `  N, BCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
5 p. o. {4 O/ h  a) M' oCreateMenu 创建新菜单
  L/ @& @9 f6 L# F. XCreatePopupMenu 创建一个空的弹出式菜单
6 ~1 N# Q$ q* W3 ~. o* i# g( X. |DeleteMenu 删除指定的菜单条目 # j# b& z: x- V& C5 D: F
DestroyMenu 删除指定的菜单 ) O& B* o+ S: T- _% r
DrawMenuBar 为指定的窗口重画菜单
, V+ b) e. s* c; K- t7 W% ?EnableMenuItem 允许或禁止指定的菜单条目
2 [4 y. P, `. ~& Q) E& uGetMenu 取得窗口中一个菜单的句柄 % N4 g: o" w# y! R7 a
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
: z: @) ]- l+ w7 x/ PGetMenuContextHelpId 取得一个菜单的帮助场景ID ! q! h( O( y$ X6 L8 r, ]
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 2 f8 _; o8 V) t
GetMenuItemCount 返回菜单中条目(菜单项)的数量 4 c3 C- n! m$ Y8 G
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 5 p) [8 ~: y9 H6 h
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 * q2 q& c3 ?1 \- o1 N
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 - D0 o5 V' c: e& [: a
GetMenuState 取得与指定菜单条目状态有关的信息 ' R: ]  s" _/ `7 n5 u5 o
GetMenuString 取得指定菜单条目的字串 0 f5 ~! V( b0 X
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
1 ~: N5 X$ Q- DGetSystemMenu 取得指定窗口的系统菜单的句柄 $ `7 v' k$ |2 L3 H2 ~$ F
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
. q2 M" P/ X4 w" }InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 ! Y2 K9 G+ r! O! W
InsertMenuItem 插入一个新菜单条目
4 r; n7 j* x$ x6 s7 OIsMenu 判断指定的句柄是否为一个菜单的句柄
3 f+ W2 |1 q6 x' O3 ^LoadMenu 从指定的模块或应用程序实例中载入一个菜单
( E' x. Z$ x  X2 NLoadMenuIndirect 载入一个菜单 / o5 o* B8 y2 B4 ^
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
& D4 X$ S$ z  C2 J5 C( m  w6 LModifyMenu 改变菜单条目
. @0 b: G) @* A- aRemoveMenu 删除指定的菜单条目 ( t8 @2 V5 w4 Q# Y4 A  G0 H
SetMenu 设置窗口菜单
: ~: V* j/ R" w- jSetMenuContextHelpId 设置一个菜单的帮助场景ID
4 Q9 _, X# Y* P, m3 _SetMenuDefaultItem 将一个菜单条目设为默认条目
6 U  k6 E/ e% S$ c. n1 ZSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) ! U1 ?+ N) t& K" U
SetMenuItemInfo 为一个菜单条目设置指定的信息   C, Q. _" q# i& c, q+ z4 k8 T+ I
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
0 b/ x0 B" R8 U' h- W  hTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 4 K) }& ^) f: w  @- y# I' A
7. API之位图、图标和光栅运算函数
: E; E2 \, ~/ O. ^0 U" r7 ?5 FBitBlt 将一幅位图从一个设备场景复制到另一个7 g0 X  n2 X. J0 \& y/ b6 ~% C
     WINGDIAPI BOOL  WINAPI BitBlt(
0 `, ]: W2 M* I- X  [2 l" j6 _HDC,     //目标HDC% R9 J; E7 a) n9 V6 z2 g
int,     //X1! ^3 H% B; T* o% _4 J
int,     //Y1
: i& q* T. v* x- m: Hint,     //width- i, }$ R$ |+ j3 l
int,     //height, v) y5 b! {$ H
HDC,     //源HDC
/ C7 R7 ]9 s4 O: [int,     //右边的距离; k8 G, |- u" C) }' I0 ~, \
int,     //??( \4 F- \0 M! e9 f  f& T  \+ {
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
6 d: u( T* z3 c1 A7 V; ?* Q3 UPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS4 X: F* N1 K  z" C4 F/ z' }
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
1 }7 W1 @: A  w; D/ CCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
. M* V1 g8 b8 A1 NCreateBitmap 按照规定的格式创建一幅与设备有关位图 - I. m1 p: `) Q) I3 T/ }
CreateBitmapIndirect 创建一幅与设备有关位图 . v' a$ ?+ N2 O' M" r
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 . O- ^% N( T7 c# o, F+ Q- S6 k/ F
CreateCursor 创建一个鼠标指针
8 i5 c; s" z/ |CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
& O4 Q; k. v! A8 ?6 V+ s. E; YCreateDIBSection 创建一个DIBSection 9 O5 L" U2 |8 C; {6 i9 m! ]
CreateIcon 创建一个图标
) H) I3 e7 W- Q# w  WCreateIconIndirect 创建一个图标
0 e" _' a- [6 UDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 . c- b/ ~8 G9 V7 G  A! }! |
DestroyIcon 清除图标
* x1 \* I' T6 f; v9 i# h0 N% C$ aDrawIcon 在指定的位置画一个图标 ) c# H5 P( ]( }, b+ h6 h
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
9 O  P9 k8 O9 Z1 I/ p- PExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 5 N/ |' d. U% q8 ~
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 + l3 j; Q/ y! D6 |0 }* l
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 # G$ C' k6 h9 `4 Z: G! c# W1 }
GetBitmapDimensionEx 取得一幅位图的宽度和高度 ' A% k) N. K1 Q
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息   K, }- w4 J* G0 f* L# |
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 8 r4 @3 W) s) x' P/ z
GetIconInfo 取得与图标有关的信息
: w  {9 k- H$ o+ o* E6 ZGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式   P4 d: _0 |6 n2 W" Y4 G) g
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
& G- t0 o$ b" p& R2 SLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
# X) _5 |. f8 U" d' O5 PLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 9 _/ ]1 L$ ?8 B# Q
LoadIcon 从指定的模块或应用程序实例中载入一个图标
: ^2 ]8 x/ o' _0 p1 j# o; OLoadImage 载入一个位图、图标或指针
+ l( l5 P2 f% L1 jHANDLE LoadImageA(
# X7 `5 W2 P0 U+ gHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
" ]' B) `  A5 \4 j0 Q    LPCSTR,               //资源所在的目录:c:\help.bmp
8 _' f: P; U+ h    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
9 k- q, h0 V" e6 l2 k    int,                  //0 z0 x$ s' d- {9 g
    int,                  //
7 q$ W: j! H! a8 I# M) [, WUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
+ v* C" T4 `/ F1 VR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
6 u0 j; N. Y8 s0 Z( u. xLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
1 k' X0 e2 }+ y- F- z  eMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
% O0 X2 L* `8 Y) {3 ZPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
. L1 N* g' E& K, G$ X+ BPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
* ?7 s- N3 L8 |4 eSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
+ v5 y& d; ~* I! T+ @6 u9 WSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
' D7 _8 V% q- q  ]SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 6 [' s6 J9 x% V5 G, t
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 . h( r4 `/ C# E5 p
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 $ u  s' w- H/ b
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 . M1 y1 l' p6 B8 d9 b- A9 E9 v* V
StretchBlt 将一幅位图从一个设备场景复制到另一个 : n) r5 E7 O+ F3 p* \( h% L
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 / i  r+ U3 n  _: H7 L, q
8. API之绘图函数
! h+ t% C( X0 F4 q& h0 T6 q0 HAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 3 _/ J1 y9 Z. |! s
AngleArc 用一个连接弧画一条线
& \/ ?, u  X) O; t. S9 ?Arc 画一个圆弧 ! b6 h, w4 }& v, W' }
BeginPath 启动一个路径分支 8 J, W+ g$ B) \: S' D
CancelDC 取消另一个线程里的长时间绘图操作
: y2 P) j: X+ w# Z$ a' P  bChord 画一个弦
$ T7 v0 G; N, W$ O1 ?CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 ( S, k5 P7 ~+ u( X* ]) d& H
CloseFigure 描绘到一个路径时,关闭当前打开的图形 ! T& Z5 E- h' C. e6 k, F6 O
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
1 s7 B, ^3 @2 q" |3 ?5 {( K. `1 iCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
7 w7 _' V  v6 D/ b5 t" T6 pCopyMetaFile 制作指定(标准)图元文件的一个副本 . @0 o, e5 u  J2 J# G
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 3 i# w  @3 p3 M/ l, [4 m% \
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) + a8 S- _0 g6 p. z5 e1 V% \
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
8 D. t2 v; ~3 z0 v2 z( z7 kCreateHatchBrush 创建带有阴影图案的一个刷子 & |3 u: y  K3 V% u0 t. z0 m
CreateMetaFile 创建一个图元文件设备场景
0 V2 I9 \  _! M% p1 NCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 $ n5 ?  j: ?4 p" a4 y+ G
CreatePen 用指定的样式、宽度和颜色创建一个画笔
/ m( N+ x; s0 R+ s8 X% M9 w1 x# VCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
$ T+ I$ ^! M$ S5 V8 J" @1 d: fCreateSolidBrush 用纯色创建一个刷子
( t5 e5 a- }, C, E3 LDeleteEnhMetaFile 删除指定的增强型图元文件 ! b0 T3 V9 O7 r7 v7 Q$ d2 F( j
DeleteMetaFile 删除指定的图元文件
4 j1 S, K2 Y6 j8 L- I) x' l; N# |WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放5 p" s" Z8 q# s$ o$ L$ R
DrawEdge 用指定的样式描绘一个矩形的边框
: h: i& R( u  o2 ]( gDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 " u( ?! B5 Z: K: K+ t1 |
DrawFocusRect 画一个焦点矩形 : |% ~, Y7 @, {* }, v
DrawFrameControl 描绘一个标准控件 1 l: {% y: c) t6 \) |
DrawState 为一幅图象或绘图操作应用各式各样的效果 , g8 I+ u$ X4 ^  r+ L6 n* c
Ellipse 描绘一个椭圆,由指定的矩形围绕
) `1 n6 i; j* I! J" qEndPath 停止定义一个路径
+ ^3 D8 H  e  ]* o1 u- {) x, gEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 / O* f+ C+ s- z) z9 O3 w) ^3 t
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
1 r7 [6 A8 r5 E/ l' nEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 # @$ u$ e( K* x/ S2 w  s" M
ExtCreatePen 创建一个扩展画笔(装饰或几何) " [+ H+ q/ G3 i. z# u: i; N8 P3 m
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
/ o. z/ k* q. ]  f6 |) iFillPath 关闭路径中任何打开的图形,并用当前刷子填充 9 a" c/ n9 C- Z0 C. ^/ _" y
FillRect 用指定的刷子填充一个矩形
: k* J) g: A$ D8 @* W( ]FlattenPath 将一个路径中的所有曲线都转换成线段 & K5 w: ~/ N) p4 ~: R) u
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
/ q! g" w1 v! C4 I  k; OFrameRect 用指定的刷子围绕一个矩形画一个边框
1 O# P2 W) z8 {  Z* ZGdiComment 为指定的增强型图元文件设备场景添加一条注释信息
" f4 V# Y+ X# n3 D+ I7 h# A3 ^5 fGdiFlush 执行任何未决的绘图操作
! b4 i' u+ v6 _; ~! ]GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
- a5 F% D: K2 a- a& ZGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
3 Z/ I# O4 V$ u, p3 ~) b8 FGetArcDirection 画圆弧的时候,判断当前采用的绘图方向 8 m0 y. S8 r( Y
GetBkColor 取得指定设备场景当前的背景颜色
8 A) m6 w  u9 O0 H# _" ^1 _GetBkMode 针对指定的设备场景,取得当前的背景填充模式 9 {; @' I3 t1 g8 v, ]. s
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
* F7 m" |% @, L7 z6 f1 tGetCurrentObject 获得指定类型的当前选定对象
6 i2 \& U' c0 Z6 w+ kGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
0 u& m5 v8 ]% [GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
4 @. Q2 c0 A; t. p6 w. x3 P+ YGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
- f+ X- r: P; y- t" d; u2 tGetEnhMetaFileDescription 返回对一个增强型图元文件的说明 1 t$ P! s$ q8 B6 @  T: m
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
/ G8 O) c4 w# H! N9 \& XGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
7 l1 b3 X8 q1 c+ f. \: vGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 & s0 d, b2 Y4 W* r. f$ ]) H$ c
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 # b4 K8 b4 G$ q6 R; t
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
2 N+ q5 y( u- n8 {6 GGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 9 }7 j) W4 M0 K; L, _. f# x
GetObjectAPI 取得对指定对象进行说明的一个结构
6 O0 H& x5 b, \+ s6 ^4 ]GetObjectType 判断由指定句柄引用的GDI对象的类型 5 G2 h% W) Y! P* _; F! m  h
GetPath 取得对当前路径进行定义的一系列数据
$ `1 E  h7 }1 u9 r: u; OGetPixel 在指定的设备场景中取得一个像素的RGB值
3 g0 l" Z" j* ^% A$ W3 M. _/ c/ i3 ]GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
& u6 K/ e% q. i7 U' ZGetROP2 针对指定的设备场景,取得当前的绘图模式
9 v" Y7 p1 J+ z$ NGetStockObject 取得一个固有对象(Stock)
; c( {$ C- `$ J/ `- F( CGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
- x( D+ t5 e' G, }GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 / B  s. Q" i. W. P
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 ' O( C0 A% H; w" c7 S  C+ L& t
LineDDA 枚举指定线段中的所有点
$ A4 V2 t: J- H0 |- zLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 * E( A& p2 |+ @
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
" T! e2 `6 Q+ A# |8 D+ y% ^9 C' o+ QPaintDesk 在指定的设备场景中描绘桌面墙纸图案 3 s4 f8 y* X7 R  Y+ W
PathToRegion 将当前选定的路径转换到一个区域里 4 t4 W% v5 [  Q  _5 F
Pie 画一个饼图 8 H* v" l* d9 W  {2 [+ G
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
7 v. E6 b% i) {9 y* QPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 " K) s% i- G$ A1 I/ w& G. |7 [
PlayMetaFile 在指定的设备场景中回放一个图元文件 3 i& W' p, r: v7 }  e
PlayMetaFileRecord 回放来自图元文件的单条记录
& G* i) p; o' QPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 3 r0 ^( Y0 q0 p" p8 u  Q/ k  U3 R
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
8 p/ k+ ?& m: G1 ]) I2 l. [. rPolygon 描绘一个多边形
1 g) j; @8 y7 x/ }& m- {$ L1 UPolyline 用当前画笔描绘一系列线段 + ]5 f1 x/ M6 F2 B
PolyPolygon 用当前选定画笔描绘两个或多个多边形
( h2 H( J- g9 d* q, c/ _PolyPolyline 用当前选定画笔描绘两个或多个多边形 9 V/ F! X: S5 y. K7 K' |7 {
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
% h+ h4 r- L( H$ {% {  m' i" C6 pRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 % v/ p! S5 q* ?- q  d" }
SelectClipPath 将设备场景当前的路径合并到剪切区域里 8 y. J+ k9 Q8 K2 ~9 f/ i
SelectObject 为当前设备场景选择图形对象 % g- x* K5 G) Q& v
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);/ l1 g, P) \3 `  p% L( P+ B
SetArcDirection 设置圆弧的描绘方向
( h3 S( J  n# v% Z% qSetBkColor 为指定的设备场景设置背景颜色 + L% |/ N2 }  c0 h8 }* Y- X5 B
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 ) `' I4 o5 d+ n; u* p
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
/ M0 K  @6 r" r7 [7 u4 WSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
5 G8 `# j) p; h' fSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 ; \6 z, B% B& c% x% `
SetMiterLimit 设置设备场景当前的斜率限制 # ~5 a6 i# y  s3 k! I; U- f0 q& @3 @6 f4 \
SetPixel 在指定的设备场景中设置一个像素的RGB值
9 O/ Z; J* w. ^7 GSetPixelV 在指定的设备场景中设置一个像素的RGB值 ; t5 o* l7 V+ T% m$ ^
SetPolyFillMode 设置多边形的填充模式
) F5 m) G: B- ?/ t1 TSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
; J0 O% ?; z7 ]3 s' qSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 + X- J9 |: W1 \
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
$ ?+ B  F7 i" e! fStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
& e* {2 h9 ^1 X* X* GUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
- w0 Q# V, |: n5 K( CWidenPath 根据选定画笔的宽度,重新定义当前选定的路径 3 u6 r2 X8 d$ C8 Z+ K" q; s0 C
9. API之设备场景函数 $ E; ^3 u/ R( B0 ?
CombineRgn 将两个区域组合为一个新区域 4 K, d+ m+ ]  E
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
( L, h) ^7 {& |$ I! e8 oCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
. T) e, J% x$ ]. x: P6 j0 ^% \CreateDC 为专门设备创建设备场景
( o) }4 c6 {* }2 ^! JCreateEllipticRgn 创建一个椭圆 . v! n, f$ C2 K- U' a# W: }
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 # x, k3 F, f, {' U
CreateIC 为专用设备创建一个信息场景
, V  r9 R; C6 x! M, I7 C! rCreatePolygonRgn 创建一个由一系列点围成的区域
2 n# R% w3 K- x) U& c4 oCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 ' G" X' C  H) ]8 v$ |( l9 g
CreateRectRgn 创建一个矩形区域 # x  T5 h  u! k# j+ [; _4 W
CreateRectRgnIndirect 创建一个矩形区域 - s. x% w* Z$ P5 y
CreateRoundRectRgn 创建一个圆角矩形
) b6 j, `: J7 E. NDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
) B* C* \  w4 H- xDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 ! R9 A( W/ g4 Q& H, L
EqualRgn 确定两个区域是否相等 ' Z; u# G( D3 R
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
  ^3 Q3 i. e0 g& m  uExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
6 ~* ^4 L4 M6 x, {: BExtCreateRegion 根据世界转换修改区域 % d* E; x+ `# W- T% n( r
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
# p% [5 C6 g3 \4 ?FillRgn 用指定刷子填充指定区域 8 A- B2 C5 l8 P+ E
FrameRgn 用指定刷子围绕指定区域画一个外框
/ c( Z' B2 r2 L$ E# F9 l% LGetBoundsRect 获取指定设备场景的边界矩形
( Q+ p  w/ S. cGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 . o( ~& c; i0 X* e+ Z) d3 ]: R
GetClipRgn 获取设备场景当前剪裁区 : s- [# k% d3 K$ K+ R  U) b0 e
GetDC 获取指定窗口的设备场景
3 U* V/ P# A2 \GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 & O8 U4 q3 e) ]; \
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
; y! c) p8 N& r: U! CGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 7 E% G+ h9 l  D& `' @1 W- U
GetGraphicsMode 确定是否允许增强图形模式(世界转换) & a  M9 P* \+ }3 x: @* k& w
GetMapMode 为特定设备场景调入映象模式 ' i7 i/ f. c3 H3 U+ }( D
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
* O4 z7 e" r# w* c  m( H9 ?5 \  VGetRgnBox 获取完全包含指定区域的最小矩形
: z, l$ B$ `  v- w5 `" P9 kGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 5 D6 ~& p- H% g8 [
GetViewportExtEx 获取设备场景视口(viewport)范围
4 s5 h* h! O7 @4 i# |3 H$ _5 qGetViewportOrgEx 获取设备场景视口起点
& F0 F2 ~+ y" U( Z' J0 HGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
2 F  h8 N# a- rGetWindowExtEx 获取指定设备场景的窗口范围 2 {! P5 E4 K  I7 x: W) s
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 7 v8 n3 ]& ?: u3 j0 X8 m
GetWindowRgn 获取窗口区域
2 H: B9 n3 z0 y4 QGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
& H- @% e" x1 ]$ b! x) ~IntersectClipRect 为指定设备定义一个新的剪裁区 6 N4 z) k- v+ a! r7 \; C
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
- ]+ r% W: e7 q  D, J( S( o4 xInvertRgn 通过颠倒每个像素值反转设备场景指定区域 " P5 X6 W" Y. T& @! x
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
5 L, V% P, W/ Q1 H8 }+ t2 M3 P5 LModifyWorldTransform 根据指定的模式修改世界转换   K  ]2 x4 |, c$ S7 ^  K% x' F
OffsetClipRgn 按指定量平移设备场景剪裁区
- h: L( g6 N+ ]5 h, _) HOffsetRgn 按指定偏移量平移指定区域 . \& e0 ^+ ?- x
OffsetViewportOrgEx 平移设备场景视口区域
/ m4 d& H& v# x# z9 A  }. Q; LOffsetWindowOrgEx 平移指定设备场景窗口起点
0 Y! _, y7 W, F5 {$ a" _. GPaintRgn 用当前刷子背景色填充指定区域
& r6 d; L0 Y  g5 kPtInRegion 确定点是否在指定区域内 ' o, N  T: N1 ]5 p
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) : g3 A" V6 u- J- s
RectInRegion 确定矩形是否有部分在指定区域内
9 O; V3 q; l! J6 D6 h; ^  ]8 wRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) # ?" U$ c; N8 `
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
7 m  ~( ^2 q$ t7 URestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
# t6 |# I& ]4 O$ Z5 C. \2 ^SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 5 e8 v# B) x; _1 t2 ]: m4 s
ScaleViewportExtEx 缩放设备场景视口的范围
0 F$ @. c3 m0 [: m9 }ScaleWindowExtEx 缩放指定设备场景窗口范围
+ |; m; M" v7 j/ l! ]ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
/ @0 n+ K6 f8 Q( A" b1 x# f* PSelectClipRgn 为指定设备场景选择新的剪裁区
& I+ i; |0 O3 N, V# DSetBoundsRect 设置指定设备场景的边界矩形
# V' m3 r; ^, ySetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) * `% ~5 d! F- ^# k# F
SetMapMode 设置指定设备场景的映射模式 % F% i3 ?! h- i1 K
SetRectRgn 设置区域为指定的矩形
* O6 f' X6 S) R! ?  i* \SetViewportExtEx 设置设备场景视口范围
' J3 {3 b; U: I! W( ^  MSetViewportOrgEx 设置设备场景视口起点 8 S; G/ |7 p( }, j/ h- d
SetWindowExtEx 设置指定设备场景窗口范围 # U8 n" n& j# B+ W! z" b# ?
SetWindowOrgEx 设置指定设备场景窗口起点 8 F) q5 _, \, e& U, m8 u
SetWindowRgn 设置窗口区域
( e. T, a( w8 ]9 S4 `, J2 ZSetWorldTransform 设置世界转换
1 i  |# f  N% t/ h1 d4 cValidateRgn 激活窗口中指定区域,把它从刷新区移走 ! `% d1 V; B' c/ L8 W/ g5 I3 J
WindowFromDC 取回与某一设备场景相关的窗口的句柄 2 q7 O6 c" |% @% p+ u, p, U2 b: E6 D5 Y
10. API之硬件与系统函数 / i* _. k9 z* _. t* h
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 * C4 A# r0 X# m$ D- G2 s' M, u7 L* c
Beep 用于生成简单的声音 0 R4 _7 `8 U- t! \: O
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
5 Y. H0 W. \* l8 AClipCursor 将指针限制到指定区域
$ G0 i8 }% i0 K9 g1 SConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
# D  F5 A- ~! kCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
0 H5 l( _, B4 c/ [DestroyCaret 清除(破坏)一个插入符
9 H  B" y! e! k. Y' UEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
" W/ H3 F& W# J: a# \! [# IEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 " T3 e1 c  M. j& o
EnumSystemCodePages 枚举系统中已安装或支持的代码页
  V, n  R& b! Z0 YEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 5 G. `1 X. a! A
EnumTimeFormats 枚举一个指定的地方适用的时间格式
0 C; [2 ]9 A# l  i- l* s* y( Z+ yExitWindowsEx 退出windows,并用特定的选项重新启动 / A( d* g# S1 w& \8 g
     WINUSERAPI BOOL WINAPI ExitWindowsEx(
" Q, r- F+ S+ d, mUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG1 t% v2 |5 L+ S8 @. W5 j
     DWORD dwReserved); //0& {  ?: z, B! E! _. X  o
ExpandEnvironmentStrings 扩充环境字串
; A$ p, o3 z: `6 `# ^+ \4 `FreeEnvironmentStrings 翻译指定的环境字串块
) a1 z& u/ n* {) eGetACP 判断目前正在生效的ANSI代码页
0 n8 t$ k7 @2 y3 L* C, vGetAsyncKeyState 判断函数调用时指定虚拟键的状态
  Q, C* m8 v% E5 ]* }GetCaretBlinkTime 判断插入符光标的闪烁频率 7 J$ g- {2 N) z+ s
GetCaretPos 判断插入符的当前位置 & Z3 z! U' \5 S* V: R7 z
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
9 _. a! ?$ I. @1 q6 \GetCommandLine 获得指向当前命令行缓冲区的一个指针 * ~) W: v9 g9 Y! @
GetComputerName 取得这台计算机的名称
1 V1 q3 A) r) y% V6 E( |8 g3 cGetCPInfo 取得与指定代码页有关的信息
! O( ~; z; b  M1 yGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
$ [$ N# ]& P5 T5 G( A4 z. f+ tGetCursor 获取目前选择的鼠标指针的句柄
5 s6 d  _6 b, `( U. Q# ?* g+ J$ f( |GetCursorPos 获取鼠标指针的当前位置 ! y2 n, k" v! }! b' m' d
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
: ~: _1 I3 S7 l: IGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
2 t2 r; T# X8 Q  ?0 G8 oGetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
4 x" M( v" x  x/ K7 DGetEnvironmentVariable 取得一个环境变量的值 : s* e) T" e+ D8 q
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
  E* G/ j6 w; Y+ U& ~4 n9 IGetKBCodePage 由GetOEMCP取代,两者功能完全相同
6 C  m+ ~  H) {5 u% {2 [2 yGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 , ?2 c" V' f' L( |" q% j! j( o1 f+ q
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
- q: ^! `" z' X1 H' RGetKeyboardLayoutName 取得当前活动键盘布局的名称
2 _( \) h" @, O0 E2 {GetKeyboardState 取得键盘上每个虚拟键当前的状态 5 r* t$ ^9 M$ O. H" c& X( Y4 A1 B
GetKeyboardType 了解与正在使用的键盘有关的信息 / \  T; q( m) a1 K$ D& b4 s
GetKeyNameText 在给出扫描码的前提下,判断键名
% a3 A$ D" y$ {GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 7 ?7 {+ C+ B" b3 Y2 c. x1 y  ?
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
# z3 ?- M( X6 ^) d' J" ^1 L) }GetLocaleInfo 取得与指定"地方"有关的信息
) n3 Q) |' s& b8 [# Y$ O" f8 ZGetLocalTime 取得本地日期和时间
4 y& ~' [1 _6 e5 @5 lGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
7 n- m! |8 G% J- i! v6 ZGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
+ a8 E: m% s$ u3 m" G. P" \GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
( O' k4 ^( }, {7 IGetSysColor 判断指定windows显示对象的颜色
/ `4 c# F, @$ o6 d7 BGetSystemDefaultLangID 取得系统的默认语言ID 1 p7 z3 m2 {6 T9 K
GetSystemDefaultLCID 取得当前的默认系统"地方"
7 }9 a; q( I; ?( e* r. cGetSystemInfo 取得与底层硬件平台有关的信息 ) i, K& Y% a. S. f5 E+ }
GetSystemMetrics 返回与windows环境有关的信息 . E7 ?( B2 Q4 }8 [
GetSystemPowerStatus 获得与当前系统电源状态有关的信息
* q  d' o4 Q2 h! s7 z$ JGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
" F! F4 f) F3 p: k( NGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
9 G' N0 p- L8 IGetThreadLocale 取得当前线程的地方ID 1 [& G: }$ q. P  N
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
6 @& m% Q) r. G' I7 OGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 ( {: Z/ Q; [. H* A
GetTimeZoneInformation 取得与系统时区设置有关的信息 , X0 ~4 V7 I. Y* j  ?
GetUserDefaultLangID 为当前用户取得默认语言ID * V" [% ]/ j  Z8 D& e6 e* i
GetUserDefaultLCID 取得当前用户的默认"地方"设置 6 Y, i  b/ Z4 K) T  `, c
GetUserName 取得当前用户的名字
0 k: ~; n: O& |6 y4 A: \8 mGetVersion 判断当前运行的Windows和DOS版本
: x: g  o, Q' oGetVersionEx 取得与平台和操作系统有关的版本信息
7 e+ l8 f3 ~" Z2 y! jHideCaret 在指定的窗口隐藏插入符(光标) 3 |2 r: t' T; ^5 Y6 |# t
IsValidCodePage 判断一个代码页是否有效
8 L! W0 f+ T6 B& e- `7 j4 KIsValidLocale 判断地方标识符是否有效 5 P5 E4 g# _8 A8 u' u
keybd_event 这个函数模拟了键盘行动
% e& Y1 y1 U  PLoadKeyboardLayout 载入一个键盘布局 7 Y/ {# p$ n! W4 `
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 ; e( V3 ?1 }% ~5 M: D* Z
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 : u  ?$ H4 m. S& H- M
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
4 ~/ {3 [$ p0 b0 b) G2 Vmouse_event 模拟一次鼠标事件
+ @. }, z. H: ^. z( x) mOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
" ~8 x) x" u4 {" G0 ?; z+ V1 w0 COemToChar 将OEM字符集的一个字串转换到ANSI字符集
, c: p1 a1 Z8 f0 x& L8 G& ~SetCaretBlinkTime 指定插入符(光标)的闪烁频率
2 Z( J; B) C8 M8 Z1 u" wSetCaretPos 指定插入符的位置 ) x; v+ x) W3 J, Y! p- I
SetComputerName 设置新的计算机名
* ^5 p* y+ v/ `9 DSetCursor 将指定的鼠标指针设为当前指针
, o7 Y) {9 Z; y* c9 ?; @, oSetCursorPos 设置指针的位置
' @; O6 m' o& c! ]  d9 I* h$ wSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 , w; I, @  {7 T6 R/ l" B9 k
SetEnvironmentVariable 将一个环境变量设为指定的值
- D! a8 k. E8 QSetKeyboardState 设置每个虚拟键当前在键盘上的状态
1 F8 K. ]2 }8 M: QSetLocaleInfo 改变用户"地方"设置信息
0 d; \# B0 {: Z1 s5 {/ d6 `; @SetLocalTime 设置当前地方时间
9 r  P6 ^7 b1 I  @' sSetSysColors 设置指定窗口显示对象的颜色
. X1 N5 j" ?6 aSetSystemCursor 改变任何一个标准系统指针
% t4 r- R5 i4 D( L* _' p* LSetSystemTime 设置当前系统时间
2 C; ^; L, e6 }/ U: U$ k6 q8 k' u# tSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 0 H- b- m4 E6 h3 K& ?- F: ~
SetThreadLocale 为当前线程设置地方 5 j2 ?% s7 X& y; h, ~
SetTimeZoneInformation 设置系统时区信息
! r* q+ r8 ?3 C  Q7 vShowCaret 在指定的窗口里显示插入符(光标) : S2 P! P$ d, b! m
ShowCursor 控制鼠标指针的可视性
( t3 a7 @- ]6 v. a+ \, uSwapMouseButton 决定是否互换鼠标左右键的功能 7 F: @% s  a% ]0 \5 b+ `) O( F
SystemParametersInfo 获取和设置数量众多的windows系统参数
: F" C; q3 h$ eSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
6 `: O7 ~1 \0 J8 u% l% tToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
8 A1 \. a( Q4 }2 j- Y; A7 ?; f/ ]ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
; A. T& S0 \$ L" s0 V3 wUnloadKeyboardLayout 卸载指定的键盘布局
) I) \; c5 W2 ]6 e  OVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
) ^+ ?  l/ `: ?! k* [3 I11. API之进程和线程函数 ) r, ~: N: L  k0 W8 r! L/ p  G
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 0 w7 k$ ~, O: J* H- ~/ f7 k. w
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
' H6 G; Z6 U4 HConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 4 a' a8 k- ?- Z! W
CreateEvent 创建一个事件对象 1 ~9 [+ l0 Q* \/ O6 t- q9 y0 f7 w/ b/ U
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
4 H( Q- U" v( q2 a$ J6 iCreateMutex 创建一个互斥体(MUTEX) * b" V+ m6 q0 p) ~6 C$ c3 `( O; i
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 6 {8 e  d( q. T5 t1 Z' K
CreatePipe 创建一个匿名管道 $ Y" ~' x- o9 ?
CreateProcess 创建一个新进程(比如执行一个程序)
- `' _8 V2 P) x- |' ?9 H- kCreateSemaphore 创建一个新的信号机
3 V; l! P: v$ G3 S- r- Y; y8 BCreateWaitableTimer 创建一个可等待的计时器对象
' P) _0 c, [  B2 f2 e( S# BDisconnectNamedPipe 断开一个客户与一个命名管道的连接
. t/ d% A$ t* j9 }: g1 h) ?DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
3 D# l1 J( K  Q) _  c! DExitProcess 中止一个进程
4 p, g- I1 l) A! C8 k' L; t0 Y4 WFindCloseChangeNotification 关闭一个改动通知对象 $ U0 \9 d8 c9 V0 t4 d3 p
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 9 M2 d" o9 h  }  R/ O$ h" _
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
! u+ V7 c. Z# @- x5 GFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
" x# A! ~% q* W* ^FreeLibrary 释放指定的动态链接库
8 I$ d, X$ l0 l4 ?5 qGetCurrentProcess 获取当前进程的一个伪句柄 9 b+ A: ~; G; ?% {& }
GetCurrentProcessId 获取当前进程一个唯一的标识符
- z, V' _6 W. F2 WGetCurrentThread 获取当前线程的一个伪句柄
( v; V) _0 j5 J4 J) j2 SGetCurrentThreadId 获取当前线程一个唯一的线程标识符
9 P6 i  e! B3 C7 h+ S  hGetExitCodeProces 获取一个已中断进程的退出代码
* E7 k0 d3 ~7 o4 |7 G  q* ~  Z' }9 qGetExitCodeThread 获取一个已中止线程的退出代码
( {9 B! @! o6 N' ?( m, g! N/ ?GetHandleInformation 获取与一个系统对象句柄有关的信息 3 e6 @) W1 z8 Y7 x7 D. U
GetMailslotInfo 获取与一个邮路有关的信息 + ?8 K+ r* z/ Q- X
GetModuleFileName 获取一个已装载模板的完整路径名称
# Q' e) G# h: A! Z( @( [GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 6 F- P; u2 P. e6 T+ n% v
     GetModuleHandleA(LPCSTR lpModuleName);
0 v7 m. @8 L+ d  F7 }" Z3 h" v4 ~GetPriorityClass 获取特定进程的优先级别
4 [8 X. Q4 \1 z- y# r/ Z/ BGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 / ]+ ?0 Y, R( [, J
GetProcessTimes 获取与一个进程的经过时间有关的信息 + m4 c  ?9 C. ?, R. S! K' G
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 0 g' N' u/ a8 X! o+ s" ~
GetSartupInfo 获取一个进程的启动信息
; S8 S; Q% r, m% ]& b0 wGetThreadPriority 获取特定线程的优先级别 + s2 v# T! s$ A5 S7 Z
GetTheardTimes 获取与一个线程的经过时间有关的信息 : ^5 X- ?% Z9 v4 u! |" m( x
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 * B7 }& C/ R8 A+ x1 p3 {/ v
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
! P1 M  i& Z9 {; U- [7 f: TLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 % ^$ V* `: ~" p# }% H
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 , {/ S2 f. }+ T) y# {
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 ( \+ e) J$ F& I& }2 V
SetPriorityClass 设置一个进程的优先级别 5 J# n" }) Q( j4 Y# |6 W
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
% ^+ s9 u$ m. t9 U( K3 t! |. rSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
8 t# d# h- R; k, oSetThreadPriority 设定线程的优先级别
$ C! r/ W% o- o8 Y% jShellExecute 查找与指定文件关联在一起的程序的文件名
1 h6 h6 T8 H) `. |" v6 i3 ^0 MTerminateProcess 结束一个进程   e9 L4 ^: a* [
WinExec 运行指定的程序
) P7 e" D! \+ @- b12. API之控件与消息函数 $ J) }  b6 d5 B+ b+ X& c
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
, s/ o4 A! S2 g4 E+ i; C8 AAnyPopup 判断屏幕上是否存在任何弹出式窗口
- \8 ?2 d  Z- C& }% F% @0 V" k  |8 ~ArrangeIconicWindows 排列一个父窗口的最小化子窗口
' b0 `& Q4 B4 j  K5 D/ q$ TAttachThreadInput 连接线程输入函数 / `# Y+ o( e, H$ E- a2 y4 J% I3 S
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 , n/ K: k- B3 I$ w
BringWindowToTop 将指定的窗口带至窗口列表顶部
) B( ~$ s& B4 k/ sCascadeWindows 以层叠方式排列窗口
3 e6 X1 R; e# k7 t7 }ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 ) f4 _/ r' m# G
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 9 z5 O. h" R* @. E( \1 w9 N
CloseWindow 最小化指定的窗口 1 o( m7 P& \+ M* q  [' V/ v
CopyRect 矩形内容复制 + B5 }4 q: U6 [. F1 w
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
4 s: C4 @2 j! t9 _- nDestroyWindow 清除指定的窗口以及它的所有子窗口
: [( B( ^2 h, {/ dDrawAnimatedRects 描绘一系列动态矩形
& ^) b0 @: l" t/ Y# s4 GEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 + I0 @' I& \) }9 }6 V
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
+ b4 F/ {& f1 sEnumChildWindows 为指定的父窗口枚举子窗口
# I9 x. I) b$ O% M. b. xEnumThreadWindows 枚举与指定任务相关的窗口
  j  |" Y1 x. w( k- @EnumWindows 枚举窗口列表中的所有父窗口
* O0 `  z: W" ?# [7 k$ G+ C% R8 E" ]EqualRect 判断两个矩形结构是否相同 8 c. U; A9 p8 B# Q/ y
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 # n5 Y% l2 X6 V# z
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
; z4 L: V. z2 C2 B8 c# \( xFlashWindow 闪烁显示指定窗口 , M" j- M0 E* u- Z0 p+ z: p
GetActiveWindow 获得活动窗口的句柄
( X/ b  E* o2 H" G5 FGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) ) T2 o" e7 j# E  t: ]
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
$ Y' y- x! ~2 A5 KGetClassLong 取得窗口类的一个Long变量条目 ! y) Y0 t+ X. _
GetClassName 为指定的窗口取得类名 $ m; u$ N& x8 i) P5 p
GetClassWord 为窗口类取得一个整数变量
' m- t5 F6 b; j; B7 X9 m9 ZGetClientRect 返回指定窗口客户区矩形的大小 ; l0 \9 B  T% T4 B1 W
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
0 \+ L4 n. s5 c% wGetFocus 获得拥有输入焦点的窗口的句柄 3 u/ j$ x( z  s" F
GetForegroundWindow 获得前台窗口的句柄 ( T: g& r2 J3 q1 R
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 ' ^- p. F0 `  C
GetParent 判断指定窗口的父窗口
: |& ]3 n/ l& c! n! aGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
4 `! s4 o/ ^0 _GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 6 E- ]: _5 r# B0 q$ g. i9 L
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
$ D% H0 {+ g( iGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
+ F+ `. ~/ N1 O, ~GetWindowLong 从指定窗口的结构中取得信息
8 O! C! C9 i7 \4 s$ kGetWindowPlacement 获得指定窗口的状态及位置信息
" D4 H) @6 @; A3 W+ Q/ [3 h6 CGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
, ^- y& w  T7 V* lGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 0 F6 B6 g7 M/ x8 t8 m) s
GetWindowTextLength 调查窗口标题文字或控件内容的长短
/ }$ u2 w: L' m% uGetWindowWord 获得指定窗口结构的信息 ) J1 o. o+ n+ W- k" ]
InflateRect 增大或减小一个矩形的大小
4 B- t  N, Q, T" Z2 o7 pIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 % c/ [- W: E& s3 x! q$ j, U; ]' |
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 7 V- [! N- t( f6 w% P  |, t
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口 ( x0 O; G& z. e/ p! C2 e2 v: f. l
IsIconic 判断窗口是否已最小化   S& E( _1 s/ S5 f& W9 ?
IsRectEmpty 判断一个矩形是否为空 6 j* J/ W9 c1 H+ `3 c* c- j
IsWindow 判断一个窗口句柄是否有效 9 p$ \: e8 m# {6 B4 i; r
IsWindowEnabled 判断窗口是否处于活动状态 , v4 M- J( [' V% U& B' A
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
$ d. Z: Y& R3 g) nIsWindowVisible 判断窗口是否可见
! }) E0 {4 n& R3 T# z: eIsZoomed 判断窗口是否最大化
2 B6 I% {; u( [LockWindowUpdate 锁定指定窗口,禁止它更新 ; y) F2 D1 |4 e0 ?6 c  J/ i* j: |
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 ( C3 u* e4 f7 g! I
MoveWindow 改变指定窗口的位置和大小 - k) ~( ~. I: A) h' W: }. Y0 f
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
; q* J8 t: S. D, h% G$ J: g: l5 Z; QOpenIcon 恢复一个最小化的程序,并将其激活 9 w" u% I" D8 O
PtInRect 判断指定的点是否位于矩形内部 % |7 j9 \) P$ w' O
RedrawWindow 重画全部或部分窗口
# R4 X  H4 A6 a8 UReleaseCapture 为当前的应用程序释放鼠标捕获 # C' b+ r4 A1 I4 S' Q1 ?
ScreenToClient 判断屏幕上一个指定点的客户区坐标 # q5 m9 `! c5 ^, C5 a0 S
ScrollWindow 滚动窗口客户区的全部或一部分
/ F. C. @; W' c3 w: WScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
  L; q! C& ]; a( @/ U. p/ n( I7 ESetActiveWindow 激活指定的窗口
# G" _0 @: |8 h) C- eSetCapture 将鼠标捕获设置到指定的窗口
1 g% Z# x( T0 M. JSetClassLong 为窗口类设置一个Long变量条目
  m. ^4 M/ P" W0 ]% _9 h, Y' ?7 OSetClassWord 为窗口类设置一个条目
* T- o! V/ I) QSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
" |/ X: c$ n. l2 [+ zSetForegroundWindow 将窗口设为系统的前台窗口 5 R+ C4 ]2 z: Q7 K
SetParent 指定一个窗口的新父
( X" g9 C2 ]3 [' `( b; tSetRect 设置指定矩形的内容
1 t& _' w2 ^+ A' ASetRectEmpty 将矩形设为一个空矩形
$ t! P0 g0 \( A5 }3 f4 kSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
4 _: G/ _% _; S, y- Y$ MSetWindowLong 在窗口结构中为指定的窗口设置信息
1 o# a6 d( a: s; v5 BSetWindowPlacement 设置窗口状态和位置信息 . a% U- f/ ?1 C
SetWindowPos 为窗口指定一个新位置和状态
( k( @6 ?8 h6 o9 e, b$ W" C" SSetWindowText 设置窗口的标题文字或控件的内容
' O6 v3 k/ l6 e% G# BSetWindowWord 在窗口结构中为指定的窗口设置信息 ; I$ j7 x( F9 P4 x  }6 a: @
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 ' a+ S* l  [! h
ShowWindow 控制窗口的可见性
# i$ W8 A- o( T: p$ P0 D% F* {ShowWindowAsync 与ShowWindow相似 ' c" h; V4 X5 w; \  E! J& j' i4 A
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
" l$ k8 b; z7 T$ sTileWindows 以平铺顺序排列窗口   v. l+ M# x' R
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
9 ?" i( ?' r/ d2 u( u& CUpdateWindow 强制立即更新窗口
& R; m% x4 D, K& M9 a" D- ?ValidateRect 校验窗口的全部或部分客户区
/ b: Q3 k+ t' K  E' L% o: OWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口+ R, ^5 `, k4 s" N3 E
高级音频函数—参看《VC++ 编程指南.chm》11.6
, Q/ j: f+ a- T2 Z2 V     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
2 G, h4 C% S  J  X( X     BOOL MessageBeep(UINT uType);5 o9 b9 m% n4 h
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
; _5 U0 E( O7 }+ D参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
3 g4 i1 `" V( B$ c
级别
. X/ M; o; M9 q2 E4 U
描述
$ [- S4 T- T- g0 p
-1 ' d) t2 T- ]2 d5 L3 F1 D
从机器的扬声器中发出蜂鸣声。 / P% @/ V  f/ s  K5 U
MB_ICONASTERISK
+ q& b1 \+ v3 e
播放由SystemAsterisk定义的声音。 9 A+ ~3 E; j9 S% l1 v) y8 N
MB_ICONEXCLAMATION
& g5 o  H( y) q% q# S0 q  O
播放由SystemExclamation定义的声音。
8 m3 R, J" G. j* X* i, P; {& G* K
MB_ICONHAND : ~2 M' d# [/ ]' c; s& r& f
播放由SystemHand定义的声音。 " j( Q5 c9 [; S9 A- B* C( l7 b9 S
MB_ICONQUESTION
8 }2 P/ `$ |$ `; B
播放由SystemQuestion定义的声音。   W9 c' P. Y. L4 V' v: ?
MB_OK
  [/ [1 W9 E2 `( }$ D( q% b9 q
播放由SystemDefault定义的声音 % O, f2 e3 k/ R5 N
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);! O) T' v* I+ ^3 z  o; e
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。4 d2 f( H( B+ `5 a- i- K5 _' a3 \
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
5 J8 ?) h; L' Y4 T参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
' o1 \1 F4 t; C! A, c5 M* c+ U1 g
标志
% ~" G9 _5 M# |+ I& d
含义 1 E* C9 `: H6 W& t( `
SND_APPLICATION . h. [2 Y  H# J0 Z4 v" Y% F
用应用程序指定的关联来播放声音。 ) J' D( ]# m5 W" Z+ k1 e
SND_ALIAS 6 G, u, W; p' W7 W6 o
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 3 M* X3 J! ^8 v, s* J
SND_ALIAS_ID
4 x+ ~" \# o: I/ D1 c
pszSound参数指定了预定义的声音标识符。
, M0 @0 [& I# Q# _. @8 Y
SND_ASYNC
& ~7 g+ h- S' a9 j' }; s9 Y
用异步方式播放声音,PlaySound函数在开始播放后立即返回。 / Y( O9 |5 j8 n  P" k% C; z2 U8 Z* f# A
SND_FILENAME 9 _! Z6 ~. |: S  t! x. F4 j9 L
pszSound参数指定了WAVE文件名。 - _! [/ h2 g( ~+ f! [" m
SND_LOOP & d- C: j8 l& a$ W* u
重复播放声音,必须与SND_ASYNC标志一块使用。
  ]2 L+ e3 H7 [1 J0 R+ B
SND_MEMORY + m- ^1 C6 D. E" _) @
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
2 L0 ~- B( Y7 A0 R& V
SND_NODEFAULT
+ d% K8 ~6 E  q
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 * Z7 C$ B+ k: w  W+ E' T
SND_NOSTOP
/ M* A& @% ]9 m% P- k
PlaySound不打断原来的声音播出并立即返回FALSE。
/ O4 P7 ]; P: ?+ Q' p
SND_NOWAIT
. j* ~( o  O) W* K
如果驱动程序正忙则函数就不播放声音并立即返回。
$ B4 C9 r' v- i9 u% z( N: z& D
SND_PURGE
% V& L7 L$ e  k7 x& N( J
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
& X' P( \9 k6 h/ n8 L1 J" v# `, S8 N
SND_RESOURCE
+ }% b9 }( f1 m+ _" T
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 1 C- d5 q' W) M1 r8 z6 P0 W
SND_SYNC
* Z& J" b" M4 W6 d
同步播放声音,在播放完后PlaySound函数才返回。
% o7 R+ l, ]' H, N4 |2 h6 H6 U
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);% b' ?% k1 n2 c7 q
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。* N2 v' c" I# _, o3 t
MCI播放' M; ^: [. N: X, o9 N! i
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
8 c6 X0 ~' K0 y; |! w# eMCIERROR mciSendString(- S, w+ [# b7 K- `2 J5 b
LPCTSTR lpszCommand, //MCI命令字符串1 W( i: h; [7 D
LPTSTR lpszReturnString, //存放反馈信息的缓冲区/ f! B& Q  [; y* W
UINT cchReturn, //缓冲区的长度
* V, H( E5 N* C- A3 `; J  f8 yHANDLE hwndCallback //回调窗口的句柄,一般为NULL
7 E% C" Y; E8 @1 g% |9 y); //若成功则返回0,否则返回错误码。
/ ]5 ]% n6 L  o9 K/ C% G1 y$ k3 S该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
  G( w5 b5 {8 c( UBOOL mciGetErrorString(
: o2 E8 k; i  B0 N' ]DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
6 [" l7 b2 _7 v  j: ?LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
+ O/ F- I7 x: M5 C( cUINT cchErrorText //缓冲区的长度
6 l& }; l! e% c$ ]  T7 ~);
. J) D" j7 }9 ~2 h  o) I& W
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2025-12-29 17:38 , Processed in 0.036325 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表