|
原文:http://www.cnblogs.com/cltsq/articles/api.html
4 d$ ^, F7 s# Q' Z9 v6 m0 p0 p1. API之网络函数 5 E5 T2 V) g0 G* d' B4 E- P
WNetAddConnection 创建同一个网络资源的永久性连接 7 L) V+ T& m7 e, {/ t" c& ?) s6 x9 N
WNetAddConnection2 创建同一个网络资源的连接
- r1 f$ A9 N Q& \* k* F0 cWNetAddConnection3 创建同一个网络资源的连接
) |6 n/ s% R# G: J$ JWNetCancelConnection 结束一个网络连接
: K/ T7 L& v1 s2 h7 S# sWNetCancelConnection2 结束一个网络连接 , {+ h# T* m. u6 v2 n9 M
WNetCloseEnum 结束一次枚举操作 * w; n0 F+ u& @# ] v
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
$ R) n( Z0 T c) j( IWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
" x9 G( u4 X. ~) kWNetEnumResource 枚举网络资源
" s: @* Y) a4 {' C' ~/ }WNetGetConnection 获取本地或已连接的一个资源的网络名称 5 j4 R% Q' b+ E# @& @! j0 z
WNetGetLastError 获取网络错误的扩展错误信息
; g7 @0 n, x9 N' g c7 \ u! @WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
+ I, j. n2 u! c& }0 e: t6 i8 nWNetGetUser 获取一个网络资源用以连接的名字
: ~& J+ k4 c3 A' s ~1 {8 dWNetOpenEnum 启动对网络资源进行枚举的过程 6 ?5 p/ \; N, D9 e: `; J: t' B2 L
2. API之消息函数 / k, S. x" B& Y9 g3 ?+ g( U8 i
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
1 R- e8 y9 O( ]$ |" ]. ]3 AGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 ; y2 g$ {' b4 c3 Q
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
' b) q# M4 z9 D0 a" TPostMessage 将一条消息投递到指定窗口的消息队列
" Q! U0 |0 B' r6 n$ @0 I' c! s# `6 Z4 BPostThreadMessage 将一条消息投递给应用程序 j9 \! P% |+ P4 h- p
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 - p# ~& b7 ], r w* n: ]2 r
ReplyMessage 答复一个消息
& J. @# u# q& [- M; \, OSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 # \* B4 h% M) h, V% {7 o4 \# O9 l
SendMessageCallback 将一条消息发给窗口
- ^2 k# K7 w- |# D! n: x" NSendMessageTimeout 向窗口发送一条消息
2 }1 P7 [5 @: g. X+ @6 W7 SSendNotifyMessage 向窗口发送一条消息
7 y* h2 z7 ]2 l, O3. API之文件处理函数 ( {5 f6 G" } c( g# v7 ]
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
6 a. c* v% z' t3 qCompareFileTime 对比两个文件的时间
0 {0 v6 l( I. u! XCopyFile 复制文件
: `# [; f6 t' V: \' G. RCreateDirectory 创建一个新目录 ! F X* m- G* u# D! l: N) P
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 ; f! w: q! g( F" L
CreateFileMapping 创建一个新的文件映射对象
& E2 Z2 ?# M, s5 ?4 A+ B1 D' DDeleteFile 删除指定文件
9 v, i) y; L! k8 F" i- l; FDeviceIoControl 对设备执行指定的操作
2 ~8 }3 m/ Z) ^6 ~DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 * t- t( c* I! e! S! H; E
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 2 m( Z5 B0 t* n+ N: R( W, C, J, s
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 ( u- y: j7 f- F6 d
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
, d7 u7 U) r& t7 D* P! aFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 / p# c0 O% a: k" H6 [7 q# _0 p
FindFirstFile 根据文件名查找文件 5 Y% i) I; z* y, Q* N' w
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 $ _) `, G3 {. j1 b& `7 e
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
, v$ O1 U% h. b% O6 P# ^FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
) _1 t; S% t8 q' M4 M# mGetBinaryType 判断文件是否可以执行 1 e7 ^+ ]# L [6 c
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
- T. @8 U6 V/ [' W, j: m, `6 {GetCurrentDirectory 在一个缓冲区中装载当前目录
y7 }) z2 P, s& `DWORD GetCurrentDirectory(
6 j0 h- v4 p$ y DWORD nBufferLength, //缓冲区大小8 \" x) i2 p7 c4 l( \% F( V5 B
LPSTR lpBuffer //缓冲区的首地址) h9 S2 ^0 Q) n! ~
);/ v& B/ Z( F3 E" |+ v( v
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
9 `, Y2 Y4 r7 Y& g( n7 m& \GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
- O% Q/ I; R# F. MGetDriveType 判断一个磁盘驱动器的类型
7 ?3 q) O" r, G2 I. yGetExpandedName 取得一个压缩文件的全名 ' H, E! N. z& i) I
GetFileAttributes 判断指定文件的属性
! C' u. W0 {8 Z- N A( n9 CGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
; I* I# b* N; I6 f' SGetFileSize 判断文件长度 6 J$ d/ T+ H4 |% w y
GetFileTime 取得指定文件的时间信息 % k( W- `# u4 l3 ~7 o3 m
GetFileType 在给出文件句柄的前提下,判断文件类型 9 ^1 U5 R7 n) z
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
) P- n- y s/ m0 s9 z ]# \GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 6 d h9 M- A7 p/ P2 y/ ?$ U9 h
GetFullPathName 获取指定文件的完整路径名
8 o+ Y/ p- }7 A, zGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 . n' f/ Q% W& o7 j& a; `, _% U3 `
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 # d! M4 e0 C3 t) a
GetOverlappedResult 判断一个重叠操作当前的状态 $ k9 _" k$ Z$ t' c2 I4 e& p
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 3 u7 X, r7 q1 I" E
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
0 z, }) V3 m5 {* h! U2 iGetPrivateProfileString 为初始化文件中指定的条目取得字串 * a3 x4 m: d: d$ _
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
" N2 G+ N: \2 yGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
( z! d- D& b+ Z8 U4 ?GetProfileString 为win.ini初始化文件中指定的条目取得字串 9 w3 d% P/ H* g) ~5 c& L3 v/ C+ {
GetShortPathName 获取指定文件的短路径名 2 ^7 r& i8 ~) l% e$ _2 S9 `
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 1 u( H8 ^1 i( h5 R
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 - b/ J7 ]5 G7 X( K+ i
GetTempPath 获取为临时文件指定的路径 % a! N. f: L: b
GetVolumeInformation 获取与一个磁盘卷有关的信息
. U9 f" K$ D$ L- i3 BGetWindowsDirectory 获取Windows目录的完整路径名 3 N& q2 A3 g$ i9 [
hread 参考lread ( {/ P: `/ J& L+ a# ?6 u# @
hwrite 参考lwrite函数
* D) W. [$ o$ S( Dlclose 关闭指定的文件 " g; e8 J' V. f {2 q* b# W6 O7 o
lcreat 创建一个文件
/ i( k7 y; W4 r5 U: O% G \' {llseek 设置文件中进行读写的当前位置 1 w# w H( f9 L1 o
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 $ R: o f# S& M0 D0 y# @; | X0 a7 a
LockFileEx 与LockFile相似,只是它提供了更多的功能
) x2 W4 ?- [. Y) }: `0 ylopen 以二进制模式打开指定的文件
+ f' S; v- Z" Z ?lread 将文件中的数据读入内存缓冲区 7 x6 v, V; Z: L5 g, C2 @8 c
lwrite 将数据从内存缓冲区写入一个文件
& @" M1 h7 v7 {* u$ Y) \& a, LLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
. ~1 F' L4 o2 u3 ^: @LZCopy 复制一个文件
. f( a; Q# P- f! j) \1 ILZInit 这个函数用于初始化内部缓冲区
; T0 r: H) x6 Q* d8 bLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 6 T/ N5 f3 Y% S- w Y# I' C# w7 ^: Y
LZRead 将数据从文件读入内存缓冲区
0 h7 v* P7 x; d$ S' `4 xLZSeek 设置一个文件中进行读写的当前位置 , c4 s. j: t2 s3 Z4 X2 L3 ]* l
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 7 I& |" d1 F7 L5 o5 I/ O$ Q
MoveFile 移动文件
! H, R8 [' O2 j- [: [* `2 @+ m1 HOpenFile 这个函数能执行大量不同的文件操作 * F, Y3 O! J$ z; \
OpenFileMapping 打开一个现成的文件映射对象
# ^$ q& D J8 T2 o. i& n* a6 UQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
2 {6 i& J& P7 D4 H+ i+ |/ u7 q# @ReadFile 从文件中读出数据 ( W3 H, z; C4 B3 J% c
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 9 i* I. @% U$ t) l, ?* g, z
RegCloseKey 关闭系统注册表中的一个项(或键)
7 G, j' M% M& R3 WRegConnectRegistry 访问远程系统的部分注册表 : J% P0 Q8 q) u( k' e
RegCreateKey 在指定的项下创建或打开一个项
. _1 F! J- L: y& R- G* VRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 ! f3 T# u J% k1 Q# P* v
RegDeleteKey 删除现有项下方一个指定的子项
! b# i# y( ^- U6 ^RegDeleteValue 删除指定项下方的一个值
/ D# k! G$ S9 X. B6 U; N7 ]0 yRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx " W) ]- i; J. L; ]1 Y# ?9 H: I
RegEnumKeyEx 枚举指定项下方的子项 ) U7 i1 z4 D2 g# C9 y
RegEnumValue 枚举指定项的值
; h+ q( s F( {RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
) F4 R6 ]; }4 }2 pRegGetKeySecurity 获取与一个注册表项有关的安全信息 ; l4 k; L1 O( n. o& Z4 D8 l
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
! D; B ~9 w, V; z) s8 E- v5 o' ZRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 - N2 \3 N F$ s1 C
RegOpenKey 打开一个现有的注册表项
' u6 M0 k V/ \" j. j9 W5 h6 k& {; GRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 0 X5 v2 \% r0 F3 H' ~, ^
RegQueryInfoKey 获取与一个项有关的信息 ( o3 v3 H. h- a) ^
RegQueryValue 取得指定项或子项的默认(未命名)值
" J, c7 u3 I% t- g: dRegQueryValueEx 获取一个项的设置值 0 M9 d2 j9 q! L
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 3 g @0 E! H5 _: m6 e/ B( J3 |
RegRestoreKey 从一个磁盘文件恢复注册表信息
( {& d1 E# E' u( {RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
# r" b4 [7 y3 }( n' T0 T0 o& y: z4 ?RegSetKeySecurity 设置指定项的安全特性 " w7 l3 I' P: o
RegSetValue 设置指定项或子项的默认值
! ?" j5 J/ G7 S: mRegSetValueEx 设置指定项的值 6 x$ j+ D4 S8 C: ^4 r+ m, y' x
RegUnLoadKey 卸载指定的项以及它的所有子项
# R) p7 l+ h% L9 b8 t5 M6 v/ |RemoveDirectory 删除指定目录 , D" { |. U f g. s* _4 C9 W
SearchPath 查找指定文件 F( q' A4 Q( u% W9 C Y
SetCurrentDirectory 设置当前目录 3 }; e! F+ k: H8 t
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 , q x* @7 M: b/ J9 k9 \; B: H5 s7 I
SetFileAttributes 设置文件属性 : {5 J6 I2 P) o6 j9 E' U! |6 l
SetFilePointer 在一个文件中设置当前的读写位置 6 Z$ [/ L9 X. ~: o: p6 z4 j
SetFileTime 设置文件的创建、访问及上次修改时间 ( j, W: ?4 \. {9 R. }6 ?8 q2 y3 c
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 0 c) h8 ?$ |* E' F
SetVolumeLabel 设置一个磁盘的卷标(Label)
- E# X' K2 s/ F- Y" l, J/ D# v% }8 d. hSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 ) _2 I$ i& c* s* ?2 ?1 {
UnlockFile 解除对一个文件的锁定 8 h2 J' I0 `& ~/ p. C
UnlockFileEx 解除对一个文件的锁定
1 h4 R/ } u3 O" F S1 s2 U# g5 XUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
7 c0 m0 F' C1 _$ ?& kVerFindFile 用这个函数决定一个文件应安装到哪里 + E( {8 b: H: I9 I( n$ L# U$ n
VerInstallFile 用这个函数安装一个文件
# O5 _1 w8 Q5 @: {" }, ?; nVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
) D% }8 f1 d" }, BVerQueryValue 这个函数用于从版本资源中获取信息 8 q; x3 k" M" g# L+ P
WriteFile 将数据写入一个文件 + _3 S1 B- N& A2 B [: O
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 ) N/ d- R2 M0 V i
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
- K3 i3 l) ~' m% I0 nWritePrivateProfileString 在初始化文件指定小节内设置一个字串
& T7 _5 j$ M- v C7 M: Y/ YWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 ; M& B& H9 J! }# F2 ~* w0 u' b: R2 ~
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
5 r5 I0 Z" U7 Z9 u4. API之打印函数
. y& v Q" a- {0 g+ a8 zAbortDoc 取消一份文档的打印 3 Q1 p; T6 M. ?2 N. Y
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 $ P- x2 r2 j( N5 ^# [. H
AddForm 为打印机的表单列表添加一个新表单 + x: D0 p# c, y
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 / k9 Q1 q" S+ T4 M3 j
AddMonitor 为系统添加一个打印机监视器
- K' T, ^9 X4 U7 o; vAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 3 i0 X# v( {" U) w
AddPrinter 在系统中添加一台新打印机
6 @ |- E, Z, {AddPrinterConnection 连接指定的打印机 $ [: U6 i, l, o4 r7 n$ |$ R
AddPrinterDriver 为指定的系统添加一个打印驱动程序
& b+ S q f& yAddPrintProcessor 为指定的系统添加一个打印处理器 ; A( G% T4 M2 ^! H3 k* ~
AddPrintProvidor 为系统添加一个打印供应商
9 u, W) H3 B1 w+ Z$ Y9 W mAdvancedDocumentProperties 启动打印机文档设置对话框
$ k, z4 i! \0 U) o& M' z# S4 e8 P3 oClosePrinter 关闭一个打开的打印机对象
e8 ^8 }+ S4 b; C, I" nConfigurePort 针对指定的端口,启动一个端口配置对话框 , }. ]- C6 J f. U4 I
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 & `8 N/ F4 r: b" f4 Y* Q: R K4 P
DeleteForm 从打印机可用表单列表中删除一个表单
7 x1 Y7 k; z! C3 `/ B. O FDeleteMonitor 删除指定的打印监视器 ' y' r% u1 k/ T* K8 c2 F
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
4 x$ j+ e1 B: b1 H2 LDeletePrinter 将指定的打印机标志为从系统中删除 / h1 K% |; \; Z. U9 J( z, s
DeletePrinterConnection 删除与指定打印机的连接 9 E* A/ k3 l Y! n7 E# [; Y/ ~: w
DeletePrinterDriver 从系统删除一个打印机驱动程序 ' \7 X" u1 L+ s, N1 O- b2 K+ A3 Y
DeletePrintProcessor 从指定系统删除一个打印处理器
1 o/ s! E+ o+ D! Z3 D7 GDeletePrintProvidor 从系统中删除一个打印供应商 7 F4 t# D2 }1 U$ A( c
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
5 l* ]4 l7 ?$ E& `; c* FDocumentProperties 打印机配置控制函数
0 J/ W' T* U$ Z5 y: C+ KEndDocAPI 结束一个成功的打印作业
! L2 l9 M( \4 hEndDocPrinter 在后台打印程序的级别指定一个文档的结束
$ R- r% ~6 k$ Z. `) c B, g. DEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 9 {) n: R9 H" @/ }
EndPagePrinter 指定一个页在打印作业中的结尾 & ` Z) Y, {7 L i
EnumForms 枚举一台打印机可用的表单
, ^6 b, i4 \2 Z6 k1 z" k' ?1 oEnumJobs 枚举打印队列中的作业 & s$ x0 ?- P3 n
EnumMonitors 枚举可用的打印监视器 & S1 \6 p. _* j9 c& F
EnumPorts 枚举一个系统可用的端口
: }4 c3 A+ o& G/ wEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
7 F% G7 b- e' R/ i7 h$ K9 ]EnumPrinters 枚举系统中安装的打印机
1 @! V3 s9 f7 A) @: Z6 |! zEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
- U8 F) Q- t) W9 C+ h3 xEnumPrintProcessors 枚举系统中可用的打印处理器
" v- c9 R. E' H, REscape 设备控制函数
. t8 |' z/ j8 O- hFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 ) C. i7 w& a9 J( W& q9 [# X
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
. A) r% _0 ?/ _% A1 \. _FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
g( l# I# z' x' kFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 " i7 J9 q6 N( m, I, U# Y
GetForm 取得与指定表单有关的信息
( h1 r) o1 \) WGetJob 获取与指定作业有关的信息 $ l- Y2 ?7 F2 j. D
GetPrinter 取得与指定打印机有关的信息
6 n3 U% T4 u( RGetPrinterData 为打印机设置注册表配置信息
7 O) P3 n& r( j) {& `/ wGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
5 h" y6 t# I9 M2 F7 C) h1 t: y" @GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
* O& u- E# z5 LGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
$ @ q" I/ n+ t6 U5 e% q! ~. ROpenPrinter 打开指定的打印机,并获取打印机的句柄
3 [% Z% f9 q4 u, ?/ BPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
" r4 E' v, Q" a8 A3 _PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
: g. X7 L) Q, e) j) f- Z1 ?1 H; j" QReadPrinter 从打印机读入数据
" h9 t, i6 H, C2 N$ mResetDC 重设一个设备场景 # s0 ?& \, W3 u- {' n# A
ResetPrinter 改变指定打印机的默认数据类型及文档设置 8 c1 {% N/ Y% Z) L: r
ScheduleJob 提交一个要打印的作业
: A4 z* R) |0 i' T" FSetAbortProc 为Windows指定取消函数的地址
" I4 K. U$ r+ m" c9 k: V- ESetForm 为指定的表单设置信息
a1 a+ w1 Q F2 S3 u* I6 zSetJob 对一个打印作业的状态进行控制 # p, Z5 s- { r+ o# h1 Q- v
SetPrinter 对一台打印机的状态进行控制 h3 L2 z+ _5 _8 @6 v0 Q' _, Q
SetPrinterData 设置打印机的注册表配置信息
1 K m% r7 ^( o2 _# [4 J$ iStartDoc 开始一个打印作业
( @& Z) J/ ]3 M# WStartDocPrinter 在后台打印的级别启动一个新文档
5 P8 h# n0 a% x; I8 ^$ v8 v6 wStartPage 打印一个新页前要先调用这个函数
0 |! J1 e. s3 E* aStartPagePrinter 在打印作业中指定一个新页的开始 ; D8 ~, r; P3 E0 r: G2 X/ ]) _
WritePrinter 将发送目录中的数据写入打印机 " m7 k6 w$ B2 d+ q; N$ L/ I
5. API之文本和字体函数
9 g9 {# G) o8 w$ fAddFontResource 在Windows系统中添加一种字体资源 g6 [; Z& P4 X8 H6 O8 ]
CreateFont 用指定的属性创建一种逻辑字体 / R5 A$ d& u) k- r1 |* i6 r
CreateFontIndirect 用指定的属性创建一种逻辑字体 0 [$ T1 P% r$ B+ I+ E
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
3 D A2 ]0 h9 u0 k. SDrawText 将文本描绘到指定的矩形中
8 n" n8 Q5 R2 a E# u) Z1 jDrawTextEx 与DrawText相似,只是加入了更多的功能
4 H2 D( j, \" S( W7 E& ]% V. SEnumFontFamilies 列举指定设备可用的字体
. A& e3 r; i, s9 TEnumFontFamiliesEx 列举指定设备可用的字体 " N7 O3 r6 A9 l- \& V! \
EnumFonts 列举指定设备可用的字体 3 _5 [& w2 R* _# ?! `# X i
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
8 u% F% [* H* V! z5 oGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
+ h, F6 v2 m' @% o7 |- UGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 6 Z7 m% C9 f! Q: k4 Y2 e6 a1 L
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
2 Y* l( E/ {# v- X$ Y0 qGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
& p" h( K5 D/ G6 a$ yGetCharWidth 调查字体中一个或多个字符的宽度 ! Y3 u/ T4 g$ T) [
GetFontData 接收一种可缩放字体文件的数据 " B) o( e) f8 K4 v' A& X$ n$ v
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 0 E& u" U- Z( ]
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
0 _3 V3 q5 D3 x CGetKerningPairs 取得指定字体的字距信息
9 Y" x9 S( z K% r& DGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
- R) [: V# f9 ]* K+ bGetRasterizerCaps 了解系统是否有能力支持可缩放的字体
5 f2 {1 Z7 U$ u( zGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
. x! ?2 c' A/ l3 l- oGetTextAlign 接收一个设备场景当前的文本对齐标志 ) i, _7 E3 j6 e9 ]$ Z
GetTextCharacterExtra 判断额外字符间距的当前值
* [& X) |- Q B3 ^) T$ Q. {, pGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
; Z4 U$ b9 N" d! t# @, dGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
* r! [ p* C2 v% \8 `+ cGetTextColor 判断当前字体颜色。通常也称为"前景色"
- e% z( }- Z( x7 s, C3 s* T) LGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 - o' t" |& w. w# B% x$ y' \# L6 m
GetTextExtentPoint 判断一个字串的大小(范围) ; x# S; r5 c! X1 j5 R" k* @6 X3 F
GetTextFace 获取一种字体的字样名
! j5 z. ]- I7 v& B1 nGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 8 e4 e" b3 k* ~& j$ U I0 e4 p
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 ) P9 A% ?; P4 q: C( _3 w+ r& J
PolyTextOut 描绘一系列字串
+ ~9 L# T+ h# x& S' F8 k! YRemoveFontResource 从Windows系统中删除一种字体资源
f' Y# g/ w K1 F9 f! w! ?SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 0 l6 x7 g2 \2 S% t) _( o( g5 w
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 3 {* u* G" b: g8 f |! C+ N
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
3 }/ k" }4 |+ y3 f* W4 fSetTextColor 设置当前文本颜色。这种颜色也称为"前景色" / R/ m# {/ [6 L
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
( F" _. K: o3 vTabbedTextOut 支持制表站的一个文本描绘函数 ) C! B4 H- \8 Z8 d- q5 N. }8 c$ k
TextOut 文本绘图函数
& B4 f& F% J2 G; m4 [2 U' eWINGDIAPI BOOL WINAPI TextOut(
$ a4 a' E9 {0 D1 PHDC, //输出设备& i8 G5 t/ F8 |- _! W1 }2 _
int, //输出的横坐标
) L+ [! p& s1 e2 t1 e5 @" Z' uint, //纵坐标
3 G: b+ }$ J5 B1 sLPCSTR, //输出的文本str* m! g9 M2 X$ n8 ]% r' N3 M6 h
int); //文本的长度:lstrlen(str)- }+ y( u3 w$ h7 ^
6. API之菜单函数 + f$ x3 [4 G* s7 Q B# O! {
AppendMenu 在指定的菜单里添加一个菜单项
5 T; L" H6 Z3 R7 i6 LCheckMenuItem 复选或撤消复选指定的菜单条目
& c- W9 }4 J: y7 a4 ]5 H: kCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 / H+ x" Z) q5 O
CreateMenu 创建新菜单
" k7 P. B0 K" c8 t/ A+ UCreatePopupMenu 创建一个空的弹出式菜单
5 w: K4 J* \5 S/ ZDeleteMenu 删除指定的菜单条目
0 ?$ h ]6 B% \7 O: ?9 I+ ?" q. TDestroyMenu 删除指定的菜单 1 C/ c" V* _4 Z6 _
DrawMenuBar 为指定的窗口重画菜单 ' b5 j8 Y8 Q3 A' s% G4 x
EnableMenuItem 允许或禁止指定的菜单条目 / x! e, u n' a
GetMenu 取得窗口中一个菜单的句柄 6 r) J. i/ |. |5 C. w
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 , P6 H5 G: ?! a8 j/ p$ Y
GetMenuContextHelpId 取得一个菜单的帮助场景ID 5 P- _) F! H/ }8 @# P4 f' |; O
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 ) J6 g( l7 B8 [ x
GetMenuItemCount 返回菜单中条目(菜单项)的数量 - Y* h# v& K& ~" I' M5 J$ } \
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 8 `4 s+ [$ A: v" j# r% R
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 % n+ B( y0 I6 _( p* e. N. D
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
6 Q6 Y/ p% W8 \4 ~# o. |GetMenuState 取得与指定菜单条目状态有关的信息
4 C, y0 o" v" y3 K3 W. V( bGetMenuString 取得指定菜单条目的字串
& {9 o/ {& [8 vGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
5 b8 D! m: Y: B* p, E* b" BGetSystemMenu 取得指定窗口的系统菜单的句柄 " N- p% j; h' [0 t# _4 z
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 ( u. w, S9 ^3 l& y/ G' \3 ]: M0 H
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 7 p1 [3 F: E# s- I: m
InsertMenuItem 插入一个新菜单条目
* m7 r" O% Y/ `) b2 A1 P( z7 j: CIsMenu 判断指定的句柄是否为一个菜单的句柄
8 J' O) ]* d1 W f0 \5 ULoadMenu 从指定的模块或应用程序实例中载入一个菜单
; W7 B6 u. n" \$ [2 N( `1 T' K& XLoadMenuIndirect 载入一个菜单 % c2 _5 `- x8 y+ z% Y9 C; b# k
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 0 Q+ `' Z6 b% I% Q# k8 ~' `
ModifyMenu 改变菜单条目 . s2 ]1 }/ [6 |8 D/ Y; u% U2 j; l
RemoveMenu 删除指定的菜单条目 . R9 U& E( v; q8 |: ~
SetMenu 设置窗口菜单
/ n- w9 z! ~$ K* z1 vSetMenuContextHelpId 设置一个菜单的帮助场景ID
4 |$ T. B/ F' \- S) TSetMenuDefaultItem 将一个菜单条目设为默认条目
3 `, @, A, _2 q& T0 W1 nSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
. ?8 g5 E% X* g! v% GSetMenuItemInfo 为一个菜单条目设置指定的信息
3 l" }: a2 m7 @4 p) [% A; cTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
7 F& a8 v; q& h; w+ r1 xTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
6 D3 ~+ b8 h* c2 E3 g' N8 Y3 X& e7. API之位图、图标和光栅运算函数 % T' M4 u; z; }
BitBlt 将一幅位图从一个设备场景复制到另一个, h: x$ z" `) b7 G o2 S
WINGDIAPI BOOL WINAPI BitBlt(
) p% C0 ?3 x8 ]+ d, bHDC, //目标HDC
7 q* r; b: f! q \ L& a/ l }, Uint, //X1
c0 M0 R! k4 B7 p! Vint, //Y1! ~% \' q: w6 E, Y8 U( ]9 @ A
int, //width: g( T5 R+ l- b# t* W4 U4 x6 R
int, //height) e9 \6 E- ? b5 W) Y# A
HDC, //源HDC- ?8 G1 \0 D& E3 B2 ]1 N
int, //右边的距离' z* n2 v, e ^7 [" _' _7 u( ]1 Q$ C4 J
int, //??
8 u: v. W; U# j, @) g5 Y9 X# ~3 BDWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
. Q& r8 a( Y3 I1 ]( B5 V7 X7 uPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS/ ?$ S/ S$ B8 P4 Z0 \8 ]
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
9 Y6 J* {& H }" wCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
8 j$ ~% X, k$ cCreateBitmap 按照规定的格式创建一幅与设备有关位图
" F$ P# {- J4 @# B* L; ~CreateBitmapIndirect 创建一幅与设备有关位图 7 J/ `+ c7 w* _- B) J8 @# s
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 5 `- f3 ^4 ~! o
CreateCursor 创建一个鼠标指针
1 X/ U6 R* f- U; j& ?, i+ qCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
3 S+ c+ {( s$ i( HCreateDIBSection 创建一个DIBSection
$ y& ^) C6 P, Z9 hCreateIcon 创建一个图标
" H! g8 z9 i% @. z5 P# sCreateIconIndirect 创建一个图标 ! c ` O% @6 ^/ ?! t6 M0 t( A' w
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
3 k( J' t! h- G" X9 R7 n; wDestroyIcon 清除图标 5 J/ s( O4 h, a' V, c- {
DrawIcon 在指定的位置画一个图标
" q* e, }) m5 m) C+ ?' k6 `6 y% i* iDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
# Q3 u$ [. f8 d- l( LExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
- e' o f. t2 FExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 2 X" L% D" M4 k3 o. j
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
X' q' c6 V0 y" j1 X. U; {4 FGetBitmapDimensionEx 取得一幅位图的宽度和高度 # z; U. c' n: }6 b7 f
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
! Z2 @8 w3 Z L5 K: R2 y# Y- GGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 # ~& {$ }6 A& O& w0 A
GetIconInfo 取得与图标有关的信息
9 `3 Y( S, K8 \6 C6 l5 uGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 , e, {/ G F* J9 i
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 ' i" W& u% C4 P0 X# d. s
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 1 {2 k) w, @$ {' n) q. Z2 H% ^
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 5 W# @6 o$ {+ T# r
LoadIcon 从指定的模块或应用程序实例中载入一个图标
( \- B& I2 o! {* D3 uLoadImage 载入一个位图、图标或指针 0 C6 q$ q4 C# P- q" |6 \
HANDLE LoadImageA(; J# ~$ i) C) A2 U: Q! |
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()5 }3 B; s3 e+ Y' B3 k
LPCSTR, //资源所在的目录:c:\help.bmp
( L1 h" ] z9 `0 m% {9 v UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE0 V+ P: ]) K# w# x" `
int, //, Q6 N Y* E- E
int, //
: ?5 Y B; U) {& n! K' FUINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|: N/ t/ J( k5 p9 N5 C/ ]! D
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|5 c9 N+ y: Z/ v, {
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
, ^* o9 b* h" MMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
: s% m# r& u0 q( M2 f6 @- ~$ ~" }PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
; g$ y. F; p" ^& t' C' `4 w7 j4 OPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 4 E. U. E8 p6 L
SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
& S" U8 N, [3 \" \3 B0 o. tSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 & S! N! v$ L+ s' Q" d
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
7 M8 t% |- }) w% T2 Z8 p5 l- y0 dSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
$ k0 |+ j2 C8 G" I! }0 p' F: DSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
4 v# \) S6 `8 ]: {4 B9 j# E$ \SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
1 t. {5 o( l: T& }. `0 FStretchBlt 将一幅位图从一个设备场景复制到另一个 / N) X) ?& x" K7 G0 V6 W: J
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
: e. S+ S7 f5 |) }8. API之绘图函数
5 }: _2 w6 P! [ E( C) t% qAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 ) [, m; i0 y, X7 r1 G* x* j, R
AngleArc 用一个连接弧画一条线 6 q4 Z! l: C H# ?7 }3 c- I
Arc 画一个圆弧
; w* ~( A/ i% R1 K; f4 q6 V. ^BeginPath 启动一个路径分支
: w w4 I9 o; g3 t5 bCancelDC 取消另一个线程里的长时间绘图操作
0 O, v# U. C) E) mChord 画一个弦 ; B- ?: e- N3 I' h m2 m; j
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
9 J; \" p# H8 T$ gCloseFigure 描绘到一个路径时,关闭当前打开的图形
7 d. r7 W! H: ?( `CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 7 G$ d. m* ?8 w
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) 5 f7 G* V" S5 {1 q1 g
CopyMetaFile 制作指定(标准)图元文件的一个副本 5 m5 x% n8 X$ ~" C
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
# {4 W4 ~! N$ b/ N! j- B/ p9 Z- O QCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
) i1 f9 v }" Q' B) u& t [+ ECreateEnhMetaFile 创建一个增强型的图元文件设备场景 / B( p* T; B5 u( r( k
CreateHatchBrush 创建带有阴影图案的一个刷子 5 H! s* n/ Q. l1 K
CreateMetaFile 创建一个图元文件设备场景
o% \( e/ h& Q! d! ICreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
# B/ k0 M$ U3 _, I L+ X/ b2 oCreatePen 用指定的样式、宽度和颜色创建一个画笔
! f7 }0 A: U' S2 C' X) ICreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 ) D$ r. V# g, Z1 ^
CreateSolidBrush 用纯色创建一个刷子 + b. y5 d7 A$ t& @( Z8 m; K% f
DeleteEnhMetaFile 删除指定的增强型图元文件 ( x$ d/ P2 r% y9 c: |2 V
DeleteMetaFile 删除指定的图元文件
) K" c, Y. U7 w8 @WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放/ S M8 W) y `! X( @" f
DrawEdge 用指定的样式描绘一个矩形的边框 " m4 [/ t G- Z& i% M3 o
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
2 W% Y7 h# t0 w( r8 u9 O1 RDrawFocusRect 画一个焦点矩形 - w8 I, Z" z5 V+ n5 K
DrawFrameControl 描绘一个标准控件
, j6 S8 F- S. g# W4 P% V/ QDrawState 为一幅图象或绘图操作应用各式各样的效果
, T8 I9 e9 ^# K3 P7 c5 z! hEllipse 描绘一个椭圆,由指定的矩形围绕
W$ X3 a1 f/ R7 h+ t% mEndPath 停止定义一个路径
# x2 S; W7 h+ M: Q! Y' BEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 4 {! z s# R% M- w b; U
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 4 `( Q' n( Y7 C# s0 N4 w
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
1 s0 D2 M! c- y* E& c, fExtCreatePen 创建一个扩展画笔(装饰或几何) . a0 Z, A w! \- `% Q
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 & P- g4 O/ X6 I
FillPath 关闭路径中任何打开的图形,并用当前刷子填充
r5 t% ~4 v ]0 f8 ?5 K3 F, ?; \. o1 qFillRect 用指定的刷子填充一个矩形 + o1 J$ e0 J* ]0 H; J# k( y# F- h# c- q- q
FlattenPath 将一个路径中的所有曲线都转换成线段
# z# A+ W- ?# |9 c% z8 yFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
, c( A$ N5 o8 s; s) G* {FrameRect 用指定的刷子围绕一个矩形画一个边框
* Y" R+ L! V- W9 \/ ~ m' F- }; \GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
4 ]. h9 v, f. q5 b9 cGdiFlush 执行任何未决的绘图操作 4 E$ \% O4 H( t1 G& M: i* h, d7 ?; N
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
' ^ k0 \1 C; |2 MGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 ) T9 {; w: B, p B) B
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 1 h: b8 }' _! _# n; ^) h
GetBkColor 取得指定设备场景当前的背景颜色 8 m1 z0 ~; v2 i1 s) P* D/ N( H7 }
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 ) T7 O/ C! ?% y2 ]- ]8 m* I0 V
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 - X% U5 e, {% y& i& G* p; v% ~6 w
GetCurrentObject 获得指定类型的当前选定对象
3 @3 v4 V C3 I5 u/ m5 dGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 6 e/ [' ?* V1 G& e Q# W3 d. r$ Y( I
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 ' G/ q; a9 F7 ^: i1 d" k8 E3 {
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
o$ {2 [, o4 a9 g4 V5 t3 _GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 4 i' ^2 N6 A) F
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
0 m% D+ M7 B% [# _) x2 MGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 4 c: C" G+ b6 p, {0 ^5 z
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 L; d$ z& w: m9 f4 J+ B' N
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 . V, v* }( a2 |4 B
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
5 e; ^5 ` \0 u) `8 I* HGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
( N5 r; _% Y: t) b6 ]7 IGetObjectAPI 取得对指定对象进行说明的一个结构
& U! F0 b, ^2 J& d4 [GetObjectType 判断由指定句柄引用的GDI对象的类型 ; G$ I! w P" Y6 l8 R' p" i1 e0 _
GetPath 取得对当前路径进行定义的一系列数据
; b3 Z# x. @5 f+ R1 |GetPixel 在指定的设备场景中取得一个像素的RGB值
) F' }4 p& _7 p2 TGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 + X; c& m, ~7 m
GetROP2 针对指定的设备场景,取得当前的绘图模式 2 Q% ]. H) [ Q1 U
GetStockObject 取得一个固有对象(Stock) 1 l0 Z; ?5 _2 J
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 3 u4 c4 l2 q. |: j/ R: M0 {
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 ( P6 @# g6 F- x' ], f
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 % {' i! r' v$ ~8 w8 V7 q; X
LineDDA 枚举指定线段中的所有点
" b. S- }6 i$ d3 Q4 DLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 ) I# S7 F% Z- L& Q: C0 {
MoveToEx 为指定的设备场景指定一个新的当前画笔位置 . ]; l6 ~) `. C1 b" b. p3 a
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
# W; B, m8 n, I. n, f9 `PathToRegion 将当前选定的路径转换到一个区域里
! N% d; g( {" S. Z5 xPie 画一个饼图
8 q% p0 p9 r5 \+ b3 \PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 & ]" [/ Y4 V8 l# e
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 % r8 F9 a) y7 f6 b- ?7 ~; s& `
PlayMetaFile 在指定的设备场景中回放一个图元文件 0 w3 E+ C( A, W% f
PlayMetaFileRecord 回放来自图元文件的单条记录
: G+ x5 H; p( M0 ~ `, JPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 % q( P' {9 z% n5 U2 e
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 4 s |% h9 H6 Z) W% [$ {
Polygon 描绘一个多边形 : j0 [8 ]. q( o; A6 w
Polyline 用当前画笔描绘一系列线段 - \; N* j3 H! q: u
PolyPolygon 用当前选定画笔描绘两个或多个多边形
: d L' d( L: S4 j; R) aPolyPolyline 用当前选定画笔描绘两个或多个多边形
8 D! M9 s" H2 ZRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 0 A, [ U6 d, c {% u
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
5 r! y" S5 \" SSelectClipPath 将设备场景当前的路径合并到剪切区域里 " y9 ~- ]. z+ |, c
SelectObject 为当前设备场景选择图形对象
5 d' l5 j" b+ z7 |4 |% [, | WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);* w* G% k0 Q! c
SetArcDirection 设置圆弧的描绘方向 : z: {6 v' N( v0 E: r- J
SetBkColor 为指定的设备场景设置背景颜色 2 {$ W! a* y' t4 t6 @" f6 x
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
5 ~. z2 a. a7 h+ o9 w* `SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 $ M: o9 l1 R/ v# k% ~# o7 @5 ]
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
8 i$ N4 e' C. k4 OSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 + i' z* l3 \8 X
SetMiterLimit 设置设备场景当前的斜率限制 0 r' M7 c% c) I& E2 w L2 f+ G* N
SetPixel 在指定的设备场景中设置一个像素的RGB值
$ ?. C1 ]- ?; |) Y( t9 F0 ^% j) VSetPixelV 在指定的设备场景中设置一个像素的RGB值
# { f0 Z/ _ o6 a1 i7 XSetPolyFillMode 设置多边形的填充模式 6 v4 d% z9 L6 H) a) |0 U
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 3 L+ B1 a4 C3 i _% H2 f
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
! e9 P1 M, H& |StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
7 o5 P1 |: K$ NStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 # W, \9 b/ A: g' E L5 p) y
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 3 [+ {/ W' u/ i
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
& D' P2 K# p. p: \6 o+ _1 n9. API之设备场景函数 & i* E3 U! {0 [) H2 ]
CombineRgn 将两个区域组合为一个新区域
0 z; u( e% Q4 x# h4 g1 LCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 5 w9 E& i% d5 F( x+ ^
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
7 a7 e( a4 Z- z6 |CreateDC 为专门设备创建设备场景
T' m0 ~1 J" ?0 \, q3 J) KCreateEllipticRgn 创建一个椭圆
3 G- x5 p. J L! o1 uCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 4 U, J3 K1 J% O7 I
CreateIC 为专用设备创建一个信息场景 / E9 Z' `# b: o( i. t0 n
CreatePolygonRgn 创建一个由一系列点围成的区域 ) o5 N9 K9 f: b& n' G
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 $ F* a |' A7 e0 y5 A
CreateRectRgn 创建一个矩形区域 9 V$ Y7 v( {4 g5 u. ?
CreateRectRgnIndirect 创建一个矩形区域
& E4 ~- U7 v8 r( z/ R+ GCreateRoundRectRgn 创建一个圆角矩形 9 |2 t6 t: ?0 C' s& S
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 , o0 u& E% A: Q
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 / Y" G+ E2 j, P
EqualRgn 确定两个区域是否相等 ( i! O: o# p4 V& `
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
' z5 m2 U; k$ d- |4 m3 N- X q- ]ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 + } S" ?3 e* q" b9 `. U8 u
ExtCreateRegion 根据世界转换修改区域 2 }" l# X U" ]( ?$ I
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
0 K) `1 h" p0 K" \6 N8 L% nFillRgn 用指定刷子填充指定区域 Q5 P V3 P* o6 o. N6 M( B+ D
FrameRgn 用指定刷子围绕指定区域画一个外框
' G6 V' |" b4 q7 f/ g# CGetBoundsRect 获取指定设备场景的边界矩形 2 |) L5 u% p) j- J+ ?% s
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 8 r5 N, B S! v& y2 I; g' E
GetClipRgn 获取设备场景当前剪裁区
/ X$ ?, l8 b b0 Y0 x) zGetDC 获取指定窗口的设备场景
* ]" R/ Q% j, r! I6 G# kGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
6 x. V2 ^6 X2 d: V3 P- d2 dGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) + \! g. F' k7 P- v0 e
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
8 N8 G, o( a3 [) GGetGraphicsMode 确定是否允许增强图形模式(世界转换)
+ S2 E4 g: a% n$ f+ oGetMapMode 为特定设备场景调入映象模式
+ n4 W9 L6 I# C. j( e, D0 qGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
' A/ e8 }/ y. x$ GGetRgnBox 获取完全包含指定区域的最小矩形 7 c& h( p2 Y8 x8 u
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 * _/ l( c, v$ F3 \
GetViewportExtEx 获取设备场景视口(viewport)范围
. L+ K& ?. A/ q' c; ^# T, l2 dGetViewportOrgEx 获取设备场景视口起点
& i5 z, y4 y% F/ P% A0 G: t1 u, j0 ^9 PGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
3 |# J7 W% u0 W. }( w6 F0 dGetWindowExtEx 获取指定设备场景的窗口范围
5 F8 R: e# l, ]# zGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 1 E7 N* S9 q2 i6 h$ K
GetWindowRgn 获取窗口区域
0 t+ t ?( o2 ^6 EGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 ) B4 A( ~8 F* m' j# ^* ~1 B- q" O$ q
IntersectClipRect 为指定设备定义一个新的剪裁区
! F" u ~0 S+ M+ N/ pInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 5 J8 N: p, H; ?8 Y \/ {7 n
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 * O6 l* c. r$ I' [2 b, K
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
0 [1 z2 q a0 i/ ?ModifyWorldTransform 根据指定的模式修改世界转换 z; N5 y8 x, `; c2 I
OffsetClipRgn 按指定量平移设备场景剪裁区 . ]* Q( s- Q+ _2 X1 a8 O
OffsetRgn 按指定偏移量平移指定区域 : S* V& z; O4 _) N. H$ B8 N5 a% k
OffsetViewportOrgEx 平移设备场景视口区域
8 L; s" C% t& {! Z) \4 u0 c# LOffsetWindowOrgEx 平移指定设备场景窗口起点
# t, U9 _5 Z0 q* p/ \PaintRgn 用当前刷子背景色填充指定区域 @' @' ?2 E, }0 _* C0 E
PtInRegion 确定点是否在指定区域内
* f i* b1 D* q/ Q3 N2 V$ [PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) `: T7 F, H5 G* \! R
RectInRegion 确定矩形是否有部分在指定区域内
: z% g% f& P; [, VRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) . [: n0 H( X4 b9 F$ P
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
% y4 w1 h. X! s/ G/ G% rRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 ) l. A& n X6 o" ~
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 ( E5 q2 R- B+ H. Z* Q
ScaleViewportExtEx 缩放设备场景视口的范围
, A1 e/ v) K, L3 q2 M) h2 MScaleWindowExtEx 缩放指定设备场景窗口范围
$ W: K- z3 s# g9 D& r: l' ~; SScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
9 ]1 ]5 X5 t1 n8 X8 ?+ PSelectClipRgn 为指定设备场景选择新的剪裁区
# J, z3 Z: E# P. a' J" cSetBoundsRect 设置指定设备场景的边界矩形
& ]$ `4 Q3 ?( Y7 {SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
I. J# l! i: ?- dSetMapMode 设置指定设备场景的映射模式 6 M* \$ b. m8 N% |
SetRectRgn 设置区域为指定的矩形
& z3 d: d& w0 c% P8 S3 G( LSetViewportExtEx 设置设备场景视口范围
) U+ J3 `( o3 |SetViewportOrgEx 设置设备场景视口起点
- t7 z [# C6 Z* L+ i" j* WSetWindowExtEx 设置指定设备场景窗口范围
5 l9 k$ c5 @8 T; @0 [9 sSetWindowOrgEx 设置指定设备场景窗口起点 2 |1 ] ~/ r# A/ |4 e
SetWindowRgn 设置窗口区域 9 k, f/ q2 w4 @9 w* w
SetWorldTransform 设置世界转换 8 ]$ k/ l' p; A$ @" `0 q" N
ValidateRgn 激活窗口中指定区域,把它从刷新区移走
, }- w1 u" d. m4 OWindowFromDC 取回与某一设备场景相关的窗口的句柄 , p" k% b7 k0 _* L$ e
10. API之硬件与系统函数
. r" u; |* x! ] EActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 2 t' t( x+ [# N
Beep 用于生成简单的声音
# h) a3 G. Q4 [* {+ QCharToOem 将一个字串从ANSI字符集转换到OEM字符集 6 I% c/ b! ~. |. M- w
ClipCursor 将指针限制到指定区域
. E ]2 U0 k- p7 F$ G. GConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
( M5 w9 b, L) u7 N/ Z9 Z: HCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 1 X {$ o% d' C% r
DestroyCaret 清除(破坏)一个插入符
8 w5 E" Q9 O, U7 |6 E2 ]9 K, SEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 1 q, t3 K6 N. C: J
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
6 j7 u; K" D9 R/ q# C$ WEnumSystemCodePages 枚举系统中已安装或支持的代码页 , b! [3 r P$ B! p6 R2 V
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 3 w% p9 [' S1 @ D2 f
EnumTimeFormats 枚举一个指定的地方适用的时间格式
+ q. o: H! S. K5 Q% J8 mExitWindowsEx 退出windows,并用特定的选项重新启动
6 r2 r5 W( K) x9 R8 R# l. T3 a WINUSERAPI BOOL WINAPI ExitWindowsEx(
; \( y% i: S7 c* l3 y5 e2 S7 rUINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
: o3 c1 \* b' \: z DWORD dwReserved); //05 w7 |1 j0 v: S. K4 o- D6 Q' z
ExpandEnvironmentStrings 扩充环境字串
2 I, v" D+ ^) \" z( R+ ZFreeEnvironmentStrings 翻译指定的环境字串块 * ~0 }; q' Q; V' s
GetACP 判断目前正在生效的ANSI代码页 6 ^' {4 j4 V9 L" L. S5 H& s
GetAsyncKeyState 判断函数调用时指定虚拟键的状态 " U( r3 o( y! ~7 R
GetCaretBlinkTime 判断插入符光标的闪烁频率 / D: r- P# w6 N+ k6 Y9 _
GetCaretPos 判断插入符的当前位置
) }; {* ^0 M5 P0 `* T# b6 T$ x. v8 vGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 7 T' e, L9 y! D4 n) F
GetCommandLine 获得指向当前命令行缓冲区的一个指针 2 w& ?+ R! q Y& ^8 j1 N
GetComputerName 取得这台计算机的名称 ' ]' u+ N0 i8 X) Y
GetCPInfo 取得与指定代码页有关的信息
( Z2 l- \# k; a$ i- \; v# Z% DGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
6 ] k- u$ {1 q) m, J8 YGetCursor 获取目前选择的鼠标指针的句柄 # L8 v7 t j1 P7 n8 v
GetCursorPos 获取鼠标指针的当前位置 3 H! P8 D% A9 Z8 [1 y
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
6 _! w2 Z, j6 }6 y! K1 OGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 ' {( T9 X* `2 l4 g
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
0 h4 z$ ^, s N0 f3 OGetEnvironmentVariable 取得一个环境变量的值
" `) \, O+ R; F) y5 W6 YGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
* V+ n `3 P: |4 O9 F( ~& _) hGetKBCodePage 由GetOEMCP取代,两者功能完全相同 ; l% P, O S* h/ o% r5 K
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 : r) R7 `$ Y! }# G l+ v, o
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
) Z6 h" p2 Q- t, Y$ F0 d* pGetKeyboardLayoutName 取得当前活动键盘布局的名称
% U# e e& j- bGetKeyboardState 取得键盘上每个虚拟键当前的状态
' X/ W; t5 f; v0 w" L' B BGetKeyboardType 了解与正在使用的键盘有关的信息
, ]5 L; y/ ~9 y3 F* h6 @GetKeyNameText 在给出扫描码的前提下,判断键名
$ d5 A+ U1 H* K g) M3 @GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 $ I4 H& D. X' K. `7 n8 `- F5 r
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 . J! b# \8 d, c- ]. b9 f
GetLocaleInfo 取得与指定"地方"有关的信息 " K8 S1 ] } n# F: v
GetLocalTime 取得本地日期和时间 ) R1 F* V' H$ D6 Y0 Z5 Q0 R
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 : k6 z0 }" }8 z1 s i$ y9 ]
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
* x% B/ H3 i2 ?" S4 |& M# {2 N8 O2 HGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 . R |2 y1 G2 {% j7 M: D5 l
GetSysColor 判断指定windows显示对象的颜色 4 D8 U6 T9 x ?" M* Z5 W
GetSystemDefaultLangID 取得系统的默认语言ID / W1 r; i7 k4 Y4 d
GetSystemDefaultLCID 取得当前的默认系统"地方"
2 p" v; h0 K6 o+ `GetSystemInfo 取得与底层硬件平台有关的信息 1 h- l2 c7 N7 }6 p* y( T
GetSystemMetrics 返回与windows环境有关的信息
) X* j3 e( W6 f6 I; p: m% ]GetSystemPowerStatus 获得与当前系统电源状态有关的信息
1 M' f7 R0 r, ~+ p d* Q2 \GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
' y8 C* E3 Q$ X. [5 uGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
" a- m7 c" y4 z1 J( ^" q+ v) t: vGetThreadLocale 取得当前线程的地方ID
& V# V$ e1 ~8 h- t" O5 V$ K1 P6 l1 aGetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
2 b5 s* k6 }; z, oGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 + B8 j% N; C5 m3 V |3 h6 d
GetTimeZoneInformation 取得与系统时区设置有关的信息 ) z& T& \) \+ F5 ?
GetUserDefaultLangID 为当前用户取得默认语言ID 9 U& z, a( p- F) C- C d
GetUserDefaultLCID 取得当前用户的默认"地方"设置
- O. f, q9 u. ?9 F2 b( T6 R! LGetUserName 取得当前用户的名字
5 M& X/ s& V2 N: ^, y* NGetVersion 判断当前运行的Windows和DOS版本
# N4 l% ]$ P- I# SGetVersionEx 取得与平台和操作系统有关的版本信息
: J" q( V! m1 ZHideCaret 在指定的窗口隐藏插入符(光标) 8 L8 n" q& n' g! e! }, z
IsValidCodePage 判断一个代码页是否有效 9 K( M/ g8 ~+ D6 b
IsValidLocale 判断地方标识符是否有效 + l( D& q* ]4 N
keybd_event 这个函数模拟了键盘行动
! [ X" ]3 n9 q- iLoadKeyboardLayout 载入一个键盘布局
+ Q5 g% K1 m t0 _! IMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
, M4 K: E( ~$ @1 n3 S5 VMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
7 u0 Q# X& q' ^MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 - d1 ]0 v: Z z9 e$ P
mouse_event 模拟一次鼠标事件
0 o" ^8 N" g/ F) ^1 P3 }; }OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
1 X: M' N. H9 n. Y- n9 ]" j( o3 G" h) yOemToChar 将OEM字符集的一个字串转换到ANSI字符集 " p2 D& f* j4 m2 R
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 J. F$ f3 o+ L, O$ F3 j# P
SetCaretPos 指定插入符的位置
2 _0 w" f$ Y2 QSetComputerName 设置新的计算机名
I/ k- j, `8 {% S7 ^" R% F9 ySetCursor 将指定的鼠标指针设为当前指针
7 \, i1 ~* S$ {3 \, kSetCursorPos 设置指针的位置 , h! d5 C6 f' T/ z' \
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 / `: v9 s7 a) [- ]& A3 A
SetEnvironmentVariable 将一个环境变量设为指定的值
% a ~$ ?+ l/ n; t' V7 d2 NSetKeyboardState 设置每个虚拟键当前在键盘上的状态
/ t& h7 s5 O3 d/ vSetLocaleInfo 改变用户"地方"设置信息
5 I: {- p/ Q+ {; P! u* k2 v8 dSetLocalTime 设置当前地方时间
5 Z# H# K$ ?" m( s) d( rSetSysColors 设置指定窗口显示对象的颜色 9 W3 \- x2 d0 X+ h
SetSystemCursor 改变任何一个标准系统指针
9 ~; z' ^& \7 @ YSetSystemTime 设置当前系统时间 ' G# p& S* ]) w1 f" j9 z5 b
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 7 r, S0 v) W# \0 o3 c. u9 m) w) A" x
SetThreadLocale 为当前线程设置地方 $ g& ]+ A/ ?2 D0 H
SetTimeZoneInformation 设置系统时区信息
V" \; \! Z3 m- v4 bShowCaret 在指定的窗口里显示插入符(光标)
( B, h/ Y* ]4 m* B. dShowCursor 控制鼠标指针的可视性 8 o$ n. L, n5 H' Z# O
SwapMouseButton 决定是否互换鼠标左右键的功能
" ^( x: {, m% e; L$ P! R: TSystemParametersInfo 获取和设置数量众多的windows系统参数
' H- R& Y- ^, o" }; {SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 9 d% `/ G. |% x9 `
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
2 T& f# q: Z8 X w& v7 KToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 ' u; C& O6 v4 n( {
UnloadKeyboardLayout 卸载指定的键盘布局
, u. Q; @/ U2 B% X9 }VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 $ s9 f1 G6 L0 w$ l V
11. API之进程和线程函数 $ R" S# c0 o c
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 & g6 i; g( k4 G/ Y
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 5 S% g+ i$ [$ `# V
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
& ^) w+ F; H' {2 eCreateEvent 创建一个事件对象
z% C5 M: u1 v1 O, C+ TCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) ( D' N2 E$ M" {% z
CreateMutex 创建一个互斥体(MUTEX)
6 n; C! b3 C! bCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 & S6 r+ p: q Y
CreatePipe 创建一个匿名管道
8 ]% M, V6 E6 w, S, ^: A7 h* t8 \; TCreateProcess 创建一个新进程(比如执行一个程序)
" i/ q/ J% q+ R8 Q3 n/ uCreateSemaphore 创建一个新的信号机
) ]8 v# U, r; SCreateWaitableTimer 创建一个可等待的计时器对象
' O) b6 s4 ]* WDisconnectNamedPipe 断开一个客户与一个命名管道的连接 / u2 Z+ o/ C6 }6 Z# X
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
6 M; D/ @" x5 m$ f4 ]$ YExitProcess 中止一个进程
4 R+ `- U( g3 {; p/ zFindCloseChangeNotification 关闭一个改动通知对象
- i/ |/ P1 e. r/ L6 }" SFindExecutable 查找与一个指定文件关联在一起的程序的文件名
0 `! X# ^& ?; I3 b) o( zFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 / }, V6 n% u) D9 z' k
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 J. p/ L9 W* Z8 w8 }
FreeLibrary 释放指定的动态链接库
, p, S9 T" F8 `) K8 u4 R6 [GetCurrentProcess 获取当前进程的一个伪句柄 3 z4 h7 `% x) w0 C0 ^
GetCurrentProcessId 获取当前进程一个唯一的标识符
- ?& V0 C8 {( TGetCurrentThread 获取当前线程的一个伪句柄 * R2 i' v3 C% l; V* p9 @1 O
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
. |9 S5 i$ Y# e2 }GetExitCodeProces 获取一个已中断进程的退出代码
2 D0 C5 H3 j$ F# GGetExitCodeThread 获取一个已中止线程的退出代码
4 ^0 o$ C4 n! x4 lGetHandleInformation 获取与一个系统对象句柄有关的信息
$ M1 S! Y O) a! t6 F& U- @GetMailslotInfo 获取与一个邮路有关的信息
( b, b- Z- K- D1 ]GetModuleFileName 获取一个已装载模板的完整路径名称 / }1 J& {5 y$ G5 P+ D# p) Y
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
2 H' y4 m2 D/ \( Z GetModuleHandleA(LPCSTR lpModuleName);0 l: ~4 n7 a6 X+ _5 X* R
GetPriorityClass 获取特定进程的优先级别 & n' I: C$ x8 x0 ^, f n
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 * P& W9 w2 Z4 c) h
GetProcessTimes 获取与一个进程的经过时间有关的信息
, _% _6 q5 g# E( _* R5 u$ FGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
8 \; N4 e! x# u7 W5 EGetSartupInfo 获取一个进程的启动信息 4 B# ^; A- M+ i' f9 k& l
GetThreadPriority 获取特定线程的优先级别
) k) f" h$ f+ P" q4 RGetTheardTimes 获取与一个线程的经过时间有关的信息 3 T/ F! g) V1 M( p: S
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 6 S+ E4 ?$ J; W% \/ u
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 ; p5 g7 v( W1 d8 p. J1 t9 V
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
8 n0 K0 `7 ?+ ` ? yLoadModule 载入一个Windows应用程序,并在指定的环境中运行 : i: f x3 w: O a" L+ q1 b
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
]/ w$ r) G. e$ x0 {SetPriorityClass 设置一个进程的优先级别
8 f) t" c1 [$ S; {6 x6 \SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
/ |1 B6 ^# ] V( P8 x9 ESetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
0 m& u, T% W& ?2 r, }& \5 PSetThreadPriority 设定线程的优先级别 * G4 h6 K1 L. s6 T- H" E
ShellExecute 查找与指定文件关联在一起的程序的文件名
1 d; |3 C3 \5 A4 u5 JTerminateProcess 结束一个进程
) y- W9 e. D2 ~1 CWinExec 运行指定的程序 4 {- [+ Z6 t) T/ y F- D
12. API之控件与消息函数
+ b) Y5 J, y2 z3 Q9 w+ h+ y+ TAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 * K' A) o) K2 @$ H, M v3 z
AnyPopup 判断屏幕上是否存在任何弹出式窗口
, T6 Y& c3 d$ K8 i7 g% G3 J6 s" VArrangeIconicWindows 排列一个父窗口的最小化子窗口
" D" @) Z& t/ h' ?; jAttachThreadInput 连接线程输入函数 ' y4 A& x" n: z1 l0 L
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 - _8 K5 W9 v' Q ]
BringWindowToTop 将指定的窗口带至窗口列表顶部 / g& A/ g( P4 a. G
CascadeWindows 以层叠方式排列窗口 3 r1 t v- p7 G' a- K/ D
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 5 T8 b! s1 p/ ^% s% x1 |2 L: Z0 V
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
* r' @+ N0 s& S6 B* oCloseWindow 最小化指定的窗口
& Q" {" p& d8 Q% m* Z& u" HCopyRect 矩形内容复制 4 C0 G5 t$ V! y, q! \+ ]
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
3 v' q- }, v c2 C" Y' R' uDestroyWindow 清除指定的窗口以及它的所有子窗口 2 v- F0 H7 S. L$ K
DrawAnimatedRects 描绘一系列动态矩形
' ?' k2 G* T6 G7 K5 l( S! tEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
" ?8 \! n, A0 J' L# {# L. rEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 2 a$ z& e! t5 k5 e/ m
EnumChildWindows 为指定的父窗口枚举子窗口 9 o; l* K ]2 f9 n* `! r h
EnumThreadWindows 枚举与指定任务相关的窗口
, @! d( @8 }* J3 b) w6 _EnumWindows 枚举窗口列表中的所有父窗口
# r% v6 g4 H( |% X0 `+ l D/ REqualRect 判断两个矩形结构是否相同
* M& @: s* a2 T/ P; j2 ?, F( }+ ]3 JFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 0 l- t( D) U( N5 z* {# y
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
4 @0 }! y6 c; j& r! I1 j) ^FlashWindow 闪烁显示指定窗口
# v/ B% o9 i; } E/ p. B4 Y. | TGetActiveWindow 获得活动窗口的句柄
5 w2 ?9 u1 ]5 YGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) 3 M) e$ Z% C ]/ h
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
) t& R/ ?1 B# S8 V3 yGetClassLong 取得窗口类的一个Long变量条目
) B5 W" r2 k0 IGetClassName 为指定的窗口取得类名 9 l' H2 e& i _* c
GetClassWord 为窗口类取得一个整数变量
- A, i6 A( v! l( b eGetClientRect 返回指定窗口客户区矩形的大小
* e* R! @9 Z% v& n8 Q; t! YGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
2 H! J. ?0 l* g4 F7 N* GGetFocus 获得拥有输入焦点的窗口的句柄 # C! v0 w5 `7 g$ e6 d r2 X: z
GetForegroundWindow 获得前台窗口的句柄 ^4 w3 w8 `) q
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
! o1 @9 w+ F" a8 e' b$ X+ pGetParent 判断指定窗口的父窗口
) o7 I- Y) @. p9 M+ D. u+ A2 EGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 e! i q3 i, A+ `4 A p3 D
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 * v- W) V3 D3 z2 U! z1 {5 y
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 ' I9 T6 S' i( \; f. D
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID 9 b- K- n$ j5 W) u3 V7 Z
GetWindowLong 从指定窗口的结构中取得信息 2 W( a9 _) x- B% C, Z7 z' E1 A
GetWindowPlacement 获得指定窗口的状态及位置信息
7 B8 l. P/ Y0 TGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 & i' N l! T1 q
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 " h( E4 K* ^0 ~! e: e8 p6 m
GetWindowTextLength 调查窗口标题文字或控件内容的长短
. {9 \0 L8 z% m3 \5 M5 WGetWindowWord 获得指定窗口结构的信息 7 ^ J/ A5 C1 {. b- L
InflateRect 增大或减小一个矩形的大小 % {1 }- k. Z- H. A4 d
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 / b6 ~* f1 H v
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 , ^' Q" ^$ z9 z% O$ n/ R' j3 M, B
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口 ) G; y. T* s/ B l S5 b8 h
IsIconic 判断窗口是否已最小化 / f( {1 r. @- M
IsRectEmpty 判断一个矩形是否为空 # b1 w9 k% ~" u, Y' v. ?) E/ }: F
IsWindow 判断一个窗口句柄是否有效 9 r& Z2 O# }8 o) V/ Y" q
IsWindowEnabled 判断窗口是否处于活动状态
/ w, z) S a* `# X) Y$ rIsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 ) Q, ?6 T! }' z( {* x( o
IsWindowVisible 判断窗口是否可见 2 m& D% {7 c {) X
IsZoomed 判断窗口是否最大化
: r+ Q6 A8 I# `. z. [8 T3 R) ULockWindowUpdate 锁定指定窗口,禁止它更新 ) n1 y8 G8 Y5 W+ w- Y' K
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 7 ~' G8 q, U2 _0 o G/ k; S$ O- P1 O
MoveWindow 改变指定窗口的位置和大小
7 r+ P! c' s1 A; Z! LOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
# t1 |. r! T8 GOpenIcon 恢复一个最小化的程序,并将其激活
0 a0 D( g( K0 H- \6 APtInRect 判断指定的点是否位于矩形内部 + A; }0 E% X! r- U( x
RedrawWindow 重画全部或部分窗口
* A1 s$ h `' R" C4 A; _' ^+ iReleaseCapture 为当前的应用程序释放鼠标捕获
8 G; B+ B8 Q0 N+ z0 K) B. k' b7 jScreenToClient 判断屏幕上一个指定点的客户区坐标
8 }9 q6 D- X' h0 @0 v6 M ~ScrollWindow 滚动窗口客户区的全部或一部分 : A! [. U: | S/ F+ w: @5 F
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 5 { x7 g; O' m* ~' g w
SetActiveWindow 激活指定的窗口
. J; {$ ]3 ~8 @: kSetCapture 将鼠标捕获设置到指定的窗口
. E. o9 B% d9 m- P1 K1 |( nSetClassLong 为窗口类设置一个Long变量条目
8 }& V1 b, l- t4 [% ~, ~SetClassWord 为窗口类设置一个条目
" y3 `1 }7 S i2 ASetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 , t0 u' k# e, H& J" ^
SetForegroundWindow 将窗口设为系统的前台窗口
) q: n) d& m% H. g P" BSetParent 指定一个窗口的新父
6 R# S2 O, o$ T$ l$ U* U$ ? N6 kSetRect 设置指定矩形的内容
, ?3 k h3 N' B" E+ T0 a( U: S+ wSetRectEmpty 将矩形设为一个空矩形 / L) Q7 ~; C; i, O& p5 |
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID , h+ u3 o/ C; r$ |- Q- }6 Q/ f
SetWindowLong 在窗口结构中为指定的窗口设置信息
3 M; l& p* t$ GSetWindowPlacement 设置窗口状态和位置信息 1 q6 l# n2 i1 H. S- R! w+ I( o% k
SetWindowPos 为窗口指定一个新位置和状态 & k; L; L) c* l% e- F
SetWindowText 设置窗口的标题文字或控件的内容 - Q J$ v$ U3 Z f2 Z1 U5 e
SetWindowWord 在窗口结构中为指定的窗口设置信息
; Y7 ~6 @5 h: F6 |$ d/ {1 s3 s2 h& h$ VShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
6 _6 k) @) ~: [; g! }7 gShowWindow 控制窗口的可见性 ' S' }0 W% R" l( T7 J
ShowWindowAsync 与ShowWindow相似 ! `( a: A4 y2 y4 N* ~$ p
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 % Y+ n7 v2 k/ R/ I
TileWindows 以平铺顺序排列窗口
2 l; a$ e" M) @4 M4 p* w& e5 WUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 / u: T! d9 w, F7 G" j! f
UpdateWindow 强制立即更新窗口
5 M, `( {# ~' c! NValidateRect 校验窗口的全部或部分客户区 " C+ M0 v; h5 V" Q c
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
+ M& A- Z. P" h, x高级音频函数—参看《VC++ 编程指南.chm》11.6
+ H' ~0 }. H2 z) L; h Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。& H9 E; P3 |0 M3 S
BOOL MessageBeep(UINT uType);1 B1 n2 t9 p$ l) R7 g
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。5 w% H* B# m6 G6 Q8 v
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。' K0 v7 r; u& X
级别
* t4 L/ I* }, e. g( R | 描述
# Y. h q/ ? P% Y! N9 \" E' c | -1 " U* V4 P9 I' _# {" z3 T+ [
| 从机器的扬声器中发出蜂鸣声。
* C- t3 R. M6 g. e4 |3 d# O | MB_ICONASTERISK
! r: I2 A- G+ }+ t1 ^ | 播放由SystemAsterisk定义的声音。
$ i' f8 J# n% t3 `4 ? | MB_ICONEXCLAMATION 4 X, h/ w2 ~3 K) Q# h
| 播放由SystemExclamation定义的声音。 5 a8 e: m/ L7 e9 r
| MB_ICONHAND
. B6 d- `( e/ Q6 K1 p7 M | 播放由SystemHand定义的声音。 # s+ r+ Q4 [6 `
| MB_ICONQUESTION & x8 R! k( e0 y' p1 C$ d9 @" U
| 播放由SystemQuestion定义的声音。
4 P4 Z9 q% G8 l: i4 y3 S6 ] | MB_OK
5 n C5 f( L3 u+ ^% q/ t1 i | 播放由SystemDefault定义的声音
% ]; p7 Q9 I2 `5 s* |0 G8 q | BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
2 n- A9 X9 l; [5 t参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
. I5 l5 b, r! b+ O参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。. w- K# t* ?& l- S! W% t, p. y
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。$ {% @$ A' k( z4 L9 I# k- M1 L' o
标志
( o3 ], x, g4 P4 P1 E: | | 含义
4 M" {' [" r& s | SND_APPLICATION
% N' E/ u* K8 C% l/ ] | 用应用程序指定的关联来播放声音。 ! ]$ [8 c" z/ P2 t( e4 _% R/ p: y* z
| SND_ALIAS
3 f, J: u4 u: e% V | pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 6 L( H ?- n) _6 d% Y8 |7 ^
| SND_ALIAS_ID 6 l) m& X8 A, X- Q4 x0 u: U
| pszSound参数指定了预定义的声音标识符。
* C% x% w: w: W+ d | SND_ASYNC
" d' u9 [( Y B | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。
5 j5 V4 S, D: ~9 @7 R+ ` | SND_FILENAME 5 H5 T, P1 @0 L5 Z$ c
| pszSound参数指定了WAVE文件名。
; g! i/ x8 j$ T4 l | SND_LOOP
; N9 G2 O/ l+ G" n | 重复播放声音,必须与SND_ASYNC标志一块使用。
6 X7 Q# ~( N; {- O W q' R- R | SND_MEMORY
- q* ]" X# U+ v+ \. n- C | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 & j; [9 g- u, M% W1 `- s$ x
| SND_NODEFAULT
- z0 N0 K# M; F | 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
4 ]7 L3 o( [! X8 A& Q! U& e | SND_NOSTOP
. z# p/ V8 w8 Y3 ~" b | PlaySound不打断原来的声音播出并立即返回FALSE。 $ J) s3 R+ z4 {* f
| SND_NOWAIT
2 y$ a: _9 _/ F$ |: a | 如果驱动程序正忙则函数就不播放声音并立即返回。
0 H# D7 G. ?1 r2 U% A0 u( h4 } | SND_PURGE
- d- h+ O+ T# o) F+ | | 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 1 @0 R1 ?3 X) {; ?* d
| SND_RESOURCE - V: [+ ]* G% m$ ^" v, k
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 / G; N! ]( Z5 t9 [ @" K* a& a
| SND_SYNC
1 D( {/ ^) R, V/ Q+ ] | 同步播放声音,在播放完后PlaySound函数才返回。
& u$ p" q* h# j' l | BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);, ^! j6 V3 a; f, c) y3 C4 O
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。2 m% {. R: `1 Z# m3 M9 P+ s
MCI播放
+ R( L$ ?' y5 V. i6 u9 q; J4 l所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
( ]3 u# T- T' L8 UMCIERROR mciSendString(
* K0 k' w3 ^* O0 C& DLPCTSTR lpszCommand, //MCI命令字符串# j4 v7 I" _5 X5 t/ n( N. m
LPTSTR lpszReturnString, //存放反馈信息的缓冲区 o/ B# |- N B8 |
UINT cchReturn, //缓冲区的长度
% C9 r, P( k& NHANDLE hwndCallback //回调窗口的句柄,一般为NULL
4 S) w+ E- y# R/ v6 M); //若成功则返回0,否则返回错误码。! K* k* l/ e" }& A
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:5 n" x9 q) U+ N3 z9 @! K7 z
BOOL mciGetErrorString(; G* I. w' ]" ~4 i* q, [
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码+ o( |: O# ^# S- c2 v) D2 C& X( n; u. B
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
) G, I2 H+ ?0 N$ R9 BUINT cchErrorText //缓冲区的长度; N9 }7 m/ r2 F4 Q) z
);6 m1 V3 @( Z U4 t
|
|