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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
) j& ~) @! T' u: z1. API之网络函数 ' D( `! D4 O. {# P
WNetAddConnection 创建同一个网络资源的永久性连接
( d/ e5 H1 n# p) BWNetAddConnection2 创建同一个网络资源的连接
8 A: O/ u7 l# |WNetAddConnection3 创建同一个网络资源的连接 - R$ d6 |! J+ y0 H* A
WNetCancelConnection 结束一个网络连接
# _' Q! w. y8 h/ S/ h) U  h3 d) z; ?* LWNetCancelConnection2 结束一个网络连接
5 O* H/ v% J+ v: g( @8 ~  \- [WNetCloseEnum 结束一次枚举操作
0 p5 M" ]3 S2 Y. _6 F. k6 tWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
& i4 H, F8 ?' M% n+ FWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 ! I4 I. O3 J; r: f+ Y) s
WNetEnumResource 枚举网络资源
: S2 ~7 U' J  ^5 ~7 PWNetGetConnection 获取本地或已连接的一个资源的网络名称 3 E' z( g1 I; d( F8 b
WNetGetLastError 获取网络错误的扩展错误信息
) H9 r, Q% K7 ^: rWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
1 y; W- ~, n% a$ ]6 c. W$ F7 mWNetGetUser 获取一个网络资源用以连接的名字
( j2 J( t; A) n) XWNetOpenEnum 启动对网络资源进行枚举的过程
/ e' ?6 e9 z) \# L7 N2. API之消息函数
, }: t+ c7 X  K! }: yBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
' \  W! r  M; Y0 zGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 % U8 E. h6 v9 d, p3 G' V3 d0 J* `
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 # q* M! {8 l! A7 A7 o; `" s0 \
PostMessage 将一条消息投递到指定窗口的消息队列
, c; ]6 L+ C3 D! }PostThreadMessage 将一条消息投递给应用程序
5 W% g" R: x0 H7 d6 g' YRegisterWindowMessage 获取分配给一个字串标识符的消息编号 , j( A, F* O* {* m# ]
ReplyMessage 答复一个消息 " B0 W* _: L  G8 W0 }. y
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
5 M0 T# P. ~, qSendMessageCallback 将一条消息发给窗口
; \: w! ?9 K; K$ B6 L6 |SendMessageTimeout 向窗口发送一条消息 ( ~+ s6 U2 m! E* a$ E7 [) _3 Y( i
SendNotifyMessage 向窗口发送一条消息
8 @: W  i2 G& }. C: S4 N3. API之文件处理函数
+ u4 N* Q2 g) s1 o: F# ]0 O2 rCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
( t- b; N6 y; K2 w9 M$ |CompareFileTime 对比两个文件的时间   n5 j% I* R# V/ o4 r6 q9 O
CopyFile 复制文件
0 Y" o8 a8 Y7 wCreateDirectory 创建一个新目录 ! ]4 ?  N) O7 `+ M, H1 i0 `
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 9 M# a! _# l+ K( z  w+ p2 F% Z, H2 X9 K
CreateFileMapping 创建一个新的文件映射对象 ! y8 w- _. k* ]6 T9 ]
DeleteFile 删除指定文件
/ n- x' U4 p* GDeviceIoControl 对设备执行指定的操作 4 J. L6 K- t0 r
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 9 V0 c! p/ V) v# I& Y
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
- W, O! }( ]' E$ {FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 4 d( X/ I, [0 j, y, o
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
" f2 Y% }/ H/ Y4 KFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 1 ?: J$ G7 P7 ~: J2 p* Y0 V- T9 j2 k
FindFirstFile 根据文件名查找文件
: f" M1 Q& k% ^/ d1 X8 x& ?$ ?& kFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件   Q( y9 [8 u, _% ^& d
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
6 E- W) ~- H' R; tFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 # u" F* _' d. i. P4 x" d, e" y
GetBinaryType 判断文件是否可以执行 . p" ^% e: Q$ H/ c
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 8 b, u* M7 C$ X7 u
GetCurrentDirectory 在一个缓冲区中装载当前目录 # I5 g/ {# N7 D: K* X) z' Q
DWORD GetCurrentDirectory(
' s# k) X8 T2 n7 Z3 k7 c: ~% }    DWORD nBufferLength,    //缓冲区大小# |* w1 F: v# G3 m) @* Z
    LPSTR lpBuffer          //缓冲区的首地址, \% B, l+ E' i% u
    );. S, l: p5 Y8 k4 K" n' K( T
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 $ |1 Y: \9 B/ T7 \( i( d* t5 E
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
/ ~! m, @4 S7 ?( t9 P, B9 SGetDriveType 判断一个磁盘驱动器的类型 7 J5 b, Y' l: [9 B9 Y
GetExpandedName 取得一个压缩文件的全名 * l' u8 j, O. }5 a% n+ S
GetFileAttributes 判断指定文件的属性 : w% D& B5 L' C# v2 u
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
% ~) y+ i# \4 t2 h! Z2 lGetFileSize 判断文件长度 . b- d+ ^% d4 S7 e) `  K4 M0 z3 R
GetFileTime 取得指定文件的时间信息
% r% {6 q6 a5 d) F9 J0 ^! A. tGetFileType 在给出文件句柄的前提下,判断文件类型
* k; W7 m1 Y5 z# r: q( xGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
* U. N( U% ^' hGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
: c9 i6 g8 r6 w9 gGetFullPathName 获取指定文件的完整路径名
. z; G$ {1 W" _3 sGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
# q, R; j# a/ c, K9 EGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 ( r* S1 Z  H8 N
GetOverlappedResult 判断一个重叠操作当前的状态 3 ?: F+ A' m* [; Y, ]
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 ; U+ k3 j0 t5 x' L
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表   d9 T5 D0 ]3 P% [2 H
GetPrivateProfileString 为初始化文件中指定的条目取得字串
; ^# T8 ]' p! t0 r* U; t' bGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
% N, m  x! C! T, t# Y1 nGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
: {3 W- K. b& m! R0 B$ uGetProfileString 为win.ini初始化文件中指定的条目取得字串 . D/ ]6 t: H" [/ `- f* n# B
GetShortPathName 获取指定文件的短路径名 ( n* f) m8 Z5 z3 Z2 H1 q
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 3 O6 _4 I1 @& j' U  z
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 & k! q3 h6 ?* S2 ]* Z$ h7 V# @
GetTempPath 获取为临时文件指定的路径
( v* b; R3 C0 s* B( {GetVolumeInformation 获取与一个磁盘卷有关的信息
7 b) x' v3 k" F* xGetWindowsDirectory 获取Windows目录的完整路径名 ; s8 M5 J* ?. z
hread 参考lread
3 ^* n9 R: V! |+ Chwrite 参考lwrite函数 ' q2 V7 `6 s3 o7 v! I
lclose 关闭指定的文件 * S+ Y# z) E: s1 d
lcreat 创建一个文件 0 ^5 d) H& [; n6 e5 E
llseek 设置文件中进行读写的当前位置 + z0 v6 z% S5 F& {: V( R
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
2 U1 X3 b7 ]- K9 B* p) VLockFileEx 与LockFile相似,只是它提供了更多的功能   v  I' r4 S1 z
lopen 以二进制模式打开指定的文件 4 m, `/ }% s9 I$ s
lread 将文件中的数据读入内存缓冲区 9 @' _1 U6 v& h  N+ X8 J
lwrite 将数据从内存缓冲区写入一个文件
/ P# H: C( S) A6 ?" `LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 , A% V3 t6 `: e; T8 L/ r) K% K% {
LZCopy 复制一个文件
" ]1 b7 P! d, ?- _. j8 tLZInit 这个函数用于初始化内部缓冲区
3 h- U( @' T. ~8 a' q$ P8 r1 m) fLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
1 r4 M0 |2 K5 }9 ^LZRead 将数据从文件读入内存缓冲区
+ v0 J7 {  E8 Q  K( \LZSeek 设置一个文件中进行读写的当前位置
8 t' a7 I" z8 ]4 aMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
) b/ e) F4 s% ~3 _MoveFile 移动文件 ) |  @0 _! n8 n& p
OpenFile 这个函数能执行大量不同的文件操作 8 Q! s) V$ \) h. ~" X' B
OpenFileMapping 打开一个现成的文件映射对象 6 n" N- N% {% R
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 - l; v( i- u" j2 o5 C9 ^" j% z
ReadFile 从文件中读出数据 3 `9 d# G) x$ j) e! Q$ t/ P
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
. v9 r5 k4 E& l; R9 o3 J$ _8 YRegCloseKey 关闭系统注册表中的一个项(或键) 6 A4 j& \  m& @) y0 [  b) m( S
RegConnectRegistry 访问远程系统的部分注册表
* ]& L9 _( y; \RegCreateKey 在指定的项下创建或打开一个项
! g- u# Z5 o& [$ x: w" k6 ?/ p5 e$ _RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 / d, m) G3 c  W& s
RegDeleteKey 删除现有项下方一个指定的子项
) Y, @/ \. v# l' P6 n1 J) BRegDeleteValue 删除指定项下方的一个值 ( i- P+ R: i9 P' R: b
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
, V0 ^. i7 k* [6 _9 f& c! @+ j$ HRegEnumKeyEx 枚举指定项下方的子项 / U  A4 C- L4 G. {1 @( y
RegEnumValue 枚举指定项的值
7 E8 ]& e7 i9 u/ u2 URegFlushKey 将对项和它的子项作出的改动实际写入磁盘 0 e8 P9 E2 A* D
RegGetKeySecurity 获取与一个注册表项有关的安全信息 5 }" [. N  H8 _+ G
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
: W, C0 J& j) p7 d1 D4 g6 n( TRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 ; h5 o4 a7 W+ z7 t) m
RegOpenKey 打开一个现有的注册表项 / @1 f  W1 ?6 Y- l( B' y" \7 e
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
# s9 B; v7 P7 T  J0 ^% C8 [RegQueryInfoKey 获取与一个项有关的信息 7 l. T! }/ u8 ~* f, n) a
RegQueryValue 取得指定项或子项的默认(未命名)值
) U  k# w" U1 F6 p8 }% @RegQueryValueEx 获取一个项的设置值 3 R$ K6 w9 S( z) L! t0 X
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 . Q) d# u9 f/ T$ V; |" K
RegRestoreKey 从一个磁盘文件恢复注册表信息
# v" d( ?1 T0 ?RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 + h5 U# I* J. n2 S- U! O2 B0 e
RegSetKeySecurity 设置指定项的安全特性 ! g" Z4 m2 U% x+ l7 N
RegSetValue 设置指定项或子项的默认值 7 `! s+ _1 ^) ~: a+ l. C9 z. W
RegSetValueEx 设置指定项的值
( C; ?; h$ {  w' m3 U' `RegUnLoadKey 卸载指定的项以及它的所有子项
' i- ^" j8 O- D' N6 i* YRemoveDirectory 删除指定目录
9 b4 c4 s5 {. [. q+ M9 JSearchPath 查找指定文件 ( V2 A9 F" V5 k8 S$ ~
SetCurrentDirectory 设置当前目录
3 Y5 P- {" c: f) ~7 E8 x8 \' |SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
: t0 _3 B0 h9 P! Z4 I, x% U  bSetFileAttributes 设置文件属性 ' m' [6 ^0 g( d, L
SetFilePointer 在一个文件中设置当前的读写位置
; y0 ^% v5 T; {. qSetFileTime 设置文件的创建、访问及上次修改时间 8 d' {+ z: ]0 x; u; K, `
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
* B$ M8 v& q# g+ z2 a& LSetVolumeLabel 设置一个磁盘的卷标(Label) , X% L# }' o# o" L, d' O
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构   j  e" _2 N  N$ Y5 z
UnlockFile 解除对一个文件的锁定
9 `2 ]5 K$ g) b3 ?. g" H! UUnlockFileEx 解除对一个文件的锁定 ( k0 v0 L3 E$ s" w% l
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
; k4 C" i7 D) V, lVerFindFile 用这个函数决定一个文件应安装到哪里
/ Y6 A: h" D9 `/ C/ Y, lVerInstallFile 用这个函数安装一个文件
! u& l- w* B! I& p, h  h1 ?8 d) BVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 6 _! _; b: R3 X  K4 s
VerQueryValue 这个函数用于从版本资源中获取信息
+ w1 y2 c* t. y& s9 Q/ S+ W( p* n6 f3 DWriteFile 将数据写入一个文件 ' B/ l+ Z; a- e( x
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 : @7 ?+ T5 ?" P& ~) O5 y
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
. L- r2 P8 Z6 s+ {% p9 ^! oWritePrivateProfileString 在初始化文件指定小节内设置一个字串 9 \/ E5 r9 w1 r' }- h. h2 u4 s$ b
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值   ^; o  {9 m5 N3 f, R4 t! l
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 / c7 l% U7 s! n; e# x- _
4. API之打印函数
* d' _- T9 f& hAbortDoc 取消一份文档的打印 : n. _, G# J3 A: B  `! D+ I
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 ; s7 w' k: _/ l6 l/ ~; C' [
AddForm 为打印机的表单列表添加一个新表单 % W; }) g+ x, F& @2 y  R* {  n6 D
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
# A* ^% _  {( `. L4 IAddMonitor 为系统添加一个打印机监视器
# J7 I  L$ F0 j- Q# X5 o, K9 Y9 \AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
+ a) X# f1 L3 Y* ]1 VAddPrinter 在系统中添加一台新打印机 5 n4 J! ]: k& N' C
AddPrinterConnection 连接指定的打印机 + V( g' B# \% {0 J2 C% w. m
AddPrinterDriver 为指定的系统添加一个打印驱动程序 6 S' Z0 I7 `, \2 I- C
AddPrintProcessor 为指定的系统添加一个打印处理器
1 a% `: B$ C7 _) n* c4 \AddPrintProvidor 为系统添加一个打印供应商
4 e' H$ O* n5 |  N* iAdvancedDocumentProperties 启动打印机文档设置对话框
/ Y+ F) X# d" e; a/ BClosePrinter 关闭一个打开的打印机对象 3 h) P/ B  \$ l7 [0 g: {9 J- K9 Q
ConfigurePort 针对指定的端口,启动一个端口配置对话框 / ]! X- H7 Q0 Z+ p  {' i' ^
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
0 S5 K) K& l  n$ TDeleteForm 从打印机可用表单列表中删除一个表单 . M* [! v+ z! v2 q
DeleteMonitor 删除指定的打印监视器 ; G. }& G; m! h% ^; g! G
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 3 x2 w* S$ i. J3 T& [) [
DeletePrinter 将指定的打印机标志为从系统中删除
' W2 Y8 u1 B- Y0 pDeletePrinterConnection 删除与指定打印机的连接 ) j7 R& Y2 i6 q% |8 r  n0 \
DeletePrinterDriver 从系统删除一个打印机驱动程序
' G/ \, M2 p( a; ZDeletePrintProcessor 从指定系统删除一个打印处理器
  Z0 j( k* J, y: E1 j0 s* d4 K8 JDeletePrintProvidor 从系统中删除一个打印供应商
0 j! m% I9 q4 L2 q8 G* TDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
# z7 W' b+ X. R2 X* iDocumentProperties 打印机配置控制函数
/ u( ?1 _# p3 N; A5 I" @EndDocAPI 结束一个成功的打印作业 $ \0 F- o0 x; ]- @
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
' I; g0 w2 d8 Y' Z+ z+ iEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
7 T+ z* g' g8 xEndPagePrinter 指定一个页在打印作业中的结尾
/ d  K8 [9 Z% L3 ?* vEnumForms 枚举一台打印机可用的表单
0 K" l1 J& x. TEnumJobs 枚举打印队列中的作业 * h/ L$ N6 q! s  P. Q3 H
EnumMonitors 枚举可用的打印监视器 ) z$ C5 e6 R6 m+ g( O, C/ T/ @
EnumPorts 枚举一个系统可用的端口
% W' ^+ q* I" W2 p, }: REnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 2 R) B7 _+ t: j/ l. V7 U& G3 J
EnumPrinters 枚举系统中安装的打印机 ) E1 X1 k. i% L9 F  {3 b
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 5 `6 e- }2 W" Q- `
EnumPrintProcessors 枚举系统中可用的打印处理器
9 G' R* d- D1 Z/ B4 K1 u! cEscape 设备控制函数
, o' S! C) g; I. {  F( nFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
' {! G& J! a) v5 [6 ~% @FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 $ C0 r6 T6 x  ]
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
& O4 k3 W) k4 ~* |2 U9 ]! @FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 0 N1 E5 w5 D! y* X* x! z; B
GetForm 取得与指定表单有关的信息 / {' V: f) \; @# T$ q; A
GetJob 获取与指定作业有关的信息
8 E6 y6 J1 H4 }: ^+ t' dGetPrinter 取得与指定打印机有关的信息 8 J/ k8 w. N* ^& k+ Z6 ^6 ~
GetPrinterData 为打印机设置注册表配置信息
3 i7 U" a; i9 aGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 6 u6 d3 a7 e1 {$ N" f- j7 w
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
0 Y) U* ~& t( R" _! gGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 $ C8 u; n6 t! V1 g& s: ^
OpenPrinter 打开指定的打印机,并获取打印机的句柄 $ F" F' ~' P# f3 d  _
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
- P4 Y! F' T  {- z9 v$ Z$ a1 F. c7 pPrinterProperties 启动打印机属性对话框,以便对打印机进行配置
9 B$ O" ~) W* U/ i7 [" s: ]* V4 IReadPrinter 从打印机读入数据
& L  f9 C9 ^; E8 F! H" G0 J3 mResetDC 重设一个设备场景
3 w/ R6 g0 T' p7 W4 c$ TResetPrinter 改变指定打印机的默认数据类型及文档设置 / q% Z3 O$ d& b2 K- o
ScheduleJob 提交一个要打印的作业 * a3 y3 H/ W6 _; k
SetAbortProc 为Windows指定取消函数的地址
$ }! [$ v: f+ L6 O8 mSetForm 为指定的表单设置信息
) I( E) \: @, \; B! LSetJob 对一个打印作业的状态进行控制 1 `) X( ^8 o7 ~) u" ^
SetPrinter 对一台打印机的状态进行控制
' M) D8 {! l3 l# S5 F3 uSetPrinterData 设置打印机的注册表配置信息
( t2 ^7 a- G6 R; c1 BStartDoc 开始一个打印作业 & N  `4 ]+ J& o7 S; c. I
StartDocPrinter 在后台打印的级别启动一个新文档 ' W8 A, _8 J! L
StartPage 打印一个新页前要先调用这个函数
7 k0 i; [+ ]) u. L$ W9 cStartPagePrinter 在打印作业中指定一个新页的开始 - r+ K0 z% O/ q; W
WritePrinter 将发送目录中的数据写入打印机
: y  g) ?0 I+ _# |8 r# Q2 E  ?/ l9 |# m5. API之文本和字体函数
9 `0 ]# V" ]; s% d' A- Y; [2 qAddFontResource 在Windows系统中添加一种字体资源 ; S3 d: n6 k" y3 N  O
CreateFont 用指定的属性创建一种逻辑字体 6 [% {8 p7 }+ {& ^3 c0 ^( m
CreateFontIndirect 用指定的属性创建一种逻辑字体 ! \( F- Y$ K- P2 D: m7 p
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
+ Y5 h) J7 I/ h. j, q  j7 i' _. Y# VDrawText 将文本描绘到指定的矩形中 . M9 _0 e5 f/ K/ f; L% j
DrawTextEx 与DrawText相似,只是加入了更多的功能 5 V3 i7 i& z+ v
EnumFontFamilies 列举指定设备可用的字体 3 A, Z  t* O" O9 p( T# N
EnumFontFamiliesEx 列举指定设备可用的字体
% U) S+ M6 C! w9 `" p$ b: O# m9 {EnumFonts 列举指定设备可用的字体
" D. U- C- h7 u* x& D9 T3 ], KExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 + Z! ?( Y8 t9 P5 p
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 9 U$ y& ~7 K+ O# ]8 q
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 4 U; E5 B7 Z% z+ O- s$ c
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 7 ^! T8 r3 @. o  k  ^8 @( V% R' \5 M
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
  o8 ^) i, S+ S) tGetCharWidth 调查字体中一个或多个字符的宽度
5 @# M0 I7 H1 {( z- AGetFontData 接收一种可缩放字体文件的数据
8 ?4 {# t/ P4 h" ^2 D, bGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 " k# b: a) Y+ Y% [" ?
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 8 E$ }; n3 g# ?+ Y% C7 J/ I' v& w) W
GetKerningPairs 取得指定字体的字距信息 3 r5 \4 }8 {# N6 l: o$ R
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
8 R* k! ?0 s9 o7 oGetRasterizerCaps 了解系统是否有能力支持可缩放的字体 ' r" {  u' e! J' A) a
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 7 f$ B! ^% g, c5 Q
GetTextAlign 接收一个设备场景当前的文本对齐标志
! J0 i6 Y% Q5 n& Z1 b  PGetTextCharacterExtra 判断额外字符间距的当前值
, P6 `4 n: S9 u/ RGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 5 O3 L/ W! D* o& n( K. `
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 # V' R5 d) D& o; n  \4 Z
GetTextColor 判断当前字体颜色。通常也称为"前景色" . E0 {# b/ |- E) z8 D
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 7 E* B# d. ~# l$ l! i1 K+ |( h
GetTextExtentPoint 判断一个字串的大小(范围)
0 z  X7 S  Q+ ~- S( PGetTextFace 获取一种字体的字样名
5 }; B9 _/ o4 W: h0 v$ C1 fGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 $ f8 K# |  b; W
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
( ?7 h' H6 l4 ?, Z5 O0 }- k& vPolyTextOut 描绘一系列字串 / U5 w2 b( F! D# D- M4 q/ |
RemoveFontResource 从Windows系统中删除一种字体资源 * ^% M( K/ u' e( Z8 ~  o  X/ U
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 4 v; I4 P+ E. q% g
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
5 n3 w* ?# G, ^8 CSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 0 F7 A: }4 G! U6 t' n6 s/ y! D
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" 5 t! d: _' z4 `% n
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
; y) R% i# f2 t% f' _8 kTabbedTextOut 支持制表站的一个文本描绘函数 5 S, H8 _6 v' i9 T) D$ W
TextOut 文本绘图函数 ' ~4 B% l) ]. X) ]  S
WINGDIAPI BOOL  WINAPI TextOut(
# t9 U8 i' H- u" _2 oHDC,     //输出设备
# z% {8 ^/ F! G* k% ^int,     //输出的横坐标2 M9 u% o$ O; P& h% V  k7 a
int,     //纵坐标$ L1 C6 R4 @1 V) V3 V' c
LPCSTR, //输出的文本str
4 n2 O- U: r$ f5 N$ ]7 {6 Eint);    //文本的长度:lstrlen(str)
; ~/ M- `7 B! O- e0 ]# P6. API之菜单函数
  O. n; k- b7 |+ M$ h, ~$ VAppendMenu 在指定的菜单里添加一个菜单项   p/ u1 b5 H( v7 z0 p  J: X: s' D
CheckMenuItem 复选或撤消复选指定的菜单条目
4 U+ V$ X' F8 a3 F! `CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
4 X) L* L: o5 c( K9 Z  M% \8 \CreateMenu 创建新菜单 ' j3 S: `$ V2 x9 Y3 a9 ?
CreatePopupMenu 创建一个空的弹出式菜单 & J: g/ ?7 `6 V; _& B
DeleteMenu 删除指定的菜单条目
! y8 A5 a; g, bDestroyMenu 删除指定的菜单
* i* @, D" p, a7 {" G( ODrawMenuBar 为指定的窗口重画菜单
/ m3 o$ s5 e  VEnableMenuItem 允许或禁止指定的菜单条目
5 R! R. |! t' \6 D: cGetMenu 取得窗口中一个菜单的句柄
  F/ W  j9 Y8 a2 e/ [. xGetMenuCheckMarkDimensions 返回一个菜单复选符的大小
2 ~9 U! y  S/ ]- ~" R+ l1 S6 R+ WGetMenuContextHelpId 取得一个菜单的帮助场景ID
- S1 g$ v) Z$ |3 UGetMenuDefaultItem 判断菜单中的哪个条目是默认条目 . U1 X" L- ?' e7 W3 {8 |$ v- z, \5 m
GetMenuItemCount 返回菜单中条目(菜单项)的数量
; `$ f1 P5 d# {# }( p& W9 s  ?GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
3 ~  q6 m2 k0 n. z" C& h2 [0 YGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 # v" D5 z: f2 O7 i
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 . ?. C5 x( U5 ?2 r9 f" c8 N
GetMenuState 取得与指定菜单条目状态有关的信息 ; [2 n! B) O: @0 [; S9 c6 b: N; L
GetMenuString 取得指定菜单条目的字串
( v8 g# W  m! m! @) z! VGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 1 e) H: ?+ v; Q2 L4 d. H
GetSystemMenu 取得指定窗口的系统菜单的句柄 1 J; m2 u' v2 l/ L+ j, x4 t
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 " I- K  B; o$ A0 Y0 x: G, Q
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
; o/ s1 N* K* Z! W5 GInsertMenuItem 插入一个新菜单条目
6 t' G( G3 L$ N# I. m7 M8 l9 kIsMenu 判断指定的句柄是否为一个菜单的句柄 ! y+ f& d" A6 O4 d; ?/ y, u$ p3 M
LoadMenu 从指定的模块或应用程序实例中载入一个菜单 7 n- O7 ~( p0 k. i0 C
LoadMenuIndirect 载入一个菜单 : x9 A9 F8 T$ Q' C; z* f
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 / F0 z( q5 g' y2 S8 R
ModifyMenu 改变菜单条目
& j3 g- }- V, vRemoveMenu 删除指定的菜单条目 0 l( Z! |! p5 m$ h7 }
SetMenu 设置窗口菜单
# R) S% S8 A. x: S, p% OSetMenuContextHelpId 设置一个菜单的帮助场景ID ! L5 M$ S  Y( K/ e
SetMenuDefaultItem 将一个菜单条目设为默认条目 , R* u6 `: `+ l9 e6 t. y
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) % D+ H+ w/ n; J3 n
SetMenuItemInfo 为一个菜单条目设置指定的信息
8 U, f2 R7 E! c0 ?; T8 V9 ~TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 ' j$ W& ?. o$ ~9 j
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 9 m  n# c$ z5 K# A9 u; t
7. API之位图、图标和光栅运算函数
0 |4 ?1 J) U" v" R  n+ j9 ?BitBlt 将一幅位图从一个设备场景复制到另一个5 u7 m4 D( S0 M' C8 y3 a; [! K- E; R
     WINGDIAPI BOOL  WINAPI BitBlt($ R- g2 A' W/ M9 @  n
HDC,     //目标HDC. g1 @% \6 |) B, D
int,     //X1, Y( r. f1 s$ q7 i9 g$ C9 y
int,     //Y1* g( z% T7 ~- B/ V
int,     //width
/ K" I3 H, e3 r3 `6 b- \int,     //height
! M. M5 {; p9 p, P% ?: e3 |HDC,     //源HDC
7 B- }* n2 C6 _8 yint,     //右边的距离
" o! ~$ k7 Y& y7 b* n& e! _int,     //??# \) T4 v4 }- C9 ~/ M1 j
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
( r7 L! n/ F' bPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS' |, L# o8 F' ~. Z% u" a+ S
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 4 t. Y  C! r5 x7 V; o$ U" X
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
6 R; g* g4 f3 C# e) ], pCreateBitmap 按照规定的格式创建一幅与设备有关位图 4 o/ B  B7 N% ?& N! Q6 N3 m2 N
CreateBitmapIndirect 创建一幅与设备有关位图 0 q& H3 Q' R0 R+ B. ^
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
2 V+ Q6 q: O2 ~! pCreateCursor 创建一个鼠标指针
/ z, \7 \& h' L* @CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 $ T7 `) t! q* z7 E
CreateDIBSection 创建一个DIBSection ( M0 E) ~4 \/ K* ]4 S/ D5 U+ L1 d
CreateIcon 创建一个图标 ( k% f& Z4 ?3 Q2 K# Q) e9 Z7 r
CreateIconIndirect 创建一个图标 2 I& h1 X' ^1 q+ c5 w  _2 a
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 # V2 ?* p8 Y( @1 w! V, d
DestroyIcon 清除图标 8 k  I. D( H+ T3 l! i' d" P: R5 D: G
DrawIcon 在指定的位置画一个图标 3 g) a- j/ }) Y! d+ I( F
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
3 m# W" b. Y! }/ E  P% `8 H# JExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
0 o8 O& Y3 m9 iExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
: f' d1 w) _) WGetBitmapBits 将来自位图的二进制位复制到一个缓冲区
  s2 L+ x9 p& p+ ]3 rGetBitmapDimensionEx 取得一幅位图的宽度和高度
, d5 q6 I9 d, a8 a% e: b+ B3 oGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 / _8 O% I% b0 J! W9 ^
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
, \) m# Z  ]! W% X" ^GetIconInfo 取得与图标有关的信息
+ J' ?# A9 o3 d. y% d4 A& \GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 ! Z; x3 b1 ~' h
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
3 [1 |2 K" Y" N* z; U4 v- OLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 7 x- o) U6 m' x
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
" S4 t1 C. i* F: qLoadIcon 从指定的模块或应用程序实例中载入一个图标
3 ?( F2 w- h& _0 U$ a$ ~% _LoadImage 载入一个位图、图标或指针
  d+ `% D6 v4 |; H' C; a+ x% P$ xHANDLE LoadImageA(( W5 N) a( ~% G! S
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
, y1 p' A! @3 N! C& _  i% q' X# k    LPCSTR,               //资源所在的目录:c:\help.bmp0 P3 y6 ?8 W0 J* K9 M! E2 k
    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE" G; i4 D, r1 r  a% N8 J; R
    int,                  //
; \* P1 _/ ^1 s' V& C0 p( u4 \    int,                  //
& p8 k- K! K- o/ m( n: }. AUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|' V& N1 \& l. H: X% z) t5 s7 @1 I! P
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|+ M7 O- ]0 X6 ~
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
) l& \0 p- s* r7 S3 dMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 : r' O. \8 {7 m/ R6 V
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
4 l. Z) z; C& K- Q8 n! @1 i, M% YPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 7 d4 y- M9 k0 N# ?( A
SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
+ c- q5 z0 e1 c* xSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 0 C7 ~5 V& k6 h5 X0 ~3 r
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
& L) }& u$ o, ZSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
+ L# v$ i  Q# G0 M# TSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 / j: S4 N: j. O( @2 i8 p' p! h
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 3 z, B9 T2 a0 p& }
StretchBlt 将一幅位图从一个设备场景复制到另一个
9 ^5 t& k; k4 I+ H4 @9 r- BStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 4 g1 z3 I( `+ F9 Q5 C0 R) W4 v
8. API之绘图函数 - j. e) |7 u5 d+ N! B# Z+ p
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
9 c# W& T, f) E* C3 ]AngleArc 用一个连接弧画一条线 $ K, h/ a/ z: ]6 x( w& B; l
Arc 画一个圆弧 : c* o. a  N- c
BeginPath 启动一个路径分支
  ~' c+ ?# d& r) L0 TCancelDC 取消另一个线程里的长时间绘图操作 8 H2 M, Z" D4 m# K
Chord 画一个弦
  ?! M* Y# C2 N/ I+ _  M; F. }* x) SCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
7 b% v3 K3 |9 j/ W5 S+ UCloseFigure 描绘到一个路径时,关闭当前打开的图形
" i1 j* c# q: }9 \5 bCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 7 F# a) ~3 S) z" f7 R7 i
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
4 ]8 x8 j" B7 }1 O* zCopyMetaFile 制作指定(标准)图元文件的一个副本
1 W  C0 G6 p& K& K7 r8 [0 r* C9 I5 [CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
  N2 d. w8 x# JCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 2 Y+ c/ E; F) x
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
# F, X1 C/ a! J" z, pCreateHatchBrush 创建带有阴影图案的一个刷子
5 V: L! {/ h0 K* o) I# o/ lCreateMetaFile 创建一个图元文件设备场景 # v) j7 F- R6 d2 m) F; Q
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
9 n; t3 D7 H2 I/ oCreatePen 用指定的样式、宽度和颜色创建一个画笔
+ n8 l/ u9 D) G, X) y  {# mCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 0 Y; a, o3 \6 U
CreateSolidBrush 用纯色创建一个刷子
# E7 y- \# V8 l7 r9 FDeleteEnhMetaFile 删除指定的增强型图元文件 ! l* O1 Z! ^7 p
DeleteMetaFile 删除指定的图元文件
' m$ `7 V2 F! d/ h8 }. W' }; @9 gWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
% n0 k+ N/ f% {2 c! ^, e' ]DrawEdge 用指定的样式描绘一个矩形的边框 * _& m. v: r/ G7 h; y
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
, A+ [$ |8 F( l, x" U( bDrawFocusRect 画一个焦点矩形 2 K) j8 r; l% ^, I$ n* m- V
DrawFrameControl 描绘一个标准控件 1 L9 H$ M) q* L; x$ w
DrawState 为一幅图象或绘图操作应用各式各样的效果
1 b. k; l9 Y+ B' `Ellipse 描绘一个椭圆,由指定的矩形围绕 * J- @1 f, u2 K; N2 p. Y" ]+ ?. \  d
EndPath 停止定义一个路径 2 F9 J+ T' a; X$ ^5 p
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 1 q/ }4 w; f. y1 t7 F7 Y
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 1 C8 w: Z8 J/ [( N
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
6 ~8 c: D8 j3 x" HExtCreatePen 创建一个扩展画笔(装饰或几何)
' z2 L, `- P' V/ |5 \/ A" BExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
/ b! Y! w- y1 W2 C! j$ LFillPath 关闭路径中任何打开的图形,并用当前刷子填充 2 p( \+ r; B: U. p4 i$ I4 Z
FillRect 用指定的刷子填充一个矩形
( \. u+ {, U% s- u- X1 ^FlattenPath 将一个路径中的所有曲线都转换成线段 : y5 v9 h' p/ P) M( ^
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
* P& `% X  X' M+ T  X3 _FrameRect 用指定的刷子围绕一个矩形画一个边框 , u1 ^) @9 n$ M1 u
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 $ \7 X% \5 z, v2 {5 `. B5 {
GdiFlush 执行任何未决的绘图操作 / H5 H0 n+ P: S* n
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 5 J' T) ?! y& @
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
0 Z2 e  f; Z# g0 S) ^4 aGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
9 v" v$ i( W- g( }/ j% oGetBkColor 取得指定设备场景当前的背景颜色 " t, u( l  \, j3 L" F" \8 G
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 $ e/ j8 |& |, M. v4 F" N+ k" X4 _; u
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
0 }5 g* n& m- ]" V* r/ p# n& l9 {$ PGetCurrentObject 获得指定类型的当前选定对象 # v2 a, T2 M2 r# ^1 ^4 J
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
( |. {( y! l/ w" K3 [GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
8 @( M) V3 C; |! j& o) o! w+ Q: W" ZGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 - R; T+ Y6 Q( e' V( E9 R
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 & c5 Z. x: y+ H$ y0 `4 a0 Z* l
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
$ {/ D- u, ~! n3 x& j1 G0 QGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 , H5 @/ t2 I( f) D! z4 I3 y5 C$ F
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 8 k% w& o) x! J9 E* Q
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
- @2 i, n; m  ?: W1 P) w7 FGetMiterLimit 取得设备场景的斜率限制(Miter)设置 , L3 }$ n8 s$ S1 m* M* p; ^& ?1 d; T- `0 G
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
: o: o; q; a1 a; T2 JGetObjectAPI 取得对指定对象进行说明的一个结构
. o: ]5 W! d9 L) B0 W5 kGetObjectType 判断由指定句柄引用的GDI对象的类型 ; g3 W7 c% d- ]2 w% Q6 @
GetPath 取得对当前路径进行定义的一系列数据 4 p5 l8 ~1 L8 X/ Y" W+ d
GetPixel 在指定的设备场景中取得一个像素的RGB值
: [3 Q* a7 m9 g! X6 yGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
) A2 @1 K, ^/ ]# M' c0 c6 ~GetROP2 针对指定的设备场景,取得当前的绘图模式 4 K2 ]/ W. V: x3 U$ R) \0 c
GetStockObject 取得一个固有对象(Stock)
) J- N) \& Z( I* Y- I/ P$ c+ R) VGetSysColorBrush 为任何一种标准系统颜色取得一个刷子 + a$ G( x5 N; ?3 M2 \2 F, ?
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 7 C1 K) I- I# S
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 9 Y& H8 f+ P2 N6 x
LineDDA 枚举指定线段中的所有点 & a) x# p  m/ `; o
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
/ L) p. G" {* m( J; d) [. [; @MoveToEx 为指定的设备场景指定一个新的当前画笔位置 3 Z: q# @* M: |
PaintDesk 在指定的设备场景中描绘桌面墙纸图案 7 E+ J% ^3 z' k+ }1 D4 z$ W
PathToRegion 将当前选定的路径转换到一个区域里
4 B) g0 f1 A/ q& EPie 画一个饼图 8 I, W% Z) p1 U$ t6 t( t" i# w& X: N
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 % ~& u) b  `* o- a% c+ q
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 * L! v" N' G: V* O% g9 P, t
PlayMetaFile 在指定的设备场景中回放一个图元文件
0 E0 W. i2 |7 v$ k8 IPlayMetaFileRecord 回放来自图元文件的单条记录 + X, E$ ^5 u" ?
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
1 M7 U* B3 n4 q. @  P( F! q) bPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
* ~: h9 ^( g9 m) R+ b" N3 BPolygon 描绘一个多边形 0 @8 M, U" ?- K8 U5 t+ g8 l3 M
Polyline 用当前画笔描绘一系列线段 ( `8 W8 F# A" ^" d( x
PolyPolygon 用当前选定画笔描绘两个或多个多边形
% g( C% w" x+ K: Z# kPolyPolyline 用当前选定画笔描绘两个或多个多边形
: s% W9 S1 f7 [1 Z8 I! E- qRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 0 U! w) ~8 n- z4 J9 m, y. M
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 3 e5 R1 T% F3 ]# X3 j3 J
SelectClipPath 将设备场景当前的路径合并到剪切区域里
5 Q. N) n8 U1 `: Y) M* R" fSelectObject 为当前设备场景选择图形对象
; s. t. {- x# W# X     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);  X3 ~  j: f7 |
SetArcDirection 设置圆弧的描绘方向 + O( m3 ]% y) c* G% l
SetBkColor 为指定的设备场景设置背景颜色
" Q6 c" N) e, ~& PSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
3 ~1 o! E7 x7 @) C9 W/ MSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
9 ^5 I; f3 N) l; R( n6 GSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
. l8 Z5 t: i5 d: }SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
  k3 l! ^) g7 T  S3 P4 bSetMiterLimit 设置设备场景当前的斜率限制 + S& H6 p4 S  m
SetPixel 在指定的设备场景中设置一个像素的RGB值 3 ?' }. ?/ z4 {
SetPixelV 在指定的设备场景中设置一个像素的RGB值
6 o& y8 a, M0 U# y7 R" `  L+ |0 R  bSetPolyFillMode 设置多边形的填充模式
! K$ y* d5 ^. r3 a9 L* ^2 x! H7 |* ISetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
) j5 L7 I$ x0 c5 u8 s' M9 C( c! ISetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 ; L" J  r: u3 C  x, r! `
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 6 e- G; g$ _6 T5 O, K8 x
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 / }5 ]0 b" p1 b- u+ S" E  I
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
2 `" W5 U5 ~* h7 C: B2 t- q" T5 O7 @WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 9 U! K- n  G6 ?( U* F
9. API之设备场景函数
2 j6 T5 [# x5 y# V) T! ~/ v* G: sCombineRgn 将两个区域组合为一个新区域
8 h' Z! c) o$ X; gCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 " `. z! t+ [: Z1 N3 m
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
( S2 {5 \8 b: }CreateDC 为专门设备创建设备场景 2 x7 w2 U) L* |% h1 P' m4 a
CreateEllipticRgn 创建一个椭圆 5 O" s! R5 T. s  }* V3 M8 {0 t
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 5 f( b  M/ d' L5 D) a
CreateIC 为专用设备创建一个信息场景
* y( _5 x0 a7 W! y; f, ], a+ V. sCreatePolygonRgn 创建一个由一系列点围成的区域 ) F2 H) |1 B4 S5 j1 K- ~3 E3 I1 W
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 # |& ?- Y& J' O+ {+ `- M! ?. H
CreateRectRgn 创建一个矩形区域 4 l/ `) \1 v9 C, p  S" x
CreateRectRgnIndirect 创建一个矩形区域 ) |, ^( Z+ U2 m/ l
CreateRoundRectRgn 创建一个圆角矩形 / n4 c6 y9 A; b* C1 T2 Z
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 6 ^& a9 M+ ~8 L) U% p
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 / i9 M# v4 @* A8 ?
EqualRgn 确定两个区域是否相等 & V" [0 D# h- F8 h2 @
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 9 c$ p- p" q$ v' \
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
) o" T$ M# W$ GExtCreateRegion 根据世界转换修改区域
% }7 p# W! z( Z( f* h% p8 \% xExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
0 e6 a, R0 @( _2 rFillRgn 用指定刷子填充指定区域 ' y5 o. _- \' p- Y% t
FrameRgn 用指定刷子围绕指定区域画一个外框 6 j( M. h2 M# d5 |6 m1 G
GetBoundsRect 获取指定设备场景的边界矩形
. N, z$ Q; `7 L$ xGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 $ x) O; F, P- g5 C
GetClipRgn 获取设备场景当前剪裁区 0 E2 H+ u' ?# N/ z& e0 Q) I; j
GetDC 获取指定窗口的设备场景
: c8 |9 A% s! E; ?4 N0 E3 JGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 # W8 u6 R. ~" F+ p( i+ B
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
% k) m! l+ ?* q# e3 AGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
: R2 H2 Q9 r5 p! P0 p' sGetGraphicsMode 确定是否允许增强图形模式(世界转换)
" Q3 F% ]% L: x1 k8 e' V/ K5 LGetMapMode 为特定设备场景调入映象模式 6 t) k+ x' [5 g9 j  U# c" v
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
, ], {; O* L! o! f) ^GetRgnBox 获取完全包含指定区域的最小矩形 % _- K# v- Z2 Q1 l6 N
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 ; m) g6 ~* I8 F5 \( M  k7 b
GetViewportExtEx 获取设备场景视口(viewport)范围
0 N2 I: H7 ]4 Z2 ^" \. q( B/ r' nGetViewportOrgEx 获取设备场景视口起点 : S$ U1 s& \- N, K2 t
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 . L$ u! M' q+ K
GetWindowExtEx 获取指定设备场景的窗口范围
1 O" {/ N% e( F6 D2 Z4 d) I! |, kGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 ' l2 M- I% E& i
GetWindowRgn 获取窗口区域 # V. z4 K/ K# k% N! M- g/ P9 w( {
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
$ @& ^( R( [) H" w. WIntersectClipRect 为指定设备定义一个新的剪裁区 $ T& o5 z4 a) H4 ~
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
' ?; v; a: l. m% `; ?$ |InvertRgn 通过颠倒每个像素值反转设备场景指定区域
/ |7 k, w) I5 X) l6 CLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 9 t) t! i; Y  e: j; i$ c
ModifyWorldTransform 根据指定的模式修改世界转换
+ d" l% D' c- ~  Q* A; Y& o3 e6 p0 |* QOffsetClipRgn 按指定量平移设备场景剪裁区 1 q! \2 X. S' H0 y& A
OffsetRgn 按指定偏移量平移指定区域 6 d8 v: |/ C+ e4 _8 P: \
OffsetViewportOrgEx 平移设备场景视口区域 & Z/ V3 U! C+ w! j4 @
OffsetWindowOrgEx 平移指定设备场景窗口起点
8 M2 m1 L! {& r# f' W. t0 JPaintRgn 用当前刷子背景色填充指定区域 8 F' _" P4 ?2 U, X, h
PtInRegion 确定点是否在指定区域内 * r. L7 d5 }* t) r
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
5 ^! Y  G8 h- N$ j  ^) SRectInRegion 确定矩形是否有部分在指定区域内
. G8 s! `6 G3 I; c6 G2 SRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) ; Q: D, Q7 H' N3 p( D9 m: r' P
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
# }3 y& _, z- O9 f9 ?3 |1 XRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
; F: u' i3 A! U* E! k( OSaveDC 将指定设备场景状态保存到Windows设备场景堆栈
; s# z$ _# L4 y' j! Y$ ]# oScaleViewportExtEx 缩放设备场景视口的范围
% v3 w, C' B3 Z2 m0 ?" @ScaleWindowExtEx 缩放指定设备场景窗口范围
5 Q( f" j7 i( Q0 A% q! \1 L* QScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 ! J3 X% ]/ C) M. j4 t
SelectClipRgn 为指定设备场景选择新的剪裁区
$ S- W* R/ k% l+ P" S8 S4 XSetBoundsRect 设置指定设备场景的边界矩形 6 p& ~4 y! a) O. s8 L4 e: {
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) $ Z9 @+ `, d  G+ E# t& j
SetMapMode 设置指定设备场景的映射模式
* ~- y" ~& e# ISetRectRgn 设置区域为指定的矩形 - q1 O/ Y! C, I8 k! V7 U/ B) E
SetViewportExtEx 设置设备场景视口范围
0 ~* x" T% H0 X* X; K/ G) ESetViewportOrgEx 设置设备场景视口起点
: f6 F3 X7 i# e0 h4 z8 Y5 tSetWindowExtEx 设置指定设备场景窗口范围 4 y; Q+ s& W8 G0 u0 h3 f3 i
SetWindowOrgEx 设置指定设备场景窗口起点
' m* S6 W1 X. x4 QSetWindowRgn 设置窗口区域
  }& h+ T. o+ F2 }5 VSetWorldTransform 设置世界转换 ! T, a! F$ S& g6 x7 t: I
