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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html7 f; r3 }$ T& n0 w# c  n" I
1. API之网络函数 . F( N  G. M% i8 i
WNetAddConnection 创建同一个网络资源的永久性连接
5 X" `! {" s2 s5 H# d1 OWNetAddConnection2 创建同一个网络资源的连接
5 f& V( I) H  I3 J" xWNetAddConnection3 创建同一个网络资源的连接
9 K% w9 y7 v# h7 F: ~: _. UWNetCancelConnection 结束一个网络连接 ) T2 K9 Y' \  G$ q) r& P
WNetCancelConnection2 结束一个网络连接
0 A5 g! b  W5 w  ?: x, d$ HWNetCloseEnum 结束一次枚举操作 . t" D# X; v4 a1 v# [6 i0 A* X. W3 c1 X
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
9 x+ _2 e( L9 k. F' r. D9 R$ SWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 2 o& z9 b* p! E8 [$ `( N* b+ c
WNetEnumResource 枚举网络资源 3 g- I1 ^! l$ f, `% S
WNetGetConnection 获取本地或已连接的一个资源的网络名称   W+ ?4 S; f0 |+ O  V- g
WNetGetLastError 获取网络错误的扩展错误信息
* {. {0 F" H; NWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
3 r7 y( S5 M, E7 mWNetGetUser 获取一个网络资源用以连接的名字 8 ]  l% ^3 e& P$ s
WNetOpenEnum 启动对网络资源进行枚举的过程
# ^  c- d: S2 C' j! g2. API之消息函数
' O* |% l" c/ F) O& n" d6 GBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 8 e8 S7 d8 s$ z, m
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
: E3 y8 i( ]# UGetMessageTime 取得消息队列中上一条消息处理完毕时的时间 ( Z2 N7 Y* v  i1 }
PostMessage 将一条消息投递到指定窗口的消息队列
; p0 p3 I9 Y' m' \% u$ I/ ^PostThreadMessage 将一条消息投递给应用程序
& _6 }3 `9 z, A7 FRegisterWindowMessage 获取分配给一个字串标识符的消息编号 * |# k% h+ T; ^" q
ReplyMessage 答复一个消息 2 U+ I- z" [/ X- K4 g  u# L
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口   U0 j1 H" p1 e4 [1 S4 x3 m, p* ^0 H2 s
SendMessageCallback 将一条消息发给窗口 + s- ^. z3 L+ P. v. t9 X3 g* V5 N
SendMessageTimeout 向窗口发送一条消息 * J7 w. I5 S" }) K. f. d3 L2 d
SendNotifyMessage 向窗口发送一条消息 ( f, z6 ~( ~; D9 @! `" P, t
3. API之文件处理函数
9 m; j6 P6 P7 c2 U" h4 ^( l9 nCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 2 z5 q' O+ N5 w* {
CompareFileTime 对比两个文件的时间 4 {' c  E) b# ?+ f# J
CopyFile 复制文件 ! r0 G7 S9 ^7 L
CreateDirectory 创建一个新目录 7 v  H1 D) R: Y* G! _# f  L
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 ( e5 k8 ^0 o1 d+ m5 \
CreateFileMapping 创建一个新的文件映射对象 # E8 m; D# b- G6 l& m; o
DeleteFile 删除指定文件
  I1 E3 f& i/ oDeviceIoControl 对设备执行指定的操作 - p( L& `5 c5 ?, U. G
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
' i0 J3 y( X% t" @9 ^( ZFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
4 v; v3 Y/ M% @9 r3 bFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
/ V  P. L: Y2 M: o* hFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
/ m8 H5 d- e3 U& iFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 8 Z- f+ _/ o/ Q2 K: j6 d/ \
FindFirstFile 根据文件名查找文件 2 Y  L( J' n7 Q( b
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 ) B! J! W" o% a3 i$ h3 s8 I5 Z
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 8 _7 x7 z. y2 z7 N- g& F
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 % f# r/ Y; g, X) q: y& P
GetBinaryType 判断文件是否可以执行 ; _2 p) F1 \7 {" O0 P
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 0 X% F4 J/ c! M& Y8 U
GetCurrentDirectory 在一个缓冲区中装载当前目录
+ e4 A2 }0 k# i. v2 w( w6 [DWORD GetCurrentDirectory(
/ L( u3 W/ D2 o/ e* u    DWORD nBufferLength,    //缓冲区大小
* ^3 w+ o# `0 j+ ?/ `    LPSTR lpBuffer          //缓冲区的首地址
7 p! P% T2 j, g8 ~% l    );4 k6 V9 B  K1 I. R* x
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 0 m/ M0 c/ C/ u4 a
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 $ T. _8 F2 v) b. p7 a! o
GetDriveType 判断一个磁盘驱动器的类型 . {$ e5 P+ ]; e0 s1 ~
GetExpandedName 取得一个压缩文件的全名 ' M6 w5 z! T4 p5 c
GetFileAttributes 判断指定文件的属性
3 }! R: T' G% _4 E, l( G2 }; hGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 " f3 ~9 g/ P/ `: D- H* m
GetFileSize 判断文件长度 8 {3 A- W. U" {
GetFileTime 取得指定文件的时间信息
4 O0 R* H/ I/ q  ]( k) S5 [GetFileType 在给出文件句柄的前提下,判断文件类型 - Z+ J/ o9 A- r( {2 p3 L% n
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 / r' H, S; r3 ~5 G" j1 |: Q% T# v
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区   Y4 U; Q& z1 Z& @" n- B* M
GetFullPathName 获取指定文件的完整路径名
$ O+ G. e  B! m7 d) Y! b" ~7 j/ gGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 3 d: a$ G$ v' }8 _2 E0 J6 r/ B$ u
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
3 H2 }2 ^, L& C2 L4 i, x, X2 Y( EGetOverlappedResult 判断一个重叠操作当前的状态 1 j' z4 b1 t' `8 v  ?& M) D
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 3 B" [0 x1 P' b5 ?6 W: ?$ p
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
: k& g/ V4 e, {$ @. a: g- sGetPrivateProfileString 为初始化文件中指定的条目取得字串
0 t: Z  A) S3 yGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 # m: `; J9 R5 f: Y0 D
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
0 ]% f: w! H9 S, `% M1 Z4 z$ e9 sGetProfileString 为win.ini初始化文件中指定的条目取得字串 5 G' A# p# S( S5 z
GetShortPathName 获取指定文件的短路径名 # o3 c. z+ q4 v
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
2 W) k& I# |( I# o( T+ }) L% LGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
* U" F9 q+ B- VGetTempPath 获取为临时文件指定的路径
. ]" l- B. X  O" OGetVolumeInformation 获取与一个磁盘卷有关的信息
- M( }+ y* `: ]8 g: D0 K# DGetWindowsDirectory 获取Windows目录的完整路径名   Z- }0 Q: B7 K+ |( k6 {
hread 参考lread , F, S# `) O5 J+ t0 T  m& N' }
hwrite 参考lwrite函数 , ?7 y, v1 R- ]
lclose 关闭指定的文件
, j# S! i4 X2 v; Z# U4 {! s" f$ Klcreat 创建一个文件 $ G% [) H1 B, T! e0 z
llseek 设置文件中进行读写的当前位置 # F/ M/ u: u8 a$ D7 h9 D1 X
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 * C  |. A. Y7 X; Z6 |) a
LockFileEx 与LockFile相似,只是它提供了更多的功能 6 p5 f3 n$ X& `8 X
lopen 以二进制模式打开指定的文件 0 A+ Y: Q: F" Q( v0 V
lread 将文件中的数据读入内存缓冲区 2 ^/ U: e, ?' {6 }: G
lwrite 将数据从内存缓冲区写入一个文件
5 b9 U3 \: N+ j6 x) Z- ?LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
; G) c% @: O# L8 u4 _LZCopy 复制一个文件 ( a: I4 ]2 K+ U+ u- K/ M% h; s/ B
LZInit 这个函数用于初始化内部缓冲区 3 n  F3 n4 U7 P9 o1 j
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
, T2 P( e, E" R9 kLZRead 将数据从文件读入内存缓冲区
2 k, m3 E0 _$ [) w% jLZSeek 设置一个文件中进行读写的当前位置
. E9 B2 ]' h1 b2 m; y9 QMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 0 w- P; C! }( l8 r$ i! e* F9 p' M  Y
MoveFile 移动文件
( A- ]; e8 v' s5 J! t, B/ vOpenFile 这个函数能执行大量不同的文件操作
! r1 [1 k8 R% g  P) mOpenFileMapping 打开一个现成的文件映射对象 . s$ M  z( F- ]) N' A; h
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 - Z$ u# M5 d. n0 I
ReadFile 从文件中读出数据 # P; S0 J, M/ D8 W8 Q
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调   M6 m1 @1 |8 F# e) K
RegCloseKey 关闭系统注册表中的一个项(或键)
* A; T! V, ]7 I; o0 D  XRegConnectRegistry 访问远程系统的部分注册表
- M/ L2 U$ q# C- J' ^RegCreateKey 在指定的项下创建或打开一个项 2 g. z. C! B. h# D
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
8 |, u" @: {7 f: J, ~8 k% ]RegDeleteKey 删除现有项下方一个指定的子项
4 P. p/ J3 a2 Q+ V- y% HRegDeleteValue 删除指定项下方的一个值 1 k+ q2 p7 {1 c5 k( m* U1 p9 D
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
. F! ?, H- x# Y% B8 ~0 g9 PRegEnumKeyEx 枚举指定项下方的子项
4 W+ r& F5 i! t4 URegEnumValue 枚举指定项的值 ( y, w4 [( J9 k
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 & f% H9 [% u* u0 x/ v! [% d
RegGetKeySecurity 获取与一个注册表项有关的安全信息
$ e5 {6 `# Q; F& B- {8 |RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 , j9 C! B7 q8 L+ i- A
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 2 @( b. j0 t4 H- s, c. w+ ^/ F
RegOpenKey 打开一个现有的注册表项 % f' g9 z0 l8 U& x( `
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 4 `9 d% [  N8 ?; v! b5 ]
RegQueryInfoKey 获取与一个项有关的信息 : W' x3 e" d: \3 c. g
RegQueryValue 取得指定项或子项的默认(未命名)值 % z8 }( z- q4 Q8 J
RegQueryValueEx 获取一个项的设置值
: k5 j8 p% U# c! `RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
- }6 T; z+ D& ?. X6 E3 p% i2 n7 ORegRestoreKey 从一个磁盘文件恢复注册表信息
! D- b, C# O+ u% y( g5 SRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
: R7 l7 @, U' b0 R( eRegSetKeySecurity 设置指定项的安全特性 0 ]( n+ ^* A" M/ ]
RegSetValue 设置指定项或子项的默认值
' y  P" Q- w" V- K/ M5 QRegSetValueEx 设置指定项的值
3 G( X0 R: E4 c3 n# T8 O. N% }# J. qRegUnLoadKey 卸载指定的项以及它的所有子项
. y5 y3 v, U0 @" N: aRemoveDirectory 删除指定目录   T/ X) N5 K/ j; C! i. s
SearchPath 查找指定文件
- o* y' ^8 R! nSetCurrentDirectory 设置当前目录 6 M0 x; }% W( C4 r# }  i( H
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
* @; Z2 V* a; ]3 Y% d/ GSetFileAttributes 设置文件属性
1 E) F! U2 z. a: \/ `3 d* eSetFilePointer 在一个文件中设置当前的读写位置 7 ]' h5 T. O) E5 D! l3 |. z2 F5 Q
SetFileTime 设置文件的创建、访问及上次修改时间 & _5 q1 t" b* _% F( p; i1 P# g
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
( L/ C. \# v6 k4 ]SetVolumeLabel 设置一个磁盘的卷标(Label) 3 @' b; w1 R* Z7 o' E# y+ `
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 4 O1 ?$ T) I* @
UnlockFile 解除对一个文件的锁定
2 @. V% c  V# Y) p) t$ jUnlockFileEx 解除对一个文件的锁定   g: ~1 U; t2 [3 Z1 t( Y$ |2 x
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
0 s: }  \( m$ q6 |8 E3 Y1 b) wVerFindFile 用这个函数决定一个文件应安装到哪里
! U- y, ?. g; M0 I: WVerInstallFile 用这个函数安装一个文件 # r7 L& q. u+ R  e* m- G. c) }: V
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 2 ~/ v  B4 i- `' ], S7 |8 l
VerQueryValue 这个函数用于从版本资源中获取信息
. e  D" h) }7 }4 q7 @WriteFile 将数据写入一个文件
5 j& J: t: H6 [# ?6 S) sWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 9 e; U& a/ C2 ~$ i8 H6 B2 l
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 ( Q; F( I/ p& \0 q) u
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
2 x7 ^( y2 G2 E* z: eWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
4 t/ D" u  m, t* o2 o) [' {4 QWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 0 _* J9 k0 P4 v; q7 ^( B6 a
4. API之打印函数   h- j2 M% B9 m& o) n' q
AbortDoc 取消一份文档的打印 9 b- D$ t7 D# i, V1 @
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 3 I' W4 ]9 B8 l8 r% J; U4 U
AddForm 为打印机的表单列表添加一个新表单 . ]4 T; X. T( x7 i% W# x* Q" F
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
% q6 y3 P9 V. e7 P% |3 pAddMonitor 为系统添加一个打印机监视器 $ N: d9 {( c1 @7 D; _9 j
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 ; ]) L. a/ ?- m. m! B
AddPrinter 在系统中添加一台新打印机
0 k6 ]' P* ]/ fAddPrinterConnection 连接指定的打印机
+ Q- u6 ]; l  H9 w) ]; y! W9 Q2 SAddPrinterDriver 为指定的系统添加一个打印驱动程序 0 C3 D! l( S9 U* O
AddPrintProcessor 为指定的系统添加一个打印处理器
6 q7 j0 J& A  X, QAddPrintProvidor 为系统添加一个打印供应商 # h7 D" C# Z+ ?2 E
AdvancedDocumentProperties 启动打印机文档设置对话框
" ?8 q9 B6 r9 P0 p$ {: a- VClosePrinter 关闭一个打开的打印机对象
+ Z6 u- I" t3 D" P  TConfigurePort 针对指定的端口,启动一个端口配置对话框
, w. |6 M; y( M0 v- B& \, M( ?/ W6 mConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
; U! W2 P( Y; t' u" KDeleteForm 从打印机可用表单列表中删除一个表单 . m& [9 ~% y. o+ V
DeleteMonitor 删除指定的打印监视器
: W# _# F0 Z' g" l8 RDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 * `2 u% W6 x* a! Y
DeletePrinter 将指定的打印机标志为从系统中删除
, }5 Y3 F0 A7 b2 }2 zDeletePrinterConnection 删除与指定打印机的连接
* i8 p3 }8 m+ K/ NDeletePrinterDriver 从系统删除一个打印机驱动程序
9 I& V. O, q# d" A# ^! R  h$ WDeletePrintProcessor 从指定系统删除一个打印处理器
8 ?3 S3 m: d. W" g' XDeletePrintProvidor 从系统中删除一个打印供应商 ; k/ O! O0 W2 p* ~, m7 ^- I
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 9 f) s% u3 E  A+ X/ N3 }2 t
DocumentProperties 打印机配置控制函数
0 P; a: a0 A0 `) ]  {EndDocAPI 结束一个成功的打印作业 & `6 O7 U! N: Y1 ~" v8 z0 T2 V9 c( F
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 : A, e) \2 S2 G" N
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
4 M% p  T0 K) v- V& x: pEndPagePrinter 指定一个页在打印作业中的结尾 3 v, J2 Z: u5 ^
EnumForms 枚举一台打印机可用的表单 " T1 E+ O* U/ z% O2 K
EnumJobs 枚举打印队列中的作业 4 |7 Z# }% T, r
EnumMonitors 枚举可用的打印监视器 5 ?6 u* u( j0 p  g. C
EnumPorts 枚举一个系统可用的端口   s- ^" w" J9 ^+ [( q! J
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 " j9 d% V1 x' m4 m' O6 A
EnumPrinters 枚举系统中安装的打印机 - Y, K0 h/ E, ?+ E2 T
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 - @; H9 J) G# M* r, o
EnumPrintProcessors 枚举系统中可用的打印处理器 # W- m! @7 P$ L4 a8 K9 M
Escape 设备控制函数
2 S2 N4 G) z$ G; F5 EFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 # U5 Q* W, O3 ?9 x' f
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
" D$ u# z% C0 F6 gFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 7 G2 A! E+ H* t, o) H
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
. t% C" I8 D. U2 o% I; KGetForm 取得与指定表单有关的信息 % s% Z9 Y# M2 i3 s, d1 J. y
GetJob 获取与指定作业有关的信息
3 d0 B3 M- ^" }/ UGetPrinter 取得与指定打印机有关的信息
$ o# a& {/ y. ~% x" T3 F* O3 e# D- RGetPrinterData 为打印机设置注册表配置信息 9 g- w8 t- C  v7 n$ H* m6 E: z
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
& n* B) R) y& \; ]4 D5 T! c6 ]GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
* [& Z  q3 v8 f+ a% y2 @GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
' I8 o6 {! q1 |; H9 G  FOpenPrinter 打开指定的打印机,并获取打印机的句柄 6 N% t" N/ ^' D
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 9 f! e7 h& n! T3 J2 n
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
& F+ W" L7 j  ^2 T+ kReadPrinter 从打印机读入数据
, n; F% s/ Q  x3 ]: [% f8 G3 gResetDC 重设一个设备场景
- w  r! A/ i" {' B, C4 AResetPrinter 改变指定打印机的默认数据类型及文档设置 ) ]( L; Y2 s9 ^# N
ScheduleJob 提交一个要打印的作业
" @) `1 {) U+ a7 v2 T+ O' }% |SetAbortProc 为Windows指定取消函数的地址   I3 S& ~& ?) g/ O2 O9 `2 ?
SetForm 为指定的表单设置信息
' k8 O1 S! K, N& ]) [9 nSetJob 对一个打印作业的状态进行控制 ! P3 {( D, S; A( ~
SetPrinter 对一台打印机的状态进行控制
+ ~5 j" X7 _) v( t$ e* a- HSetPrinterData 设置打印机的注册表配置信息
* B" n% _2 f$ Q" C9 J1 ]StartDoc 开始一个打印作业 / Z  r' }( E# W3 R2 Y8 W
StartDocPrinter 在后台打印的级别启动一个新文档 ) |, e. s; z+ m% ]# V0 b, d; e
StartPage 打印一个新页前要先调用这个函数 % u) V0 }' o9 }3 h8 H
StartPagePrinter 在打印作业中指定一个新页的开始
1 z* j7 {% [, O& QWritePrinter 将发送目录中的数据写入打印机
6 I" q2 ?3 s$ ~8 r8 |+ Y5. API之文本和字体函数
$ d) Y$ P+ L" V9 s1 xAddFontResource 在Windows系统中添加一种字体资源 7 i! L" g$ _+ e
CreateFont 用指定的属性创建一种逻辑字体
+ B$ ?4 h/ a, Z8 @' u. NCreateFontIndirect 用指定的属性创建一种逻辑字体
* n3 J$ \; B2 d$ |2 NCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 9 y- R6 H, W  z. u0 n7 W' P
DrawText 将文本描绘到指定的矩形中   K* }7 L9 h* S( z( P! r1 x/ L
DrawTextEx 与DrawText相似,只是加入了更多的功能 3 Y  l" j3 Z4 m1 F  {" f" q
EnumFontFamilies 列举指定设备可用的字体
' a# C5 D. N' b0 GEnumFontFamiliesEx 列举指定设备可用的字体   g. |  |" y9 ?  J; I/ M  L
EnumFonts 列举指定设备可用的字体 $ v; s; Y7 E" [. B( I% ]
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 5 x% |! T  g# k! S- r
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 2 c: P8 Q* `: W+ {  c
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
( U. P' N# j/ w! fGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 3 u5 y. f  Q3 a4 W6 r
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 8 G/ v: s4 L% G) s( S( V* F
GetCharWidth 调查字体中一个或多个字符的宽度 + w  V% {* u( E( D( G
GetFontData 接收一种可缩放字体文件的数据 & y8 _( z/ K; p( k& o) Z
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 2 \" s) B# j: e* p7 p5 J
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
' P; z4 S) z+ UGetKerningPairs 取得指定字体的字距信息
% m3 B' z' L3 cGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
: q( q1 Q& v& aGetRasterizerCaps 了解系统是否有能力支持可缩放的字体 5 \2 H; k0 Z( f+ ]3 v, t+ M
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 1 a3 o* R/ L0 V# L/ B
GetTextAlign 接收一个设备场景当前的文本对齐标志 ) P6 R1 ?& r" ?# y6 z# |% r. v0 D
GetTextCharacterExtra 判断额外字符间距的当前值
( Q7 K9 {$ ?* v6 D0 ^GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
( P4 ]* F5 m$ \, h+ n" q* LGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 2 a$ M" F( ~  W! ~' m- U; ]5 S* s
GetTextColor 判断当前字体颜色。通常也称为"前景色" * A" P" p3 P# N3 J% M2 z, i
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 + H8 G# _& P# ]) d+ M' X3 n# k0 F
GetTextExtentPoint 判断一个字串的大小(范围)
$ a. i2 y: M" `  IGetTextFace 获取一种字体的字样名
( a- `0 [2 K9 ^2 j$ r0 Y. EGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
( W5 r- c& c9 }8 G( L. V& ~  h& {GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 ' f# O6 c9 D9 V
PolyTextOut 描绘一系列字串
2 @9 U1 m+ c$ r1 ]2 y# x( mRemoveFontResource 从Windows系统中删除一种字体资源 6 C, L% ~4 `& q  z$ l
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 & a# ?( b/ d) a1 p! a5 z
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 / }" u: x: }, C6 b& ?" m& B
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 ) W/ _- x8 x% X, ^1 Y5 k% u
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" 4 y" K  c4 [9 X
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
# V1 D/ g* {4 S8 xTabbedTextOut 支持制表站的一个文本描绘函数
  M1 K+ L0 d3 `# I( qTextOut 文本绘图函数 8 }" K3 C) o" Z& b; H8 M
WINGDIAPI BOOL  WINAPI TextOut(0 y/ j  Q2 s2 j5 ?2 [
HDC,     //输出设备
9 G, J9 j/ Q2 u/ vint,     //输出的横坐标! k' A. B4 ]8 @5 k
int,     //纵坐标4 k% u4 j# p$ v' M# w
LPCSTR, //输出的文本str" Y) N; W& B) P8 r# n$ ~
int);    //文本的长度:lstrlen(str)
& e" |# A! A% u6. API之菜单函数
) S! p- J0 K& j9 h9 d3 O9 rAppendMenu 在指定的菜单里添加一个菜单项 * Q! `7 S) o1 r7 D5 m: a
CheckMenuItem 复选或撤消复选指定的菜单条目
7 |9 v  D* G' j- KCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 / o  o; W# ^/ r$ Y; W
CreateMenu 创建新菜单 " N1 |4 g4 H0 h( e+ o
CreatePopupMenu 创建一个空的弹出式菜单
7 N2 m+ H- n! l3 `& b( l* eDeleteMenu 删除指定的菜单条目
* n, ?$ b' z* @' \3 c& L0 ZDestroyMenu 删除指定的菜单
* Z0 {% ]& n) O/ fDrawMenuBar 为指定的窗口重画菜单 : v  `+ J7 p% n0 p
EnableMenuItem 允许或禁止指定的菜单条目 % c1 \9 m# H2 l# i- C* i
GetMenu 取得窗口中一个菜单的句柄 / E) r( o# s9 P" r
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
: a- O1 [, G! wGetMenuContextHelpId 取得一个菜单的帮助场景ID
+ O  G5 z/ B* s% S* E$ qGetMenuDefaultItem 判断菜单中的哪个条目是默认条目 " P/ B% s7 ?# M2 A) {! c
GetMenuItemCount 返回菜单中条目(菜单项)的数量
) D5 h- M9 ~- `6 r4 J" t9 d5 ~GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
# d+ o! I7 v3 {% o& SGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
: l3 C' F( [! O1 MGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 : p/ h, y" Q1 A7 i% j) n& \1 w% G
GetMenuState 取得与指定菜单条目状态有关的信息
& G, N3 ^7 f% d" B2 N( |$ RGetMenuString 取得指定菜单条目的字串 ' b6 o- Q8 o7 f1 N; @$ `3 Q- Y2 P
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 5 V! m9 L: U: M6 c' u; A' K6 |
GetSystemMenu 取得指定窗口的系统菜单的句柄
% c: R3 }, u. Z2 m! I& ^HiliteMenuItem 控制顶级菜单条目的加亮显示状态 1 C  K) `' j( {
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
4 B, E) X/ \9 Y7 wInsertMenuItem 插入一个新菜单条目 , ]$ A  [+ {3 a* B& {6 L1 l9 N
IsMenu 判断指定的句柄是否为一个菜单的句柄
2 _; b" E, b4 o! n/ l" mLoadMenu 从指定的模块或应用程序实例中载入一个菜单 " s5 K/ A$ Z. O5 p; r
LoadMenuIndirect 载入一个菜单 # O( b5 a$ |2 A
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
0 Z7 u) ]( f( R6 E- T9 wModifyMenu 改变菜单条目
% V7 I$ S& R3 @+ ~) ]7 i0 aRemoveMenu 删除指定的菜单条目
. ~6 v. e* i( v& @SetMenu 设置窗口菜单 * a5 D7 E. R5 _/ Y. K
SetMenuContextHelpId 设置一个菜单的帮助场景ID + w4 }& ^* A2 F5 @9 y' Z2 m1 k
SetMenuDefaultItem 将一个菜单条目设为默认条目 . e- N7 X+ _8 E
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)   w' q/ H+ G7 L9 R
SetMenuItemInfo 为一个菜单条目设置指定的信息
0 ^' @1 [$ y2 N# e: ~TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
/ r+ d/ a8 U3 p- x8 Y  m/ \" c* A& G) cTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
& E1 _' `- q& E7 Y7. API之位图、图标和光栅运算函数
: z- X: b. |6 c1 I! ZBitBlt 将一幅位图从一个设备场景复制到另一个9 G: I; O% I" K6 f( }, |! D
     WINGDIAPI BOOL  WINAPI BitBlt(
( s; V; s% o9 x5 gHDC,     //目标HDC
5 c% i, M0 ^3 W. N" ?" zint,     //X1" X. S% k1 h4 _4 Q: S5 v
int,     //Y19 K' }/ ?, k6 b7 y- b  u
int,     //width' r7 x) `$ M& z: T, Z6 v
int,     //height& N9 C# M& G; c7 q# k  p+ A- B
HDC,     //源HDC, r% H2 m5 L+ s6 f+ W
int,     //右边的距离
: Y& |$ y; t/ l5 k2 P! r% `int,     //??
3 n% Y: B- t( T  _6 L. |DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
9 O% [6 S. V$ |6 SPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS( e0 I  j8 s9 j9 b3 _% P
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
2 V9 h. v+ T6 W; F; f2 `CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 $ a/ R5 r9 v- F$ m4 B3 f4 V+ E, B7 R
CreateBitmap 按照规定的格式创建一幅与设备有关位图 ' k! _  H" F; l* C0 m
CreateBitmapIndirect 创建一幅与设备有关位图 2 f4 {6 S# z5 }
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
8 N; N& P/ d$ M* W8 q" vCreateCursor 创建一个鼠标指针 7 f8 B, ^2 N# j. ?! J
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
0 C0 Z8 Y1 B# M' ?/ N7 D* d! oCreateDIBSection 创建一个DIBSection 3 N9 ^. ]" k0 T1 q/ ]/ F
CreateIcon 创建一个图标 ' L3 q0 E% M) q& r0 g* Z, r/ W
CreateIconIndirect 创建一个图标
8 z7 J' I7 _7 VDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 : {+ M* {$ M: N5 s* |
DestroyIcon 清除图标
3 ~& p5 C& ^2 ^# _+ \+ d/ JDrawIcon 在指定的位置画一个图标 7 L& c7 c* a( \' Z+ ~
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
- W$ k. m4 X2 zExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
" ^6 M1 q9 A- }1 n- f# U; X: H: VExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
7 W2 P; x" u" u) V1 BGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 4 M% c1 c4 ?: \% h  J
GetBitmapDimensionEx 取得一幅位图的宽度和高度 - ?' ?! M# Y9 V1 u
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
# g7 T+ }& ]$ y$ p1 S8 a* b  [8 kGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
# k, e4 `( p: S' o& C" w3 t" [GetIconInfo 取得与图标有关的信息 ! ]/ _  Y) E  O! R+ _1 I
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
  d5 `$ C$ b) R, c4 [# `LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
9 d4 B! P+ w# tLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
; G/ j! J- ]' S. }( V) WLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 2 E! u- ]3 [& W$ K( c7 ?% r! k
LoadIcon 从指定的模块或应用程序实例中载入一个图标
' K' o5 Q$ `, X7 Y, QLoadImage 载入一个位图、图标或指针 ) Q4 s+ W+ S. e# r1 y
HANDLE LoadImageA(0 {0 \5 o& o) w7 G
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
$ I& V4 Y. A$ G0 J( A9 |    LPCSTR,               //资源所在的目录:c:\help.bmp
3 v; k( ~7 h2 B  V: p    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE$ ]' O4 g! s( }' d) X1 e2 r& A
    int,                  //
: p+ u4 t  I, M. c# y) ^    int,                  //  g) o; q- q7 O4 C, K/ G8 f) V
UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|  _' o1 f3 K  N, X+ ^
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
! U, n' O# z5 g5 E8 }" w1 {LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
! E' b, ?4 f0 w" [! ]MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
" {7 f# H  V) s6 s" ~PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 ; k/ |7 Q2 L) ]1 x
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
9 o0 S/ B, B5 i# D* i  ?! BSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 ! q+ g6 ~' {, J& v, X% g
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 * g7 a6 @- N; ?4 `" E7 N, l
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 8 r) ~, v+ }9 W
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
# A# ?, W) H- u8 n$ O- i+ R7 L7 sSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
: `- ~; |) e/ H  L9 p; C$ KSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
6 @+ f! N0 t% W/ ^StretchBlt 将一幅位图从一个设备场景复制到另一个 3 B% v$ }, {& t2 W6 B& `4 @
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
8 \" Q# [6 U" G* C, s8 x8. API之绘图函数   ^* X( N. b, m# U( P
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 7 `" P% c. I" c( q3 `# K
AngleArc 用一个连接弧画一条线
# y; H3 w' R1 X5 Z* f' BArc 画一个圆弧
: q- }' d$ g. v7 s4 FBeginPath 启动一个路径分支 & J- R5 f) u- s7 \) U
CancelDC 取消另一个线程里的长时间绘图操作 5 {9 |2 u; s; R; c* d! }
Chord 画一个弦
4 B3 ^1 [& l2 e" I9 Z& BCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
3 t. B; R% f8 P# Q1 [- ]CloseFigure 描绘到一个路径时,关闭当前打开的图形 7 l, T- N' ^9 I3 ]# _# r( A# M
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
, [. _% _; [' I' eCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) 0 a+ T' @& J, T5 m0 R
CopyMetaFile 制作指定(标准)图元文件的一个副本
6 i9 y- k% W$ t3 i' T( s$ QCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
0 D# @4 O  L2 a6 @, K* [# WCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 1 m( p) @! G1 H9 [2 M4 j% V
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
3 c$ K3 {" B5 m* @# MCreateHatchBrush 创建带有阴影图案的一个刷子 ; `& |* h9 W0 ]) A" K( j% F
CreateMetaFile 创建一个图元文件设备场景
; g' {: {! H5 yCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
9 d1 p5 l: p) ~% T6 lCreatePen 用指定的样式、宽度和颜色创建一个画笔
- F9 |- M- c7 L, ?) J6 d  H; wCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
& y3 e0 X# b# H: y' H" PCreateSolidBrush 用纯色创建一个刷子
* l8 J+ b4 k9 QDeleteEnhMetaFile 删除指定的增强型图元文件 . H' f7 n5 R5 Y2 S3 T/ V7 f
DeleteMetaFile 删除指定的图元文件
1 i+ ]* W9 N, N8 C; L9 IWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放9 P4 t: ?) e$ @8 a1 R5 i
DrawEdge 用指定的样式描绘一个矩形的边框
. u1 K$ \% {- G. P4 X! _DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 & t( a  n# H" M
DrawFocusRect 画一个焦点矩形 7 c6 X8 q4 H/ a  \; w& I
DrawFrameControl 描绘一个标准控件 5 `. o3 Z0 J8 ?5 ]/ P
DrawState 为一幅图象或绘图操作应用各式各样的效果
3 D2 f. r. J- dEllipse 描绘一个椭圆,由指定的矩形围绕 5 b- I1 r, q5 j9 Z' i; h  r
EndPath 停止定义一个路径   a  g$ j. @6 S! x
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
2 e( z9 u! ?( q4 M! |EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 + N$ T/ @5 u9 F( a$ U' G
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
3 _( x; @" B# n4 Y1 IExtCreatePen 创建一个扩展画笔(装饰或几何) 9 x  p' X* e8 B/ P  h, y$ @
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
5 }# V; X7 e% k6 vFillPath 关闭路径中任何打开的图形,并用当前刷子填充 , e/ N9 P$ @4 x1 n$ [
FillRect 用指定的刷子填充一个矩形 5 R+ p8 Y1 d  B7 j* C
FlattenPath 将一个路径中的所有曲线都转换成线段 ( Q- m0 b+ ]( Y/ S) N
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
3 ~- @& C0 E% ~* H$ m; m3 AFrameRect 用指定的刷子围绕一个矩形画一个边框
; b+ b8 W! R. t! ^$ YGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 ' @+ X+ i4 n! |' x4 j
GdiFlush 执行任何未决的绘图操作 % q/ c8 S; R8 r  P; z4 K" X
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 6 r6 a- F/ g: G: b1 F
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 1 H/ v1 t& D- e, \" g
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 1 w. ?8 z. K* X- O4 X
GetBkColor 取得指定设备场景当前的背景颜色
% X9 |) B  V8 E9 Z6 w/ LGetBkMode 针对指定的设备场景,取得当前的背景填充模式 * P0 D8 ~6 w* j& G0 G
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 2 v' v; o- u! |" ]
GetCurrentObject 获得指定类型的当前选定对象
: c' c9 _8 L6 U! r: }GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 : C6 Z( P. T2 B3 C
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 , j1 j% `! s1 p6 h
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 4 s% h2 q' {  `
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 & o, V. y) |9 V. [: E' r
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
  O4 o9 {' |! h/ `7 ~; PGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 6 I; ]8 g4 h: W- p
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
4 T" i" p9 L0 ~! @+ a. }2 fGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 # R, R! w' E3 }
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
& f+ h- z6 `# b" o4 U' U* F/ uGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
0 ]% x$ W3 l5 H; KGetObjectAPI 取得对指定对象进行说明的一个结构 4 E. S( @5 A1 b. x; J* l
GetObjectType 判断由指定句柄引用的GDI对象的类型 ; g. ?7 Z& [7 Q  T& q
GetPath 取得对当前路径进行定义的一系列数据 : K, j" z0 i1 e6 I( k/ w
GetPixel 在指定的设备场景中取得一个像素的RGB值
5 S2 u$ t% q6 MGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 ! }+ R" M- b! V# u: o
GetROP2 针对指定的设备场景,取得当前的绘图模式
4 j  n2 F- R- |# pGetStockObject 取得一个固有对象(Stock)
# P8 p, B  J4 S+ a" e  W% MGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
. O. g! Z9 a, [8 E, ?) f+ ~. `GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
& _6 b6 e2 a- ^4 D6 fInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
3 O8 r( t! y" E7 J+ _8 x* F( nLineDDA 枚举指定线段中的所有点
  S0 Y4 E" r, g+ J0 x& V/ [! Q" f+ ]4 ]LineTo 用当前画笔画一条线,从当前位置连到一个指定的点 # b4 }$ H( e5 ~7 m7 r1 w3 g2 H" h
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
- ?+ x9 z. _, n: b! _( e' CPaintDesk 在指定的设备场景中描绘桌面墙纸图案
2 W# X" g* t/ I0 cPathToRegion 将当前选定的路径转换到一个区域里 4 s6 \& N% d& A; J9 f( i6 P( Z
Pie 画一个饼图 . a  X* H$ z* q6 H/ \; b6 q
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
" {& Q  e) v; D1 J; W( H; MPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 - m# |- N8 P& i5 n3 ^
PlayMetaFile 在指定的设备场景中回放一个图元文件
3 T* ?$ V5 r3 i0 ^PlayMetaFileRecord 回放来自图元文件的单条记录 4 F2 r% T$ v9 Q$ m0 U# @/ P, E2 ?( R
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
, I( W3 Y" S& r/ {- iPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 ( N% j$ O: b3 O& w' c9 P* n
Polygon 描绘一个多边形 2 J$ o6 M" j1 A- R$ g
Polyline 用当前画笔描绘一系列线段
& K0 \9 ~8 ~4 Q! |  Z, OPolyPolygon 用当前选定画笔描绘两个或多个多边形 2 H3 d- `0 v3 O
PolyPolyline 用当前选定画笔描绘两个或多个多边形
. W* N' H7 I! s/ R' o: h9 `Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 5 o' X2 `0 G( R9 J7 A& Z
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
; p* l4 j. R5 ~& p+ \SelectClipPath 将设备场景当前的路径合并到剪切区域里 . E  X0 U: _+ B5 g0 v4 c- [9 u8 V
SelectObject 为当前设备场景选择图形对象
3 f7 \: h: j2 _6 ^4 w7 ~' ?     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);* K7 A" g% Y9 H) B5 g
SetArcDirection 设置圆弧的描绘方向
; u; {1 K1 R) ySetBkColor 为指定的设备场景设置背景颜色
& X( v" _! h+ `4 dSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
0 g# i) i( f5 M0 A, V$ CSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 6 O4 V3 q+ K. b0 a
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
3 Q+ Z, }" w; U: J$ B  v! bSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 ! A" E" {5 ~' z
SetMiterLimit 设置设备场景当前的斜率限制
) k  {7 Y! e3 fSetPixel 在指定的设备场景中设置一个像素的RGB值 + R; v# D4 G( L2 Q  u- x8 s
SetPixelV 在指定的设备场景中设置一个像素的RGB值 ! D/ V4 r5 O: u% G4 [! d. ~% f
SetPolyFillMode 设置多边形的填充模式
- A! j/ Y7 f& l2 a8 |$ a1 dSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 7 x+ s& t8 x; i6 ~# S6 I8 [/ J6 F
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
% b7 O: ^  _' a6 U( g* nStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 9 c! u7 V# w+ z7 n  ]
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
0 B6 Z! \/ E+ K8 R; ?% d. LUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
: S: x- g( d0 ^2 [WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
8 g% p% j- ]" [& A9. API之设备场景函数
4 E: }! i! D5 i5 @0 MCombineRgn 将两个区域组合为一个新区域
+ h$ ^7 M) q$ U) m$ D3 B5 XCombineTransform 驱动世界转换。它相当于依顺序进行两次转换
, ~0 L: }$ y  b7 Y8 VCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 $ i3 r. C3 h- m! M+ r/ M0 u1 B
CreateDC 为专门设备创建设备场景 + z* ^0 y( J! q: f9 P+ H9 G# q$ b8 h
CreateEllipticRgn 创建一个椭圆 / M: Z/ s9 Q( Q3 s+ H
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 4 L) U8 P8 Y# x2 ^  X/ g! s" V
CreateIC 为专用设备创建一个信息场景 & u8 c, k! Y5 D( `, B
CreatePolygonRgn 创建一个由一系列点围成的区域 7 D) }* y( X. B1 e2 Q
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 # u& W( _1 t+ T  E. ~6 U
CreateRectRgn 创建一个矩形区域
# T) u% W1 i( X* Q; I, Y( X3 f( f4 RCreateRectRgnIndirect 创建一个矩形区域
* n8 G% T1 M7 j; y* m* t5 cCreateRoundRectRgn 创建一个圆角矩形
" r7 X8 n9 C% {8 K7 y) h. vDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 8 g$ _5 b9 [( h! z3 m+ {1 i* w
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 9 ]& c% d) s- _7 l$ D  _9 s2 j  D
EqualRgn 确定两个区域是否相等 % p( y* v$ l: G
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 + ]9 x4 n2 `9 I
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
4 B8 X: f" Q+ BExtCreateRegion 根据世界转换修改区域
% B$ q% Q1 U$ x7 ~: Z+ h# w, f* XExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
  J  ?/ d/ o* O6 a1 VFillRgn 用指定刷子填充指定区域 ; f- Q' z" |9 s9 N7 Y
FrameRgn 用指定刷子围绕指定区域画一个外框
) `& M& m% S2 T1 E% t6 fGetBoundsRect 获取指定设备场景的边界矩形 4 E0 K: T% \! g, ?! z; i* ]5 O
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 : T/ Y( X9 `( H( l2 d. ~, Y" D' i
GetClipRgn 获取设备场景当前剪裁区 ; Y  w! m/ u, L: w) @
GetDC 获取指定窗口的设备场景 4 {# n8 [# E2 r4 E9 V
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 6 B& v- u8 X! ?
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
0 G/ y  `- N! Z0 xGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 3 v# i3 K; n9 W. h
GetGraphicsMode 确定是否允许增强图形模式(世界转换) ! i' }* G3 @5 T) P* U
GetMapMode 为特定设备场景调入映象模式
. |7 m: f7 g: S1 i1 yGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 , F9 I) \  U3 Y. K+ g* @; G5 M
GetRgnBox 获取完全包含指定区域的最小矩形 7 \1 }3 J4 ~& m
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 1 l8 w: T( U6 h
GetViewportExtEx 获取设备场景视口(viewport)范围 ! m3 t3 B0 r5 @1 Q; P7 \; q
GetViewportOrgEx 获取设备场景视口起点
! q" O9 `! l. s& W6 v' oGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 * q/ }$ x: ]: P2 H' V3 a
GetWindowExtEx 获取指定设备场景的窗口范围 : ]" \: }! b0 c' F  W* P3 a
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 2 k7 D) U9 f" s3 A" g3 m2 b
GetWindowRgn 获取窗口区域
5 Y, D3 w- A6 P/ xGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 - @2 S$ P0 b8 b; g8 d6 B
IntersectClipRect 为指定设备定义一个新的剪裁区 3 W9 Q6 Y! |9 ?- L2 f1 E
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 ) W" M4 c" t9 K. C( \
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
7 }2 l9 d# y; J8 d* j4 mLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 ! a: A) w( |2 n0 O6 S
ModifyWorldTransform 根据指定的模式修改世界转换 6 `8 I$ S, ~+ `$ d. \+ c9 u& v
OffsetClipRgn 按指定量平移设备场景剪裁区 + C3 V$ B, u+ P3 @2 T0 h
OffsetRgn 按指定偏移量平移指定区域
4 K$ Q, |- V; v9 ]( e# f& R7 BOffsetViewportOrgEx 平移设备场景视口区域 0 r/ N) ^. g% X" B% X
OffsetWindowOrgEx 平移指定设备场景窗口起点
0 }8 a$ R! Q+ g8 u: h+ dPaintRgn 用当前刷子背景色填充指定区域
5 f! e) P3 u5 v  o5 HPtInRegion 确定点是否在指定区域内 7 i3 `+ K# X: ?+ h/ R
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
# @9 k& J: J) {# XRectInRegion 确定矩形是否有部分在指定区域内 & x" q* M* i3 v% f# L
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
  T: L; ~' B9 W! W: n& N7 WReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
, r$ f+ y1 @- M. MRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
+ @( l! y5 t- i% pSaveDC 将指定设备场景状态保存到Windows设备场景堆栈 6 B  }) E' N" Y9 Z& F
ScaleViewportExtEx 缩放设备场景视口的范围
8 J( D5 ~; G* _. J" E" j& h6 ZScaleWindowExtEx 缩放指定设备场景窗口范围 + w- O4 C7 ?1 q$ a( e5 k  Z; f  g3 ?
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 ) B4 v6 S# C2 S" Z2 ?+ U
SelectClipRgn 为指定设备场景选择新的剪裁区
/ |/ q# s. }4 ]+ qSetBoundsRect 设置指定设备场景的边界矩形 4 n: J, `! m$ T  ^0 b/ w
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
& r& E* @3 v( l# T% fSetMapMode 设置指定设备场景的映射模式
/ T: V# E8 d( B. m- z2 B4 H) \SetRectRgn 设置区域为指定的矩形 3 n1 N1 k  T: C3 U
SetViewportExtEx 设置设备场景视口范围
; u$ l2 t8 @5 BSetViewportOrgEx 设置设备场景视口起点 & K- x3 o- R0 H) p' X
SetWindowExtEx 设置指定设备场景窗口范围 8 `% P# x; x  b' B, ?% ^
SetWindowOrgEx 设置指定设备场景窗口起点
4 U8 O# k9 D* J7 a# [3 K) ~. ^SetWindowRgn 设置窗口区域 , e+ S% [) D; U( P4 r+ d4 [
SetWorldTransform 设置世界转换
, `" K' _3 X0 j/ m+ A' r4 L  YValidateRgn 激活窗口中指定区域,把它从刷新区移走 7 r* o' N* M" [& q0 |
WindowFromDC 取回与某一设备场景相关的窗口的句柄 + M( j! r9 O+ s- z6 z8 m$ P
10. API之硬件与系统函数 + X3 C( O" M: U8 X, H" X- \  I8 n
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
3 Y: @# o/ T9 j' m( ]* [Beep 用于生成简单的声音
& m+ p: u) G' }: l1 uCharToOem 将一个字串从ANSI字符集转换到OEM字符集
9 Q9 Z& B% A: p' z( ^ClipCursor 将指针限制到指定区域
* N6 B- v: f1 D% Z$ t( [: h% R4 hConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
; V7 Q3 u8 N: n$ K% ?CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 8 u3 y$ f/ O* c6 q/ m
DestroyCaret 清除(破坏)一个插入符 # C' W4 J0 ?$ u! j
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
9 y3 O$ M8 Z4 k2 p! }) FEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 ; n6 t8 c$ M: X% e) w
EnumSystemCodePages 枚举系统中已安装或支持的代码页 4 D5 g2 S7 c/ `- e+ ~3 W
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 9 x% l* b; T" B4 e8 c) J
EnumTimeFormats 枚举一个指定的地方适用的时间格式 1 G4 S3 `4 T2 h( `
ExitWindowsEx 退出windows,并用特定的选项重新启动
# V9 R6 ?/ ^/ t' j5 W3 |     WINUSERAPI BOOL WINAPI ExitWindowsEx(8 X/ n" ^+ C1 L- s; y, {$ _
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG: W9 h2 Y+ Q' D% t" _, T
     DWORD dwReserved); //0
  n5 C0 a$ r6 f/ z2 ~, ^7 ?ExpandEnvironmentStrings 扩充环境字串 $ w3 }. F7 ?4 f
FreeEnvironmentStrings 翻译指定的环境字串块 9 O; d+ E1 R2 J
GetACP 判断目前正在生效的ANSI代码页 + ]1 N! S2 p+ U8 V
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
/ Y# H9 q3 ?! M7 WGetCaretBlinkTime 判断插入符光标的闪烁频率
: Q; `+ L- g. R# AGetCaretPos 判断插入符的当前位置 9 ~8 G7 x3 m* K& v$ t1 d
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 3 Z/ [6 H4 m  I8 u+ ?5 S/ S: ?( W$ ~
GetCommandLine 获得指向当前命令行缓冲区的一个指针 8 O# A. ~0 a+ A( ?# F. [5 y& G
GetComputerName 取得这台计算机的名称 6 G& |) @. V$ s! C5 j
GetCPInfo 取得与指定代码页有关的信息 * K3 _! K! A; h% y, ~9 ^3 [
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 & }1 W, Z) W) {5 F( E/ s
GetCursor 获取目前选择的鼠标指针的句柄 : H% \, v  Z/ x9 ]% @7 ]6 w4 a
GetCursorPos 获取鼠标指针的当前位置
! h4 }+ O  V- g6 FGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 1 |1 Q1 o: u7 z2 I" }9 R" L5 D
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 ! r0 U2 R( [. _+ b
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 # l" L9 D8 V9 [, ~
GetEnvironmentVariable 取得一个环境变量的值 ) @% D- z6 J  C* u; y  h, T
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
1 h9 E/ [& E. L$ C  G* h4 e' UGetKBCodePage 由GetOEMCP取代,两者功能完全相同
5 l3 x8 S$ l" {9 N* ~4 H$ u+ tGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 ) Y5 ]4 s& T( Y% k8 X7 J6 W
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 $ g/ E8 H/ s3 v" d& `' `, n
GetKeyboardLayoutName 取得当前活动键盘布局的名称   W4 E3 t( m: T+ v. V- G  x
GetKeyboardState 取得键盘上每个虚拟键当前的状态 ; s. a/ p# w9 u) z
GetKeyboardType 了解与正在使用的键盘有关的信息
' p* ~+ b( m9 `# d- W  C  |GetKeyNameText 在给出扫描码的前提下,判断键名
% H! s) ^; D% D( L+ ^5 N2 uGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 7 z1 X$ T6 I' z7 O- N4 H
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 , R, Q( W' i( Y; Y& y
GetLocaleInfo 取得与指定"地方"有关的信息 ! J" ^. b9 v. w) Z3 {/ d' P
GetLocalTime 取得本地日期和时间
5 w8 A' v- X4 hGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 " s( b( o. r* v% V4 `0 H$ Y
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
, y9 h# s4 n9 X. [. a- G3 I0 xGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
' Z( L! o8 J" R  LGetSysColor 判断指定windows显示对象的颜色
! [( _# F5 n0 E& b* kGetSystemDefaultLangID 取得系统的默认语言ID
% R; X' r4 e& C0 xGetSystemDefaultLCID 取得当前的默认系统"地方"
- O5 b1 c2 a7 c5 t' V1 HGetSystemInfo 取得与底层硬件平台有关的信息
$ I: J: p4 I) u  ?$ i% P: pGetSystemMetrics 返回与windows环境有关的信息 8 v* j0 R1 J. \/ F7 M
GetSystemPowerStatus 获得与当前系统电源状态有关的信息 / e6 |# a; ~6 j
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
2 {3 o' x, a0 \0 A9 KGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 6 O* r1 D$ Y2 v$ S* Y9 M% \
GetThreadLocale 取得当前线程的地方ID + P4 I! o, F$ S% r# a' W* I
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
, w" K6 E) L5 d3 V+ V4 g  l5 IGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 , a, r0 U! R& E, w8 @
GetTimeZoneInformation 取得与系统时区设置有关的信息 & }- x) @1 b' z* E  i2 a* M; A
GetUserDefaultLangID 为当前用户取得默认语言ID , d  e3 q. Z5 I2 U8 ?% K
GetUserDefaultLCID 取得当前用户的默认"地方"设置 8 a. E# [8 I1 Q9 I7 x; h
GetUserName 取得当前用户的名字 9 G' l( c% {' _# K
GetVersion 判断当前运行的Windows和DOS版本
2 A$ _- I, o8 w3 Q% ?3 [; ]8 ]GetVersionEx 取得与平台和操作系统有关的版本信息
+ C/ N4 P5 e5 DHideCaret 在指定的窗口隐藏插入符(光标)
( X$ Y1 H* t% {; R3 l% M3 ?IsValidCodePage 判断一个代码页是否有效 4 X! b6 d: \- ?- m" [+ w
IsValidLocale 判断地方标识符是否有效 0 q5 d2 |' p# a0 l3 |( B3 _
keybd_event 这个函数模拟了键盘行动 " [1 X, h# m1 K1 Q* L# f  L+ Y6 U
LoadKeyboardLayout 载入一个键盘布局
: _, q% d. Q3 y: H8 A- g( oMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 + n0 b, G0 W  @  X
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 - ^* g* i. f, q! h
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
. f) s7 b0 L, p; \* Emouse_event 模拟一次鼠标事件
' C. x2 ^* Q0 |OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
& P" @/ d$ f1 V  ^5 a( rOemToChar 将OEM字符集的一个字串转换到ANSI字符集
( @) E6 c2 x+ H' R$ uSetCaretBlinkTime 指定插入符(光标)的闪烁频率
$ O7 R, v( ?7 g. NSetCaretPos 指定插入符的位置 $ ]' i8 `) h$ a
SetComputerName 设置新的计算机名 0 x! O  G1 t/ A- ]8 W1 Q# _
SetCursor 将指定的鼠标指针设为当前指针
( ?) Q( c7 v" {1 `" zSetCursorPos 设置指针的位置
/ u( |& K/ M/ ?5 m+ R# jSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 3 G9 B) Z& {" f: w
SetEnvironmentVariable 将一个环境变量设为指定的值 3 m5 |7 t, g; L+ l" H" }/ r
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 ' |* l, E" h" r. R! g$ Z
SetLocaleInfo 改变用户"地方"设置信息 4 F; a/ h; L. e1 t3 Z# ?
SetLocalTime 设置当前地方时间 - `' b3 k# A1 I: Y
SetSysColors 设置指定窗口显示对象的颜色 % Q- H+ ~" @4 S; M
SetSystemCursor 改变任何一个标准系统指针
$ }' X- x1 `" p+ BSetSystemTime 设置当前系统时间
) A4 u3 S3 V# w+ v2 f! jSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
6 z3 N2 n8 |+ U5 ?( gSetThreadLocale 为当前线程设置地方
" @& r" s; F6 U8 {( |SetTimeZoneInformation 设置系统时区信息
; \  r. d) x( V1 p3 J6 N8 qShowCaret 在指定的窗口里显示插入符(光标) ( F' g! A+ `) F! T
ShowCursor 控制鼠标指针的可视性
+ i; [1 z0 F; v* \3 i  WSwapMouseButton 决定是否互换鼠标左右键的功能
; Y/ O/ ]( \4 o. `SystemParametersInfo 获取和设置数量众多的windows系统参数
2 Z5 l1 I# \5 z5 k7 n1 eSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
7 v( f0 Z0 n! y3 e* V; ]: yToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
! E6 Y6 v, l% `2 yToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 7 n+ O4 ^  y0 D3 u$ I/ _& D
UnloadKeyboardLayout 卸载指定的键盘布局 7 w( X4 h$ M1 j( ]+ ^+ B- m, y# H
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 * S8 R& U# l) i0 M
11. API之进程和线程函数
6 U- E9 l2 D& s! w( Y, CCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 : B2 V: K( k) m0 W
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 9 y- O6 }; x2 L. F& y( s
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 , T; y4 w' J$ Q: J! l* X, b, T
CreateEvent 创建一个事件对象
9 z7 p1 @# W7 VCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) + C' Q# \# `! y% q* w0 i+ L9 q
CreateMutex 创建一个互斥体(MUTEX)
9 `5 [) z8 w# a' u6 c* B+ b3 fCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
, M1 ^, A+ K: s+ o) ~CreatePipe 创建一个匿名管道 7 o+ M: b# Y; r* {; R4 G# Y
CreateProcess 创建一个新进程(比如执行一个程序)
& a! H, ~8 v; NCreateSemaphore 创建一个新的信号机 : ^! M) B& Q2 N
CreateWaitableTimer 创建一个可等待的计时器对象 ; ~* J) V; g+ M8 F+ U1 f! G
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 0 ?, P$ C( H2 Z$ N7 O' z- \
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 0 z" d0 C( V7 c' E
ExitProcess 中止一个进程
6 r1 Y# r" a2 d0 R% q, jFindCloseChangeNotification 关闭一个改动通知对象
" C9 ^* |: x% d1 hFindExecutable 查找与一个指定文件关联在一起的程序的文件名 5 G7 P' P" r" j1 B, @7 L
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 . H% o8 m" F/ G: |8 @2 I
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化   z8 l- k# M+ x; u, }+ _& r( ~
FreeLibrary 释放指定的动态链接库 ( `5 T0 C$ d$ y# p* c  W, P
GetCurrentProcess 获取当前进程的一个伪句柄
: ]5 s2 D) Z* u7 ]5 DGetCurrentProcessId 获取当前进程一个唯一的标识符 0 r- O" n, V! v8 v5 f1 a" [
GetCurrentThread 获取当前线程的一个伪句柄
+ t' V) G8 \9 B1 \, ]/ L' E1 _7 f& L1 mGetCurrentThreadId 获取当前线程一个唯一的线程标识符
2 W( E3 f1 V6 g! m9 O0 pGetExitCodeProces 获取一个已中断进程的退出代码
0 e# F: e! m1 T; V, CGetExitCodeThread 获取一个已中止线程的退出代码 ( ~( d2 c/ ]% k0 [7 m
GetHandleInformation 获取与一个系统对象句柄有关的信息
& O& y3 l1 G$ t2 V- hGetMailslotInfo 获取与一个邮路有关的信息 0 k- u. Y0 O. S7 g$ [
GetModuleFileName 获取一个已装载模板的完整路径名称 ( X* a# t8 G% \' }5 k
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 . _3 k. d; l( `6 j: @% s- \; T% Y
     GetModuleHandleA(LPCSTR lpModuleName);/ S6 l1 s$ e$ m; p, E+ i( F4 z. P
GetPriorityClass 获取特定进程的优先级别
7 y) S0 w- _1 d; k4 ~" MGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
7 |3 i5 `% Q9 l: c* m7 SGetProcessTimes 获取与一个进程的经过时间有关的信息
/ p1 l, _$ s% X. r4 e# lGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 ! Q5 _3 `* S5 _* A2 k% v( [# M
GetSartupInfo 获取一个进程的启动信息 4 p0 q( \& x; D; y2 T( n/ }
GetThreadPriority 获取特定线程的优先级别
, F" L. U, p% f( g% @GetTheardTimes 获取与一个线程的经过时间有关的信息 - i% R0 _4 @7 U7 k0 j7 s9 O
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 2 o- T' A- \0 ]
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 ) r7 u) S" X" Z1 P7 v/ I7 P
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 : _0 `7 d$ D) M+ E  ]
LoadModule 载入一个Windows应用程序,并在指定的环境中运行
0 {0 i. k/ t& Q+ S* ~- z' R. C, tMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 ; V+ d& k# o1 L& ~0 b* ^
SetPriorityClass 设置一个进程的优先级别
4 [7 s0 e6 M+ x0 c0 K8 {+ xSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
  J0 B' V0 N) F1 TSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
$ o! y2 O! H# [5 }+ zSetThreadPriority 设定线程的优先级别 1 F" S7 G+ H, Y+ {* ]6 ]
ShellExecute 查找与指定文件关联在一起的程序的文件名
9 e! c2 a4 ~( @5 wTerminateProcess 结束一个进程
" O: G; g  ~0 c  K1 J$ b/ V! D. b3 BWinExec 运行指定的程序
! z4 ]/ A1 a% @& g7 S12. API之控件与消息函数   Z" W$ h8 d2 G; j$ w0 p
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 $ w: Z, w9 l0 k# {
AnyPopup 判断屏幕上是否存在任何弹出式窗口
6 C# o9 p6 s9 K& {7 U2 t' e% W$ AArrangeIconicWindows 排列一个父窗口的最小化子窗口 ( {& ?. ]8 Q2 H+ P3 e* b8 T
AttachThreadInput 连接线程输入函数 * r! w1 f/ H! j' z5 M) w1 ]
BeginDeferWindowPos 启动构建一系列新窗口位置的过程   [- B! A8 W% E0 }1 R6 V- D. k
BringWindowToTop 将指定的窗口带至窗口列表顶部
7 A$ {3 b) O$ B- A2 Q+ g; hCascadeWindows 以层叠方式排列窗口 4 q4 n, c+ G4 I* Y
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 0 }* U2 E7 ^) \( T! k5 l: F4 J
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
5 H& @, p- h* M- r: MCloseWindow 最小化指定的窗口
: T7 H% @  q: e4 c/ B  G( Y4 y1 SCopyRect 矩形内容复制
8 z; O, j5 x9 L+ S; c. V3 ]# {DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
& X- r! c: q, R' R, @( |& HDestroyWindow 清除指定的窗口以及它的所有子窗口
9 R3 F3 R6 I7 M5 ?0 z. MDrawAnimatedRects 描绘一系列动态矩形
: p3 X. M" o0 u- M1 R. ?EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
; W0 o. I' f7 B% A+ uEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
) |0 y1 [, D/ S" E8 QEnumChildWindows 为指定的父窗口枚举子窗口
& P. B) u$ G% \. T$ {# h1 j! C* JEnumThreadWindows 枚举与指定任务相关的窗口 9 {# Z. [; ?( h4 c7 p- o% m& e7 X3 k
EnumWindows 枚举窗口列表中的所有父窗口 ; \- ~' l7 s- B; I4 G# L4 A
EqualRect 判断两个矩形结构是否相同 $ V! A3 Y9 x& m' k; E
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 3 G5 G) d# p3 m1 E
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
! s) P, {2 i9 t0 ~FlashWindow 闪烁显示指定窗口
0 ], f8 n" ^3 g& mGetActiveWindow 获得活动窗口的句柄
, q$ Y; {3 D! E7 ?7 `2 V4 LGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
. X# W3 \& J- V  R. oGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 ) N7 }2 L; {4 J. R3 A+ Q: Y% G5 l
GetClassLong 取得窗口类的一个Long变量条目 1 _) W  p0 O# P9 Q
GetClassName 为指定的窗口取得类名
! h+ \: I' ?0 p3 ~0 qGetClassWord 为窗口类取得一个整数变量
; E6 f4 {& V( a$ tGetClientRect 返回指定窗口客户区矩形的大小 - m6 w1 ?, D" j/ j
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 ; {7 x% H9 n& v" T1 X% ~4 p' k
GetFocus 获得拥有输入焦点的窗口的句柄 $ S5 v, z5 P! b2 x8 B2 X
GetForegroundWindow 获得前台窗口的句柄
: l2 Z) K: h  R6 b1 r% w: j2 cGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 7 @2 l4 `5 d; u/ |
GetParent 判断指定窗口的父窗口 6 ?9 \1 q$ u2 \  J+ i
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 * F- ]4 O. `/ x$ V
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 ! d1 U7 C3 G# A! u
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 ( s4 Q& w8 N" u$ e
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
8 J: w4 d4 Y' {- Q! H2 CGetWindowLong 从指定窗口的结构中取得信息
2 f) C' @8 e8 u/ U0 K4 [# cGetWindowPlacement 获得指定窗口的状态及位置信息
* p8 ]. c4 G4 F. C/ p. fGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
  w  f& @3 ^9 v# nGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 : c" y/ B# @5 z7 Y7 B$ X- f
GetWindowTextLength 调查窗口标题文字或控件内容的长短
5 U' k6 ~- \" NGetWindowWord 获得指定窗口结构的信息
8 n" k( O) t9 Y; ]6 x- b9 L3 RInflateRect 增大或减小一个矩形的大小
$ }* o' {/ d7 M1 d5 E7 T0 T+ }; ~6 @IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
% `4 `% s# G! }' C: }* R; ~- DInvalidateRect 屏蔽一个窗口客户区的全部或部分区域
* g3 d, T  o( Q, Z4 AIsChild 判断一个窗口是否为另一窗口的子或隶属窗口
& @- J7 V# {/ X- z' u! rIsIconic 判断窗口是否已最小化
/ B9 X) m. E! w" JIsRectEmpty 判断一个矩形是否为空
3 z. ~% d# a1 `IsWindow 判断一个窗口句柄是否有效 4 ^) F/ v' Y  e& L
IsWindowEnabled 判断窗口是否处于活动状态 # o5 t2 b; ]$ \7 y
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 0 P( k4 l8 v2 d; X
IsWindowVisible 判断窗口是否可见 / u) }, q2 K3 K) n
IsZoomed 判断窗口是否最大化
5 k3 V* w8 b# ~% \1 g! yLockWindowUpdate 锁定指定窗口,禁止它更新
/ {# r/ r8 v; Z+ X' ?/ tMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 3 [% P3 H. p) R3 D1 {
MoveWindow 改变指定窗口的位置和大小
8 x/ \. a6 _; W/ l3 b5 GOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 2 M& A9 y" S& s0 p1 L
OpenIcon 恢复一个最小化的程序,并将其激活
% O! |- T! B% ~; Z" b( l# M% }PtInRect 判断指定的点是否位于矩形内部 & S: O0 l3 ?2 F3 ^& Z
RedrawWindow 重画全部或部分窗口
* ?/ {" u- j3 c# BReleaseCapture 为当前的应用程序释放鼠标捕获 3 \$ N% X. H# y, ~
ScreenToClient 判断屏幕上一个指定点的客户区坐标 3 f# K  a- m% ^+ B: a; `
ScrollWindow 滚动窗口客户区的全部或一部分
0 R$ `7 v5 q& f  e# r: oScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 " o! j6 q" i  W' ~
SetActiveWindow 激活指定的窗口 2 K& C2 k; U! {+ U3 Y8 t
SetCapture 将鼠标捕获设置到指定的窗口
4 B, v4 z$ h- T8 s# O/ z6 t. E( oSetClassLong 为窗口类设置一个Long变量条目 & X% ^3 O! _( V3 N$ O3 x
SetClassWord 为窗口类设置一个条目 0 M, v3 [4 t' V0 E- _0 r
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
# d/ c2 n, k' ~& M/ a9 @6 F1 dSetForegroundWindow 将窗口设为系统的前台窗口
' y7 O, c! w. \6 aSetParent 指定一个窗口的新父
% N+ f6 v7 u$ T& L: v$ D) RSetRect 设置指定矩形的内容 1 Y3 w% x/ E5 V8 C! G0 v. G- H4 _
SetRectEmpty 将矩形设为一个空矩形
/ R$ J. S2 S  e- x4 H  LSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
0 Z0 d! U" R7 n/ W7 o! _1 }SetWindowLong 在窗口结构中为指定的窗口设置信息
3 Z( n* Z. z. C- ~SetWindowPlacement 设置窗口状态和位置信息 7 Y& \, }2 ~+ S5 q* v3 Q, [# K
SetWindowPos 为窗口指定一个新位置和状态 ( T& z3 _, V/ [4 X; @5 ^0 ^# m4 i
SetWindowText 设置窗口的标题文字或控件的内容
2 g/ ?) M0 u  \6 a* G& Z4 Z. ?SetWindowWord 在窗口结构中为指定的窗口设置信息 ; |: \5 a* I5 }  h  G/ l7 p& P* y
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
+ ~2 r+ b4 a) e- X0 x6 JShowWindow 控制窗口的可见性 ' s" e- a8 {$ X2 p8 Z
ShowWindowAsync 与ShowWindow相似 $ J9 I( Y' \# ^( J8 M1 s
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
3 a0 {- J9 d5 c8 G) JTileWindows 以平铺顺序排列窗口 0 m4 C( [( `! e! k: }
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
( V8 _5 M' `. i- S8 b) c# |UpdateWindow 强制立即更新窗口
* P+ g+ D2 r, E, K8 b. h! FValidateRect 校验窗口的全部或部分客户区
* T* T- ]& C9 D- ^WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口) S# }3 ^7 }: V, C' w+ q
高级音频函数—参看《VC++ 编程指南.chm》11.6
" }3 \4 L% X2 J3 m* t4 F     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。7 s- |  u6 ?' [
     BOOL MessageBeep(UINT uType);
, ?, L( e3 t0 y4 D; d$ c该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
" j5 ~/ ^! K3 z参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。2 M" ^5 E8 E( ~. h9 s
级别 ' I; P  U1 e& v' O% k1 k
描述
5 i& B! W, _! L$ X) o
-1
2 D  o% V6 [4 \9 d& P
从机器的扬声器中发出蜂鸣声。
! t7 d$ y/ R0 h! h; e  \  Y+ e
MB_ICONASTERISK   ]# A6 B; k8 b- ?7 \% l/ G
播放由SystemAsterisk定义的声音。 ; h- N! ?) z' Y5 m
MB_ICONEXCLAMATION
' c* z) M: c5 k4 g. `
播放由SystemExclamation定义的声音。 + |8 l+ O" B  i4 W
MB_ICONHAND ' }3 A9 v3 s) W# X  M
播放由SystemHand定义的声音。 6 J# s3 j& K: m! z
MB_ICONQUESTION
& u; ?* b3 }: L+ a
播放由SystemQuestion定义的声音。
+ t. n+ {. ~5 n. v, l9 I
MB_OK
3 E8 n! h* L7 W" e
播放由SystemDefault定义的声音
: T8 V: q7 \' G0 w8 z" y
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);
" D$ w- d1 y. W0 t) m参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。, Z* h0 j( S( [! n( E5 w' V$ e
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。) s" Z( ~1 O$ _( }) V
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。) _# d" q( {9 p
标志 : v# A0 r/ o7 `$ P# {; `) n
含义 7 g8 |/ S) a: Z1 a% J
SND_APPLICATION
0 \7 Z: R* q9 J" ^
用应用程序指定的关联来播放声音。
. `4 I$ G9 T' f
SND_ALIAS $ J  P1 f$ p. h, D" J9 F
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 . W7 H; G# m! T" E: }7 f8 y
SND_ALIAS_ID 3 ?+ M" l* q2 ?) S/ M& n9 |4 ?
pszSound参数指定了预定义的声音标识符。
: u7 @- C' M, `5 L7 o
SND_ASYNC
3 a0 w; L0 k! @0 \% O" H
用异步方式播放声音,PlaySound函数在开始播放后立即返回。 ; o! q$ ?" j6 ^! U4 p& H$ w0 ?
SND_FILENAME
# B: A, E- g: w0 W4 e) h
pszSound参数指定了WAVE文件名。   k# f, A2 Y- V/ }' ?- E
SND_LOOP
: B/ F# \$ e) `
重复播放声音,必须与SND_ASYNC标志一块使用。 - ^. _; `$ B0 j# n1 |& P# M5 N# Y: K
SND_MEMORY
; P) n. N" u$ R% o0 I& N
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
* i8 B; c- j4 }, p7 F
SND_NODEFAULT ' e. Y* m% x/ b* P, G
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 5 O  ?3 B+ ^- E, L" Q
SND_NOSTOP 3 D3 g8 s1 r0 `5 z( ~& J
PlaySound不打断原来的声音播出并立即返回FALSE。
+ g9 h! ?; G2 T
SND_NOWAIT ! \2 K1 e1 t9 u1 o
如果驱动程序正忙则函数就不播放声音并立即返回。
& c0 U  a' Y) J" O5 ]0 Q
SND_PURGE 5 |) w9 X! k0 P+ |
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 . [( \' V; k& w# w) d6 b
SND_RESOURCE ' g+ \+ a& R- p1 C# {+ Q" `
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 . O1 J2 e5 w1 S& h4 R1 q
SND_SYNC
8 M1 g2 g7 l: Z6 O
同步播放声音,在播放完后PlaySound函数才返回。 / y4 s0 w5 q5 T! m2 f( r) @' s2 [
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);( D, Z0 Z, ~# d7 W! g
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
5 ?" ?/ Z3 g9 [; G* KMCI播放
4 e7 ?+ l, r. N7 J% E所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:9 B: G3 w/ R* Z$ e8 U! j
MCIERROR mciSendString(: y  W0 x8 S& D* u- m
LPCTSTR lpszCommand, //MCI命令字符串/ O9 w+ Z. b4 J: ^. }
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
0 B1 v' {0 E3 g; F1 GUINT cchReturn, //缓冲区的长度+ f' I6 R4 S" ?8 |2 S+ _
HANDLE hwndCallback //回调窗口的句柄,一般为NULL
9 Y* k7 O+ V: R" j); //若成功则返回0,否则返回错误码。
- E; v0 w9 t- B* m8 }) @该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:0 S: ^9 d+ k5 J+ i4 ~0 p2 X7 B
BOOL mciGetErrorString(  o* Z9 e; U( w; z6 A! l
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
; F/ I9 u8 \; ~LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
- r# H1 S6 j2 K5 A7 @) {7 \/ g5 [UINT cchErrorText //缓冲区的长度
# y  `5 r# J7 k; X6 J  W) L% Z5 B);
1 d3 w- i- o9 |: p4 {6 \) T
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-9 04:15 , Processed in 0.039577 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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