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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html1 o: u8 l% q" m$ |+ r4 x) ~
1. API之网络函数
  U* q0 p, s' T$ Q+ ?WNetAddConnection 创建同一个网络资源的永久性连接 * B7 `. [0 [! ~" _
WNetAddConnection2 创建同一个网络资源的连接 6 _; }) r, I$ U9 N: X4 ]( U
WNetAddConnection3 创建同一个网络资源的连接
$ \; d4 [5 @$ }0 J* x+ GWNetCancelConnection 结束一个网络连接
! Z, y$ J$ l- b8 V' t& w# [1 IWNetCancelConnection2 结束一个网络连接
+ M3 D/ u3 U8 F( J! K% N+ NWNetCloseEnum 结束一次枚举操作 - u% R* N: ?( b" P. }
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
; x" h8 X( i5 R+ h+ B( xWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
% x' R. p# D+ W4 l* ^% uWNetEnumResource 枚举网络资源 8 @7 k5 V# z9 J* L, y
WNetGetConnection 获取本地或已连接的一个资源的网络名称 7 Q, r/ ~) [4 s4 f) o+ ]' l
WNetGetLastError 获取网络错误的扩展错误信息 - \: v" z% V& j
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
6 g+ n4 T* r) `WNetGetUser 获取一个网络资源用以连接的名字 ( B$ r9 Z" V6 N, z
WNetOpenEnum 启动对网络资源进行枚举的过程
& I- C9 z; h; p2. API之消息函数 ; n, X  N& }$ O; X9 ]( G& s$ V
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
; y- e- j; K( O8 oGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 8 I1 W! r9 C5 ?+ l" p, K3 W1 r# j
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 / X( ?. H2 H0 \8 ?3 L- ^& r
PostMessage 将一条消息投递到指定窗口的消息队列
  }, f7 q* m: lPostThreadMessage 将一条消息投递给应用程序 + @9 i5 A" \- A
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ( ^7 C+ y, U; {" i
ReplyMessage 答复一个消息
: C" g' {5 k2 g* R) m8 DSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 " K$ H6 Y, _4 A$ j7 X3 m' ~, G# `
SendMessageCallback 将一条消息发给窗口
# B: }0 `6 j6 r8 JSendMessageTimeout 向窗口发送一条消息
# W: t. F4 ~, S+ }5 w: YSendNotifyMessage 向窗口发送一条消息
1 f2 J/ n. W6 Z0 k& h( t2 i, S: G3. API之文件处理函数
" n6 Y% {+ v" a$ K# O7 f. y) ?CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 ( h7 u& `6 N1 R3 ^
CompareFileTime 对比两个文件的时间 , W7 e6 ^  S% \. s, e+ W1 R4 i
CopyFile 复制文件 2 V" b0 `$ V6 C
CreateDirectory 创建一个新目录 0 `* z0 R" i0 N
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 3 q6 C2 t! \1 {4 |2 r# q" B! _# u
CreateFileMapping 创建一个新的文件映射对象
* i6 s1 M0 C. z2 P( q9 u0 I, fDeleteFile 删除指定文件 " X9 }5 |& ?# m# K3 J
DeviceIoControl 对设备执行指定的操作 * O  g8 C' r) h8 i6 d7 W
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 $ j9 l# O2 {; l4 Z( x
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 $ g& k$ u4 p& B  ~+ Z
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
4 C- k- x* Z+ y4 K: ~& {* XFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
# O  h( s: g8 I( m. wFindClose 关闭由FindFirstFile函数创建的一个搜索句柄
1 n1 ~9 E# r$ Q) ]( U( PFindFirstFile 根据文件名查找文件
! W* C9 B, }! ?- S6 ]; ]FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
6 m0 o) s; Y( uFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 % l) g! O3 j9 v) Q$ g
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘   ^- p% U  F0 C) t; u: W
GetBinaryType 判断文件是否可以执行
3 r8 n  `* V2 e6 f% {GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
# D: \: ?8 _4 M: V1 q/ [9 cGetCurrentDirectory 在一个缓冲区中装载当前目录
* n; P4 S6 S; C8 k8 i/ E9 hDWORD GetCurrentDirectory(
) u2 ?, t7 L! M$ I( ^' }/ U6 M    DWORD nBufferLength,    //缓冲区大小6 C5 c5 v- m; h9 U
    LPSTR lpBuffer          //缓冲区的首地址
1 n+ @+ k7 K0 ~4 F4 J( j9 U' f) c    );$ v3 i5 P$ u% ]. a5 `% T( S
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 : A& L( ~% W8 E8 ~& l5 j9 B/ d
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 ( }- k9 x# ~" l8 d
GetDriveType 判断一个磁盘驱动器的类型
% W+ H* R$ ]7 r$ f1 S# ]GetExpandedName 取得一个压缩文件的全名
5 w" E9 a0 c1 W& sGetFileAttributes 判断指定文件的属性 4 f8 h; v& @; E( G& B
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 % e) k8 H% @; u6 U) M% c9 M  d
GetFileSize 判断文件长度 . q% ^. V# }/ H; t1 g
GetFileTime 取得指定文件的时间信息
  z4 @' L+ p4 @GetFileType 在给出文件句柄的前提下,判断文件类型 1 j8 o! i. u) ?- m
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
) L2 I  R0 h& A! VGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 . }$ J8 N1 f8 g
GetFullPathName 获取指定文件的完整路径名 4 l2 K" \3 d6 D) I
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 . ]1 u7 u6 z( ^1 Z+ w1 w( M' n
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 3 {6 p9 g; y% `5 p5 l5 j
GetOverlappedResult 判断一个重叠操作当前的状态 6 {$ Q7 v$ \3 @! o" v
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
* y; [' M" j! b" b, ~: t; m' DGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 # {) u* t- s1 g" C% o  c- Z
GetPrivateProfileString 为初始化文件中指定的条目取得字串
- A- X6 `" @5 T+ e' P; J8 n/ }& {GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 & t/ b4 ]' `/ x
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
/ ?% Z2 p% J0 o- C5 x% Q6 C4 b& }GetProfileString 为win.ini初始化文件中指定的条目取得字串
1 k8 t% n& t# W( f& eGetShortPathName 获取指定文件的短路径名 2 z5 W. c7 B; N9 L
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
( y2 {4 M  J9 w$ }- Y4 M0 Q" c- fGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 * n: \3 D5 T* m, W2 L, ^! G1 o
GetTempPath 获取为临时文件指定的路径
) k# X- o& V+ T! gGetVolumeInformation 获取与一个磁盘卷有关的信息
3 i0 Q" |- i) D0 A" H4 @GetWindowsDirectory 获取Windows目录的完整路径名
+ ?; h! M! f% z& O) H4 C+ z9 D0 Zhread 参考lread 7 D( l! `4 h6 `! x$ J" \
hwrite 参考lwrite函数 % K/ t  l7 e/ N
lclose 关闭指定的文件   t0 G1 E1 @) \2 V7 ~
lcreat 创建一个文件 ) ^  c( ]1 m1 x1 v+ h
llseek 设置文件中进行读写的当前位置 % W, u1 w) p: T
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
$ Q! C7 Q; Z! C. SLockFileEx 与LockFile相似,只是它提供了更多的功能
- g0 ^4 U8 S) R" C& nlopen 以二进制模式打开指定的文件
* n) Q# ]9 t6 a/ Clread 将文件中的数据读入内存缓冲区
3 Q: Q' f: y" P' G! s+ ]% g: s/ olwrite 将数据从内存缓冲区写入一个文件
2 [2 E) A( P  D  j6 g. @; }0 {  A$ BLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
/ X2 `0 t- Z6 O5 NLZCopy 复制一个文件 ! \- O$ J6 x! N5 K" [! |
LZInit 这个函数用于初始化内部缓冲区
4 K& }8 ]8 L, y2 g- h8 I' _7 @LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 ) \/ N( K3 Z# A/ p2 }. ]
LZRead 将数据从文件读入内存缓冲区 ( e7 {! Z4 q% W/ E
LZSeek 设置一个文件中进行读写的当前位置
: m# ^) X/ m( ~8 Y& Q! f; _0 qMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
6 G: S$ _- N( GMoveFile 移动文件
: _( Z; [3 a% M" COpenFile 这个函数能执行大量不同的文件操作 / V0 \$ P2 Z; E7 ^: [: t% }, @
OpenFileMapping 打开一个现成的文件映射对象
  A( I- W/ @" \/ i0 s# B/ E) W& SQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
7 A6 h2 `! I1 xReadFile 从文件中读出数据 8 j! ^. N5 {( n2 d5 ]
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
# K# T8 Z/ U& TRegCloseKey 关闭系统注册表中的一个项(或键) $ l) b2 X7 Y7 L: r' }5 t  f5 M
RegConnectRegistry 访问远程系统的部分注册表
+ ]4 A7 B1 j. U# T. }6 C. {RegCreateKey 在指定的项下创建或打开一个项 . h) S7 X5 I2 `( ^5 j4 F
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 ( K% T( H$ [+ J" m% Q: \
RegDeleteKey 删除现有项下方一个指定的子项 $ l) t) Z4 v" s% H0 Z$ P0 z1 Y, Y
RegDeleteValue 删除指定项下方的一个值 $ A7 k& V6 P. d. `, u& e2 G) b
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
$ V  o: j' N" Z( G$ MRegEnumKeyEx 枚举指定项下方的子项
  Q( g5 u* x1 }. v1 B6 \# |( n- TRegEnumValue 枚举指定项的值 % R, ?% I. d* |% h" |
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 0 o  @: T. E* ^- u
RegGetKeySecurity 获取与一个注册表项有关的安全信息 4 A8 s  g5 z7 F! }+ n& `
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 9 @5 K8 g$ ]" A# E, M, L2 I
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 / b$ R: b: U9 K
RegOpenKey 打开一个现有的注册表项 $ k1 _5 c" X' v
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 0 X4 Q1 Q7 Z) y3 Q
RegQueryInfoKey 获取与一个项有关的信息
- z# |- l" O8 z7 s2 l/ eRegQueryValue 取得指定项或子项的默认(未命名)值 # P. m& g: }( d7 p6 v  O
RegQueryValueEx 获取一个项的设置值
: R$ H" f3 k$ u/ L; y, n4 VRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
' c6 ?3 T" O0 D" P+ u* @RegRestoreKey 从一个磁盘文件恢复注册表信息
( _- s6 ]& E! F, h5 ZRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 - F; Q. k8 F4 Q, ?; j
RegSetKeySecurity 设置指定项的安全特性
) I+ i$ l# N' \9 ?RegSetValue 设置指定项或子项的默认值 6 c- l; p1 W3 `
RegSetValueEx 设置指定项的值
" t, ^3 y' H- [2 ~: v  M: ERegUnLoadKey 卸载指定的项以及它的所有子项
& E& ^) f' ~* V9 tRemoveDirectory 删除指定目录 8 ]- q0 ^) G6 X- k# i
SearchPath 查找指定文件   i2 l9 V/ V& [
SetCurrentDirectory 设置当前目录   R# y! r: a9 i/ K# I& i6 f* d
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 - s1 U8 f) l2 J
SetFileAttributes 设置文件属性
) w  N+ D# S, \' mSetFilePointer 在一个文件中设置当前的读写位置 ) _0 }+ ]3 b: B7 M
SetFileTime 设置文件的创建、访问及上次修改时间
8 @) f$ x' y5 {1 i: T8 _- HSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 1 |, R- }# G" A7 K
SetVolumeLabel 设置一个磁盘的卷标(Label) + K- x5 F0 U! F
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 $ [9 |; e2 a2 N2 h' q! x$ |  }5 `0 s
UnlockFile 解除对一个文件的锁定 3 F" p( o/ k) f& p4 V" w
UnlockFileEx 解除对一个文件的锁定
# c4 d  M3 F) |( U  tUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
. a* P/ B! c; h. R; w8 L9 gVerFindFile 用这个函数决定一个文件应安装到哪里
2 t* `3 b5 B, E) f1 P6 oVerInstallFile 用这个函数安装一个文件 ! I7 c+ V" P5 {% x4 Y0 v1 z
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
' M8 {! Z2 e+ x' {+ z( BVerQueryValue 这个函数用于从版本资源中获取信息
1 M# ]" p; x2 w$ x' D( XWriteFile 将数据写入一个文件
- g& H2 Z  D5 X/ tWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
: S0 n6 e8 ~2 U+ a/ Q* ]WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 % z; ~2 B+ R, s6 m; l8 T% B
WritePrivateProfileString 在初始化文件指定小节内设置一个字串 - p5 k$ R  i; g6 `2 s* B
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 5 P! o+ C: t! `
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
0 \9 Y; f/ K- [- `6 Z/ T4. API之打印函数
2 s9 M8 N+ M) M7 ?( U: I1 JAbortDoc 取消一份文档的打印 - ^  s) Z; C- N7 ^. T% ]# P
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
. S! K5 V/ l2 j- Y; J& U0 [( DAddForm 为打印机的表单列表添加一个新表单 8 Y6 M$ Y0 B  [! O3 }. k- x
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 * J1 t2 W& b' ^4 I
AddMonitor 为系统添加一个打印机监视器 1 W& A2 y$ Z3 c. V$ Y
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
; z1 \% X/ n  I# y3 z! r6 f( |AddPrinter 在系统中添加一台新打印机
8 i0 \. M: y& XAddPrinterConnection 连接指定的打印机 " n  P4 D$ J5 S$ J" U
AddPrinterDriver 为指定的系统添加一个打印驱动程序 - [( x" Z+ ~; Z. J6 j3 O
AddPrintProcessor 为指定的系统添加一个打印处理器 5 Y7 o& s7 r. E# z2 t; ^" l# `& Y
AddPrintProvidor 为系统添加一个打印供应商
& X6 l* D5 Y/ e& nAdvancedDocumentProperties 启动打印机文档设置对话框
' `! p0 d8 G( ^* }- H9 J6 z2 O7 BClosePrinter 关闭一个打开的打印机对象
  d) A. o! y7 J+ L3 Z# QConfigurePort 针对指定的端口,启动一个端口配置对话框
$ B; w! L7 `$ g% S# z! A$ iConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 . r/ m, d, D# \, _2 u
DeleteForm 从打印机可用表单列表中删除一个表单
7 ~3 Y1 B3 ]8 N8 {, b& eDeleteMonitor 删除指定的打印监视器 # I! U, ~+ [+ K: [' Z& w2 w2 e( }
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
# I5 U8 m: p9 [/ B0 M7 V4 LDeletePrinter 将指定的打印机标志为从系统中删除
  f3 f$ r1 s+ j) UDeletePrinterConnection 删除与指定打印机的连接
- Z9 G" C. T# k9 wDeletePrinterDriver 从系统删除一个打印机驱动程序 - i; V  w; Y# q: ]5 V  W3 @
DeletePrintProcessor 从指定系统删除一个打印处理器 9 U" f* a& I* P5 x( l3 p0 `4 d
DeletePrintProvidor 从系统中删除一个打印供应商 # I0 G/ J' w. l/ k
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
( U- h" h( j3 S; ~; b* S0 |* n) jDocumentProperties 打印机配置控制函数 8 X9 p3 W4 W; X. r4 L: m
EndDocAPI 结束一个成功的打印作业 8 X5 t# {" q. o3 g, n/ Q
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 ) k% |  W3 z: P7 Q& f+ }
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 ( u- Q) I- y% R1 p  I% o+ l
EndPagePrinter 指定一个页在打印作业中的结尾
- }; O; {# j: y, E3 s1 t1 EEnumForms 枚举一台打印机可用的表单 0 P) b% [7 m# q) v& L/ w8 ]+ ?
EnumJobs 枚举打印队列中的作业
; O/ W" |: Y7 U" u5 NEnumMonitors 枚举可用的打印监视器 3 M' e/ R1 s1 a7 d! _  r, ?2 {: ^
EnumPorts 枚举一个系统可用的端口
. S' {  u9 d0 g3 y2 ^EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
1 l4 y3 W' N- `EnumPrinters 枚举系统中安装的打印机 9 R8 p9 x) {. p, @$ E. D1 W) _7 c
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
) a- Z7 }) Q% FEnumPrintProcessors 枚举系统中可用的打印处理器
  z3 m# d( n% [& eEscape 设备控制函数   K- ]: f0 `: s
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
/ z9 c" M- C. w% o7 ]6 p6 Z" RFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 ) r+ h2 p% w2 `. S) L- D1 d
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 : Q5 v7 f7 R/ w6 v9 g
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 0 ]. ~1 ?$ f6 a& B9 C
GetForm 取得与指定表单有关的信息
; G) j1 k: z5 D- I6 tGetJob 获取与指定作业有关的信息 & a) h) G; `) X6 {7 K; Q" m
GetPrinter 取得与指定打印机有关的信息
+ N3 u$ a/ X) s' n3 }; A8 WGetPrinterData 为打印机设置注册表配置信息
# p4 M4 I" z) ^5 AGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
& t; q7 ~! M! e# GGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
7 `, B/ V2 \& }4 H$ ]+ ~GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 " V7 e  p5 u9 K4 a* }5 c. U
OpenPrinter 打开指定的打印机,并获取打印机的句柄
" n2 D3 |" W: E+ ]( ^PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 + g4 g' ]* S& o* v+ j- E# P
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
. X$ |# g9 S7 ?# D0 m2 v2 y- o; {) eReadPrinter 从打印机读入数据 / C; {, A6 i$ B  g5 n, }* v
ResetDC 重设一个设备场景
) {- Y( j' ^; D4 F( dResetPrinter 改变指定打印机的默认数据类型及文档设置
% N( n6 }) g' IScheduleJob 提交一个要打印的作业
4 r+ i1 [8 S7 n2 T7 eSetAbortProc 为Windows指定取消函数的地址
$ w; f0 ^; V5 H  w( Z! S. f: p0 HSetForm 为指定的表单设置信息
; z, L8 Y3 F1 \5 J- v7 hSetJob 对一个打印作业的状态进行控制 : j; ]4 W" A! h; X& ?& g
SetPrinter 对一台打印机的状态进行控制
9 Y) @+ h9 v4 V) Q$ iSetPrinterData 设置打印机的注册表配置信息
: h, c+ [8 ~: M, L5 GStartDoc 开始一个打印作业
: j8 v3 D2 R2 t# C( s& v3 n& PStartDocPrinter 在后台打印的级别启动一个新文档 7 r6 l7 I/ f( N- D. \! b' Y
StartPage 打印一个新页前要先调用这个函数 - C8 q3 M, k9 k! j
StartPagePrinter 在打印作业中指定一个新页的开始 0 n' T# f8 L5 j# K4 |
WritePrinter 将发送目录中的数据写入打印机 , P- o7 l! p" ^! b+ R
5. API之文本和字体函数
) ?/ `) p+ K& s( \5 K) T3 M7 o+ cAddFontResource 在Windows系统中添加一种字体资源
* K# I4 z* S5 ]& WCreateFont 用指定的属性创建一种逻辑字体
3 R6 ^1 A% q5 |! G# u9 x' _; cCreateFontIndirect 用指定的属性创建一种逻辑字体 1 {) j$ ^$ {. ]+ N* q9 a
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 / M6 F6 A# K  [0 U
DrawText 将文本描绘到指定的矩形中 4 J; v0 s7 [2 W4 m
DrawTextEx 与DrawText相似,只是加入了更多的功能 ) k5 f. \0 _( f9 h: v
EnumFontFamilies 列举指定设备可用的字体
) v4 J/ A' Z5 [# w, f# ^' tEnumFontFamiliesEx 列举指定设备可用的字体
9 C6 l7 E" \7 r3 }- A3 ]EnumFonts 列举指定设备可用的字体
  l  N4 n& \- HExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