ValidateRgn 激活窗口中指定区域,把它从刷新区移走
& @9 O/ K6 M3 \0 f% v, o! dWindowFromDC 取回与某一设备场景相关的窗口的句柄 % G7 G$ T$ C' |; h' v5 S' Y
10. API之硬件与系统函数
* [# Q" l5 s4 Y% A5 MActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
/ s8 ?' H( Q% i; n1 FBeep 用于生成简单的声音
% R  t, H# O# ^CharToOem 将一个字串从ANSI字符集转换到OEM字符集 . r  F+ ~# }( {) e8 ~
ClipCursor 将指针限制到指定区域
! t, l7 ?, g1 V" y: D4 H4 XConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
9 x! n7 F1 I& }) z3 L, s  fCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 % Z9 \2 u! L7 s$ Y
DestroyCaret 清除(破坏)一个插入符
1 o* d1 y  u) Z- j9 MEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 6 p# t, i  k, G! t5 f7 v' {0 Q
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
. r; c" L) o9 o) X6 f+ p# AEnumSystemCodePages 枚举系统中已安装或支持的代码页 2 g/ W6 P$ z( s
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
( \+ Q. w7 Q7 I- ]EnumTimeFormats 枚举一个指定的地方适用的时间格式 2 U2 p4 r) H- [3 F+ q% Q- {
ExitWindowsEx 退出windows,并用特定的选项重新启动 ( Y- z- ~4 \0 ^7 W8 u6 ^# T
     WINUSERAPI BOOL WINAPI ExitWindowsEx(
/ j' M) N4 e; s% k/ Z/ IUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
2 ~; ?8 Y) Z8 u- v# @% m) p& m     DWORD dwReserved); //08 S9 R0 Z+ D' r
ExpandEnvironmentStrings 扩充环境字串 0 X# \( l! a  X( C* z
FreeEnvironmentStrings 翻译指定的环境字串块
% y9 P) W2 |3 z* _, EGetACP 判断目前正在生效的ANSI代码页
& ^6 A) l/ K& x  a+ F. PGetAsyncKeyState 判断函数调用时指定虚拟键的状态 ) C/ I  |( a( |6 l/ Z( \' ]
GetCaretBlinkTime 判断插入符光标的闪烁频率 5 d0 s9 J% d* x
GetCaretPos 判断插入符的当前位置
8 C& K; H: v5 @GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 * I0 H, h/ [: N& Y5 }  b) c- k! z
GetCommandLine 获得指向当前命令行缓冲区的一个指针 : _$ f, _- N' v
GetComputerName 取得这台计算机的名称 ' P! v$ w6 r' G! h  S
GetCPInfo 取得与指定代码页有关的信息
" ~; ~: D" U/ v# ~GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 ' A  J5 e+ D5 p$ R; e
GetCursor 获取目前选择的鼠标指针的句柄 & _8 J  Q+ w; ?  ~0 i9 l" @- h8 t
GetCursorPos 获取鼠标指针的当前位置 3 N! ]5 E  y) d9 ]5 \. s. {
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
( r3 T8 _! m! }GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 . S) C/ H. i; q: Z, S7 O
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 ( u" }9 y/ t5 `2 x! `
GetEnvironmentVariable 取得一个环境变量的值 * _( t0 M! f( ^& k! F! i6 Z
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件   S+ r# T) C! X* v$ N
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
: `& Y( e$ g2 e8 M% y6 MGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 $ P* G8 k, D: L2 m. ?9 Z
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
9 ~" x- Z& g4 C/ n. z# ^( }GetKeyboardLayoutName 取得当前活动键盘布局的名称
, j: `- y6 \- mGetKeyboardState 取得键盘上每个虚拟键当前的状态 1 g: I$ j& O* G
GetKeyboardType 了解与正在使用的键盘有关的信息 0 y  j) b, h5 X9 S: I
GetKeyNameText 在给出扫描码的前提下,判断键名 6 B# [- w" O0 [& z2 \1 m
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 ' c* \; r: T4 D4 K7 y/ @; }
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
. c: S: t  {& i, VGetLocaleInfo 取得与指定"地方"有关的信息 6 r# O7 [! A" w: ^
GetLocalTime 取得本地日期和时间
; C7 P* m5 o4 C" E0 mGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 * X, U7 w/ J" \# F% j6 ?6 a9 f6 S
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
: d* y( \: E9 J, AGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 8 N' J7 [/ P! W; E/ p
GetSysColor 判断指定windows显示对象的颜色 % h' h6 Z3 c9 C$ i, {
GetSystemDefaultLangID 取得系统的默认语言ID + j  }- e0 R% B9 ?0 h. ]
GetSystemDefaultLCID 取得当前的默认系统"地方"
' o+ ?. g3 I% K4 LGetSystemInfo 取得与底层硬件平台有关的信息
  k/ E* O  L' ^6 V; S5 ]$ CGetSystemMetrics 返回与windows环境有关的信息
3 w8 E& r5 o* T0 gGetSystemPowerStatus 获得与当前系统电源状态有关的信息 2 N' w# N# R4 u, e1 t6 C
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 ; V" C! M& l5 ^
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 / Y: e5 j/ f5 p  H6 k
GetThreadLocale 取得当前线程的地方ID 3 p4 N$ N# c' l, p' r, [1 T
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
, M( \# r5 I/ I6 j0 QGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 6 w- L9 Z$ {7 l8 \4 G
GetTimeZoneInformation 取得与系统时区设置有关的信息
. u2 g9 l* U, P4 e; Y" L" |GetUserDefaultLangID 为当前用户取得默认语言ID
: i6 ^, N+ m& F4 `  z- y9 \: |GetUserDefaultLCID 取得当前用户的默认"地方"设置
6 ~- G$ N9 b( Y, TGetUserName 取得当前用户的名字
( }7 W: U) E) H# q, B" T3 MGetVersion 判断当前运行的Windows和DOS版本 6 `% h& R- g$ j
GetVersionEx 取得与平台和操作系统有关的版本信息 " {4 o3 E. f# P- t6 B' j! X8 K
HideCaret 在指定的窗口隐藏插入符(光标) * h/ d8 u! X7 |
IsValidCodePage 判断一个代码页是否有效
4 \1 {2 T) C. N" w8 MIsValidLocale 判断地方标识符是否有效 8 A! H+ r+ u7 X; `: Z
keybd_event 这个函数模拟了键盘行动 8 Q" L) z8 M" a# E- r9 @
LoadKeyboardLayout 载入一个键盘布局 $ u5 k! y" r1 m  _* W
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换   e# @: b- |- H+ n
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 # G6 Z% r7 M& B  v% ~
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
, A* K8 C2 [! _6 I+ ~/ ?3 fmouse_event 模拟一次鼠标事件 , o3 F, F+ Q& C% ]1 `& u* Q
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
( j" O1 ]$ |4 X9 w$ e' I! rOemToChar 将OEM字符集的一个字串转换到ANSI字符集
0 x0 q5 g- q* j  N7 XSetCaretBlinkTime 指定插入符(光标)的闪烁频率
+ D/ [  i' Y' o- G+ I" TSetCaretPos 指定插入符的位置
; G0 Q) b( J( a# n- H, q+ [7 y* zSetComputerName 设置新的计算机名 " n' A0 h) T# \: ~/ X
SetCursor 将指定的鼠标指针设为当前指针 9 I# H* c! W. {
SetCursorPos 设置指针的位置
# ~5 J# X0 U; k4 N, v: @! NSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
& J: B, ^/ C9 k1 A, wSetEnvironmentVariable 将一个环境变量设为指定的值 0 Q# e8 L0 Z  d% Z+ `3 z
SetKeyboardState 设置每个虚拟键当前在键盘上的状态
8 N% S+ `8 C' Y4 P( ~; ]! DSetLocaleInfo 改变用户"地方"设置信息 9 M1 i$ t/ ~  `7 w
SetLocalTime 设置当前地方时间   g- Q* M0 S% `% r+ W% p4 s
SetSysColors 设置指定窗口显示对象的颜色
6 d- A  A7 ?  J$ e* eSetSystemCursor 改变任何一个标准系统指针
$ x  I7 p' ~! L& `, E, TSetSystemTime 设置当前系统时间 8 t( L9 r; ~3 e0 W9 d: s" L6 L- d" b# k
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
# v0 }* F3 E- ]; i: N! wSetThreadLocale 为当前线程设置地方 9 Z2 B: {# q7 U
SetTimeZoneInformation 设置系统时区信息
. i* A0 N. P' ~3 xShowCaret 在指定的窗口里显示插入符(光标) ! U2 m0 ?( J+ z( D8 Z5 t, y9 ^
ShowCursor 控制鼠标指针的可视性 & {8 y% r5 {7 z* ?" U0 w) w
SwapMouseButton 决定是否互换鼠标左右键的功能 $ i. i+ ]& ?0 [# a6 r( n
SystemParametersInfo 获取和设置数量众多的windows系统参数 2 f8 }- C$ P6 D: `- w
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
- S$ q) d! g+ gToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
7 p( h4 c8 N/ |* M* RToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
/ f- a% _2 W* \' W; JUnloadKeyboardLayout 卸载指定的键盘布局
+ J4 U6 r! y5 i0 G  W$ xVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
1 y& t( f6 X) D0 S- j5 s; `9 J" S2 [& v11. API之进程和线程函数 2 D0 _) u9 ^! `. \% r
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
! Y0 H) n2 I  R+ E+ uCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
8 ^1 b, z0 \6 I4 K1 {ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
  l1 k7 j" y. Y1 H- SCreateEvent 创建一个事件对象 3 ]- m' V2 W- p( K
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
0 P0 e/ [* `4 ^" @4 W! eCreateMutex 创建一个互斥体(MUTEX)
" {- H4 D; h9 R1 i3 V' q. KCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 ) M3 o& M, f3 A! C8 X9 S- e
CreatePipe 创建一个匿名管道 + R' \& f. S/ O1 e
CreateProcess 创建一个新进程(比如执行一个程序)
( z) @& w. |) g1 e$ Y& N) ?, lCreateSemaphore 创建一个新的信号机 - L- ^- o, d. h
CreateWaitableTimer 创建一个可等待的计时器对象 1 V6 u. F4 G7 L8 A" X% F. O
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 # a( L4 _) }6 Y% T( x/ m* c/ F6 z
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 , E) K, W& G# E1 b8 d
ExitProcess 中止一个进程   f. j! S5 p5 v$ l! t" ?/ U( G: W
FindCloseChangeNotification 关闭一个改动通知对象
( d! x8 A1 w+ @4 W& |& j% r: L/ W9 EFindExecutable 查找与一个指定文件关联在一起的程序的文件名
; G1 N9 X. Z( T, K: P" YFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
& j9 E% C# g% Q6 o# FFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
3 W& c, V  b) E9 m1 c, c' F$ x4 S; NFreeLibrary 释放指定的动态链接库 , k7 e* I& W& B6 n" x: t# Z
GetCurrentProcess 获取当前进程的一个伪句柄   k: z6 N7 |& M3 ]  Z4 X
GetCurrentProcessId 获取当前进程一个唯一的标识符 $ t3 c" m- [; @" k0 r
GetCurrentThread 获取当前线程的一个伪句柄
! ]; |9 C* J) J' X9 RGetCurrentThreadId 获取当前线程一个唯一的线程标识符 : V, h  |- \  z: m
GetExitCodeProces 获取一个已中断进程的退出代码 0 `- s/ B, v) [) T
GetExitCodeThread 获取一个已中止线程的退出代码
4 f" X$ ]1 e( a1 ~5 s5 qGetHandleInformation 获取与一个系统对象句柄有关的信息 # l3 V! G* A4 G& [8 i/ m+ v
GetMailslotInfo 获取与一个邮路有关的信息
1 C- b. I% {0 S/ h8 ]: nGetModuleFileName 获取一个已装载模板的完整路径名称
! V2 Q8 S8 E4 v3 ^4 rGetModuleHandle 获取一个应用程序或动态链接库的模块句柄
' E& M- S! Q  p" n+ ]( W/ _     GetModuleHandleA(LPCSTR lpModuleName);/ Y' {6 I: W( ^* N
GetPriorityClass 获取特定进程的优先级别
  M5 B7 ?" p: ~& y0 ZGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 . m! ^$ C" j) D" S: c# R4 A
GetProcessTimes 获取与一个进程的经过时间有关的信息 1 u/ [& q+ a+ n$ E' K# T, w
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
2 D: }, q" J+ p1 `4 m" u9 qGetSartupInfo 获取一个进程的启动信息
/ h8 q7 A: \! ZGetThreadPriority 获取特定线程的优先级别
/ l! K8 x# ~6 Q! OGetTheardTimes 获取与一个线程的经过时间有关的信息
# C- J( M: N8 E" @9 ^. }. LGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
1 M) b; l3 k+ _& X8 Y" U6 o+ tLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
6 e' ^) k2 i( B9 V8 z$ U5 O8 W0 d5 q. ^LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 ( i* A* C0 b' o2 a8 i
LoadModule 载入一个Windows应用程序,并在指定的环境中运行
. ~$ @) E  Z* N* G# C" fMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
2 c- v; c1 h  A( u/ QSetPriorityClass 设置一个进程的优先级别
* v" S( P% o- b2 q5 K8 G8 x4 oSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
& m3 w& Z& ~% A0 ^SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 - F4 X0 l8 N8 u( D6 V3 j8 V& o2 w
SetThreadPriority 设定线程的优先级别
4 H- n: [; G/ V+ F$ k! AShellExecute 查找与指定文件关联在一起的程序的文件名
& q- O3 d  x3 W5 D% R% |TerminateProcess 结束一个进程 , ~: s3 t9 w( \$ y+ E: s
WinExec 运行指定的程序 6 E2 i  A; E% B3 L! R# @7 I: I
12. API之控件与消息函数
6 W* ~4 G8 I; k; L4 sAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
' d7 g" ~7 g8 Y  A" bAnyPopup 判断屏幕上是否存在任何弹出式窗口 " F* [: W) p$ [: q2 Q
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
: K* ^# B; _  Z- O  {3 s  }AttachThreadInput 连接线程输入函数
8 ~! f! d8 d. h; x' kBeginDeferWindowPos 启动构建一系列新窗口位置的过程
/ s* G( C8 `9 M! D+ T  S9 ^: DBringWindowToTop 将指定的窗口带至窗口列表顶部 7 L+ u9 R3 O7 f- Q* R3 B) ?
CascadeWindows 以层叠方式排列窗口
0 J8 U$ W; B5 e- u' |6 [. WChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 3 q; ^7 {+ b+ ?+ b, @/ ]
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 ' ?; U  J. J5 H$ {9 I
CloseWindow 最小化指定的窗口
) t$ |6 W* G& W" y3 {CopyRect 矩形内容复制
+ T; R! ^* r5 j7 t& U' PDeferWindowPos 该函数为特定的窗口指定一个新窗口位置
7 t' m8 r/ s: {% ]* Q# H; Q4 a0 BDestroyWindow 清除指定的窗口以及它的所有子窗口 9 c; s& `+ U+ y9 c* E
DrawAnimatedRects 描绘一系列动态矩形
0 T& S' _5 T! t  F4 A1 ?5 E' zEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
( }6 E# N# X& I, }/ B5 N4 {EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
+ G8 t( R& ?, ]$ e' m2 K+ W) S; u4 UEnumChildWindows 为指定的父窗口枚举子窗口
& v4 x: t$ ^9 n: kEnumThreadWindows 枚举与指定任务相关的窗口 : D' o0 e, ^% a2 C' f9 b
EnumWindows 枚举窗口列表中的所有父窗口
9 K; S' f. v; v* d, i8 [% CEqualRect 判断两个矩形结构是否相同 ( i; E4 W2 Y6 g
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 & o  w; E& W4 l0 r/ E7 c
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
& u  a7 q( F  U6 X# H* Z, r' JFlashWindow 闪烁显示指定窗口 & b: \- c/ l* Z4 ?5 P+ t
GetActiveWindow 获得活动窗口的句柄
3 y; Q; Q- C7 n/ W2 BGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
" q: M  a( Z9 w& j7 K( ZGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息   u# q2 `0 M  x* J" e
GetClassLong 取得窗口类的一个Long变量条目
: r' E" ?% O  [4 i  c1 m+ QGetClassName 为指定的窗口取得类名
2 M0 U2 Q  l" QGetClassWord 为窗口类取得一个整数变量
) H$ ?! k4 Z: {2 gGetClientRect 返回指定窗口客户区矩形的大小
$ u$ }/ g0 f( ^2 B4 C4 CGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
0 M5 e0 E; O0 X' s+ s# ^* L6 sGetFocus 获得拥有输入焦点的窗口的句柄 0 X# o' v  a$ K0 V9 y
GetForegroundWindow 获得前台窗口的句柄 + N8 T' N+ p7 o* ^- j
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 - d: W: m3 }4 }) r, o! ?$ N
GetParent 判断指定窗口的父窗口 ! |1 ^1 X, ?) g& e( I1 |; T, W  F; y
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 9 ~2 ^1 z5 b9 m0 _' u, c
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
7 L; a) }! I) XGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
: m) A1 h! v. P1 K3 v/ [7 wGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
+ ~: S7 w' Z9 X; R9 B  T, ~GetWindowLong 从指定窗口的结构中取得信息
; S1 Z9 b: J- t4 ?GetWindowPlacement 获得指定窗口的状态及位置信息 & ]9 ?  X' y. j* _
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
8 v$ p" O3 [$ P8 x  b$ |& F3 uGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 $ d' w. L5 s* X% S
GetWindowTextLength 调查窗口标题文字或控件内容的长短
! d3 w$ Q3 ~/ k3 m1 i  WGetWindowWord 获得指定窗口结构的信息
4 _' X' u% f/ k9 l  hInflateRect 增大或减小一个矩形的大小
3 W  k0 \2 z9 @. \: `( o* nIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 ) L) e, q5 e+ e! @! d3 N
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 8 y6 V) B# a  j" {- J
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
# f+ o% a. p. [% _IsIconic 判断窗口是否已最小化
1 Y) e) d0 @7 y9 v) j. k6 Y0 C2 p* aIsRectEmpty 判断一个矩形是否为空 * j9 D. ]9 ]5 L! h/ l/ E
IsWindow 判断一个窗口句柄是否有效 1 T/ O6 R. A. U; c3 h# G2 V, n1 w
IsWindowEnabled 判断窗口是否处于活动状态 . l) Q/ B: \. n1 t8 @0 [; d8 |- Z
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
. c$ g( U. l9 y  t; V4 k- Z0 |IsWindowVisible 判断窗口是否可见 / q4 A9 k5 ^; P; o
IsZoomed 判断窗口是否最大化
! d/ @+ P" D; B# d7 CLockWindowUpdate 锁定指定窗口,禁止它更新 ! X2 Q* D; ^+ v# X% y6 c6 `: q
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
( X9 D% S7 }8 EMoveWindow 改变指定窗口的位置和大小 # ~9 j% F7 N/ y. f
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
" G% P/ L: C0 _, e4 B9 Y& HOpenIcon 恢复一个最小化的程序,并将其激活 9 r/ A' j6 f! t& B7 e5 O1 E
PtInRect 判断指定的点是否位于矩形内部
9 p7 t+ s3 v" qRedrawWindow 重画全部或部分窗口
" _, n4 k8 P4 O' W. l4 C2 r. eReleaseCapture 为当前的应用程序释放鼠标捕获 7 o9 R2 {0 v' r3 |) Z
ScreenToClient 判断屏幕上一个指定点的客户区坐标
8 _2 g0 a, S) @! CScrollWindow 滚动窗口客户区的全部或一部分 " z! c! L9 ?; d& o% J" f: s
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 * \8 S0 ~/ e. e2 n; M( m
SetActiveWindow 激活指定的窗口 9 D' {8 g- U7 W- {9 ~' @$ ]% }
SetCapture 将鼠标捕获设置到指定的窗口
, a! }& q4 i* cSetClassLong 为窗口类设置一个Long变量条目
, w0 ]: U  y: U& S" w  NSetClassWord 为窗口类设置一个条目 , _  H5 _( @$ B  r
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 6 R* M; p0 j* |4 U; b; `1 S# @
SetForegroundWindow 将窗口设为系统的前台窗口 * g$ l) V6 ?) U$ r" k
SetParent 指定一个窗口的新父
  l" W7 i$ L- p$ Q/ w8 n, C! ySetRect 设置指定矩形的内容
( U/ D; H, [2 eSetRectEmpty 将矩形设为一个空矩形
% r- V2 q( ^* r! Q9 L$ h" ]SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
; l- f5 _1 Y, A3 g. y1 gSetWindowLong 在窗口结构中为指定的窗口设置信息 7 h& f! L# w5 J1 C6 G* S
SetWindowPlacement 设置窗口状态和位置信息
; N' K4 m' X4 \& p$ u; n1 ]SetWindowPos 为窗口指定一个新位置和状态 1 {9 N  X& p. H* p
SetWindowText 设置窗口的标题文字或控件的内容
0 |/ N# q/ a- ]4 h+ K& M: _. |SetWindowWord 在窗口结构中为指定的窗口设置信息
, P% T' y. \; Q3 l/ U2 YShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 # e6 _5 h- S1 g! ]( x, J% S
ShowWindow 控制窗口的可见性 - f& D( ?3 ?- h; ?4 x* A; |
ShowWindowAsync 与ShowWindow相似 ' R5 W6 f* W0 _, Z% K! }3 r$ A
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
0 e3 v( G1 a0 M; }TileWindows 以平铺顺序排列窗口
) {  i7 N% g# p% ^UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
- d# T; C& Y: c4 MUpdateWindow 强制立即更新窗口
; `3 y6 P4 O9 V9 _2 DValidateRect 校验窗口的全部或部分客户区
6 ?- U7 t* Z& O& o& ^7 |( g# t. K0 ]( yWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口; [* A( `3 g- |  E- O8 v
高级音频函数—参看《VC++ 编程指南.chm》11.6# F) R$ \; o) d! S  Y
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
' \$ F( I8 g6 m, Q0 g9 y     BOOL MessageBeep(UINT uType);
6 X3 `: g' U$ u: @4 {/ H该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。* Z! `, L( N5 f5 P  h
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。- r. Q% Z7 i% ~$ R+ g3 n
级别 7 s6 C/ _% L3 Z6 r, n7 h- i
描述
% J4 |3 \2 P' c9 ^# J" x
-1 ) |7 }. s0 R: s2 {7 K2 |8 V
从机器的扬声器中发出蜂鸣声。
" N0 O7 j4 ]- X+ _
MB_ICONASTERISK " x4 S  ~  M# I' i) q8 D* A0 n
播放由SystemAsterisk定义的声音。
( w5 Q* t7 W) Q' h& e
MB_ICONEXCLAMATION 9 B$ N% M3 l4 P8 `  n, o5 J
播放由SystemExclamation定义的声音。 / Q; \* N' X0 N1 x
MB_ICONHAND ) m6 D5 }8 I, U" F( p; I
播放由SystemHand定义的声音。 $ q, i( i" m. b% F" s
MB_ICONQUESTION . q* [+ N6 c+ M% J/ e& M* {
播放由SystemQuestion定义的声音。 ) N, z1 N: G; S% |2 f
MB_OK
  `0 O/ Y+ N2 i
播放由SystemDefault定义的声音
4 ^6 w# M2 t+ U
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);5 f9 F7 A/ u) `1 h# g
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
# w, Z; N: d  d8 x参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。+ }3 B9 N% e) f: K5 t# @: D
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
  G1 [$ H. a) w
标志
1 @, E" r5 D" w: g" O- b
含义
0 \, @0 R* y8 E+ s' @* c
SND_APPLICATION : H4 [& \9 D+ u. V( G
用应用程序指定的关联来播放声音。 + m. R+ d  d4 x2 d6 t5 c
SND_ALIAS
7 z0 K! E( ~- z- K: Z- q6 N
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
8 J7 ~, N, g& X8 A. x
SND_ALIAS_ID # o2 k3 O( c: j  d: J) G9 a4 {
pszSound参数指定了预定义的声音标识符。 * M  T) `; x$ n- F2 a, e/ V
SND_ASYNC
( Y8 r/ z0 z& A" V- L- O
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
: o9 `. F1 D2 l( Z
SND_FILENAME 3 \* I  ^4 @5 Y% S# K  ?# L/ N  Y7 H
pszSound参数指定了WAVE文件名。 2 R) |0 O" j+ h' C
SND_LOOP
2 F" h) p" B4 T. q6 o; Q
重复播放声音,必须与SND_ASYNC标志一块使用。
4 r2 s5 ^3 G" B% Y, a8 Z
SND_MEMORY ( d4 C0 t0 g& s/ N
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 9 v# j, }9 Z- g& v- O9 i: v' L. q
SND_NODEFAULT
; V1 L6 L- ^% e; D* _
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
2 b- y6 n1 m& S1 n0 Y5 ?
SND_NOSTOP 7 p" [! R* T8 A  f
PlaySound不打断原来的声音播出并立即返回FALSE。 9 |6 n5 F* D1 W& \9 U2 B
SND_NOWAIT
4 J) E- z* y( c
如果驱动程序正忙则函数就不播放声音并立即返回。
* |6 g2 u" G# o) S2 D8 M, F
SND_PURGE 7 a/ g& J7 Y5 \4 ~2 d5 G
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
- I2 G( w- r, E- d. h$ I) U
SND_RESOURCE
1 z" B6 t. _& e4 ~2 `/ R
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
& P  `$ U6 W2 I% e  m
SND_SYNC
7 Z: y. c/ n6 n/ i$ m' o3 K
同步播放声音,在播放完后PlaySound函数才返回。
" x0 t9 C. @* |: m& d+ a
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
+ |$ F6 T9 e5 u1 M) J0 G2 z9 \函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。3 `- t- x& Q: t! k# L
MCI播放
* ^" o' U3 I8 f6 v7 z所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
8 d; p/ U4 [( J0 eMCIERROR mciSendString(
$ x1 J: x2 I7 t& p* U* B2 j/ f, q, jLPCTSTR lpszCommand, //MCI命令字符串
1 m) w( ]; C' w+ ~LPTSTR lpszReturnString, //存放反馈信息的缓冲区
) A: h0 w- F% }- U, C5 z1 eUINT cchReturn, //缓冲区的长度2 \  v6 I6 R  n+ _* ~
HANDLE hwndCallback //回调窗口的句柄,一般为NULL3 H2 C3 C9 I! X8 m, |
); //若成功则返回0,否则返回错误码。
  z+ J; j* l6 M0 j8 m该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
9 K$ |" o; q, F" c; {: S2 o1 IBOOL mciGetErrorString(6 @& R& @4 [. d- J
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码: E! _9 E9 [, F3 f+ M7 m! {
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区$ j" h/ V* O7 Z$ y' F8 e
UINT cchErrorText //缓冲区的长度
# Y4 j) i3 H8 ]  d);! h% d5 o5 l9 l/ S. m$ s. ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-4 23:14 , Processed in 0.019917 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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