|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html
6 v8 P+ k" F/ M G0 H9 R0 ^1. API之网络函数 * F+ X) x8 j. ^* Z* P3 e+ I# C
WNetAddConnection 创建同一个网络资源的永久性连接 : E# v% N8 J( ]( k: f
WNetAddConnection2 创建同一个网络资源的连接 + S$ U2 d! _0 |3 ]5 D; I+ c! Z* U9 _
WNetAddConnection3 创建同一个网络资源的连接 " [4 C0 Z* e% R8 v+ w
WNetCancelConnection 结束一个网络连接
1 A# Z( f; D& H5 Z2 H3 WWNetCancelConnection2 结束一个网络连接 / b9 J( }7 \* y3 g! U9 q
WNetCloseEnum 结束一次枚举操作 3 t; f. a6 X8 G* f5 ^
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 : J- [8 Q! \. N7 ^6 \5 Z; C; Y
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 + f6 O. @! R8 |
WNetEnumResource 枚举网络资源
# V8 V0 G4 \+ ?) x- P3 @WNetGetConnection 获取本地或已连接的一个资源的网络名称
C" c6 i; t& V1 Q9 w F, uWNetGetLastError 获取网络错误的扩展错误信息 8 a5 d+ e! q' F* l+ `
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 2 c7 _( x6 F8 I4 H: R" e8 o
WNetGetUser 获取一个网络资源用以连接的名字
5 h; @6 B Z7 c* W `+ _/ f/ a" cWNetOpenEnum 启动对网络资源进行枚举的过程
! b/ c: i/ B& q, Z+ j) U! ~) |6 x2. API之消息函数
' G* O3 a+ D! SBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
1 Q# {; V9 X" G& e$ \2 ~GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 - m: U! I0 | s# D9 s- N: [+ b6 Q
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 " j" D `* d, [. |; ]' t
PostMessage 将一条消息投递到指定窗口的消息队列
) x8 @+ s- J1 P! j1 ?1 F+ B" ]PostThreadMessage 将一条消息投递给应用程序 ; ~# X# Q$ E( U2 ~$ X5 V3 C- _2 }" i
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 `+ B# V8 ]3 w) ~7 n$ h
ReplyMessage 答复一个消息 $ @9 `, ~" [; @& p
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
( A2 n* `! B- e( l/ P$ USendMessageCallback 将一条消息发给窗口
, p ]3 ~( B) e# S4 H6 M9 oSendMessageTimeout 向窗口发送一条消息 4 c! t" T, s0 C* j$ ^- m1 J ]
SendNotifyMessage 向窗口发送一条消息
* n" C+ G! b) Y3. API之文件处理函数 : m0 w! r3 q8 @" x
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 ; ], o; C) Z' ]
CompareFileTime 对比两个文件的时间 . s% |# r* u4 X/ p- { I1 J# \$ {2 |
CopyFile 复制文件 # T- a; }2 b8 D; D& m. k5 n
CreateDirectory 创建一个新目录
6 D3 e8 [ F' _3 l( R) Y4 ZCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
# C2 f- U2 w, M7 U3 vCreateFileMapping 创建一个新的文件映射对象 / @' r, a4 ], ~( m' M" |( i
DeleteFile 删除指定文件
6 i) H9 w! z4 V& [! d% RDeviceIoControl 对设备执行指定的操作
, W& i' o" }" ^* [: `# T( ^DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 # u; G$ V X( `) _! t
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
1 i1 f5 U0 x [4 v% TFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 ( A% ?7 ?4 t/ E9 q( B/ {% k, e% W0 Q
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 ' F4 w. D0 l6 P3 R
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 3 B# d9 m3 z7 z/ A8 n- v
FindFirstFile 根据文件名查找文件 " o. S0 {4 j* g
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 1 n& C2 r4 Y* y+ B
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 0 B, S5 }6 R" c' s6 k7 @) R! i
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 1 S0 e0 u6 S* s9 ?1 w
GetBinaryType 判断文件是否可以执行
4 x5 H0 D2 \, C% \, C* vGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 3 r8 u% S& t& U- m1 h. e
GetCurrentDirectory 在一个缓冲区中装载当前目录
; c; Q* ]4 x9 H# ~: S( G9 B! gDWORD GetCurrentDirectory(
3 s: n2 F2 t; b, i- y DWORD nBufferLength, //缓冲区大小
9 j6 d' n+ N: G2 X0 l# X% w LPSTR lpBuffer //缓冲区的首地址: E2 b* A: x; R' }$ `
);/ E$ Z; t& X' y0 p- \
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 ) M/ N% R6 s$ {+ v
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 `/ Y* x X& L9 _
GetDriveType 判断一个磁盘驱动器的类型
& L# q9 p W9 uGetExpandedName 取得一个压缩文件的全名 % p/ ~ i4 S- d; z( S- j6 f; _' [
GetFileAttributes 判断指定文件的属性 : a) |) k5 \+ H: A9 y8 ]% L
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
! r3 C. C* n7 _* nGetFileSize 判断文件长度
. j4 a2 T% z9 v% QGetFileTime 取得指定文件的时间信息 ; I+ S5 ]) X6 e0 O6 B' I
GetFileType 在给出文件句柄的前提下,判断文件类型 4 p. y) I* a: T7 A
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
$ k* w% {4 [. M. k6 R& |& Q7 vGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 ' W( {' n9 u, |& }
GetFullPathName 获取指定文件的完整路径名
1 ^+ p! D- `/ g1 |$ ^; j$ {. K1 AGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
7 a. d: q% o _% p5 y/ @GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 5 X7 g R' I6 l& `
GetOverlappedResult 判断一个重叠操作当前的状态 ; x+ ^, M J) C& w a4 Q5 b
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
0 X# z4 `" N* y, l5 T7 g2 b* zGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 . J: [4 D" Z2 A
GetPrivateProfileString 为初始化文件中指定的条目取得字串 % F* h/ y, y: j/ V; |! h+ H# o
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
( l2 a) d* J0 P- X1 J0 qGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
" u8 [8 [7 C+ b9 h1 _. X9 _1 L6 dGetProfileString 为win.ini初始化文件中指定的条目取得字串
5 M6 ~3 i9 G* dGetShortPathName 获取指定文件的短路径名
2 u0 Q6 |* n j0 @( yGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
' `! Q! Z+ S4 Y6 HGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 / [: H( |3 |4 F8 l$ [! I
GetTempPath 获取为临时文件指定的路径 0 ^8 A1 V9 P2 z# s( k8 B" P$ q! x
GetVolumeInformation 获取与一个磁盘卷有关的信息
8 s" L! Z9 v% g K5 OGetWindowsDirectory 获取Windows目录的完整路径名
8 p# r4 K' Z6 c* N% N( qhread 参考lread
" a4 T: }0 z8 M) e- F, j* F3 _hwrite 参考lwrite函数 $ z! b9 l: x; O0 f
lclose 关闭指定的文件 3 N* G2 g3 a2 F- F- v
lcreat 创建一个文件 ; }: k9 p/ T. Z2 z- `
llseek 设置文件中进行读写的当前位置 _# ~& S1 {4 K& d- U
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 9 e& o: C9 Y9 W$ m; W" T1 R% D
LockFileEx 与LockFile相似,只是它提供了更多的功能 - M u" d0 t" v7 o
lopen 以二进制模式打开指定的文件 |! p. j/ k2 ^6 ^; p+ p
lread 将文件中的数据读入内存缓冲区 + [+ I6 O9 A/ b- O; Z
lwrite 将数据从内存缓冲区写入一个文件
, j' u! _" U- \& M, a) hLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
7 C/ ]! p8 g1 A) {$ K0 U- u& ^: ELZCopy 复制一个文件
6 N( k# ^/ I6 Z# A L* u' `" }( VLZInit 这个函数用于初始化内部缓冲区
" J- _* K9 D" h' W$ t1 xLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 5 I- ^( t( x! Y4 q
LZRead 将数据从文件读入内存缓冲区 4 A8 g5 {: f/ u
LZSeek 设置一个文件中进行读写的当前位置
0 C1 v6 z! ?; q. p7 x, U7 ?0 eMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 e, n/ G) e7 z% G; Y9 `
MoveFile 移动文件 - A* P, a5 j0 r$ B8 E) G! j2 f
OpenFile 这个函数能执行大量不同的文件操作
7 W; A. w$ b* h; t0 e: @OpenFileMapping 打开一个现成的文件映射对象 2 G% B ?$ L# @% l0 ]
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
1 \/ }! z* z% d, H) j: M9 T2 G3 P2 O& IReadFile 从文件中读出数据 : F* }' _/ c5 n8 i$ O' B. P
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
4 a2 K/ q/ d6 ]+ ?+ G sRegCloseKey 关闭系统注册表中的一个项(或键) 6 M W$ L# |' K7 @3 h
RegConnectRegistry 访问远程系统的部分注册表 / l$ m2 @/ J/ H" r! R# f
RegCreateKey 在指定的项下创建或打开一个项 9 c5 _: H3 h4 \7 x T& {* T: U
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
* X1 E3 h$ y" p7 i% P4 b1 WRegDeleteKey 删除现有项下方一个指定的子项
- B0 U+ i+ Z! P# hRegDeleteValue 删除指定项下方的一个值 - B8 x6 z9 b% E! [$ ?, d
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
' g7 l+ e) I( ^4 `4 }* L, {RegEnumKeyEx 枚举指定项下方的子项 4 J% u9 g6 s3 N+ r5 O& Z& V
RegEnumValue 枚举指定项的值 " i l: ]- ~9 K% V
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 , S5 J- \1 ? w) B3 Y4 k
RegGetKeySecurity 获取与一个注册表项有关的安全信息
8 e- j& ], |4 \. s2 o VRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
! P0 A6 H: i# Q$ ~) d+ }RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
! X$ m' {$ z1 HRegOpenKey 打开一个现有的注册表项 6 O/ G$ l: j v3 W
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
) D- F3 F5 ]! J6 RRegQueryInfoKey 获取与一个项有关的信息 * u$ u# y* d& W' z: F
RegQueryValue 取得指定项或子项的默认(未命名)值 ) ]0 h6 |" o; A; n4 @( K: {: X
RegQueryValueEx 获取一个项的设置值
9 m* b5 C+ h; [RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 . F3 ^# a3 ~; T+ I
RegRestoreKey 从一个磁盘文件恢复注册表信息
3 T9 W7 f/ E. O3 B, c: ~: S- D( \RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
/ [8 @* `& y \! _4 Y- a2 {4 GRegSetKeySecurity 设置指定项的安全特性
0 {, h! B$ s# K; ERegSetValue 设置指定项或子项的默认值
2 A- ~+ @ P+ e" E, ~ T. r; aRegSetValueEx 设置指定项的值 6 m" c9 V% t; v' k; }
RegUnLoadKey 卸载指定的项以及它的所有子项
3 ]7 y& G$ c- f+ c }; d* f0 N4 MRemoveDirectory 删除指定目录
/ o. a; c* A+ P0 r' |SearchPath 查找指定文件 5 r+ o3 S. Y+ b. x: M9 u
SetCurrentDirectory 设置当前目录 3 |* f; c2 w' b4 j6 Q/ p) Q
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 ; ]+ e$ E. d4 u
SetFileAttributes 设置文件属性 ' v8 N: e2 N! B/ x5 G
SetFilePointer 在一个文件中设置当前的读写位置 1 {, D. z1 ^, S, M: z# U
SetFileTime 设置文件的创建、访问及上次修改时间
& r- K# f) F2 v( O5 qSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
" ^1 n" `# B& F+ qSetVolumeLabel 设置一个磁盘的卷标(Label)
$ R% P7 L, K# [$ j- P5 H) `/ |6 K/ DSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 ! S0 n. ^2 x% }
UnlockFile 解除对一个文件的锁定
2 \" @" N. N( _5 sUnlockFileEx 解除对一个文件的锁定
- T0 a1 P) R2 v6 Q/ |UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 1 w9 ^2 N4 y0 S/ v/ f
VerFindFile 用这个函数决定一个文件应安装到哪里
2 E4 y. I) _, N, [: g* J6 `VerInstallFile 用这个函数安装一个文件
( [1 I8 S3 M! m b# R7 a- eVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
) r& d: q R: Y3 C4 v! L" ^VerQueryValue 这个函数用于从版本资源中获取信息 / O* M" }! e% N8 r
WriteFile 将数据写入一个文件
$ P6 `( d" b+ U5 a% d' x6 s6 WWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 z- {- v) o% J8 W
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 2 Q& l9 S2 z- u' f" t9 R" j
WritePrivateProfileString 在初始化文件指定小节内设置一个字串 4 }" J2 s _6 l9 ]* H
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 " i! t# b; q" c. t6 O/ j
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
N3 |7 _) h9 I6 w1 i4. API之打印函数 - [$ `2 v" [ W
AbortDoc 取消一份文档的打印
- X& w* r8 X+ `) [AbortPrinter 删除与一台打印机关联在一起的缓冲文件
" D0 H, w4 |, l4 `# h: F' Y6 m) I- GAddForm 为打印机的表单列表添加一个新表单 0 ~+ D: f8 z) p& {- e
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
9 m w4 H8 v6 V7 KAddMonitor 为系统添加一个打印机监视器 / p/ j* ?2 B& W. b5 U
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 / a' x' Y$ E% M3 Z# u+ t
AddPrinter 在系统中添加一台新打印机 3 t, y' T: V) k. m* Y) c6 k" f% h
AddPrinterConnection 连接指定的打印机
k2 \" |, A" s) D5 h- U ^, N: eAddPrinterDriver 为指定的系统添加一个打印驱动程序 ! X) j2 e: U4 J4 c3 B* \; u$ X7 b2 N
AddPrintProcessor 为指定的系统添加一个打印处理器
; [4 | T1 F- M F% N9 K7 F' yAddPrintProvidor 为系统添加一个打印供应商 : Z, f7 F9 z1 O1 X9 S
AdvancedDocumentProperties 启动打印机文档设置对话框 * u( L0 o# L# |( g: `$ e
ClosePrinter 关闭一个打开的打印机对象
; j3 v/ F: c/ P: _, R- y1 J( L% i+ EConfigurePort 针对指定的端口,启动一个端口配置对话框 , r( Z. Z9 ~' B b3 e* `5 [
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
7 i4 K" e* _+ w5 QDeleteForm 从打印机可用表单列表中删除一个表单
7 Z, F+ l# h$ f2 _. v" o KDeleteMonitor 删除指定的打印监视器 1 Q/ z: W$ O+ z7 t3 y" k
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
3 a. C I7 E+ L6 I8 |& I" bDeletePrinter 将指定的打印机标志为从系统中删除 " F! M k2 k& E
DeletePrinterConnection 删除与指定打印机的连接
( Y( S5 ^' D& ~8 bDeletePrinterDriver 从系统删除一个打印机驱动程序 ; K8 i* n3 f7 f8 M% u
DeletePrintProcessor 从指定系统删除一个打印处理器
2 B0 c5 y( } X" a# j4 Q) F2 |DeletePrintProvidor 从系统中删除一个打印供应商
1 q# V5 z* m, n& BDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
# ?( p0 k5 W/ Y4 VDocumentProperties 打印机配置控制函数 3 W0 x# v8 }/ y( K# [) S) r
EndDocAPI 结束一个成功的打印作业
) ]$ r' _5 S8 wEndDocPrinter 在后台打印程序的级别指定一个文档的结束 * G- f/ `/ z, D& m3 a! Y
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 1 t5 L" `- Y& ?* D- ]1 A
EndPagePrinter 指定一个页在打印作业中的结尾 & M5 D( y9 l4 ^4 h6 n, K& G
EnumForms 枚举一台打印机可用的表单 ( K1 W1 y* ^4 F( g- j
EnumJobs 枚举打印队列中的作业 1 K+ r& x% o+ n" z
EnumMonitors 枚举可用的打印监视器
/ Y& f+ n9 C. a$ \EnumPorts 枚举一个系统可用的端口 ; Z! Y+ F8 N% H) |& {: p, t
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 8 {" C; {4 M+ X4 w- O# K1 j& D
EnumPrinters 枚举系统中安装的打印机 * j) `3 c3 m' G5 j
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
. i6 T8 D' u7 T, K7 W: K5 YEnumPrintProcessors 枚举系统中可用的打印处理器 0 f/ U, ?4 Z2 l
Escape 设备控制函数 , o | u( a! F) l' q
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 6 r' I; c8 v$ i0 X4 y' N! W$ R
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 ]) f, l# G3 ?- o& m2 B! q: D
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
( ~( ^( G4 F& s2 A0 W4 P. `" P MFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 7 T7 _! l" X7 {- L4 w8 C0 t. M
GetForm 取得与指定表单有关的信息
7 j; t8 g+ N: S3 R5 ]- O4 M" \GetJob 获取与指定作业有关的信息 + S; L! X. D" k) S
GetPrinter 取得与指定打印机有关的信息
0 O% g1 P- m" cGetPrinterData 为打印机设置注册表配置信息
" G- u9 E. j* p1 w& }GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
3 M7 k% K4 V8 J! ]3 M7 A$ U$ dGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
5 H4 t: T# H+ W1 cGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
q6 V' ?# G& A; aOpenPrinter 打开指定的打印机,并获取打印机的句柄 9 e) a- `9 r! p8 M& _
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
3 H6 [$ `3 x) \, EPrinterProperties 启动打印机属性对话框,以便对打印机进行配置
! n+ d1 Z. \# T1 X9 H, CReadPrinter 从打印机读入数据
( v4 J$ \0 d- c2 A' [ResetDC 重设一个设备场景
0 ?1 N/ d8 [; c1 A! c* OResetPrinter 改变指定打印机的默认数据类型及文档设置 5 L/ ?. ~$ A2 e0 x5 i
ScheduleJob 提交一个要打印的作业
7 Q0 z- P, E, b0 Q. }7 I& p* |7 [SetAbortProc 为Windows指定取消函数的地址
- c- G7 Y: L/ e$ t. E( ^! ySetForm 为指定的表单设置信息
: ^; F! ~6 i; K3 q KSetJob 对一个打印作业的状态进行控制 * P& O) j* ~# ~+ X! g/ r- L# {
SetPrinter 对一台打印机的状态进行控制 ( B5 ~+ h& X! i: k* q3 J9 t
SetPrinterData 设置打印机的注册表配置信息 4 L/ O' v: F; H% |7 T$ \
StartDoc 开始一个打印作业 : J1 I. R3 C% M: z5 }
StartDocPrinter 在后台打印的级别启动一个新文档
" K% n: S- C6 v3 H8 C2 bStartPage 打印一个新页前要先调用这个函数 / w3 ]0 Y4 Q1 l+ c8 O
StartPagePrinter 在打印作业中指定一个新页的开始
) @4 w0 `# ^# rWritePrinter 将发送目录中的数据写入打印机 . G5 E9 Y1 A+ M' H) a3 M
5. API之文本和字体函数 8 [5 D$ c/ h) t9 i
AddFontResource 在Windows系统中添加一种字体资源 3 P W- h" @! x- L/ h6 U
CreateFont 用指定的属性创建一种逻辑字体
" E4 e& b, M6 E" FCreateFontIndirect 用指定的属性创建一种逻辑字体 ! d7 c2 |- D. E# p9 y
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 : @3 t8 D3 L+ A! z% ? g& i
DrawText 将文本描绘到指定的矩形中 3 e+ C" J8 J! f x' X' C
DrawTextEx 与DrawText相似,只是加入了更多的功能 0 J2 G' r/ ?6 E/ s7 y% _. P& w
EnumFontFamilies 列举指定设备可用的字体 5 e- @$ o, P2 Q+ ?7 ?8 p3 T
EnumFontFamiliesEx 列举指定设备可用的字体
: \+ T; p! T8 Q+ _, xEnumFonts 列举指定设备可用的字体 1 j6 Q, s, Q5 \4 O
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 ( k9 k1 _ ~; Z$ p/ c c& a
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 4 z/ @4 Q$ p. N; v$ E! X- x
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 . k) {9 F+ ?0 S- g6 h/ n/ c
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
9 m( } A, S8 e) n/ T1 VGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
* e D2 f' s2 J7 g+ [# VGetCharWidth 调查字体中一个或多个字符的宽度
4 N5 K2 f0 H9 `0 E- WGetFontData 接收一种可缩放字体文件的数据 9 ^3 g- P4 s+ y3 L9 A9 u
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
: F% y7 K) P5 n1 u# V+ ~0 NGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
% c+ X) g* l) G) s) lGetKerningPairs 取得指定字体的字距信息
$ P8 X, D+ _# `. L: k dGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 ! [8 R7 v% F8 N
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 4 y0 ?1 G3 m ~; F" s1 ~! z
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 / H: _& b5 k& i0 i4 S: v+ h, P/ g
GetTextAlign 接收一个设备场景当前的文本对齐标志 : t* Y+ }! U( `/ i. i
GetTextCharacterExtra 判断额外字符间距的当前值
/ S/ f$ H _! i2 D$ v7 rGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
! R' I7 I6 P0 i4 wGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
! p/ h5 ?) s" d( h9 w! nGetTextColor 判断当前字体颜色。通常也称为"前景色"
/ z P3 Q& t$ }5 }GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
4 a+ U8 t# d, lGetTextExtentPoint 判断一个字串的大小(范围) * q9 E; t) V5 ~4 F
GetTextFace 获取一种字体的字样名
9 u3 f& U% ?4 o: IGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
4 V% n- \# i" p, w4 L mGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 3 q0 \! X5 w/ f+ _$ e
PolyTextOut 描绘一系列字串
/ p# |* |8 s& z5 e, }$ v3 L: x' ?RemoveFontResource 从Windows系统中删除一种字体资源
" Y3 d) h5 h1 c( H* MSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
& N; d6 ~" J! b' M# L4 rSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
% M, B2 x% F7 j; C$ q3 T" X; _SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
2 b6 V. _+ r$ v G8 O' G qSetTextColor 设置当前文本颜色。这种颜色也称为"前景色" 4 v2 r4 |" Q+ I( G
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 5 r6 y) H6 [- h1 {2 [) f
TabbedTextOut 支持制表站的一个文本描绘函数 W- a, H$ t1 \1 q0 X
TextOut 文本绘图函数
, E- J( k. M7 o9 fWINGDIAPI BOOL WINAPI TextOut(
6 N p! y* l; F0 _1 L4 n0 KHDC, //输出设备
' Q6 e3 p4 d" A( X! t* g- d1 bint, //输出的横坐标# H6 b, R" p* _. n
int, //纵坐标& E& p- H/ A8 t1 d: r
LPCSTR, //输出的文本str7 [! J" r1 g, \, m. b* a
int); //文本的长度:lstrlen(str)
% u7 N- T" `6 }4 ]6. API之菜单函数 4 \/ c3 z( p* ^3 m3 D) R) e
AppendMenu 在指定的菜单里添加一个菜单项
/ @0 [8 @7 A8 y# aCheckMenuItem 复选或撤消复选指定的菜单条目 " K2 e- `5 d& N. c
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 . g( K9 M% g$ Z _6 }% K8 h
CreateMenu 创建新菜单
, f2 y& y/ U$ ?CreatePopupMenu 创建一个空的弹出式菜单
7 o: x0 `7 m; A$ S. l+ [) NDeleteMenu 删除指定的菜单条目 & |4 P/ N- n! ~) T
DestroyMenu 删除指定的菜单
: u H( t3 f+ N2 K" K: HDrawMenuBar 为指定的窗口重画菜单 1 v( o& E1 F$ t: F2 c
EnableMenuItem 允许或禁止指定的菜单条目
, M5 K+ m# J5 v% B& w1 i5 gGetMenu 取得窗口中一个菜单的句柄
9 s" y: l. s/ rGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 8 { G# H/ O( y8 H6 X; u/ e b
GetMenuContextHelpId 取得一个菜单的帮助场景ID
9 R5 c( ?9 a- g. V) d! JGetMenuDefaultItem 判断菜单中的哪个条目是默认条目
% T+ I" y3 |! M$ W- p4 D/ kGetMenuItemCount 返回菜单中条目(菜单项)的数量 ! w: u+ o0 w2 t b F9 O/ w6 d
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
! b+ @' s; X: T4 T( ^3 Z3 eGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 * p8 o. S- H0 k# y9 \
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
+ q. z4 _0 k U. L1 s9 KGetMenuState 取得与指定菜单条目状态有关的信息
5 ?; ^# [7 j: WGetMenuString 取得指定菜单条目的字串 $ D+ [4 x" w0 j" C
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 ]% y7 z% Y! @& N# y) C
GetSystemMenu 取得指定窗口的系统菜单的句柄 ) H$ ^6 f0 ], e- V& l: i) |
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 # W. Y. S7 n8 X& ]% G
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
0 r7 g+ B" P2 p$ B( h' GInsertMenuItem 插入一个新菜单条目 / [* L1 S% F3 K$ D
IsMenu 判断指定的句柄是否为一个菜单的句柄 }2 W b# @" g& t0 P3 c2 @5 r
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
0 i- c O" W! Y" [LoadMenuIndirect 载入一个菜单 8 z) M5 x+ X: T! P9 O% M
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 * u+ q/ \1 u8 x' f
ModifyMenu 改变菜单条目
6 h, |: i$ Q5 \( a# eRemoveMenu 删除指定的菜单条目
1 }; c% @# D, d4 E) V; vSetMenu 设置窗口菜单
& h* s- Z9 D0 o. D" x i: HSetMenuContextHelpId 设置一个菜单的帮助场景ID " H+ u+ q; t1 |! [4 e
SetMenuDefaultItem 将一个菜单条目设为默认条目 8 z1 L# Q/ S# n/ Y( U
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
- Q7 w4 g j, NSetMenuItemInfo 为一个菜单条目设置指定的信息
) q; y* Z" S# r. C9 j. v+ x- ?TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
! B$ g7 K$ y' u sTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 6 E* m' }& B# ` T
7. API之位图、图标和光栅运算函数
, Q" K" g9 \: z/ }% i8 \BitBlt 将一幅位图从一个设备场景复制到另一个
- a+ H" m$ |1 z$ @ R: @ WINGDIAPI BOOL WINAPI BitBlt( k. ~3 x' l( Y' G, y
HDC, //目标HDC
1 ]) v* @8 u, Aint, //X1) ]( B* C3 g3 `: y( F+ s4 Y: Z/ s
int, //Y13 U1 H8 u% l5 \' _; Y. o" g
int, //width
3 C" r' C$ S* s' Iint, //height
. B" ^3 u- w: T: W3 h7 `HDC, //源HDC5 R( r4 V q6 U% e# W
int, //右边的距离
( w6 Z Q& ^& e \- k& pint, //??6 m0 z6 _# D' l: T$ z+ x$ e
DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
- D+ |; U) o0 q6 n+ n1 t0 KPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS+ y( l% ~8 ]# H
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 7 U/ R* g& N4 h+ R+ t; }% A1 R: e$ ~4 H
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 / \! D3 B: r0 L7 t9 |& ^7 z
CreateBitmap 按照规定的格式创建一幅与设备有关位图 ) c! Y2 A1 N: H$ ~
CreateBitmapIndirect 创建一幅与设备有关位图 & I6 s% [) N" E) M& G: Z8 ?. M
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
; E( G9 t( Q) X5 ~, vCreateCursor 创建一个鼠标指针
2 M" l% t' Z% t) a, w; _2 FCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 : @- u: T5 K5 C- b; t
CreateDIBSection 创建一个DIBSection - w* i4 A+ Z5 m0 d/ v" \# Y: k
CreateIcon 创建一个图标 $ o0 N5 c: s5 W- I
CreateIconIndirect 创建一个图标
/ v! O# O8 K NDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 ' U5 v- X: r* D* a3 ^
DestroyIcon 清除图标 1 |/ t. E- H: {% r
DrawIcon 在指定的位置画一个图标
6 g5 Q2 K1 s. }" V# tDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
' K9 a. x+ @7 J& [6 g: I, n E. oExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
: H; J2 }% l2 I; i. n3 \ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 ' L1 u( s. _/ a. R
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 4 _7 R# A" `5 `, R5 I( ~- L& |
GetBitmapDimensionEx 取得一幅位图的宽度和高度 , q$ V, X. _) h5 t$ H
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
2 R2 l+ A% n! n9 C* r' S4 }GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 1 n5 x2 x' {2 v: Z& ]+ \
GetIconInfo 取得与图标有关的信息 6 R( j( v# {" a
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 - q, j3 x! D; a, i& P
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
8 U1 f3 a2 w, ^LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 8 N/ |5 T* K3 H/ s) T- \
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 ! ~) O, T6 U. }$ f) ^/ p* C" e
LoadIcon 从指定的模块或应用程序实例中载入一个图标 : }; g% B0 x8 g8 h4 x. C
LoadImage 载入一个位图、图标或指针 ( G+ C7 |2 t) J4 ]
HANDLE LoadImageA(4 H# o$ \* u7 r5 E) g
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle(). c# q% l# h% X! E6 M
LPCSTR, //资源所在的目录:c:\help.bmp% T5 R+ r, A# r& l7 J
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE) u! [" c: C2 G, K& E A
int, //
" M+ }2 A0 U* J- T; @ int, //& V2 p+ J! x% g8 K$ j# {9 C# Y( m
UINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|3 H" b3 ~; x( y, X* _3 _, ]
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|7 p8 V( ~1 z6 s% |7 e: a. W: t" w
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED( h% H6 R$ n4 M" j% D Z3 ?. g N2 b
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 4 S* H) i8 B: s* v- t- v* A5 c9 C
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 2 q5 f' {! _' ~
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 ( k0 }- C, d6 p
SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
% A" M8 p/ S/ v0 ESetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 9 ^# Z0 E: M4 k E
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
5 u, {% J/ J4 H, x: Z# ~' wSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 " y% v0 ?: h* v+ r# i
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 6 ~9 x6 \7 r0 l" o* w' Y
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
7 G% t9 l1 P' ?5 Q! [1 k/ {& b" DStretchBlt 将一幅位图从一个设备场景复制到另一个 # v5 m8 A+ T3 o' N+ K
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 ) F: Y9 m% C- q
8. API之绘图函数
5 W/ y: m: j9 Y$ EAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 $ j2 m3 G. s( S2 F" F. p$ z
AngleArc 用一个连接弧画一条线
9 a1 ^/ f5 U6 m' y7 ~Arc 画一个圆弧
9 o& t' m9 D: mBeginPath 启动一个路径分支 % n3 {) m- ~2 F& V5 k
CancelDC 取消另一个线程里的长时间绘图操作
& m3 v$ i4 K8 P, FChord 画一个弦
- m, w) ~! V4 ]5 O2 o1 l7 i# ?CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
- u4 i; j ]7 L6 Y2 W. yCloseFigure 描绘到一个路径时,关闭当前打开的图形 6 H+ f0 ?" U) G0 R) p
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
! |0 p$ D6 g2 I% W8 zCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) 5 `5 ~: {/ D, }% I* z
CopyMetaFile 制作指定(标准)图元文件的一个副本 & w( y7 X! U3 t( w: f
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
" q, V! B% w5 ]2 b7 uCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 0 {# w; Y1 N ^- R8 h
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
0 c3 A+ F. J9 A. H% S6 f. E. U1 BCreateHatchBrush 创建带有阴影图案的一个刷子 # l% U; T: Y4 ]* \& f1 |* C" G
CreateMetaFile 创建一个图元文件设备场景 3 p$ P! u- R j" x" Y% k. R
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 $ P# a2 Z5 M. R" l
CreatePen 用指定的样式、宽度和颜色创建一个画笔
% d, w0 q/ @# U3 y$ VCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
) F8 C0 N: Z1 x+ yCreateSolidBrush 用纯色创建一个刷子 : v+ r9 E, g* H
DeleteEnhMetaFile 删除指定的增强型图元文件 5 ?. m- \& x- N4 _
DeleteMetaFile 删除指定的图元文件 ( O7 X! W/ M) n' s
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放7 m7 @/ g; w* n* |
DrawEdge 用指定的样式描绘一个矩形的边框
+ J! p r: s+ l4 S7 K f: lDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
& ~/ b% A: L. u3 {1 M. U& jDrawFocusRect 画一个焦点矩形
$ d2 u! D9 F* Y+ p) m/ H0 QDrawFrameControl 描绘一个标准控件
! U% j1 q; ^2 n/ A3 fDrawState 为一幅图象或绘图操作应用各式各样的效果
$ ^- h. o, O, p3 LEllipse 描绘一个椭圆,由指定的矩形围绕
" L0 i6 t) s) w' NEndPath 停止定义一个路径
" @" r# L/ X- m: O5 uEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
. a" y" V7 I- F, WEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 ) h' [$ D: i' o& c* c( ?
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 7 C6 y& ~- O% w0 i; P5 [8 q6 h4 H
ExtCreatePen 创建一个扩展画笔(装饰或几何) ) D U# z" P5 \! x* W A2 Y
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 / I9 Q0 l* k: ?1 F
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 - b, x' Z0 y8 K6 b0 \6 V# X( {
FillRect 用指定的刷子填充一个矩形 3 B6 y+ Z9 _5 ?& m/ F
FlattenPath 将一个路径中的所有曲线都转换成线段
* l3 m# n; I$ Q# m4 pFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 ( W" _) _3 ?+ i/ y3 Z! i$ K. U
FrameRect 用指定的刷子围绕一个矩形画一个边框
4 O9 Y' m0 I8 \. v5 xGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 - `0 g2 }, q0 V a, | f
GdiFlush 执行任何未决的绘图操作 " x1 S5 ~' z; A# T( J$ T
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
. M" A5 k9 N) J- J* w, wGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 & i, s) ^; G. K. Y# R- Q3 v- o y
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
, E' [/ p9 u5 S% D* O" AGetBkColor 取得指定设备场景当前的背景颜色
8 q, ^0 r+ g) q" X/ p4 O/ H- NGetBkMode 针对指定的设备场景,取得当前的背景填充模式
8 v- ?' p: c K4 J6 BGetBrushOrgEx 判断指定设备场景中当前选定刷子起点
3 r9 Z; B) V5 ]; p( k& VGetCurrentObject 获得指定类型的当前选定对象
' n- R3 p& K2 \6 p5 UGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
5 R+ H2 K& v7 \# ?6 UGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
0 ^4 R1 k5 y. k7 u+ f3 {GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
0 Z: W& r" z( u# S* y$ |4 ^ TGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
; G& N2 g! [# u) R4 U1 `6 @- gGetEnhMetaFileHeader 取得增强型图元文件的图元文件头
6 ^: W v/ D" k4 e- k! tGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
( O! ^3 N0 [; s" j! G$ [GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
( ?9 B6 {) D/ ]- W4 TGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 4 [* p( b$ C% _# H
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
% {9 |7 x2 f) Q% @" kGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 1 y, T) u, F# e7 x: X
GetObjectAPI 取得对指定对象进行说明的一个结构
3 b, v2 X- P3 E; QGetObjectType 判断由指定句柄引用的GDI对象的类型 * S: H' n7 S4 x, F7 L
GetPath 取得对当前路径进行定义的一系列数据
" i/ l- b v6 ^( q5 WGetPixel 在指定的设备场景中取得一个像素的RGB值
% @* F( P3 _( c* u5 tGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 4 U, p2 f3 j' {( p
GetROP2 针对指定的设备场景,取得当前的绘图模式 6 Q) `( a2 x; i( s' `
GetStockObject 取得一个固有对象(Stock)
2 L; |- V* i7 E& @GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 ! W4 `2 _% n/ E6 f" u6 q f3 R
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
7 D- x3 Y, ]0 f0 k: dInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
" k. }; C1 @! Q# WLineDDA 枚举指定线段中的所有点
2 n& T7 ?# Q5 s- c) aLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
& z7 X( u' @9 H, _, ^ TMoveToEx 为指定的设备场景指定一个新的当前画笔位置
$ Z3 d2 v: F$ ?# W$ O, jPaintDesk 在指定的设备场景中描绘桌面墙纸图案 % z: a4 Y8 D/ n
PathToRegion 将当前选定的路径转换到一个区域里
|* {9 p% n1 Y: V* IPie 画一个饼图 , P0 O3 H& \0 P, ]
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 + y, `# N/ w7 j( _; B5 s2 X' _- r, L
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 4 g% n' E: T! a5 A! ?' {
PlayMetaFile 在指定的设备场景中回放一个图元文件
# E1 b7 g7 W3 I, h9 L5 f UPlayMetaFileRecord 回放来自图元文件的单条记录 $ s+ R# Y0 P. y i' [+ P7 n4 p2 k o
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
2 Y; B( X" J* Y8 q+ N! x) q, b9 v5 uPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
7 ]. g9 r- P3 y4 s4 {+ CPolygon 描绘一个多边形 2 G# d# [; u% O0 j, a
Polyline 用当前画笔描绘一系列线段 9 }+ j. P( p* l! R- V7 I
PolyPolygon 用当前选定画笔描绘两个或多个多边形
& |& W4 m8 f8 B) C, _, EPolyPolyline 用当前选定画笔描绘两个或多个多边形 . w0 ]/ ^! z1 n
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
( \/ t7 f. a1 ` w$ [RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 ) p# p/ T$ h) E f1 r
SelectClipPath 将设备场景当前的路径合并到剪切区域里
l' e/ W% @9 u* l, [7 N+ i* [SelectObject 为当前设备场景选择图形对象 / d7 y) L" P4 b& C! R; p
WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);9 [( J' D/ a' T& k3 }7 v2 ^
SetArcDirection 设置圆弧的描绘方向 ! i/ q {1 v) y0 T+ T& W4 q' N3 D6 `
SetBkColor 为指定的设备场景设置背景颜色 , j/ I1 v, v4 Z' H- J2 _& f' \
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 ; h2 @! H5 A3 D+ x K
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
, _' O2 H+ {+ s7 Y3 uSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
) |$ U/ j: k) M! mSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
; ?9 I U1 Z6 eSetMiterLimit 设置设备场景当前的斜率限制
: e$ q% c# W( v9 M6 S' D mSetPixel 在指定的设备场景中设置一个像素的RGB值 ( ?% H# s6 X& b* |6 j
SetPixelV 在指定的设备场景中设置一个像素的RGB值 3 X9 d: Y: ^0 G8 _9 F( R5 \
SetPolyFillMode 设置多边形的填充模式 4 S9 }0 _2 u* x4 Q
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 + G" O! A1 G/ t4 S7 S& B
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 - h# v. n# T X! V6 L
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 7 p- C" L; H: w8 F: W
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 / m5 K6 s) P# K' }
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
( f9 Y- W( A L5 A, }WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 9 e, b4 g8 {, U6 Y* Z
9. API之设备场景函数 " l1 `% v( K4 o+ @; l$ Y
CombineRgn 将两个区域组合为一个新区域
" x# b6 ^0 P( J. @0 Z4 hCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 8 R& C+ O2 D/ f& P" i6 w% i
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
9 d% \3 Q9 x7 M1 lCreateDC 为专门设备创建设备场景
) H: U/ N) @/ x0 z4 m5 bCreateEllipticRgn 创建一个椭圆
6 T/ F6 q1 q# I" R- vCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 ' z; L9 ]) q1 @2 ^* q
CreateIC 为专用设备创建一个信息场景
. _4 U9 G- x( F9 X, \! B/ I, sCreatePolygonRgn 创建一个由一系列点围成的区域 d9 X) o% [1 W
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
9 E q% {7 o3 RCreateRectRgn 创建一个矩形区域
. ^' g: n# U; jCreateRectRgnIndirect 创建一个矩形区域 ( u; {# }! D# z$ c% W1 {
CreateRoundRectRgn 创建一个圆角矩形
5 V( t q+ m3 ~/ k" p- ?2 pDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
) c4 h, \0 c" Q1 ?8 j4 aDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 % L; c* |' l8 Z9 b# s2 G7 O
EqualRgn 确定两个区域是否相等 7 V+ L1 z$ }; ]0 A3 H" S7 d
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 - u: E% g- Y1 s3 N
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 ( J4 h. J& a7 [- [
ExtCreateRegion 根据世界转换修改区域 ( b4 D# T1 R' o% E- Y( \
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 & q$ _3 ~' d, z( G4 Y& I9 ?
FillRgn 用指定刷子填充指定区域 1 _$ _1 D0 M. J8 O& F
FrameRgn 用指定刷子围绕指定区域画一个外框
$ w6 D+ p6 n2 @! |5 nGetBoundsRect 获取指定设备场景的边界矩形 & ~2 E: }! }& ] S1 o# I+ H2 v
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
Y" T) j& d6 MGetClipRgn 获取设备场景当前剪裁区
7 j; I1 B3 M# D: C, D6 V8 p* vGetDC 获取指定窗口的设备场景
" K5 C, \( A0 T1 X6 j/ I9 y. jGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 : r$ R4 h, n" Q7 o
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) ' O# g4 `; _- V g% L7 j+ G+ r+ _
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 4 N! m8 E f6 B8 S& I: k
GetGraphicsMode 确定是否允许增强图形模式(世界转换)
/ E8 v' d2 `6 N4 {" W! jGetMapMode 为特定设备场景调入映象模式 & z% J: o1 e& j1 b
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
: t0 F0 F9 d1 ?# mGetRgnBox 获取完全包含指定区域的最小矩形 . {4 c& @/ p& N# h" C* n
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 0 O7 F9 D. m( s. z) }% y0 \9 Y
GetViewportExtEx 获取设备场景视口(viewport)范围 ' X1 {1 @% @1 t! h Q$ K+ Y
GetViewportOrgEx 获取设备场景视口起点 . l% [: o2 f) e$ b I0 S6 B
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
: {4 q1 ]6 V1 z( P1 ^- A8 jGetWindowExtEx 获取指定设备场景的窗口范围 p% h$ P" w) R" y5 a
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 - J1 S( t ?) G5 }/ c
GetWindowRgn 获取窗口区域
7 C7 v' w) j r! J7 |* X2 j& JGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
$ b& |4 Y! S. n$ l7 g9 g( ^! a1 QIntersectClipRect 为指定设备定义一个新的剪裁区
6 l3 B$ j6 s! z3 PInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 4 l$ m" f" M) G3 ?- L. w$ O
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 4 _8 _6 M; j; g# X! q
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 4 K% M1 a- I: L6 G0 T4 P3 v! [
ModifyWorldTransform 根据指定的模式修改世界转换
. E7 W( d% }4 U _- k9 G" XOffsetClipRgn 按指定量平移设备场景剪裁区
4 |" j5 U2 S$ m! c1 YOffsetRgn 按指定偏移量平移指定区域
7 K4 l' I$ T* x8 E" K2 B; n; D0 rOffsetViewportOrgEx 平移设备场景视口区域 . T5 ^6 E& U& _/ r: y! V% ^
OffsetWindowOrgEx 平移指定设备场景窗口起点 # C% H( v( B: l; U7 a
PaintRgn 用当前刷子背景色填充指定区域
9 X" v# T4 S, B2 YPtInRegion 确定点是否在指定区域内 * g3 V5 N# ?9 y% Y* Y5 A) s
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) y% Y) X( q8 _# Z
RectInRegion 确定矩形是否有部分在指定区域内
9 ]# i1 g1 y8 Z! q; _RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
) m6 F- v. `3 V5 \0 EReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
# n( U/ k. K3 M- o( uRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 ( L2 H" ]* D& S! \- a$ e2 f/ o
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
- r4 a+ C7 _/ P5 U" e( CScaleViewportExtEx 缩放设备场景视口的范围 9 ^4 e2 d. Y9 n& x' \6 I' b' i- D3 f
ScaleWindowExtEx 缩放指定设备场景窗口范围
( W5 K, U0 f& g# `) S0 o2 ~- \+ @ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 : q" z9 _1 D8 w; y$ y. M1 }
SelectClipRgn 为指定设备场景选择新的剪裁区 ; _ S# D/ D8 @7 G, s
SetBoundsRect 设置指定设备场景的边界矩形
3 \& N, m7 V- V a2 c9 i/ PSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 9 \& Q5 d( K3 ^0 }8 Y' ^; ?" v
SetMapMode 设置指定设备场景的映射模式 7 n, R" b* G. S1 a- `% D
SetRectRgn 设置区域为指定的矩形
- w: W; x" v4 x% t* q% ZSetViewportExtEx 设置设备场景视口范围 0 {7 y' C* S1 ? l$ P# x/ z
SetViewportOrgEx 设置设备场景视口起点
' T+ T7 |% }% W- h, hSetWindowExtEx 设置指定设备场景窗口范围 , E- e; o% y2 q" N9 D1 h! j: T: _
SetWindowOrgEx 设置指定设备场景窗口起点 + W3 ^& F, a' L6 H1 j( V1 y8 Z
SetWindowRgn 设置窗口区域
! S$ |4 s$ b2 H% x! ?/ TSetWorldTransform 设置世界转换
% a& G( o/ ~; C# r& BValidateRgn 激活窗口中指定区域,把它从刷新区移走
p/ g9 h9 }# }* F, C# a8 @- o% nWindowFromDC 取回与某一设备场景相关的窗口的句柄 . A9 t! O- K) \0 e
10. API之硬件与系统函数
6 ?, v; m; A1 T# p% u7 |' r2 iActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 # m) b8 H9 K7 {
Beep 用于生成简单的声音 2 N4 r$ U" O' Y5 V! m5 q
CharToOem 将一个字串从ANSI字符集转换到OEM字符集 ' R, z* j( G+ n. X
ClipCursor 将指针限制到指定区域
$ K+ ]4 b3 o* y5 I" K8 G3 Y7 s; |ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
- x3 G+ R. X, X0 t' y5 ~' i, SCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 ; V" }4 Y* G7 Q4 T9 V& f
DestroyCaret 清除(破坏)一个插入符 " { l5 V# }: Y2 N( I; i
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
" f) G4 ?8 a$ s# F; Z3 GEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
- o. ]3 R2 J# l" HEnumSystemCodePages 枚举系统中已安装或支持的代码页 % g( |9 u! u U* E( k
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 5 B) T+ j/ V. l( F* f
EnumTimeFormats 枚举一个指定的地方适用的时间格式
s* `0 ]! M1 a! ^7 q% LExitWindowsEx 退出windows,并用特定的选项重新启动
% v" y h/ g/ t8 b3 y( ` WINUSERAPI BOOL WINAPI ExitWindowsEx(
% s1 P! n2 N( C1 x' o' BUINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG1 v& U8 h8 c/ X) ]- E
DWORD dwReserved); //01 H7 ]+ _$ H: m/ \( ^6 [
ExpandEnvironmentStrings 扩充环境字串 : a3 {, ^$ K+ k( p/ K
FreeEnvironmentStrings 翻译指定的环境字串块
8 Z4 |; O1 H8 |, s( pGetACP 判断目前正在生效的ANSI代码页 8 }/ e5 I3 r% Y$ {0 [ [
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
- M0 I* n0 ?2 x) X( h z! SGetCaretBlinkTime 判断插入符光标的闪烁频率
. g- o- r& H0 }7 r+ L- `! B lGetCaretPos 判断插入符的当前位置
) s- v5 }; D; b0 {" gGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 ( b) }3 A) w, d
GetCommandLine 获得指向当前命令行缓冲区的一个指针
2 b) Z2 @. E) i* i$ o% [GetComputerName 取得这台计算机的名称 : t) F& g" \: m; ?& R" M
GetCPInfo 取得与指定代码页有关的信息 ' d% |' w) N+ P1 m# V. V- c. i; G5 Q
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
+ O/ D8 k7 M' Z' }+ e9 ~GetCursor 获取目前选择的鼠标指针的句柄 , W4 `& z( U9 w: g1 |
GetCursorPos 获取鼠标指针的当前位置
# T8 \6 P* H) Q" ]3 PGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
6 [$ H: I$ z2 ^/ u( [6 P8 v1 GGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
( I, t5 X8 w$ Q r7 ~+ I/ O6 G9 jGetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 , F& u( N2 P. } G4 w3 g
GetEnvironmentVariable 取得一个环境变量的值
6 d- z+ l$ e, [* |" @: K. k# bGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 - d/ K1 d& v9 Z" q
GetKBCodePage 由GetOEMCP取代,两者功能完全相同 * c; @0 p" a4 A# a" X9 E' V) b
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 0 v3 n- x6 _- s8 ~9 t# o. Z
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
3 R3 ^' h5 a" u# Q* LGetKeyboardLayoutName 取得当前活动键盘布局的名称 % r6 S# U+ a5 q3 u& H, H; a2 N4 N
GetKeyboardState 取得键盘上每个虚拟键当前的状态 ( |& K6 z! l8 p5 L( S4 C
GetKeyboardType 了解与正在使用的键盘有关的信息
$ G% y$ C7 g2 T; c F4 {GetKeyNameText 在给出扫描码的前提下,判断键名
5 G! W2 Y1 J- K, t# aGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 7 S' l9 b E2 e* t5 G9 h6 q
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 7 h9 B2 M6 h2 m* |$ Y8 i
GetLocaleInfo 取得与指定"地方"有关的信息 ; S% P+ N( L# Y F% k2 V/ q0 K
GetLocalTime 取得本地日期和时间
# l/ ?" y' |% CGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
' F5 [0 ] y! JGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
; I5 g8 Y( N1 S# v# zGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
7 c3 }6 S4 }# \! WGetSysColor 判断指定windows显示对象的颜色 ' K6 H9 K8 [; W2 x4 Q
GetSystemDefaultLangID 取得系统的默认语言ID
5 a' W5 G2 q$ _' `0 g0 [2 MGetSystemDefaultLCID 取得当前的默认系统"地方"
7 Y" N' G G1 r' EGetSystemInfo 取得与底层硬件平台有关的信息 , y) W- _4 _6 j' K" G# v
GetSystemMetrics 返回与windows环境有关的信息
, ^! S8 G7 c3 ^( y' }2 eGetSystemPowerStatus 获得与当前系统电源状态有关的信息 + \2 d- {1 |- [1 q1 ^. N6 x
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
" b" `) l( z! J9 }0 Z5 HGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 ! s: B8 D8 D6 D8 | b" y) O% t
GetThreadLocale 取得当前线程的地方ID ( w" P( [0 N: I: e
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
9 i% |' L+ V% p7 U7 [) z$ a2 }& cGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
; i% b u! b' v* U, eGetTimeZoneInformation 取得与系统时区设置有关的信息 & v5 w2 S. w% T% M
GetUserDefaultLangID 为当前用户取得默认语言ID
, \: ~% B* K r0 h- U# fGetUserDefaultLCID 取得当前用户的默认"地方"设置 ! O7 }% o$ I4 M# t! z. j
GetUserName 取得当前用户的名字
2 [% O: X) ?, }1 B0 Q8 }4 `GetVersion 判断当前运行的Windows和DOS版本 . h. w' _ ^) I' T9 E
GetVersionEx 取得与平台和操作系统有关的版本信息 % b. a( \( U+ \- e5 R
HideCaret 在指定的窗口隐藏插入符(光标)
! I& m0 |; A: @ b/ \IsValidCodePage 判断一个代码页是否有效 : p1 u" V+ t1 M. e' d4 ?
IsValidLocale 判断地方标识符是否有效
. Z, g/ u3 i: Z' L( ukeybd_event 这个函数模拟了键盘行动
2 y, i* l: Q7 c9 ZLoadKeyboardLayout 载入一个键盘布局
2 Z! h C: o* ?1 H6 a; V/ hMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 / p7 Q' a& n) W( l
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
* ^2 K4 B1 w! ~( DMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
- x8 ^+ o7 O' G; r+ N0 Pmouse_event 模拟一次鼠标事件 ' R" X! G5 m N! y" F
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 , \& E! \- I. b* A* A
OemToChar 将OEM字符集的一个字串转换到ANSI字符集
, D$ Q% y+ ?5 ^SetCaretBlinkTime 指定插入符(光标)的闪烁频率
( U$ @& W; u( D N1 ]SetCaretPos 指定插入符的位置 * L3 U5 f& I2 M4 V. Q2 |
SetComputerName 设置新的计算机名
- T- L; u" k3 C6 KSetCursor 将指定的鼠标指针设为当前指针
/ v: w1 H8 J: S* J: F6 h jSetCursorPos 设置指针的位置 8 T8 ]! e/ N* l
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 " C0 E9 A E' w3 Q2 {: [; @! i
SetEnvironmentVariable 将一个环境变量设为指定的值 ( m. y6 S* [' ^* ~$ [, t3 {
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 ! l( q3 I+ A# x9 O o
SetLocaleInfo 改变用户"地方"设置信息 ( B4 K; y, b2 J$ J& E/ L2 {
SetLocalTime 设置当前地方时间
% V1 F1 V" n# h+ qSetSysColors 设置指定窗口显示对象的颜色 7 G# g; i3 o: H1 b$ H
SetSystemCursor 改变任何一个标准系统指针 ( Q. @, T! y' K" A
SetSystemTime 设置当前系统时间
7 c& o) w4 |* K" [SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 : X5 C/ g, ^( G
SetThreadLocale 为当前线程设置地方 9 e9 V5 f( v' ~; M5 p2 ]: H
SetTimeZoneInformation 设置系统时区信息
2 h% |2 y/ E) w$ o5 ^3 x2 W8 ~ShowCaret 在指定的窗口里显示插入符(光标) ' v8 c( E! R2 o: `
ShowCursor 控制鼠标指针的可视性 * l7 n1 d8 b' y! f" Q
SwapMouseButton 决定是否互换鼠标左右键的功能 ! H, i- T2 D7 X' ]+ b" z. ^
SystemParametersInfo 获取和设置数量众多的windows系统参数 # h2 U ^1 @) m' Q
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
7 K, W4 K! e/ o; R) ]% t- CToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 $ }- n) M) p u+ Z8 Y) s( _
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 ) e% U2 @& y$ U+ r" e/ ?
UnloadKeyboardLayout 卸载指定的键盘布局
. q* q5 Y6 W& D8 p, K+ gVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 " ]) Q& d, k e, O; o
11. API之进程和线程函数
0 q! V/ t! K- q% oCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
6 r1 P1 R+ C1 _9 ]+ U9 sCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 & e- }& X. U6 N; @
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 & P6 P/ p, v) k) K" P
CreateEvent 创建一个事件对象
7 R+ ~8 H3 Y0 m( d" y O6 P; l9 YCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
* P) Y* i0 D, {CreateMutex 创建一个互斥体(MUTEX)
) p e+ L5 M3 ~8 f* JCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
8 _, s T- z: b$ J5 gCreatePipe 创建一个匿名管道 . h7 F) _5 D, n& \1 g
CreateProcess 创建一个新进程(比如执行一个程序)
9 Z8 @; [6 i$ H$ D' `4 f0 VCreateSemaphore 创建一个新的信号机 " u: ]( U$ t8 `4 O V) V
CreateWaitableTimer 创建一个可等待的计时器对象
( i8 V' ]4 U$ }5 i8 M& [' z7 T) {* z1 c- j5 gDisconnectNamedPipe 断开一个客户与一个命名管道的连接 8 U9 ~7 M* b7 \& Y
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 # X6 ~7 t- C: R' `: L, W$ `
ExitProcess 中止一个进程 / B+ b0 n/ p( h4 e* }
FindCloseChangeNotification 关闭一个改动通知对象
( B5 b: ?3 v/ B0 X4 xFindExecutable 查找与一个指定文件关联在一起的程序的文件名 7 J/ ]5 r, p4 b% w3 g5 o, m& \1 }" ?
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
( X6 Q2 E3 `* u. b5 s) Y0 OFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
; L' Z% i* ?2 Y- iFreeLibrary 释放指定的动态链接库 7 W# A2 `) Y+ ]$ m$ p) u+ \7 d k
GetCurrentProcess 获取当前进程的一个伪句柄
# f, `* A7 c' D. g; z. AGetCurrentProcessId 获取当前进程一个唯一的标识符
5 e* K/ K' k( z5 g# H: b& {, fGetCurrentThread 获取当前线程的一个伪句柄
& r) p7 x) N2 h# P, LGetCurrentThreadId 获取当前线程一个唯一的线程标识符 9 J6 Z$ z) z* v1 b" K
GetExitCodeProces 获取一个已中断进程的退出代码
3 E, \/ X) L: l5 b1 b9 XGetExitCodeThread 获取一个已中止线程的退出代码 1 ?: K, B4 m1 T' [/ p& t' F
GetHandleInformation 获取与一个系统对象句柄有关的信息 * ^' w. k$ ^# q4 K+ }
GetMailslotInfo 获取与一个邮路有关的信息
3 P; A, u# Y+ F3 m; sGetModuleFileName 获取一个已装载模板的完整路径名称
- O2 }0 u8 F" J- s% SGetModuleHandle 获取一个应用程序或动态链接库的模块句柄 a+ B3 ^! `) U) E2 g& Q
GetModuleHandleA(LPCSTR lpModuleName);2 \& X& L* _% n$ e3 r& g+ Y1 }
GetPriorityClass 获取特定进程的优先级别
% v5 K5 k: o# s t1 mGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
- {/ ? w6 e Y( a0 C! ^- _GetProcessTimes 获取与一个进程的经过时间有关的信息
& ^9 o+ N$ ?. z2 ~: y" m- K; I1 zGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 . `8 L# I; S a& E& |
GetSartupInfo 获取一个进程的启动信息 # Z9 f+ {2 E' p- \* t0 }$ S3 m
GetThreadPriority 获取特定线程的优先级别 ( m% h8 v7 E" N5 L# x! \
GetTheardTimes 获取与一个线程的经过时间有关的信息
- ^* v+ d [6 C m" K7 U2 _GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 1 i2 C- g& l% U; X; q
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 & r3 E9 q- e! p! q5 D+ w
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 # R+ {4 \3 M8 @0 H' O7 J% ^( x3 S4 P6 t" I
LoadModule 载入一个Windows应用程序,并在指定的环境中运行
* f7 H7 g; q7 X4 YMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
+ i* R: r) P- z; V, B5 B) rSetPriorityClass 设置一个进程的优先级别 ! x/ t+ M' H% e0 _* O) e, w
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
* m/ q# a# M$ |. a7 d$ Q+ U' W3 c8 LSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 ' Q, U% U7 ?, V5 p- }3 F1 {
SetThreadPriority 设定线程的优先级别
% m2 M) {, C, ~5 ]( a8 K2 SShellExecute 查找与指定文件关联在一起的程序的文件名 5 ~% b# z/ O; W( u& s
TerminateProcess 结束一个进程 3 w0 L. h9 V9 @2 R+ Q9 \
WinExec 运行指定的程序
' C( l, n) M& [* Z12. API之控件与消息函数
1 U7 Y ^- i, E5 _4 }2 _AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
' o& {. `6 Q6 p" h% D4 X# WAnyPopup 判断屏幕上是否存在任何弹出式窗口
7 K; j! N- @1 | \2 u% ]' cArrangeIconicWindows 排列一个父窗口的最小化子窗口 / | ?7 P4 h! C0 i6 O
AttachThreadInput 连接线程输入函数 . C; p% K q2 h8 p6 Z
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 ( o+ b k7 h& z8 D! _4 I A7 f
BringWindowToTop 将指定的窗口带至窗口列表顶部 & P2 Y2 g: e) Q( {4 ?0 Q* E0 s
CascadeWindows 以层叠方式排列窗口
" K! y5 @ J G8 P' q; N: u/ GChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
7 A/ U% F" A* I- ~4 FClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 ( U% o+ ^7 h. X+ F2 W2 o% T& j
CloseWindow 最小化指定的窗口 5 Z$ o2 x6 J" S6 u5 I4 @
CopyRect 矩形内容复制 % f t0 i: j d$ m3 k
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 4 g! D9 _- ~6 s
DestroyWindow 清除指定的窗口以及它的所有子窗口 ) D, `0 Q' W9 I
DrawAnimatedRects 描绘一系列动态矩形
9 w/ w( ~0 h' R: \EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
; I( k2 T1 O7 b* O, m+ U+ m4 q2 AEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 + b3 c4 c2 v( Q, q3 {9 v
EnumChildWindows 为指定的父窗口枚举子窗口
& {: h) M, T1 t7 w7 u5 nEnumThreadWindows 枚举与指定任务相关的窗口
+ I2 v- O7 z; }$ r% P" ]EnumWindows 枚举窗口列表中的所有父窗口 ; f% ?2 s: }* ?- z
EqualRect 判断两个矩形结构是否相同 4 U! Y' Z$ `+ R4 a% C
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 ' _9 b, S" |- \5 Q
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 ) O2 T/ U" [5 B2 c
FlashWindow 闪烁显示指定窗口
/ m* ?, b, F) f. hGetActiveWindow 获得活动窗口的句柄
+ M+ W. b9 h# IGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
# { g9 G3 r }' ZGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
0 A) {5 C5 S% `& vGetClassLong 取得窗口类的一个Long变量条目
4 P3 S, `2 F& N! ?GetClassName 为指定的窗口取得类名 & h0 z+ h0 {0 A L
GetClassWord 为窗口类取得一个整数变量 % j! w! F* f8 F# w' E8 Z
GetClientRect 返回指定窗口客户区矩形的大小
' D" a1 P ?# S% V* Q6 b& |3 O( FGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 7 N) Y/ M! h6 q$ I, r! q/ M% J+ ~! P
GetFocus 获得拥有输入焦点的窗口的句柄
# r# b+ d$ q; _( Z+ wGetForegroundWindow 获得前台窗口的句柄
: c0 m1 C& Z. K+ A2 x* nGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
+ u! ?1 ?+ ?+ r7 Z' w3 \7 hGetParent 判断指定窗口的父窗口 4 x% }0 \2 H+ N/ v2 C
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
5 I8 q3 {/ R; L4 O7 c7 O7 f6 uGetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
1 k- \; R* ~8 _/ A+ {0 }GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 $ o6 \; Y6 h- N0 L4 x
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
, L( U; C! a% g9 k' s7 ~GetWindowLong 从指定窗口的结构中取得信息 ; w T' D) ^ F6 M# L
GetWindowPlacement 获得指定窗口的状态及位置信息 8 l% H( H, T$ \& K
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 4 Y2 o" Q: B( D% J% R4 n- h: l9 m
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 / l' z. |6 z, p- o; V
GetWindowTextLength 调查窗口标题文字或控件内容的长短
' P& C g, c4 @( k4 _; j# T4 HGetWindowWord 获得指定窗口结构的信息 & y! u2 h/ q7 M6 m
InflateRect 增大或减小一个矩形的大小
3 s E2 j4 z$ H! H9 v W$ g( a6 iIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
5 k) K5 B7 A$ v7 h& y2 [InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 " ~1 J; p* |/ v3 z4 ~
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口 , a' X0 ]7 z5 s, t( U
IsIconic 判断窗口是否已最小化 ' u# J0 n/ l, \" h3 W
IsRectEmpty 判断一个矩形是否为空 4 F3 g2 @% a* S* R1 c6 I( s
IsWindow 判断一个窗口句柄是否有效 4 t( d9 s- M3 m6 Q
IsWindowEnabled 判断窗口是否处于活动状态 ' Y" F2 @4 m% s! t/ l( r
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 0 `/ S6 Y9 a# X; r
IsWindowVisible 判断窗口是否可见
) Q$ M- q: L$ `( q% Z) K: mIsZoomed 判断窗口是否最大化
) \) H- P, l, y3 N; hLockWindowUpdate 锁定指定窗口,禁止它更新 ' ]; k! t2 W4 Q& n2 J
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 0 _# c* ^' U4 p& ?/ |7 s. \
MoveWindow 改变指定窗口的位置和大小 ( s1 @) b3 B: I" d' t/ {
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
* l$ E$ j3 d' {5 `# r8 n3 U4 T& x0 NOpenIcon 恢复一个最小化的程序,并将其激活 - E' D' y% r8 u5 l' p$ p" Q; h
PtInRect 判断指定的点是否位于矩形内部
5 E9 P% d# c; wRedrawWindow 重画全部或部分窗口
% g8 T" w- Q! OReleaseCapture 为当前的应用程序释放鼠标捕获
/ d/ B E, f+ x/ i3 `' k9 m1 {) kScreenToClient 判断屏幕上一个指定点的客户区坐标 7 C0 M& A2 d3 M9 b
ScrollWindow 滚动窗口客户区的全部或一部分 ! e0 z6 o) X' u% u: c3 z# y
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 3 r1 `- @0 Y+ s# L8 W
SetActiveWindow 激活指定的窗口 ; \1 a% l* M3 a: t5 i9 ]! A( l
SetCapture 将鼠标捕获设置到指定的窗口 ) i$ N9 k8 n9 B3 r
SetClassLong 为窗口类设置一个Long变量条目 ) {, e2 u5 x" s) m% J) r
SetClassWord 为窗口类设置一个条目
; [6 I; s: n1 f- l1 L) h3 o# Y8 SSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
/ e2 \! m7 |5 j) u; gSetForegroundWindow 将窗口设为系统的前台窗口 , k* l8 p G5 O' I2 s9 C
SetParent 指定一个窗口的新父
1 i+ X. Y; V3 _, {: ~SetRect 设置指定矩形的内容
( E$ Z5 {3 s/ T# _1 FSetRectEmpty 将矩形设为一个空矩形
; P4 U! F) p* S3 F% w: JSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
: I& _; w) n7 R! Z0 {" ~) c0 gSetWindowLong 在窗口结构中为指定的窗口设置信息
6 f" ^3 f7 H6 q' n4 M. wSetWindowPlacement 设置窗口状态和位置信息
: y: o5 N' j) A7 o% aSetWindowPos 为窗口指定一个新位置和状态
# O+ Q2 _" F/ I& w5 iSetWindowText 设置窗口的标题文字或控件的内容 * _, ~8 _9 F+ i, J5 C5 g0 O, p& o
SetWindowWord 在窗口结构中为指定的窗口设置信息 ! P5 Q% V# y9 |
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
) ^7 C5 G* e0 k" t# b0 PShowWindow 控制窗口的可见性
* P( w, Y0 n0 I" ?6 H$ g" K% uShowWindowAsync 与ShowWindow相似
$ O6 m2 Z2 @) P$ J9 USubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
6 m9 `8 T4 e: d! l) LTileWindows 以平铺顺序排列窗口 1 f5 T' D/ ]; y# F2 \# D5 B9 ^3 ]
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
- P) ]$ t6 M$ C: zUpdateWindow 强制立即更新窗口 + l6 t( |" v7 i; }0 E& o0 X
ValidateRect 校验窗口的全部或部分客户区
0 \& `# o3 f- E" ]WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口 ~ w( E5 X% A4 j: `/ l- M( P1 f) s
高级音频函数—参看《VC++ 编程指南.chm》11.6
H- e( S0 K* I9 } Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
* D, {" E+ E+ S1 I# I1 ? BOOL MessageBeep(UINT uType);( y! S- v9 K' Y+ }9 M
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。% {' G- t8 V0 b) y( p
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
4 w. N1 R2 H; M: K级别 ! }; {6 v9 R9 O+ w9 H) ?( W. _4 z
| 描述
" ?4 N# B( D2 X3 m/ K) A8 q: ^. Y; g | -1 " Y3 I! B' g4 {7 u/ h& @8 }
| 从机器的扬声器中发出蜂鸣声。
7 t/ F' P' n% T4 f | MB_ICONASTERISK ) v4 u) M0 ?" ^; t' f
| 播放由SystemAsterisk定义的声音。
8 K8 ^7 Q# R n5 R" {: }7 h) w | MB_ICONEXCLAMATION ; T. h8 W7 V5 R9 I/ r# P' S
| 播放由SystemExclamation定义的声音。
2 f0 o0 D8 q/ @$ y. M3 k& Z% D' | | MB_ICONHAND 7 O+ G, T. K I2 L( a, j
| 播放由SystemHand定义的声音。
, j7 c4 D, ^+ y' W7 k7 Q | MB_ICONQUESTION - S% @) l6 N7 Q; v" A$ U7 R) Q
| 播放由SystemQuestion定义的声音。 ; U& [4 W2 ~' q, L _$ D
| MB_OK
0 @1 e3 a. c: m8 H | 播放由SystemDefault定义的声音 . L' P7 \9 G* _
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
! U ~6 A# @, S- f, a参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。( n2 v- [ ~0 X7 a
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。0 S+ b6 c, o1 D9 O; y4 N
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
. E, p0 w4 k4 R5 \* f3 j标志 , ], v* s2 ^& B1 Y+ N* Q
| 含义
# E2 w* p6 P, [1 I# o8 m4 k4 B | SND_APPLICATION . d$ D& k7 R4 M8 v+ } T
| 用应用程序指定的关联来播放声音。 9 D9 s) S4 @/ E* a! u& n
| SND_ALIAS 1 q: E. U9 q" x- J* r
| pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 {+ X) q3 w% d
| SND_ALIAS_ID
# L+ u9 R& g) @' n" L8 m, R | pszSound参数指定了预定义的声音标识符。
7 z$ D! j/ z8 n+ r. A | SND_ASYNC 8 a0 e0 Y& [+ ~3 K* J- C
| 用异步方式播放声音,PlaySound函数在开始播放后立即返回。
) J9 [+ C( V: p8 I- |: }" r | SND_FILENAME
; o x9 Y3 J! z | pszSound参数指定了WAVE文件名。 , o% A) `6 s/ n, ~+ y& ?; |- x
| SND_LOOP ; c, n- c2 x; t2 o! N( n
| 重复播放声音,必须与SND_ASYNC标志一块使用。
' h% B; l2 ?/ t9 e | SND_MEMORY
; [. H. \9 ]1 ?. k | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 5 {) s3 Q( \& C$ k) r/ g2 |
| SND_NODEFAULT
6 d3 k, K" l' Z: L6 E7 v0 J | 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
% e3 q' p4 Q* O9 Z | SND_NOSTOP
" {7 \+ B* V. ]( }3 | | PlaySound不打断原来的声音播出并立即返回FALSE。 9 a& C6 y0 s# B8 H7 E5 y
| SND_NOWAIT
- ^ S, N! I; V( s8 C | 如果驱动程序正忙则函数就不播放声音并立即返回。 2 u% _& y: V- {( F; q o2 L1 J' h0 i, P% H
| SND_PURGE : I# H( F% F! @" r& S6 s
| 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 7 i" X. Y: C$ U6 A+ W! N) e r
| SND_RESOURCE & f& Y6 }6 ~: l4 h
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 . a" [( a6 e( r/ v! k f1 L
| SND_SYNC
- E' P5 M' w" c8 [ | 同步播放声音,在播放完后PlaySound函数才返回。
& Y) v, x1 @5 g7 ?: R# J2 ?5 k | BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);* Q d' f) o ]. W' ^+ W+ o
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。3 @& t- U7 s. P2 Y
MCI播放
- N6 U* F5 b9 i; o: z所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
% E2 H$ x' k2 E) ^0 I) [MCIERROR mciSendString(
# ?* n: O: M+ XLPCTSTR lpszCommand, //MCI命令字符串& k* d8 t+ p y. \1 g/ T6 G7 O6 {
LPTSTR lpszReturnString, //存放反馈信息的缓冲区9 J( H8 {- C; n7 ] ]% c Y8 b
UINT cchReturn, //缓冲区的长度
7 o1 _( |( H' x3 ?; Z) dHANDLE hwndCallback //回调窗口的句柄,一般为NULL
3 s0 |. }& X7 K: k$ l) m, s); //若成功则返回0,否则返回错误码。
) o( c5 i$ s( e& C# b该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:. ^8 c6 p K/ ~$ b+ f# x% y& z1 v
BOOL mciGetErrorString(
1 K3 a, x1 i( v* _4 U5 E. RDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码) \4 Y4 i& e5 B% ?
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
% ~ x, {+ W$ M- z$ Y* XUINT cchErrorText //缓冲区的长度8 g( p6 {( Y$ T7 |) I
);7 m- y( v; l4 q" r( X9 G
|
|