% N) F8 N% l& o3 WGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 & m! [) b! [  R: ]# _0 G
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
+ M. w  z% n% X  ?$ t2 PGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 1 j9 x; a; ~) _( r
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串   R: l# M8 t/ V+ ]# j- u
GetCharWidth 调查字体中一个或多个字符的宽度
( @) o: w9 ~' V) }! ^+ u; CGetFontData 接收一种可缩放字体文件的数据 * Y7 `6 x  D2 F# }# u8 p
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
6 P* W$ r0 J' x& x( @# b7 jGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 * I' @( u' c2 P% R3 v$ j
GetKerningPairs 取得指定字体的字距信息 5 W4 O5 R- F+ i: C; {: I: w
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 / d( \1 @) y, H: G! l$ ]& b4 z
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
" \0 @) N) r8 t% \, n8 g# \GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
, o9 F$ O5 A; s1 |: GGetTextAlign 接收一个设备场景当前的文本对齐标志 $ k2 ^0 Y- `$ Y3 k" n, ?: M
GetTextCharacterExtra 判断额外字符间距的当前值
% Z6 |" z; E) I2 d! iGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 ! H' Q1 k- ~0 }0 S
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
; o# F" P# j, o  M& I5 nGetTextColor 判断当前字体颜色。通常也称为"前景色"
# M9 w9 O  q1 X' ?9 [/ }0 x' `GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
5 m$ \* F: |' pGetTextExtentPoint 判断一个字串的大小(范围)
2 `/ [6 V5 n" g9 uGetTextFace 获取一种字体的字样名 , f& p$ y$ j% l& E; ?
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 * l, s1 T+ H4 i, R! g
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
0 o( i  ^1 i5 P6 q" bPolyTextOut 描绘一系列字串 0 _4 R: e: t" p9 R# r) v; n0 Y
RemoveFontResource 从Windows系统中删除一种字体资源
3 b+ Z7 W# w( s2 H- X- S+ YSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
  Y" m# \0 @2 c5 n& l+ gSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 3 A  d& Z4 X3 e% p
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 ) `0 S3 l/ F' P. P) v
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
% I  |& e" U/ i. B( j+ C9 G1 \SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
+ Y9 c- d4 D  B+ MTabbedTextOut 支持制表站的一个文本描绘函数 % f  p: o$ \" f, f! F; _. F
TextOut 文本绘图函数 6 K$ o' F8 e# [( C2 P  U
WINGDIAPI BOOL  WINAPI TextOut(
% _  R( }1 P% f% o& zHDC,     //输出设备2 P  @5 Q) N3 ~# F
int,     //输出的横坐标
/ q3 ~- Z% J' gint,     //纵坐标
" a8 w! `; L8 D# V9 P+ aLPCSTR, //输出的文本str4 i$ c- [6 K( V: p# `
int);    //文本的长度:lstrlen(str)
  U( Y# h# m2 n5 T7 q' k6. API之菜单函数
- z) R6 D9 b4 w: g0 Z# _! i% e( fAppendMenu 在指定的菜单里添加一个菜单项 % i+ c# f/ B7 \& Q3 j
CheckMenuItem 复选或撤消复选指定的菜单条目 8 H4 P1 G3 B; q- `/ c, Q7 u! ^
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
- J9 I  Z' Y6 [0 Y1 M. `CreateMenu 创建新菜单
2 U. b, i2 [: j. E0 qCreatePopupMenu 创建一个空的弹出式菜单 ' n7 q9 V1 m! P8 U
DeleteMenu 删除指定的菜单条目
, e+ |% A5 ?$ S3 ?7 c0 VDestroyMenu 删除指定的菜单 0 W4 x& l+ J, J+ f! u' V
DrawMenuBar 为指定的窗口重画菜单 ; R$ }% y6 |! e" Z; u* h
EnableMenuItem 允许或禁止指定的菜单条目
2 G" q* p  h+ I0 K- j# L  ?. m' jGetMenu 取得窗口中一个菜单的句柄
$ o& `: c* [% [1 p4 v+ M9 cGetMenuCheckMarkDimensions 返回一个菜单复选符的大小
0 @- A3 W) T5 }/ DGetMenuContextHelpId 取得一个菜单的帮助场景ID
* |$ c) V, ]! _' N5 S& z3 W. j4 tGetMenuDefaultItem 判断菜单中的哪个条目是默认条目 5 O4 n/ x# E7 ~( ]' W$ l* X/ V
GetMenuItemCount 返回菜单中条目(菜单项)的数量 $ K( s, O6 G, u  @8 X9 }" f1 z
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
# Y  ?6 k" I5 P! P3 R9 FGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 * H. ^% R: I& b5 s! S/ z# c
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
0 `/ r. r4 |9 O- j3 |- k) e- \& qGetMenuState 取得与指定菜单条目状态有关的信息
: [2 [3 _  B2 M" \: I5 Z' JGetMenuString 取得指定菜单条目的字串
% a7 a; ^8 s/ D) cGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
# J( S5 S& d! ^' k' H" c$ tGetSystemMenu 取得指定窗口的系统菜单的句柄 # |/ ?5 N# q2 L% h6 ~, p8 d
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 - h  x2 ]9 u" w
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
  z& O$ _) k' \) l! zInsertMenuItem 插入一个新菜单条目
. E/ O4 W) [  b, H$ HIsMenu 判断指定的句柄是否为一个菜单的句柄
7 y+ |9 n$ m0 F( p+ k. f8 zLoadMenu 从指定的模块或应用程序实例中载入一个菜单
2 |" A( f' ^2 j% z; p0 fLoadMenuIndirect 载入一个菜单
- ^- z  Y7 h: u) v  |MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
8 U0 H, f2 h) Q" e/ z( ZModifyMenu 改变菜单条目
' x! w1 n  `; X7 W* j6 L2 ~  LRemoveMenu 删除指定的菜单条目 ; s9 g0 @3 L# u) P, W
SetMenu 设置窗口菜单
" _; T7 p1 _0 L: v8 |5 |SetMenuContextHelpId 设置一个菜单的帮助场景ID & D/ n# Z9 R2 i) S
SetMenuDefaultItem 将一个菜单条目设为默认条目
( T( y  |, P$ j3 zSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
/ e' o6 b* n' y" v- RSetMenuItemInfo 为一个菜单条目设置指定的信息 % L" D/ d5 x; o) k8 p
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
5 ^9 W* }1 j! ~) q+ N% t. ^TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
5 m+ F% r; E0 O  p6 i7. API之位图、图标和光栅运算函数 5 d& Q  {$ y+ F/ J' |3 T6 v! u
BitBlt 将一幅位图从一个设备场景复制到另一个8 [/ q4 @4 H" Y$ v
     WINGDIAPI BOOL  WINAPI BitBlt(2 p# u& D7 F, ?; a
HDC,     //目标HDC7 m# n* J9 c" w2 \% `
int,     //X1& p; Q  N; p2 S! l: P
int,     //Y14 S% h9 d0 \4 L* o
int,     //width
6 u! d- ]) w: O4 L% K5 ~4 aint,     //height
$ M2 `# z, X* v* OHDC,     //源HDC
6 M, X2 l3 b  C5 `. pint,     //右边的距离
4 j# ?# b: d* }- {6 ~% _! n" Bint,     //??, R% [* b8 K, D- W9 {4 p
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|4 `- i& x" X6 n
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
. Z$ c$ B. ], {% P) Y7 m: x! sCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
( w0 q; h5 @) E- ^3 oCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作   X* Y: O7 M1 F$ i: k7 B
CreateBitmap 按照规定的格式创建一幅与设备有关位图
) I! y3 k* d. ?& @CreateBitmapIndirect 创建一幅与设备有关位图
! n' Q' |- \- _0 |: n9 kCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 ! _: @" Y0 T/ X3 r5 I' |1 ]  L
CreateCursor 创建一个鼠标指针 1 `, n6 y! g7 T1 X7 [0 |, e
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 / W4 \9 X* k  \' P8 t" P( \
CreateDIBSection 创建一个DIBSection 9 L# u2 R# Y% I1 X6 K2 r7 ]1 ]
CreateIcon 创建一个图标 " U* l! w2 `8 Z2 B5 X- K
CreateIconIndirect 创建一个图标
( i1 Q" w! z+ B* G* u0 IDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
* T: L( M$ Z! {  Y; \& N4 A4 |1 BDestroyIcon 清除图标
, Y1 p* p* T, {5 f* \( BDrawIcon 在指定的位置画一个图标 $ z! J8 j* @' _0 @
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 4 m0 E8 c+ W) m
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 : d  v0 w/ y0 B+ A# Z  X: L) n/ D
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
8 I) N) |1 z6 n' L3 XGetBitmapBits 将来自位图的二进制位复制到一个缓冲区
$ v" ?4 _% K/ G5 NGetBitmapDimensionEx 取得一幅位图的宽度和高度 # o2 q5 ~6 h6 F$ O8 `' U8 E
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
* p$ Y' L' n$ a4 `8 p, K5 R4 LGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
, ~9 a+ W# q0 j% t' W/ @$ gGetIconInfo 取得与图标有关的信息 3 @3 t1 s  I" N3 j0 A, g% @
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 5 J* x, Q( S1 u0 p4 w/ x8 e
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 ! V$ Q9 z' Z9 M* k+ c, e' [2 z1 D* b
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 " _& K8 D! \: t6 \
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
$ ?1 X+ h; Y: D! ^LoadIcon 从指定的模块或应用程序实例中载入一个图标
$ o% S5 S! |( K1 u: BLoadImage 载入一个位图、图标或指针 4 A8 {8 a; O% C
HANDLE LoadImageA(
6 Z: N4 d, Q7 ZHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
0 ^+ W* T7 S! i, H$ T& g3 A$ U    LPCSTR,               //资源所在的目录:c:\help.bmp
0 k: Q$ S) R. w    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE( S4 h9 O- u5 B( b
    int,                  //$ y, \8 p3 I$ v* d: E
    int,                  //  v7 x# L, v9 H- U  q2 b
UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|- o, B5 F6 X+ I- b7 k1 u1 Y
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
- G/ u  D" L6 W' E( wLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
# T; [) X; P0 M9 u' |1 rMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 + f% B+ p: o5 U+ r# F# K, A' c
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
' {" n) o) g2 l$ g: {) b6 S' z% KPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
9 P9 K1 `! c8 k& D8 x2 NSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 + a1 `5 S5 z9 u. M7 l- N) F) A
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 8 E0 N6 w1 B$ d- c
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
# H8 e3 ~$ F, ^2 i$ JSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 , J2 n& @4 N& H" l6 n
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
; L! j0 j9 U% B: tSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
- ?. m# K& A& f+ c$ s% K, XStretchBlt 将一幅位图从一个设备场景复制到另一个
0 y3 H- Q! z) s5 d& `0 o6 kStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 ; L+ y- l- g0 W3 w1 N/ T( y
8. API之绘图函数 - {3 r. q, [0 F9 c+ q/ y) ?
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 & T% n5 u+ W  f5 Y, |
AngleArc 用一个连接弧画一条线 2 i, F' R1 c; z, z* v* B
Arc 画一个圆弧
& C4 B& v" O4 q: [4 n$ N+ UBeginPath 启动一个路径分支 ; O9 ~$ S/ v7 W* p
CancelDC 取消另一个线程里的长时间绘图操作 # B4 e# v" s( `2 n. @# R* I- u
Chord 画一个弦 2 I+ o5 \2 t6 p5 Z8 s& X$ P
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
, z) ^, L1 z& H9 ]CloseFigure 描绘到一个路径时,关闭当前打开的图形 ! R1 J; ~# N/ ]3 c+ u0 s8 b7 J4 [
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 3 l3 @  Z% n  R+ S7 D1 \
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) ! X0 V$ A1 A- H" X. K( r
CopyMetaFile 制作指定(标准)图元文件的一个副本
/ V' o0 P  k' kCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 7 t: ^, `% ]6 D; q9 _; s
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 9 B) O- ~: r' ]4 F/ o- X
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 7 u) V9 `- P' t3 X3 o2 T+ t+ b/ ?
CreateHatchBrush 创建带有阴影图案的一个刷子 $ u/ b9 y8 F  Y- L5 H; Z
CreateMetaFile 创建一个图元文件设备场景
+ u, i1 D, V% V& s  ~5 }& {CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
8 I6 `  w  `' h. |CreatePen 用指定的样式、宽度和颜色创建一个画笔 1 o) Y- b# J/ U
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
, y. l4 `+ A3 \" p3 DCreateSolidBrush 用纯色创建一个刷子 2 r, B0 h" H4 @1 N2 w
DeleteEnhMetaFile 删除指定的增强型图元文件
- ]8 h4 x/ i) t5 Q& ?1 y; ^DeleteMetaFile 删除指定的图元文件 / _* `: [; r: u% i/ o( u
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放2 i6 i1 y( S2 b/ j$ y% ?
DrawEdge 用指定的样式描绘一个矩形的边框
+ F' N6 f% ]. P, x$ C0 t4 w0 l) I* V. f' }DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
, U' ^& W- K5 ^6 S5 r/ CDrawFocusRect 画一个焦点矩形 1 s& f9 P8 a- ]2 l
DrawFrameControl 描绘一个标准控件
, j- T8 v% q7 t. g3 e$ R9 x8 wDrawState 为一幅图象或绘图操作应用各式各样的效果 . \0 l' W4 k+ e8 |/ ]" Y! v7 B
Ellipse 描绘一个椭圆,由指定的矩形围绕
  w7 H& t$ M2 C2 \7 PEndPath 停止定义一个路径
5 a6 w) o7 z7 M" nEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 1 s4 R) l9 R: a
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 0 h5 q( _) X7 Q
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 & U2 `2 @) H: g5 L; r1 g
ExtCreatePen 创建一个扩展画笔(装饰或几何) ; f! k/ a9 q# @2 z
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 3 H& ?4 s# f- H& @" q4 v
FillPath 关闭路径中任何打开的图形,并用当前刷子填充
" J  Y  W0 n8 \6 [7 B& Q. f8 CFillRect 用指定的刷子填充一个矩形 5 V0 @/ D5 s8 g9 s& |
FlattenPath 将一个路径中的所有曲线都转换成线段
8 K  |) Q- v+ p0 nFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 1 v0 Q& M, a) {. L( h
FrameRect 用指定的刷子围绕一个矩形画一个边框
* Q/ D5 E4 Q, ]: LGdiComment 为指定的增强型图元文件设备场景添加一条注释信息
* P  `4 p5 l$ ?/ |. gGdiFlush 执行任何未决的绘图操作
9 ~0 y4 Z" W/ ?, t, M& T" C/ iGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 / Y! C  e8 d; a* `+ x/ E
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
% S7 O7 U5 N. D! Y  RGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
( n5 j$ u! b6 m( m9 y  Z1 uGetBkColor 取得指定设备场景当前的背景颜色 ( c$ a4 D- L+ C, H9 E
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 * k1 u3 Z5 @6 D8 E: i. L
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 7 q' P, W4 a( J
GetCurrentObject 获得指定类型的当前选定对象 $ U0 a& X) w( V* i' _+ \+ d
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 8 M* I9 A% u9 t* d. Y( H2 ?
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 ) Z; {9 x! z0 o  p8 A- \3 e
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 ) d" g4 ~, f1 ^+ [/ l; V
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
. N% m$ ]9 {$ Y, hGetEnhMetaFileHeader 取得增强型图元文件的图元文件头
- [1 `: [) @- b! {2 \3 y/ ~GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 : ?1 @1 O/ l% }9 c7 E
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 # G4 o' g  U9 A& U' N
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 & |- }& g9 I- ^8 d0 n& ]/ L
GetMiterLimit 取得设备场景的斜率限制(Miter)设置 : g+ k# Q% y% F( n0 k
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 ' q7 v  N! H( ?! H7 t/ j' g
GetObjectAPI 取得对指定对象进行说明的一个结构
4 e% L, `! F0 L  Q3 \; nGetObjectType 判断由指定句柄引用的GDI对象的类型
9 X- M* F/ K( O" Y9 {7 C+ sGetPath 取得对当前路径进行定义的一系列数据
, P8 u* d( F- WGetPixel 在指定的设备场景中取得一个像素的RGB值
5 l$ N$ g6 }$ n7 Y& _" y4 p  L; hGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
5 y- Z( G- i" K) I5 G  OGetROP2 针对指定的设备场景,取得当前的绘图模式 / ]. a* ~7 L, W. j0 Y
GetStockObject 取得一个固有对象(Stock) ! o: ?8 ?- ]/ [; {9 d
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 0 W% y* L3 X  m" {
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
" A& l' y9 x! w" j- k$ |InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形   K) [3 y0 r! @7 S" ~6 I/ |
LineDDA 枚举指定线段中的所有点
, }: V8 E# S! j8 ^' vLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 ; ^! {1 X# U! V5 T
MoveToEx 为指定的设备场景指定一个新的当前画笔位置 3 ^4 R( S0 r) W
PaintDesk 在指定的设备场景中描绘桌面墙纸图案 1 A0 a& d, G% l
PathToRegion 将当前选定的路径转换到一个区域里
. l$ D5 Q* t0 ]! g+ `Pie 画一个饼图
$ ^, x- a8 T% ^% u0 [; o& hPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 5 ?% m( s5 D, Q8 L% z
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
2 K" J+ H; z( ^1 r9 qPlayMetaFile 在指定的设备场景中回放一个图元文件 3 \1 Y/ P: b8 ^& L$ o# M
PlayMetaFileRecord 回放来自图元文件的单条记录 9 f- k+ Q$ ]* i+ w# _5 x
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
9 N% Z% n, c" M6 u8 m( n% k' DPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 1 o- C% u+ d$ }' i. M9 B# k, _
Polygon 描绘一个多边形 5 w% O$ K' V" D
Polyline 用当前画笔描绘一系列线段 " Z& ]+ a7 D7 b- u! s9 R
PolyPolygon 用当前选定画笔描绘两个或多个多边形
2 h- W/ c$ s" j! vPolyPolyline 用当前选定画笔描绘两个或多个多边形 4 J+ ~+ C& H9 j- k! n2 \' ?
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
1 t  d- v( m& S7 |RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 , l  P1 z9 m, w' D/ J
SelectClipPath 将设备场景当前的路径合并到剪切区域里   I" @& a: {% t! x' w. J& J
SelectObject 为当前设备场景选择图形对象 . i+ Z5 F2 P( F7 G
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
! r% d* d; I1 WSetArcDirection 设置圆弧的描绘方向 ; R  i9 ^% L6 I+ o& P
SetBkColor 为指定的设备场景设置背景颜色
! E0 |, d$ P5 S& _( G; uSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 ( L9 c3 c3 N$ z
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
7 m7 i- b; {! K( R: ^5 OSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
- F; d8 ?; j, ?* X9 d% qSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 : O" A7 Z, f( x/ d4 ?
SetMiterLimit 设置设备场景当前的斜率限制 3 E4 V4 d7 v9 z. d; Z
SetPixel 在指定的设备场景中设置一个像素的RGB值
7 W% p: ~& M5 F% Q6 HSetPixelV 在指定的设备场景中设置一个像素的RGB值
' z) ~2 O- J7 C# n% _' pSetPolyFillMode 设置多边形的填充模式
8 j/ I+ T9 r$ A4 p& Z, v: PSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 / N0 W8 H- P4 g! T! b
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 7 R5 c; h) x1 _" E/ `
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 ) }( y7 |% c1 o/ y
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 3 x8 D: ~/ k- ]: J6 Q
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 $ }& w- r+ B& H; M2 R. I
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
1 Q8 W) ~: a8 a! L& `* t0 S; M9. API之设备场景函数 . V' J$ F2 k  S4 E* }6 p
CombineRgn 将两个区域组合为一个新区域
& ?% D9 U9 I5 z5 U# y5 }: M( F- {CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 ( S& d, }: Y  L- ]0 v' B
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
5 [9 y& Y- d1 ~# \' iCreateDC 为专门设备创建设备场景
% k8 p/ x8 [* [9 q1 ?CreateEllipticRgn 创建一个椭圆 6 ~2 v3 c% k, h- o
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 " O7 m9 @5 j: u. [6 @: E
CreateIC 为专用设备创建一个信息场景 + _3 a0 S% O: {+ w+ l
CreatePolygonRgn 创建一个由一系列点围成的区域
, h- u+ |2 ?1 u5 c/ tCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 & b1 T3 G! |8 i7 o1 L
CreateRectRgn 创建一个矩形区域
3 |- k- v# z  C7 n5 n! |CreateRectRgnIndirect 创建一个矩形区域
" X* t) |8 ^4 ?6 ~CreateRoundRectRgn 创建一个圆角矩形 7 D# D2 c. s( G, ?4 L
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 ! }9 M4 J) V' T, i' N
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
  V& E4 j1 Y4 [( z  R. F' p: G6 wEqualRgn 确定两个区域是否相等 2 h# F* R2 D3 d, P) n+ m' c5 M
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 1 W& H, r* M3 M- v
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 5 {' X- M3 x& l+ A( w( I
ExtCreateRegion 根据世界转换修改区域
8 t. S0 N7 S( E5 J* r( KExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 9 W( M# V: I, }5 R. i% |. G, P
FillRgn 用指定刷子填充指定区域 ( t( `  V/ Z5 ]* ~% E
FrameRgn 用指定刷子围绕指定区域画一个外框
1 [& C  ^" y* c! `- N6 g5 E# xGetBoundsRect 获取指定设备场景的边界矩形 + A: I! p7 W- F# ^6 j. H$ a) q
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 ) H5 n  z; q! Z
GetClipRgn 获取设备场景当前剪裁区 4 T+ N* l9 T' B- l+ M
GetDC 获取指定窗口的设备场景 6 ~5 f# e! S6 v1 R
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
1 g2 ?' i9 R& y* sGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) 1 z& s% e4 z# ^, \7 j
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
  W/ R7 R6 X3 d& ZGetGraphicsMode 确定是否允许增强图形模式(世界转换)
! T7 Z+ a; C  f' a8 _8 }& f- S  mGetMapMode 为特定设备场景调入映象模式
  S# X! H  {: w9 I$ X6 l1 N# kGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
7 r2 ~6 U4 \) p& O& ]6 H+ D: w4 w: }GetRgnBox 获取完全包含指定区域的最小矩形
+ v2 T$ D' `& f; Z; [% ]- j, hGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 4 h/ n0 J9 s" U
GetViewportExtEx 获取设备场景视口(viewport)范围 2 n$ Z' h3 m" \( _6 V/ ]6 _4 g
GetViewportOrgEx 获取设备场景视口起点
( c# N+ w  u2 W' o7 T. F8 |" KGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 & K4 Y5 ~8 J2 ]' ^- v) l/ c
GetWindowExtEx 获取指定设备场景的窗口范围
0 Q5 V0 M$ Y$ X# G8 A3 H2 vGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
! K. p! A1 R" ]1 c; F! ?GetWindowRgn 获取窗口区域
% A! @  ~8 |5 C' |" yGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
  v$ A, O: Q0 ]IntersectClipRect 为指定设备定义一个新的剪裁区 ; b3 z. g) }) P$ f6 U
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
+ Y& h' \9 l, L' l4 ^InvertRgn 通过颠倒每个像素值反转设备场景指定区域 0 B8 K$ v. |1 U5 n' C& ^, }9 m! }6 |
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
) f  t& D6 c" E7 i" |ModifyWorldTransform 根据指定的模式修改世界转换 / n0 h3 ^# ?8 }3 E
OffsetClipRgn 按指定量平移设备场景剪裁区 ! s% m/ z/ z0 |1 s! L" s
OffsetRgn 按指定偏移量平移指定区域
/ h6 @( [6 b# TOffsetViewportOrgEx 平移设备场景视口区域
2 [: C. t7 O2 m4 c) \OffsetWindowOrgEx 平移指定设备场景窗口起点
1 q: s6 ~$ B" R+ rPaintRgn 用当前刷子背景色填充指定区域 5 n0 ?7 l2 `# \3 [: o
PtInRegion 确定点是否在指定区域内
7 o" c/ U, U% w2 [2 QPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) . Z7 P+ m9 q, D) ~4 q" e. o9 ~
RectInRegion 确定矩形是否有部分在指定区域内 ! A4 i, U: ]4 z7 V3 T
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) ; z) Y# G- U  W' ~5 B, |, E
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
' O) y* }3 A7 q. wRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
. t$ N  g( |& W, a$ I; X* jSaveDC 将指定设备场景状态保存到Windows设备场景堆栈 5 W- m# e( k4 j$ u# |( R) W% R
ScaleViewportExtEx 缩放设备场景视口的范围 . U# A4 e) p4 e8 h9 |
ScaleWindowExtEx 缩放指定设备场景窗口范围
. L3 u) H  v$ K' K+ nScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
$ X/ @' E  [( O; k4 p# YSelectClipRgn 为指定设备场景选择新的剪裁区 # ?1 h1 j5 _5 s8 r
SetBoundsRect 设置指定设备场景的边界矩形 8 g, H+ k* r+ g( i, b( q
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
+ G+ W7 Y5 P$ n4 X8 USetMapMode 设置指定设备场景的映射模式 7 r( V- c+ u7 s/ E) Z; G
SetRectRgn 设置区域为指定的矩形 ) j, B$ e& S  r; g( o# |
SetViewportExtEx 设置设备场景视口范围 / K2 J% }# u0 @9 I, F5 K; ^; q+ m* g
SetViewportOrgEx 设置设备场景视口起点 ( `# L/ U' v9 l9 T
SetWindowExtEx 设置指定设备场景窗口范围 . g) D4 o. x% x0 T
SetWindowOrgEx 设置指定设备场景窗口起点
2 T6 b: R! l$ I0 _7 B1 q% q4 M/ @SetWindowRgn 设置窗口区域 6 r; X( {" x$ o" x% N
SetWorldTransform 设置世界转换
! I# z; M4 u% m* U/ gValidateRgn 激活窗口中指定区域,把它从刷新区移走
8 V/ Z: i9 O  ]& {6 j) {WindowFromDC 取回与某一设备场景相关的窗口的句柄 " R$ ]5 W# N! b; ]. l, Z* B
10. API之硬件与系统函数
6 u9 \2 V# C- |  @. h4 HActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
6 q$ [. q# h/ HBeep 用于生成简单的声音
; c7 {1 f, W' ?* @7 z  x; ?CharToOem 将一个字串从ANSI字符集转换到OEM字符集
# @0 z3 B& U0 ?ClipCursor 将指针限制到指定区域
6 k- f3 t5 m/ n3 `ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID . k( Q7 w/ s3 j5 }% W
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 4 |/ G1 V: C% f2 ^& c. D! ~
DestroyCaret 清除(破坏)一个插入符 , f1 ~8 Q  ?$ P1 q1 r3 ]
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 2 C/ R4 ?7 d- q( O
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
% N4 ]! }- L" jEnumSystemCodePages 枚举系统中已安装或支持的代码页 2 G8 n! L8 x+ r+ B! i  _9 ~
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 ! ~3 j! O5 t+ v3 R0 F! B
EnumTimeFormats 枚举一个指定的地方适用的时间格式
+ w: `; {: F. f9 j! Y+ WExitWindowsEx 退出windows,并用特定的选项重新启动 ; b% V# }/ I/ D0 N
     WINUSERAPI BOOL WINAPI ExitWindowsEx(9 F# Y1 J% I& k7 e. J5 k' X
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
0 H  d& [, J# F/ f" j4 q' V, P     DWORD dwReserved); //0
( ^3 ]7 O# e: w( tExpandEnvironmentStrings 扩充环境字串   U$ M1 E' L% c; m: ?9 M
FreeEnvironmentStrings 翻译指定的环境字串块
$ N/ I! S) {1 ^' uGetACP 判断目前正在生效的ANSI代码页 0 ]# I' j( q' a7 c
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
! ]! D* I9 w; w1 vGetCaretBlinkTime 判断插入符光标的闪烁频率
- Q8 P  m  p1 S  d7 WGetCaretPos 判断插入符的当前位置 0 [  }& F# T5 F4 a) G. @1 b! {
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 ( d: x2 W, l# @  ~" j+ z0 W5 k
GetCommandLine 获得指向当前命令行缓冲区的一个指针
+ g( u3 k9 i8 E- [8 UGetComputerName 取得这台计算机的名称
& N% d$ t  S) E7 a/ {. zGetCPInfo 取得与指定代码页有关的信息
7 Z0 l3 ~0 y+ _4 L( B5 w$ fGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
( {7 H  {8 T# C# yGetCursor 获取目前选择的鼠标指针的句柄 $ R9 G: Y5 R- N+ j, y7 w$ \% r
GetCursorPos 获取鼠标指针的当前位置 2 U+ |) o& M4 x" _
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
, j2 a; i* c+ NGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 ; W3 Y1 q# k, b- r
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
/ J, x1 w" X1 Q6 GGetEnvironmentVariable 取得一个环境变量的值 9 K) R" o% L4 Q! M
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 2 q) F/ i  ]1 a  C" A+ o& E% I
GetKBCodePage 由GetOEMCP取代,两者功能完全相同 2 H2 _: i4 {# W
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
6 N! A# T& }2 M7 [5 ?* B2 q% l" nGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
9 b; J: ^/ n# h0 gGetKeyboardLayoutName 取得当前活动键盘布局的名称
" B' H- `6 l) Q' n0 ?3 F8 ^GetKeyboardState 取得键盘上每个虚拟键当前的状态 , {( G* |' `* z: G( w& n
GetKeyboardType 了解与正在使用的键盘有关的信息
; X; Z* d& j. b) |# fGetKeyNameText 在给出扫描码的前提下,判断键名 7 T9 w- j# E1 [) F9 O# a" i$ G
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 2 L  I+ {' w* D! n! \
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 9 m& D; g$ s& X; _6 e: `, g
GetLocaleInfo 取得与指定"地方"有关的信息 / ]4 E& U/ B6 p' @" ~" t
GetLocalTime 取得本地日期和时间 * S; ?: K. s" m5 P
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
& [( e' j$ A3 \( J1 \% |GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
' U: o2 I9 N1 B! N0 Q! xGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
" `. @. S! L8 x" oGetSysColor 判断指定windows显示对象的颜色 ! S1 D8 n( O9 g
GetSystemDefaultLangID 取得系统的默认语言ID
/ Y- Q; ^, a- ]GetSystemDefaultLCID 取得当前的默认系统"地方"
  M+ S; {! L% ^# F7 H. I4 wGetSystemInfo 取得与底层硬件平台有关的信息 / E9 g1 I# t, b+ a: @! o( C' V
GetSystemMetrics 返回与windows环境有关的信息 7 K) ?/ N3 O$ q* U! m; _  H# R
GetSystemPowerStatus 获得与当前系统电源状态有关的信息 6 D! ]4 r. H5 g, o; Y* d0 ]
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 ; |1 U" Q; R. z: O& N
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
8 f, T. {0 n0 E' v, V. p% d8 uGetThreadLocale 取得当前线程的地方ID % k$ W& K- z( y; R+ l
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
. `; L4 O/ b) k0 _2 l, R& E) O+ uGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
2 I2 x; t9 k2 g3 I4 n# @' B9 P5 u8 r& q5 HGetTimeZoneInformation 取得与系统时区设置有关的信息 ( x5 [. c; i2 E) w6 e( P* b7 O; V
GetUserDefaultLangID 为当前用户取得默认语言ID
5 q( d/ M3 w5 C" [% K, r& HGetUserDefaultLCID 取得当前用户的默认"地方"设置 9 N9 h) Z4 t( N" u
GetUserName 取得当前用户的名字
1 Y2 X* o* t5 \" aGetVersion 判断当前运行的Windows和DOS版本
( G: L' X; f- ~+ v6 B5 yGetVersionEx 取得与平台和操作系统有关的版本信息 : g; o3 G5 Z, J, r# n3 a+ W4 G
HideCaret 在指定的窗口隐藏插入符(光标) 9 }- j3 X5 `' E% x5 K
IsValidCodePage 判断一个代码页是否有效
2 B( q  G6 _0 ~IsValidLocale 判断地方标识符是否有效
9 Q6 v% [2 F; Z4 R: [keybd_event 这个函数模拟了键盘行动 $ u$ n) r: `$ l* K* C$ _$ y
LoadKeyboardLayout 载入一个键盘布局 9 H$ n% y5 B' W% u. ]: ^
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 $ S' U0 S( |( ^1 V
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换   o. `. K: G- t  r- f
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
$ B) L' E# |  k; X  Pmouse_event 模拟一次鼠标事件
' R+ N( D( m8 f* r1 SOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
; P8 Z! ?: I) a, _: X! E" UOemToChar 将OEM字符集的一个字串转换到ANSI字符集
* D) J1 E0 E  o( R, cSetCaretBlinkTime 指定插入符(光标)的闪烁频率 ; H+ V0 ?$ c: y( N) L- u9 t+ d
SetCaretPos 指定插入符的位置
( p% c1 T% _1 R% Q9 D0 w; DSetComputerName 设置新的计算机名
3 q" m; A& a2 Q4 Q% V" U- {. RSetCursor 将指定的鼠标指针设为当前指针 ' q0 g$ B( G$ X$ i' Y- ~* x
SetCursorPos 设置指针的位置 2 a9 X: F+ r& X; b
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 9 M' @" ?4 L. A& b8 y" w! I; C
SetEnvironmentVariable 将一个环境变量设为指定的值
4 S# Y* z. w$ d. B' B0 c! ASetKeyboardState 设置每个虚拟键当前在键盘上的状态
# e: ^' A' y% _  z0 H  ~. d! n% hSetLocaleInfo 改变用户"地方"设置信息
! V0 r7 k4 B+ rSetLocalTime 设置当前地方时间
( a: Q' x2 o  s  s, B: k3 uSetSysColors 设置指定窗口显示对象的颜色 ) T* ?) j: P3 A
SetSystemCursor 改变任何一个标准系统指针
# @4 W& m" l  A  r$ c' FSetSystemTime 设置当前系统时间 : d, k4 g) U* h7 f$ O$ V. |# S- n
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
- N3 w$ E& b! O: hSetThreadLocale 为当前线程设置地方 7 P3 U6 ]4 e* G3 f& D
SetTimeZoneInformation 设置系统时区信息
, Q( z5 B, ]" NShowCaret 在指定的窗口里显示插入符(光标) ) M5 ~+ J/ a; V6 S5 A) |6 B: q
ShowCursor 控制鼠标指针的可视性
7 M* Y& k. w- P' _SwapMouseButton 决定是否互换鼠标左右键的功能
7 z3 l  C. |/ m8 E( r/ F4 LSystemParametersInfo 获取和设置数量众多的windows系统参数 9 f% f3 ]1 R3 Q" ^& c5 |; d
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
! X8 k" j; X7 dToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
9 d1 p3 Q; L* N' I0 TToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
6 p7 P4 c6 A6 k" H4 EUnloadKeyboardLayout 卸载指定的键盘布局
1 z( s. C9 B; `* ~- ^# D* oVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 8 m7 L- P: F2 b
11. API之进程和线程函数 8 T2 Z. h: {. V5 \! w! n* }
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 # v$ V- V0 v  u( c+ d9 X; J$ |9 v
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
& P' ]& K$ v% `ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
+ y: m* `: v/ ]; r3 b9 gCreateEvent 创建一个事件对象
. `3 Y/ p0 s& g. h, E$ ?4 J" N$ x7 \CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) ! o& [* S4 N; }: k
CreateMutex 创建一个互斥体(MUTEX)
9 u9 l) e2 E% R! d6 d( ^CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 . b4 K9 }4 I  x1 |! f- p
CreatePipe 创建一个匿名管道 4 q. u" E# R# ?2 C. R+ [
CreateProcess 创建一个新进程(比如执行一个程序) * i: O+ i: A5 T
CreateSemaphore 创建一个新的信号机
3 F* S9 m* r9 [+ p& b7 QCreateWaitableTimer 创建一个可等待的计时器对象
; |* a3 f6 T. q" ?DisconnectNamedPipe 断开一个客户与一个命名管道的连接
+ m) R& `- _/ D* T" G5 iDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
3 |! g8 f/ d. H' v; W: bExitProcess 中止一个进程 # |% v% I" Y- v
FindCloseChangeNotification 关闭一个改动通知对象
. B/ C6 r5 o7 GFindExecutable 查找与一个指定文件关联在一起的程序的文件名
- }- w+ n; Z: l7 g) d( h' a2 GFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 ' ]* |9 b, e% J+ }
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
  w8 ?7 }: J" y# B! v( lFreeLibrary 释放指定的动态链接库
2 D: `% B, ~9 I7 l- }GetCurrentProcess 获取当前进程的一个伪句柄
  g" |, v: o8 wGetCurrentProcessId 获取当前进程一个唯一的标识符
4 ]  I. b! n3 zGetCurrentThread 获取当前线程的一个伪句柄
" J* V4 C5 f4 bGetCurrentThreadId 获取当前线程一个唯一的线程标识符 * T" w$ P* {8 }% `
GetExitCodeProces 获取一个已中断进程的退出代码
8 q% x$ |% e7 `. }' e; vGetExitCodeThread 获取一个已中止线程的退出代码   I* S, \, C$ s% V; e; ^
GetHandleInformation 获取与一个系统对象句柄有关的信息 6 E& b! V) d. m0 \  D; G
GetMailslotInfo 获取与一个邮路有关的信息 ' K. K" m$ |/ m2 S5 t" R7 M
GetModuleFileName 获取一个已装载模板的完整路径名称 % ^* x1 D4 r! b0 y( [
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
( ?/ S5 p5 ~$ x3 e. z     GetModuleHandleA(LPCSTR lpModuleName);  [5 O- w# f/ {$ f8 c9 L
GetPriorityClass 获取特定进程的优先级别 $ j6 s* e6 D3 J2 T5 U* l: K
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 4 z3 _1 M# N7 |5 _+ A. ~
GetProcessTimes 获取与一个进程的经过时间有关的信息 8 W) h6 V: ^! e0 H) z1 r2 k- F; `% m  d
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 ! F0 j7 O% U, ^" ]" ?2 Y1 {
GetSartupInfo 获取一个进程的启动信息 + I4 w* ?& L) |9 W# j4 `& R
GetThreadPriority 获取特定线程的优先级别
: n6 c* F- x$ D6 U$ IGetTheardTimes 获取与一个线程的经过时间有关的信息 5 c/ s5 D  `- j' c/ R# o
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
% G2 @2 v) q( mLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 * o9 ^6 N7 j6 z# F' L+ u, k( ?( I
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
: T) Z7 ?# a$ ]! cLoadModule 载入一个Windows应用程序,并在指定的环境中运行 ! A- Z) @4 ~% w6 e
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
* T- v7 l) p' d$ tSetPriorityClass 设置一个进程的优先级别 & B1 F) }" q1 `% [( h" s5 O
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 ) p, C: C# r; b8 U
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
5 U: D& b  u/ {$ tSetThreadPriority 设定线程的优先级别
  U: y# X: g. h4 ~& n1 H8 AShellExecute 查找与指定文件关联在一起的程序的文件名
( K$ o* n0 a& c% I2 {0 G2 lTerminateProcess 结束一个进程 1 k+ V7 l1 V) X: [; J
WinExec 运行指定的程序 . I. v5 K. u1 L& |: X
12. API之控件与消息函数
& d1 o' h* c# h& a, w6 h& n4 yAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
/ C4 P! R  ^* {  i3 y+ W& wAnyPopup 判断屏幕上是否存在任何弹出式窗口
2 e! r3 u& G6 P+ _ArrangeIconicWindows 排列一个父窗口的最小化子窗口
. B' H+ J' \1 x9 v  P4 xAttachThreadInput 连接线程输入函数 5 Q# g+ U  S! T; O( K
BeginDeferWindowPos 启动构建一系列新窗口位置的过程
' H9 e3 S0 x* uBringWindowToTop 将指定的窗口带至窗口列表顶部
; A0 S1 Z# h5 p& bCascadeWindows 以层叠方式排列窗口 1 n3 M! v  g1 ?, h# c
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
+ o4 D% D/ M! fClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
4 I3 `# t" i6 Q+ r) C7 OCloseWindow 最小化指定的窗口
- |# R' G" m1 q1 Z) n) LCopyRect 矩形内容复制
* e3 R: s6 ^5 s2 J5 r! m* T! nDeferWindowPos 该函数为特定的窗口指定一个新窗口位置 ' K' e8 u5 B% R& J
DestroyWindow 清除指定的窗口以及它的所有子窗口 . Z/ ~% |' t" F4 o, N+ I  x2 ]
DrawAnimatedRects 描绘一系列动态矩形
% i2 f! V; g* \% G: B3 S0 FEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 : q. W5 B& i, E: z2 V5 Q: {
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
% A& G$ H1 F) ^) y# i; P* REnumChildWindows 为指定的父窗口枚举子窗口 . T4 F: ^1 K8 L7 i( {1 R
EnumThreadWindows 枚举与指定任务相关的窗口 2 P1 b% o% q0 e( ^$ P+ Q! c
EnumWindows 枚举窗口列表中的所有父窗口
7 C  O8 I  A( h0 B. m% NEqualRect 判断两个矩形结构是否相同 ) A, j' F* d& }3 j: U
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 + H7 L/ R! y) O: ?% U& x
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
- Q6 j% Q. u3 Q$ Y: U3 U' X* Z% O* |0 Z# ?FlashWindow 闪烁显示指定窗口
% P, B+ u" q- F% Q" ~5 A0 V) |9 [3 o6 YGetActiveWindow 获得活动窗口的句柄
) _, w+ B1 T+ [5 oGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
4 ]) u' }( P6 ~: FGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
8 H6 i; M  g* Y, W- i; P9 z+ S; a8 aGetClassLong 取得窗口类的一个Long变量条目
! b" I& O- @! c5 s( i7 vGetClassName 为指定的窗口取得类名 . l: J3 W5 J: e; O
GetClassWord 为窗口类取得一个整数变量
) x3 S7 _( C- C0 y- Y" _GetClientRect 返回指定窗口客户区矩形的大小
$ O0 A  L4 B  d% K2 `GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
2 |- s( B# D+ z. X: vGetFocus 获得拥有输入焦点的窗口的句柄
. C5 s; F8 e8 o9 c  e4 l9 SGetForegroundWindow 获得前台窗口的句柄
( A% A+ v- w8 N' J. w' m0 t. `7 b6 GGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 ; N4 _- ^& f# Y3 n/ a' v
GetParent 判断指定窗口的父窗口
7 k- s( @4 o  M4 c  v6 y/ qGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 3 i, R8 N) e5 ]$ J3 b0 E( R3 @
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 - V, W( S8 _) [
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 + w9 l/ f9 `/ u+ |; Q
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID 1 Z) I8 F& ~, J6 R$ H5 u
GetWindowLong 从指定窗口的结构中取得信息
" f0 i  _" \+ V2 _. xGetWindowPlacement 获得指定窗口的状态及位置信息 " t. r# d6 w# o8 r9 i! Y9 t
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 ! \0 _3 N, M" u# o+ }
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 2 f! u4 m  K4 @% e1 c1 x# T" @& z
GetWindowTextLength 调查窗口标题文字或控件内容的长短
0 K$ s' I0 y3 [6 o5 }/ aGetWindowWord 获得指定窗口结构的信息
9 p1 a8 a, x  Y: |( KInflateRect 增大或减小一个矩形的大小
% U  ?& v( t& |- I" G/ Z( G7 {' gIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 , j  i/ y0 n9 X) d9 T; e
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 2 J! N' V) n$ E! l  R' Q, q
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
, A7 u% W# G8 M9 vIsIconic 判断窗口是否已最小化
/ l3 f. Q9 m; v) G3 j; dIsRectEmpty 判断一个矩形是否为空
* N- w8 I) M0 H2 u* Z* u, ?IsWindow 判断一个窗口句柄是否有效 / N) D+ m1 ]( U! @7 C$ S
IsWindowEnabled 判断窗口是否处于活动状态 4 ]  s! @* `7 o. x+ N+ o
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
; M9 J4 E- c1 Y/ E+ i6 h! UIsWindowVisible 判断窗口是否可见
1 O+ M5 ]5 P) p. a% ~+ HIsZoomed 判断窗口是否最大化
/ \# C( Y" d& |, KLockWindowUpdate 锁定指定窗口,禁止它更新 % g* i! v9 g1 ]8 @6 R
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 4 I* H5 O) X; @7 u" |7 {8 {3 O
MoveWindow 改变指定窗口的位置和大小
$ l# o2 K. i: X- j) t7 DOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 , p: r) U! k+ R. l! r
OpenIcon 恢复一个最小化的程序,并将其激活 8 W" q* b0 H' f% q2 \7 R* U' O
PtInRect 判断指定的点是否位于矩形内部 . ?4 v/ [  t+ e" `! U- |  I: U
RedrawWindow 重画全部或部分窗口 $ q7 Q, j0 ]5 ~! E! a, ~
ReleaseCapture 为当前的应用程序释放鼠标捕获
$ ~, `" W# U( l7 \5 B) t$ t: dScreenToClient 判断屏幕上一个指定点的客户区坐标 ) K) C' f4 d. ]/ z0 ~
ScrollWindow 滚动窗口客户区的全部或一部分
& D& b1 A7 j1 b1 S' Q! OScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
9 v+ O; `  @8 k- ]$ |: {. f. ASetActiveWindow 激活指定的窗口 , X0 a: C; q( o! s
SetCapture 将鼠标捕获设置到指定的窗口
- w4 B$ I" ]) xSetClassLong 为窗口类设置一个Long变量条目 6 X4 L( `' m' G3 G) f9 A- m: ^
SetClassWord 为窗口类设置一个条目 ) [8 F0 \7 C, g
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
) u: H  d" D6 s/ vSetForegroundWindow 将窗口设为系统的前台窗口
3 u; C; w- E1 Z; s' sSetParent 指定一个窗口的新父
  ^  }8 F4 h9 R: q+ v7 LSetRect 设置指定矩形的内容
% @1 Z  ^7 M: N( q9 O' dSetRectEmpty 将矩形设为一个空矩形
2 x" v3 @* l( `* kSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID + [/ U3 }: M, u6 ?: K" {
SetWindowLong 在窗口结构中为指定的窗口设置信息
0 l! y: E# [; w" h: ^SetWindowPlacement 设置窗口状态和位置信息
- y' m# h7 P/ n/ }/ C2 u& ~SetWindowPos 为窗口指定一个新位置和状态
3 G. a. O/ b1 }; CSetWindowText 设置窗口的标题文字或控件的内容 3 K( s3 |3 {. J: p/ n
SetWindowWord 在窗口结构中为指定的窗口设置信息 ) G$ e; H2 i6 |
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
! k8 L" `$ a$ H' QShowWindow 控制窗口的可见性 9 D+ A8 w$ ]1 Q- I
ShowWindowAsync 与ShowWindow相似 8 j  t% }) ^9 E1 L
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
* M9 c: N7 q7 ]4 U  @$ u6 zTileWindows 以平铺顺序排列窗口
# P4 Y' Z% p, l5 p1 e9 NUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 0 [. w+ o- I7 q1 Q$ e, E5 e
UpdateWindow 强制立即更新窗口 & ^1 G% f9 G$ u7 k% U
ValidateRect 校验窗口的全部或部分客户区 2 T. }& ~2 X' n( z+ S0 N
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口. {/ _+ E& T7 U" c& C$ X. T1 H
高级音频函数—参看《VC++ 编程指南.chm》11.6
/ z* Z  A; x- v$ ^; T0 \' j     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。$ D* W5 X3 m* f% F' E$ Y% N& L  r
     BOOL MessageBeep(UINT uType);
4 X0 D# Q/ P5 Q4 Z% E3 o该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。9 s( t+ r' U# o: S3 F  c7 k' A4 t
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
4 M6 K" u: \5 x
级别
/ ~9 X* c7 ?2 Z
描述 . N* R- A/ l* s8 X
-1
0 |2 I, }4 A. B2 ~
从机器的扬声器中发出蜂鸣声。
0 A$ }' K9 u, Y) Q8 x: b9 ^; Z
MB_ICONASTERISK
7 v# _! l* U7 E) [% x. s0 }
播放由SystemAsterisk定义的声音。
1 N+ P+ I* c0 @, B- u
MB_ICONEXCLAMATION
; o( r% N, I, v1 B) R2 h+ k; G: C
播放由SystemExclamation定义的声音。
% P* A: i$ [5 z) x6 [; ]6 h( a
MB_ICONHAND
& W# W/ Y4 X- r
播放由SystemHand定义的声音。
) y' N' o( h9 F7 n) q
MB_ICONQUESTION
9 }. j  A$ C1 S8 X+ ~* H- ]
播放由SystemQuestion定义的声音。 6 ^8 A# o9 ]# l. v5 |
MB_OK 0 }, w# \# h  T7 g1 ?: o4 a, _
播放由SystemDefault定义的声音
( G5 |) ]. S' ^8 n) {
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);& u/ ~" W1 X4 ^& q7 P& m5 z9 `
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。( p, U+ Z  \) g) g9 M
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。& f3 [8 F9 E; n+ I% e5 B- B
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。* i2 Z7 d5 y6 c* k' V4 C- D
标志 8 Z2 W& ^- P  j7 U& U; Q
含义
& |. V. D/ G# G' d0 Z, w
SND_APPLICATION
2 S; ^" ]) p4 `! w. b! o8 u7 K$ E
用应用程序指定的关联来播放声音。
. W: S* Y. c" N' W0 s1 e
SND_ALIAS
/ E, [/ r( M" i9 o  `6 k, |* d. ^3 K
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 / @" Z7 e9 G/ [
SND_ALIAS_ID
6 a1 z2 ^' W3 ^; \8 u" ^
pszSound参数指定了预定义的声音标识符。 3 @* S7 V+ j( l5 Q
SND_ASYNC
3 P- s8 @% k" K( J
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
' b  Z& e5 g) S7 V& s, S
SND_FILENAME 9 t& i# F" d4 |6 X6 ?: z& i
pszSound参数指定了WAVE文件名。
8 l% L9 P2 K) H6 T
SND_LOOP 0 k, n; g& B9 l7 Y+ D
重复播放声音,必须与SND_ASYNC标志一块使用。 8 q7 C5 c$ s: q+ a
SND_MEMORY
; D' i3 R8 ?. o; Y0 m+ H& {
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 , h! ^8 G8 M2 f# S
SND_NODEFAULT
1 V1 z  u5 U+ ^2 n4 I& L4 c
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 : K  D7 h/ ~0 B$ h) {
SND_NOSTOP
4 |+ Q# c. A, f7 p  q& {2 b( S
PlaySound不打断原来的声音播出并立即返回FALSE。
  @+ D6 Q' m" E
SND_NOWAIT - h/ {) _" Q* U
如果驱动程序正忙则函数就不播放声音并立即返回。
6 K, E! L* D+ s* z, {! c
SND_PURGE * u5 s9 s. W% w" ~. [
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 ; I! D+ `3 j  z6 k) v$ U6 g
SND_RESOURCE
. N- ?, w& a0 D) m) ?+ J7 J( j' H7 a
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
+ i/ ~/ X4 l. L/ x, [3 C5 v
SND_SYNC 5 V. J0 d, n4 U; f6 E& m
同步播放声音,在播放完后PlaySound函数才返回。
7 |2 m$ L+ x0 T5 _$ M( |9 [
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);' {/ |( h! {  P; k2 {
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
' T" B* H. H4 @# F7 l8 Z* lMCI播放/ Z8 `' ~- S0 f( e# v4 L* N
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
+ K! D9 s  D5 j; T8 EMCIERROR mciSendString(9 v( B* c1 m. E  Q" M0 ]
LPCTSTR lpszCommand, //MCI命令字符串
) T6 A+ q8 Z' z* BLPTSTR lpszReturnString, //存放反馈信息的缓冲区
& J! `" ?$ e. h  p9 i' ]UINT cchReturn, //缓冲区的长度
5 q! \4 J0 X% I+ _, s: I, CHANDLE hwndCallback //回调窗口的句柄,一般为NULL
% Y; I; l8 ?0 E: Q); //若成功则返回0,否则返回错误码。
8 A, A* T, H' V; u; R) R该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
$ b  Z6 \4 Y& [: LBOOL mciGetErrorString(
& c$ ?. I' `- U+ ~DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
1 ^8 W  N! Y( n: R! J0 o) l1 sLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区* ^' F2 w3 M9 @
UINT cchErrorText //缓冲区的长度" P5 R  }6 E: _/ ?  n, S. U$ R) I
);; q4 ]' `, A' s( E
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-8 20:22 , Processed in 0.038441 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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