|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html( t/ Z2 M; h) J. Z! ^
1. API之网络函数 - x! M# D& A1 w5 z
WNetAddConnection 创建同一个网络资源的永久性连接
6 C# ?: o# X8 P- N+ Q6 h! w. {WNetAddConnection2 创建同一个网络资源的连接
2 _0 w3 _2 `2 J& X; F! FWNetAddConnection3 创建同一个网络资源的连接 8 [, X2 m0 p2 o
WNetCancelConnection 结束一个网络连接 6 K- E; A# v2 E* v7 w" h
WNetCancelConnection2 结束一个网络连接 " H; d# \3 I( D/ N
WNetCloseEnum 结束一次枚举操作 7 \ S. h( ]; J' H. k
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
9 u0 x3 l& M: m, h8 a* E# {& I4 @WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
7 {! f6 |8 z4 E1 u+ G3 g* h( xWNetEnumResource 枚举网络资源 , w @9 L* O+ X7 `( [, l8 E
WNetGetConnection 获取本地或已连接的一个资源的网络名称
) t) }% {' x/ Y* s& d# LWNetGetLastError 获取网络错误的扩展错误信息 , y7 ^8 Y2 i# I2 D! g2 A0 F
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 3 C' P: d$ P) L& C. }( E0 A8 r' r1 W
WNetGetUser 获取一个网络资源用以连接的名字
8 [: R8 Q2 l7 J) ^WNetOpenEnum 启动对网络资源进行枚举的过程 ( |: O, t5 _; r2 f, k4 _# T+ L
2. API之消息函数 7 }4 V; S" M1 U3 R/ x
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
+ G) }5 A7 _6 L5 i2 U0 ^# NGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 # G& r6 J& ^7 K. W7 V$ e( D! {
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 3 w) g! s1 H6 _; N0 h3 j
PostMessage 将一条消息投递到指定窗口的消息队列
' f) O1 {! ^7 n& W3 q( VPostThreadMessage 将一条消息投递给应用程序 $ f0 W9 E7 ^. q& f; Y. @! Z0 g
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
- g M7 P, x/ @( }5 d' b: wReplyMessage 答复一个消息
$ v5 d8 \( O" _- j0 ?SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 8 h: y p; K. D8 \7 y% B- d6 e
SendMessageCallback 将一条消息发给窗口 / {6 S- [3 t9 B5 Y
SendMessageTimeout 向窗口发送一条消息
2 V) I7 d$ Y% r/ a$ ?" Z; \6 [SendNotifyMessage 向窗口发送一条消息 & D9 D8 ]) s2 q( g$ ~( y2 h
3. API之文件处理函数 3 h1 H5 |. j% s
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 ( n! c( T" H1 s0 k+ x
CompareFileTime 对比两个文件的时间 0 A( h; s/ k6 Y: s4 F( G
CopyFile 复制文件 & m5 z8 c/ r0 _. e
CreateDirectory 创建一个新目录
6 D! c! m0 ^* ?5 UCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
1 n$ `' G5 a& JCreateFileMapping 创建一个新的文件映射对象 : |# R2 j( r& y( H9 ]
DeleteFile 删除指定文件
4 q" ?4 Q0 C9 m0 A9 _3 @DeviceIoControl 对设备执行指定的操作
) g8 L$ E' E8 g2 uDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 + O8 k0 R; C4 F: o% s
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
8 i! `! \+ J* f7 N7 [ S5 BFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
, H0 Y x* b( @& w, cFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 6 v4 o2 f* e9 |& v b. b
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 ; c [7 q; ?6 P/ ?' C! E2 F; R$ N
FindFirstFile 根据文件名查找文件
* {7 [: T# v* K, r! g4 x( w; OFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
; {2 ]# f' O4 x0 a$ C+ h" cFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
- N6 _% l7 j3 ?! S) oFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
; l% x% M: \# H! f+ S8 N/ K" g' tGetBinaryType 判断文件是否可以执行 ! s; Y% P9 d( H- c) v
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 # d1 g! U( O" c- P7 Q: z
GetCurrentDirectory 在一个缓冲区中装载当前目录 # m C( }, e2 o3 [
DWORD GetCurrentDirectory($ D4 _: l( K% b# Y7 L& u
DWORD nBufferLength, //缓冲区大小
% ?* D9 f) w) y5 M% T LPSTR lpBuffer //缓冲区的首地址
0 \3 T/ w8 ^1 w8 L0 p( I y" u );
0 z7 h' C& O# Z& s/ ?( [. jGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
, x$ [% T1 Z, X x) x# `( |. d" D; qGetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 " A- ]! {2 A& v9 M& e
GetDriveType 判断一个磁盘驱动器的类型
5 {0 I0 {& g0 X# ^; oGetExpandedName 取得一个压缩文件的全名
$ L V" J2 \% Q v0 V9 V x SGetFileAttributes 判断指定文件的属性
& ]2 g M# c% P& `) @) u( T$ KGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
' ?& _7 S5 k: p `GetFileSize 判断文件长度
4 `1 f6 W! Z4 s; SGetFileTime 取得指定文件的时间信息 ) y: A8 s$ K7 }- a1 F( |2 R
GetFileType 在给出文件句柄的前提下,判断文件类型
; w% T y% ^2 @4 D! q0 x7 O0 DGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 0 D$ M- b( ~% Q+ C
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 , O1 p$ M, B" b! {. G
GetFullPathName 获取指定文件的完整路径名 ; H! R) S$ @1 Y2 O$ A! V6 F
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 $ d |0 i a4 N M* }$ m$ V9 U; G |
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
' @& x: |5 M# Z8 l6 f/ B# KGetOverlappedResult 判断一个重叠操作当前的状态 . M7 n4 W/ w$ U* r: O0 J9 I7 v2 _2 P
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
; b4 W5 l6 s. m9 T* d; @GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 ) n- b% t6 G: A2 H/ ~# W1 _) k; E% J' L
GetPrivateProfileString 为初始化文件中指定的条目取得字串
7 |/ F' C' b$ v0 N6 Y3 o6 b+ vGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
( C$ n2 Z3 P" b& _% |GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
9 W* M# C9 M" N+ }; e; `GetProfileString 为win.ini初始化文件中指定的条目取得字串 9 l: s$ r3 A4 U$ m6 H
GetShortPathName 获取指定文件的短路径名
$ p' b- Y7 @/ lGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
) h6 h# |' G6 ^5 |/ s7 XGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 / [; k. F" k* i" c* n
GetTempPath 获取为临时文件指定的路径
( x& \4 k' A1 @( k" vGetVolumeInformation 获取与一个磁盘卷有关的信息 & W% s# S* j% d
GetWindowsDirectory 获取Windows目录的完整路径名 " c" ^6 d, J; R
hread 参考lread
& b% Z/ D0 `2 I+ Z/ `4 [+ Uhwrite 参考lwrite函数 & c( _! E0 r! b- ]& a
lclose 关闭指定的文件 : z4 D8 C& ~/ v7 K2 _0 W% W
lcreat 创建一个文件
6 { n% s5 H% T C5 G- K5 Ellseek 设置文件中进行读写的当前位置
( g! Y5 B9 |$ }1 T. { p% ELockFile 锁定文件的某一部分,使其不与其他应用程序共享 3 E7 o. z7 d5 q% i% E
LockFileEx 与LockFile相似,只是它提供了更多的功能
. H' m- S# g0 ~lopen 以二进制模式打开指定的文件 4 X S3 X' _+ M S
lread 将文件中的数据读入内存缓冲区 2 ^$ a: H; W1 |, p" q/ h
lwrite 将数据从内存缓冲区写入一个文件 , T8 \; ?% e6 k; G. f8 b" ~
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 3 q: g: D: V7 ? y3 \$ X* ^* _/ ^
LZCopy 复制一个文件
) t ~; U8 _' n; @8 J) ]# Z; PLZInit 这个函数用于初始化内部缓冲区
0 i @6 O8 M* x( |5 ~LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
& m. q. b1 w; w" ?2 WLZRead 将数据从文件读入内存缓冲区 6 v+ B" U4 Q. H7 D% G8 L, X
LZSeek 设置一个文件中进行读写的当前位置
, o/ e1 y. ~; T: ^ r G5 VMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
/ }3 b9 b1 I2 Z @5 m/ {. ZMoveFile 移动文件
0 x# D w( J8 q8 WOpenFile 这个函数能执行大量不同的文件操作 0 {9 g3 \0 S& b! c
OpenFileMapping 打开一个现成的文件映射对象
; ?, p* _7 d% ]* S7 A" r9 v5 l$ PQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
) u1 J0 V8 \1 {/ u rReadFile 从文件中读出数据
; W$ d& X2 ~6 Q0 MReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
" ]3 j) b$ }$ p9 H# G. qRegCloseKey 关闭系统注册表中的一个项(或键)
. e' m. ^% L0 q t' G; |/ }RegConnectRegistry 访问远程系统的部分注册表
% |& f; b* U# b; N2 L7 q/ k5 ~RegCreateKey 在指定的项下创建或打开一个项
) L- `# x q6 a1 ]RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
2 E. a% h2 S& }& V1 |" H& f5 d) WRegDeleteKey 删除现有项下方一个指定的子项 + Y l+ I5 f% D% o
RegDeleteValue 删除指定项下方的一个值
8 A: ^! l# M) Y: U, }RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx % M' J. l2 f% o5 D% k
RegEnumKeyEx 枚举指定项下方的子项 6 y4 L2 s% f$ Z5 L
RegEnumValue 枚举指定项的值 7 X( g8 y, G. ~; |
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 . E7 }0 n7 B+ r+ l! ~
RegGetKeySecurity 获取与一个注册表项有关的安全信息
, e" C' [6 K# G/ i: ~) cRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
' M6 Y: l5 r6 {! y3 R% tRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
* l' z$ }3 b7 hRegOpenKey 打开一个现有的注册表项 % X: Y" G' S4 P- n
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
# k$ M8 F) s4 F$ C) C# z& KRegQueryInfoKey 获取与一个项有关的信息 7 R& b( C% m$ u1 b: U$ J/ X
RegQueryValue 取得指定项或子项的默认(未命名)值 . G/ p! I y0 B5 {$ b
RegQueryValueEx 获取一个项的设置值
6 g- M) [' F. P* b' v& {RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 , E" V( U+ R3 g8 ?% w% O
RegRestoreKey 从一个磁盘文件恢复注册表信息 ( { C5 B7 ]8 x" c- {; ^
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 + f; n, a3 l5 y0 u4 u
RegSetKeySecurity 设置指定项的安全特性
% f( k, |& e/ z: K( c& ]8 G& qRegSetValue 设置指定项或子项的默认值
5 |& d# ]. j6 G" {- j: \$ ?RegSetValueEx 设置指定项的值
1 f( U) Z. a3 A- v3 {+ \RegUnLoadKey 卸载指定的项以及它的所有子项 / k& j v, G/ m: c2 L C
RemoveDirectory 删除指定目录 : U. A2 s$ N) x' Q2 W+ |
SearchPath 查找指定文件 + w4 [/ ^7 u' u( W3 P3 }
SetCurrentDirectory 设置当前目录 & g+ [9 Q& n3 s! S
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 6 \) X* _4 u6 r" u; J$ `4 A, ^2 W
SetFileAttributes 设置文件属性
0 ]" r! q" e& I. T9 D' N {SetFilePointer 在一个文件中设置当前的读写位置 9 J7 C; Q7 N0 \3 M9 a5 z3 A# e
SetFileTime 设置文件的创建、访问及上次修改时间 . C% S" |9 k2 M0 v3 J! _( O0 @
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 , W) J8 W) s1 W- J. ?5 U
SetVolumeLabel 设置一个磁盘的卷标(Label)
* N/ d$ H' `" K& L; \6 ]$ Z, w; h/ gSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 : E+ h- B! `8 U5 j- O+ K1 G
UnlockFile 解除对一个文件的锁定
6 L1 n6 |# n( G7 m! Y% ?& L: iUnlockFileEx 解除对一个文件的锁定 - A A# R5 _) S7 V$ J+ K
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 1 \2 n% l! I. P+ y
VerFindFile 用这个函数决定一个文件应安装到哪里 5 E* n6 B4 R3 h1 a( f5 j/ f
VerInstallFile 用这个函数安装一个文件 ! h9 y) {: o$ D) f* Z
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 " h: A5 A; { F, O) o
VerQueryValue 这个函数用于从版本资源中获取信息
/ ^3 W8 X/ l# v" B/ R. v- gWriteFile 将数据写入一个文件
/ u: t( Y0 B( X% N3 c" aWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 + d+ T7 ^$ ?$ d' V4 K$ M
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
, x7 P5 x* Y, G/ S; p2 yWritePrivateProfileString 在初始化文件指定小节内设置一个字串
, }" P* |# |1 b5 nWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
; f" W! N8 N: D3 N& U" z. {WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 8 W0 \" e& [$ N0 B
4. API之打印函数 6 [7 i2 e1 a' |$ F( n7 I8 g1 A
AbortDoc 取消一份文档的打印 $ x7 J/ d8 f7 V: G( l. T: c
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 . r: I9 Z" G T& o; z6 Y
AddForm 为打印机的表单列表添加一个新表单 % S# j6 Z' b! {; J c- L) G
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 3 }: t" w# ^/ }" h8 f, t( k. L8 Q
AddMonitor 为系统添加一个打印机监视器 1 K0 |! p! G9 w8 ~ s( W. E
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
8 C: [; R6 T2 y2 B) \: p' n* `AddPrinter 在系统中添加一台新打印机
+ E& o" x r4 G- H0 VAddPrinterConnection 连接指定的打印机
& j7 ?- U- O( l7 ~AddPrinterDriver 为指定的系统添加一个打印驱动程序 : K. J l$ A4 w
AddPrintProcessor 为指定的系统添加一个打印处理器
! R! F; c! ~4 iAddPrintProvidor 为系统添加一个打印供应商
2 t) g' B' B* l3 d9 z$ QAdvancedDocumentProperties 启动打印机文档设置对话框
8 t& p3 o( `4 H3 dClosePrinter 关闭一个打开的打印机对象
: v$ j) h& _' N- m6 ?! ]ConfigurePort 针对指定的端口,启动一个端口配置对话框
! u( a1 G0 v, b% L8 D5 r- h% i1 uConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
& L1 m0 j g8 Q' p7 J' i& t5 tDeleteForm 从打印机可用表单列表中删除一个表单
( `% b0 l3 p8 L9 L: r& [DeleteMonitor 删除指定的打印监视器 & N- {$ \0 R+ K0 X
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 " b7 ?# `0 D0 P7 D9 G
DeletePrinter 将指定的打印机标志为从系统中删除 : _" f3 Y; k, g( p+ F6 F7 ~
DeletePrinterConnection 删除与指定打印机的连接 # j& ]+ [2 |5 d& E
DeletePrinterDriver 从系统删除一个打印机驱动程序 $ ?# o; q$ @" ~" P
DeletePrintProcessor 从指定系统删除一个打印处理器
6 g! k# T3 X: N r7 P0 @DeletePrintProvidor 从系统中删除一个打印供应商
) e, |4 X; G1 A: U& DDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 % o/ M# w/ t8 b$ H7 D5 o
DocumentProperties 打印机配置控制函数 4 N E; ]+ d1 N) N6 T6 V X! Q
EndDocAPI 结束一个成功的打印作业 - x# M6 w9 C9 x
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 * S5 a& l# q3 V$ A7 a) \, K: C+ Z
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 8 i( _* n* j5 |0 u
EndPagePrinter 指定一个页在打印作业中的结尾 $ X3 C- S: ~0 j6 m+ o X& f- k8 [
EnumForms 枚举一台打印机可用的表单 5 W7 Y8 y! B# p7 l' t" V/ M
EnumJobs 枚举打印队列中的作业
/ d$ j# c' t( CEnumMonitors 枚举可用的打印监视器 ! u+ D4 ]" r3 ^3 j8 d+ C
EnumPorts 枚举一个系统可用的端口
. s7 x |7 _6 y5 A8 _- qEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
( {( K5 L6 S8 f1 s* q, BEnumPrinters 枚举系统中安装的打印机
. B+ P7 J: w, v& D V2 Q' BEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
9 k, z; b) W* L) a+ HEnumPrintProcessors 枚举系统中可用的打印处理器 8 A4 G# \6 p7 N, {- i8 T7 I. _3 A
Escape 设备控制函数
, u1 A0 \% _6 @4 V/ i: G8 ~7 @6 oFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
$ C: n; A; s; t: D; t# G/ P) BFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
M4 u2 y7 r4 J7 x, g( a. F& lFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
. y5 H3 p1 s+ L6 L) e# YFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 / ]! J' R+ L7 G! W3 d2 a7 @0 k
GetForm 取得与指定表单有关的信息
$ H1 x) U5 B N! H+ Z O; W( QGetJob 获取与指定作业有关的信息
0 a6 F/ D8 e8 PGetPrinter 取得与指定打印机有关的信息 0 P* }8 w: \3 r8 ?1 z
GetPrinterData 为打印机设置注册表配置信息 % ^9 P* E3 |: ]' z& [, F4 Q6 `
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 / k; T( U: i" b3 z! O' A' m
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
% q+ G2 S9 r" T; w* r7 K* F; v" MGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
/ C" |! B( F/ }) A% y) l1 h/ U) g2 k6 ^OpenPrinter 打开指定的打印机,并获取打印机的句柄
; C, [6 p4 V( h! p1 c( E+ q5 cPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 - v3 K1 u4 O) R8 E
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
! Q- V( S( o& R% hReadPrinter 从打印机读入数据
' ?3 t H$ i+ F! B* I6 E" a) mResetDC 重设一个设备场景 5 d4 L9 u0 o+ f: Z) t/ I5 X
ResetPrinter 改变指定打印机的默认数据类型及文档设置 # L) M: A$ T2 O* B" L. ?7 k
ScheduleJob 提交一个要打印的作业
8 V& r! b, e' l! w% SSetAbortProc 为Windows指定取消函数的地址 ) P0 i' J5 h3 g, v/ ~( }
SetForm 为指定的表单设置信息
4 K- U( o# Z& `3 m" E% BSetJob 对一个打印作业的状态进行控制
2 w- v! ~7 w5 n: H( @; X9 G) {SetPrinter 对一台打印机的状态进行控制 ' g5 B) E% g5 G' m
SetPrinterData 设置打印机的注册表配置信息 ( P/ ^4 r: X" e" J, G/ r, o
StartDoc 开始一个打印作业 9 Q, K8 `5 H/ F" h8 _/ P% ?
StartDocPrinter 在后台打印的级别启动一个新文档
* A4 K8 ?+ G- @. ?2 ~8 @StartPage 打印一个新页前要先调用这个函数 5 Q+ b6 i9 E) E1 b
StartPagePrinter 在打印作业中指定一个新页的开始 4 g' |4 e& a6 x' ]( Q! U
WritePrinter 将发送目录中的数据写入打印机
9 H/ B! E1 `+ p( |5. API之文本和字体函数
7 [6 N* B6 G. mAddFontResource 在Windows系统中添加一种字体资源
: V) @$ ~+ ?8 O! {% N$ PCreateFont 用指定的属性创建一种逻辑字体 7 I% V1 W* u* l, J5 w
CreateFontIndirect 用指定的属性创建一种逻辑字体 ' R' v$ g( R/ r5 f) W; V( N
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
: X9 A0 i+ X k" h$ t' L! C) ZDrawText 将文本描绘到指定的矩形中
9 j2 e0 i6 p* H* vDrawTextEx 与DrawText相似,只是加入了更多的功能
# ?" H; T2 H5 d2 N3 }- SEnumFontFamilies 列举指定设备可用的字体
j$ D p, T2 C7 O. @# Z+ ^1 DEnumFontFamiliesEx 列举指定设备可用的字体 k- w8 i! T' Z; x; J3 O, `
EnumFonts 列举指定设备可用的字体
3 r3 k' W; r: PExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
# a, q9 E z! [8 \( c' n: ?) yGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 $ ]. n2 N9 h! X
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 ! g9 L, s1 ^; X( [) Z6 Z
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 * c) y9 K9 W) X! |& y6 i
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
* G$ p; E. `3 ^9 I1 UGetCharWidth 调查字体中一个或多个字符的宽度
v3 b, J. a+ x1 ^GetFontData 接收一种可缩放字体文件的数据 6 f9 l7 j' R' a, o
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
{( J7 { L1 S. S: {* \GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 1 b" O& i% v9 U. f0 C$ d
GetKerningPairs 取得指定字体的字距信息
3 N8 { A5 N; v8 f% `, W5 o& {GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
7 s& i: r/ L# B" yGetRasterizerCaps 了解系统是否有能力支持可缩放的字体
* c8 o8 [* Q ~0 G' ZGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 9 @8 f# h) |: l- U$ X' u4 o( ?
GetTextAlign 接收一个设备场景当前的文本对齐标志 . [+ d* ~8 V! u0 ]$ F' W
GetTextCharacterExtra 判断额外字符间距的当前值
$ R) j4 f' M- \# r2 P- B1 DGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 , l; y& i6 L5 T
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 / m* k6 G& P4 K2 E4 X; X- _
GetTextColor 判断当前字体颜色。通常也称为"前景色" 9 H$ X" W2 O0 \3 v7 R! \
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
( _# O4 l6 v" L0 G9 u. pGetTextExtentPoint 判断一个字串的大小(范围) " [* m9 o& L$ c6 A
GetTextFace 获取一种字体的字样名 % |" f3 H- V% K/ g L+ {& l+ q9 y: D
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 & z$ q6 M: }. Y7 c* k+ A e5 _
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 ! e6 q) e. g6 w; p
PolyTextOut 描绘一系列字串 2 ^- H: J o7 H( R4 a8 q. g" h
RemoveFontResource 从Windows系统中删除一种字体资源 ! z6 y4 A$ A4 S1 S ?- q
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 9 a0 Y9 t7 d a1 }$ G
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
! D5 _ M( Q- T# SSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
e/ l3 X: M1 n( g1 CSetTextColor 设置当前文本颜色。这种颜色也称为"前景色" ( _: v Z9 ~2 z
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
5 P/ A8 o' I+ Q4 M- o0 nTabbedTextOut 支持制表站的一个文本描绘函数
) R6 K$ N1 P, S6 vTextOut 文本绘图函数
! Q: }8 I' y2 A% m9 l" VWINGDIAPI BOOL WINAPI TextOut(
% c& w3 R, k& w1 @$ _0 FHDC, //输出设备5 N8 c- x/ S7 h D
int, //输出的横坐标
, y7 g6 d3 x- p% y7 Xint, //纵坐标6 i1 d5 Q* e; O
LPCSTR, //输出的文本str
4 q+ i. @7 j. E5 ]& bint); //文本的长度:lstrlen(str)
) P6 M' ]7 _4 `! g6. API之菜单函数
+ S7 U& ?5 [, `8 i6 bAppendMenu 在指定的菜单里添加一个菜单项 " [) a5 H" c* _* j
CheckMenuItem 复选或撤消复选指定的菜单条目
9 V) m9 {! _* T( ^CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 0 V9 Y: g o* ^3 J7 i" A' m; w2 M! c
CreateMenu 创建新菜单 # `. \1 G& L4 ~* C, x' b# w; C
CreatePopupMenu 创建一个空的弹出式菜单 ' q9 D7 j3 Z0 L0 H c6 r( _% E5 h0 {
DeleteMenu 删除指定的菜单条目
5 \: ]) d3 E; ]; s' HDestroyMenu 删除指定的菜单 6 x3 g4 `% K, K. {
DrawMenuBar 为指定的窗口重画菜单
$ p; @ P$ N0 z/ ]7 HEnableMenuItem 允许或禁止指定的菜单条目
B& O& }# n4 y6 S# h- x6 ?. qGetMenu 取得窗口中一个菜单的句柄 1 z5 d5 Q% ^, v) ~* i
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 5 d* _5 R; l% {
GetMenuContextHelpId 取得一个菜单的帮助场景ID
( G: M, |+ N8 U4 C& T* [% T+ hGetMenuDefaultItem 判断菜单中的哪个条目是默认条目
! N; g+ I9 H# k" FGetMenuItemCount 返回菜单中条目(菜单项)的数量
9 G% ~2 i( S1 LGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 2 i8 }0 Y+ T# Y2 Y" v
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 % q# ?" ?) t& J: ~/ c; G$ `5 L
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 1 b) ?% _4 ] X0 B; h, A# J
GetMenuState 取得与指定菜单条目状态有关的信息 " K* ?8 N! M( f6 E4 S5 E/ L
GetMenuString 取得指定菜单条目的字串
; `( h* J" @9 _& ^9 _6 D' AGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
2 `# q& G9 C2 t) Q/ w% g" m) JGetSystemMenu 取得指定窗口的系统菜单的句柄
h4 P! f" t) y4 {HiliteMenuItem 控制顶级菜单条目的加亮显示状态
; {5 x) W9 K1 F8 s1 N4 UInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
' y' b. w6 E4 P+ K. HInsertMenuItem 插入一个新菜单条目
5 S+ V+ }3 Z. ?+ m5 u5 [) M2 ?IsMenu 判断指定的句柄是否为一个菜单的句柄 ' X6 ^! C, Z. Y! R9 C1 j
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
- [( P- e6 x( }" e6 G) W& {7 X R. ~LoadMenuIndirect 载入一个菜单
' R' [$ e ?$ |3 ~$ t) GMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
5 f( ?% j; e6 [8 t# UModifyMenu 改变菜单条目
0 |9 [& @4 e2 S, w% W7 t2 j. jRemoveMenu 删除指定的菜单条目 6 ^9 d0 S, M7 G1 G2 s- x6 n
SetMenu 设置窗口菜单
v. m6 V) D: y1 BSetMenuContextHelpId 设置一个菜单的帮助场景ID # p* `! j% [0 q# `
SetMenuDefaultItem 将一个菜单条目设为默认条目 ) o: A- ?; n! U
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
4 M% _6 _( L4 z$ b) B% u8 t. KSetMenuItemInfo 为一个菜单条目设置指定的信息 ! @" S+ q5 Y9 X
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 5 z/ F% }& r4 K2 E9 M$ p7 { z
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 , ?! z; G" }% J9 X
7. API之位图、图标和光栅运算函数 6 F# f1 Q# H. M w8 b4 q6 e
BitBlt 将一幅位图从一个设备场景复制到另一个) s$ w2 n4 w( [. E4 y9 m
WINGDIAPI BOOL WINAPI BitBlt(
+ V) m; X; J, ~- ~ E! m. @" E3 N" CHDC, //目标HDC2 _# v9 u% R5 Z8 U+ J
int, //X1
) d& j |- P. tint, //Y17 `# \% N' G% ^% _/ y
int, //width& [& |8 o' o$ {3 L
int, //height \- _. G- I5 {! u& H
HDC, //源HDC
! {4 Z$ b) R" u' b7 iint, //右边的距离
: o9 o, h. T" w; y( n* Pint, //??" y3 U9 t: X2 A$ w( ]4 t
DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
* z, M2 |5 h3 @2 MPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
/ z. K7 o' F2 ?% vCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 }! E5 Z9 E- E1 s
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 , x# Q$ r0 N3 t) H, e0 p9 W
CreateBitmap 按照规定的格式创建一幅与设备有关位图 - p. @& v* }( j! e
CreateBitmapIndirect 创建一幅与设备有关位图 K$ O, R5 R% M, r, `8 E% ]
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
; p6 S. k& s, q9 A, D! M. tCreateCursor 创建一个鼠标指针 5 K; A+ @7 u/ K; b4 m
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 ; B: y: H1 o6 O0 W
CreateDIBSection 创建一个DIBSection / I4 R8 U. f* M6 p+ f( ~6 d9 j
CreateIcon 创建一个图标
$ ? m6 m) x } A" q. K- mCreateIconIndirect 创建一个图标 / x- \& T% @+ J
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 7 b7 L! v. Y* t% n6 S, J: Z; @
DestroyIcon 清除图标
3 j1 F* D; V, m* pDrawIcon 在指定的位置画一个图标
. C( R5 R5 [) f6 d, s4 H9 o" q zDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
: m5 q( g1 F. o9 l& _ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
2 t' d. E, u. G& M: ]ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
9 @+ N/ Y9 m" \: W& tGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 ! y( Q* D8 N6 e4 M. s" U& F2 O) H
GetBitmapDimensionEx 取得一幅位图的宽度和高度
2 R( h7 X5 z1 KGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 ) l$ h1 U7 ]% q% t$ D' S( D$ z
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
; V7 y8 P5 B* I7 C7 FGetIconInfo 取得与图标有关的信息 0 F' ~& I* J: E5 w. m; F$ X
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
2 u6 p0 O; {/ }* O% \LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 & W& d4 |7 M [1 f9 r- F$ a* K6 Y' I
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 $ H- v) G$ ~" I6 g6 D
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
: g+ \ v) I/ |LoadIcon 从指定的模块或应用程序实例中载入一个图标 2 J+ |3 E( L* H2 d* T
LoadImage 载入一个位图、图标或指针
9 l/ C0 C \! K: ~HANDLE LoadImageA(; M& g" N f- p
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()- f% D# K& X9 \! S7 [8 q% z
LPCSTR, //资源所在的目录:c:\help.bmp
" E0 f: @. A* x$ M0 j8 i. E UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE" ]7 p3 R/ r$ @' Y4 z7 z- g
int, //* c+ `2 e7 }8 k3 e/ J% N
int, //
6 @9 q/ i% Z6 M( s" b9 M# F4 G/ e+ z pUINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
3 ]- u; c% N5 i- n( _$ IR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
. f8 K# @) J1 u( N+ c' e1 B$ k" iLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
3 U) O t2 v( _8 C- I5 xMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 9 r" b- G3 h/ e$ @$ p/ J
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
3 G$ f2 R$ K, R( w( |PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
, y! m# w7 `! u7 h6 E- eSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 # h; s% O. H; G/ |7 N
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 $ s, K# h- G& Y/ l
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 ! m# T- E1 G1 H9 v- k5 ~6 O
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 : n s. x! q* m Y. N
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 4 Y, d" y, I0 b- ~8 r) [
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
5 ~# m/ H5 F' t/ m, ]! S$ uStretchBlt 将一幅位图从一个设备场景复制到另一个 7 T: f" u; j+ V- [2 X9 x
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
3 I* v7 u' ~# J+ m( s* f8. API之绘图函数
* c" ~/ F( {" E9 E" QAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
6 q+ A2 ~5 r7 p: x2 xAngleArc 用一个连接弧画一条线 ! ^" d: D! z# U# h
Arc 画一个圆弧
( E2 o3 h7 R# M& r$ J2 x) oBeginPath 启动一个路径分支
$ E1 e) J/ b- R' X: m8 KCancelDC 取消另一个线程里的长时间绘图操作 ' W: R: y( m W, _2 H$ t
Chord 画一个弦 8 }- k( v* l, N7 y
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
! Q! \7 E- g& B) J" m" P: j1 dCloseFigure 描绘到一个路径时,关闭当前打开的图形
: B: y6 u% s x4 S/ p+ }' e" v* X' ICloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 4 R7 K: w5 C) Y* l
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
' Q4 j g- |3 ?- W4 BCopyMetaFile 制作指定(标准)图元文件的一个副本 6 S" n" U: ^; t# O c+ b4 J9 a+ M
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
4 E$ e C- ^1 }- wCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 9 [) g7 F& n- W
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 % k% e3 c" U: E% ^
CreateHatchBrush 创建带有阴影图案的一个刷子
' N8 z L1 ]9 W3 @CreateMetaFile 创建一个图元文件设备场景
/ x% q' E- ?& ?4 WCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 + o5 X9 s" L2 D3 M/ _
CreatePen 用指定的样式、宽度和颜色创建一个画笔 5 o- `% ^8 e5 D
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
* q/ ^5 f: U: J5 K8 {9 G v gCreateSolidBrush 用纯色创建一个刷子
* S; b$ v k' ?' Z$ A6 fDeleteEnhMetaFile 删除指定的增强型图元文件 % ^& N6 @2 S2 @( I, d% d
DeleteMetaFile 删除指定的图元文件
" ^6 X0 I6 o" jWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
! r# F% U+ a5 L' o7 |DrawEdge 用指定的样式描绘一个矩形的边框 8 ?1 d1 ~9 V" C1 M+ E) r) G. ` F1 j
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
. z: t& v' Y- v+ ?DrawFocusRect 画一个焦点矩形 3 A4 b5 G4 f' V& I% P
DrawFrameControl 描绘一个标准控件
- C4 l7 W" E8 u0 g' E: ]( a/ s! zDrawState 为一幅图象或绘图操作应用各式各样的效果
4 G* f; S; }/ K- D+ d% D2 T5 Z! KEllipse 描绘一个椭圆,由指定的矩形围绕
J7 u4 S5 f1 u6 v: }EndPath 停止定义一个路径
( F; q8 J3 j* R6 z! F: E# GEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 ! C. V' w# l5 F; r/ {( f& G
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
( T& k2 b4 F5 fEnumObjects 枚举可随同指定设备场景使用的画笔和刷子
, I) n: u9 z# d! uExtCreatePen 创建一个扩展画笔(装饰或几何)
5 N8 X8 S$ P7 e! K7 hExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
9 j9 o5 Y6 t9 [% _0 }FillPath 关闭路径中任何打开的图形,并用当前刷子填充 ( j+ T j% x4 n! F
FillRect 用指定的刷子填充一个矩形 6 P8 M& [2 z; b1 m+ a1 W5 ^( B# N6 L1 B
FlattenPath 将一个路径中的所有曲线都转换成线段
2 c8 Q3 O4 M2 k% iFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
% c$ S9 Y4 O( z( k- IFrameRect 用指定的刷子围绕一个矩形画一个边框 * w+ }# H# z2 @2 O; w- K
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
& o! c: b [" d6 E3 ~$ P# HGdiFlush 执行任何未决的绘图操作
$ R3 p; M3 V" g% dGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 / b3 X& ?/ r* Q0 p+ g7 C9 J* P
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 ( ^) e6 I$ {& V7 J! v$ I
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
8 C) K6 c3 T o1 y x2 RGetBkColor 取得指定设备场景当前的背景颜色
. S# C; a( T6 y9 J: NGetBkMode 针对指定的设备场景,取得当前的背景填充模式
1 \' @& n4 O% h; G/ }9 e% A. [& JGetBrushOrgEx 判断指定设备场景中当前选定刷子起点
5 Q. `# f& {+ q4 o! |+ UGetCurrentObject 获得指定类型的当前选定对象
6 L3 g1 n4 p, c, b3 Y' E- U, U( AGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
' k A6 H( Y, B' q1 Z+ |GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
2 z% c# ]& D/ \3 T( I8 eGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
5 x- [" c, L( p! MGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
5 M/ A2 {8 L! YGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 9 ~8 Z6 E2 z% O( t0 O5 |' v: V8 p
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 4 {; _; b. h' L- Y
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 : E2 j, d! r5 s: D
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
! T. I0 m: ?$ l( v/ tGetMiterLimit 取得设备场景的斜率限制(Miter)设置 - j. \9 V" b! w* Z1 X6 }% F
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 & ~. N+ i/ `4 X
GetObjectAPI 取得对指定对象进行说明的一个结构 ! _) o# ?1 K: C- b, @
GetObjectType 判断由指定句柄引用的GDI对象的类型 + Z3 K$ p/ i& l3 q% _+ G
GetPath 取得对当前路径进行定义的一系列数据 9 |) c2 q5 D. E5 H! Y
GetPixel 在指定的设备场景中取得一个像素的RGB值
9 a* }: d) |) E" Y+ W* IGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 % v; K& r9 r& I) c. b; ?& W$ b
GetROP2 针对指定的设备场景,取得当前的绘图模式 ( T6 w# N/ q$ N9 p/ V% o4 K- Q
GetStockObject 取得一个固有对象(Stock) 2 T; z3 J W: L' L
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 3 j" ?5 D- a9 n6 ?' F2 A- m
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 3 ?* L: W! V3 a0 { w
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 # b: e7 J" ?3 i! _$ L$ [1 G9 W
LineDDA 枚举指定线段中的所有点
. X g# i; S# @3 B+ nLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
. t' t! m" D" k% C; `MoveToEx 为指定的设备场景指定一个新的当前画笔位置 ' ] _) y- M/ h+ P, v; F, b- Y
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
, }7 C2 o+ d1 h% B e; Y1 r) t" oPathToRegion 将当前选定的路径转换到一个区域里
( }9 h& G& R% B% y4 l2 o" \! l; `Pie 画一个饼图 $ `2 f* A9 |3 W; X% c6 |& d
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
* U& J1 C! U" X3 g8 \+ A2 ~1 Y/ cPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 + T! _; e8 M- z
PlayMetaFile 在指定的设备场景中回放一个图元文件 2 @/ B% ^3 y; M/ q& a) A
PlayMetaFileRecord 回放来自图元文件的单条记录
# k! q: w+ B7 c; N9 K* z% {! QPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
. |( r- q4 n- t/ I& ^8 aPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
- J9 Z+ G2 i& ]# l: MPolygon 描绘一个多边形 , I8 P! v# b" i" D
Polyline 用当前画笔描绘一系列线段
1 ^: B7 B5 \$ l; p/ gPolyPolygon 用当前选定画笔描绘两个或多个多边形 8 ]; ?0 n0 V. y
PolyPolyline 用当前选定画笔描绘两个或多个多边形
' [' c1 |0 {4 \' h) p6 A ]Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 . E9 @3 c; w) r0 D
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
( ^! Y) `- \ F" W' L) USelectClipPath 将设备场景当前的路径合并到剪切区域里
4 N. H, f8 ~/ Y/ {5 G! K( R/ KSelectObject 为当前设备场景选择图形对象
; n- E7 [: D7 f/ V4 `) R9 Q WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);: {2 U5 o3 e5 U/ ]7 x5 R
SetArcDirection 设置圆弧的描绘方向
* Q0 V8 F2 `, l- p; V" H0 y, hSetBkColor 为指定的设备场景设置背景颜色
0 x9 Z# i+ M; J1 r0 }SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 $ e% G. }) J- b
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 4 E: _# X: J+ h
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
' {# `5 @$ {. L! |SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 9 m+ a" l) _7 h: q3 j3 Z8 V8 s
SetMiterLimit 设置设备场景当前的斜率限制 ! d# I9 ], \3 l8 U
SetPixel 在指定的设备场景中设置一个像素的RGB值 V' z( |( x/ ]6 p
SetPixelV 在指定的设备场景中设置一个像素的RGB值 3 E7 |+ j0 W6 ]0 p
SetPolyFillMode 设置多边形的填充模式
9 a0 f9 Q' A- L" f- JSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
) ?. g4 U, V3 r1 t8 QSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
+ V6 ]# H" v. ~* e' i/ DStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 7 i1 F& \4 x- W% m/ [4 `
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
7 L" p! `0 |5 S! eUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
" L5 g" F: p4 N, x: S* ]7 }WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
" D, V! q' e* Q7 `" q- J/ S/ E9. API之设备场景函数 # Q9 M. V+ r" C) d9 A- C' D2 M* z
CombineRgn 将两个区域组合为一个新区域 $ C1 H8 |& O0 @9 b
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 2 |$ J& F0 Y! ?$ I7 u
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 / A }2 i& P7 C) h% S4 f
CreateDC 为专门设备创建设备场景
4 ]8 W' C7 I. U p# J8 {CreateEllipticRgn 创建一个椭圆
2 \# k" o4 [1 a" m3 R2 qCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
% o5 n7 R" w6 b* p+ gCreateIC 为专用设备创建一个信息场景 , q4 G2 i1 Z C! }2 z- B5 V( e
CreatePolygonRgn 创建一个由一系列点围成的区域 3 Y5 ~; Y7 A; m
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 " L% \ I% A1 I* @4 k
CreateRectRgn 创建一个矩形区域
: [& i6 f. X) U3 A; l# K6 wCreateRectRgnIndirect 创建一个矩形区域 8 Z# i8 P5 R" l: V/ E" z% P* U' h
CreateRoundRectRgn 创建一个圆角矩形
; @6 o' T3 n9 p1 x* HDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 + ]/ G4 u- [! C, g/ G
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 . e3 \! V; l0 k7 q; t# t5 v
EqualRgn 确定两个区域是否相等
4 d8 A4 A8 A* Z5 v: P9 K$ GExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 0 s c1 R o7 ~8 u$ k, C5 ^8 |
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 & c# W/ U! g2 n, q
ExtCreateRegion 根据世界转换修改区域 ; d4 o* p( Y: f
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 ; T! h' \+ b' p R5 x* h b
FillRgn 用指定刷子填充指定区域
8 f8 y. Q% l% E& F8 a, jFrameRgn 用指定刷子围绕指定区域画一个外框
' G" ?' J L" O' b* f8 oGetBoundsRect 获取指定设备场景的边界矩形 0 r* \. ]% S* K
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
' ~0 F4 k* p) f7 r, G( X" @4 w, iGetClipRgn 获取设备场景当前剪裁区 * [' |( E# X; k/ W
GetDC 获取指定窗口的设备场景 3 x- Q" s5 Z/ E
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
/ \! M! p# I- DGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
7 E5 B7 m* S) O) u9 k% rGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
! M! [: H8 }$ x. Q# HGetGraphicsMode 确定是否允许增强图形模式(世界转换) 0 @5 P6 D, A: G! x' N
GetMapMode 为特定设备场景调入映象模式 $ a% {2 G4 Q$ f1 s- \% b' `1 S
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
+ i/ I4 p7 T, Z4 h" o; O, IGetRgnBox 获取完全包含指定区域的最小矩形
5 L1 T; ^! }1 z1 m9 ]/ rGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
V) l" {% S- B0 C1 a' MGetViewportExtEx 获取设备场景视口(viewport)范围 ( |0 K/ u2 v% \
GetViewportOrgEx 获取设备场景视口起点 5 D0 P( R: z; ] a* ~& ?
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
, k0 j2 _& }( C! J) P5 c1 mGetWindowExtEx 获取指定设备场景的窗口范围
* k8 \2 W T2 e1 }, VGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 2 w# T0 h0 H8 Y% J+ `+ |7 z
GetWindowRgn 获取窗口区域 9 A- M8 G8 w- w C) V3 W) t
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 % G& h% P" [2 z$ @, m2 t: \
IntersectClipRect 为指定设备定义一个新的剪裁区
& _- k5 m/ w% d4 g2 [; nInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
; j$ d. _, A3 R1 w7 bInvertRgn 通过颠倒每个像素值反转设备场景指定区域
8 f1 u) @! P# U a6 ~1 d6 FLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
& `& J1 x3 D" T7 |7 O, h- fModifyWorldTransform 根据指定的模式修改世界转换 p: {+ Y$ r) W, e! x+ z V
OffsetClipRgn 按指定量平移设备场景剪裁区
$ n- U2 J h0 H: f( BOffsetRgn 按指定偏移量平移指定区域
8 h- D0 P7 n1 { k, K" \OffsetViewportOrgEx 平移设备场景视口区域
6 E1 ]9 N* @6 jOffsetWindowOrgEx 平移指定设备场景窗口起点
3 W, g( w* s; H$ {/ A, k' P# aPaintRgn 用当前刷子背景色填充指定区域 $ l* r2 R, D' t* L
PtInRegion 确定点是否在指定区域内 , N5 g9 L% E+ T& [
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
$ o" B) d3 b$ F7 _% qRectInRegion 确定矩形是否有部分在指定区域内 0 W# \" r. ?: y
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
, L2 Z8 i% h6 i1 e8 Y1 |ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
. E4 l- F& {; s. [2 N& ]; t" r2 kRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
! ]/ V2 h4 H1 r" {: }$ QSaveDC 将指定设备场景状态保存到Windows设备场景堆栈 " i" i( n9 f% ~3 G$ p- m5 g& f; r
ScaleViewportExtEx 缩放设备场景视口的范围 / h& f1 d `- m/ a; \5 g" H
ScaleWindowExtEx 缩放指定设备场景窗口范围 0 q$ J/ G% h4 P9 A) \" E
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
4 j- G* a, l3 @0 SSelectClipRgn 为指定设备场景选择新的剪裁区 ; R7 [, x0 P4 f8 I% _/ M6 J. ^# W
SetBoundsRect 设置指定设备场景的边界矩形 ' T/ g" E" p: b* W7 }7 {* B' m
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
. ~4 d( X! t. ?; s- y2 OSetMapMode 设置指定设备场景的映射模式
0 h& `6 h) W/ r2 s; cSetRectRgn 设置区域为指定的矩形
0 K3 O* b3 n% eSetViewportExtEx 设置设备场景视口范围
. r8 W% T/ h9 B( s, g( \; JSetViewportOrgEx 设置设备场景视口起点 : z8 f* c E5 e/ K5 m' ]+ \
SetWindowExtEx 设置指定设备场景窗口范围
6 I9 o( L- ]$ p5 [% x" JSetWindowOrgEx 设置指定设备场景窗口起点 - Z1 D. p) P: k
SetWindowRgn 设置窗口区域
: _- M* H; K9 Q0 q+ t1 SSetWorldTransform 设置世界转换 * N6 u; {9 L' n& n1 Q" X! k F7 S
ValidateRgn 激活窗口中指定区域,把它从刷新区移走
2 f" S3 j; ^: @: ?; a* cWindowFromDC 取回与某一设备场景相关的窗口的句柄 6 [1 ^+ ^. {# r4 H
10. API之硬件与系统函数
# R$ v; v4 j6 @' R/ K% _% G8 JActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 0 S4 A1 W: L0 V8 u7 Z0 h4 {$ g, K
Beep 用于生成简单的声音
# d; N1 y9 U7 R! F) ~0 x- H aCharToOem 将一个字串从ANSI字符集转换到OEM字符集 + y7 X8 W; r" E2 b4 w1 Q( L! q7 k. s
ClipCursor 将指针限制到指定区域
1 }$ s0 `8 ^, C" V cConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID 7 y- I# Y. d- X1 z( `
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
0 o% j4 h3 c- ^0 NDestroyCaret 清除(破坏)一个插入符 5 h4 w# D. A, o- s# q/ F# q
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
# W- y8 M' t4 Q/ ~; ]0 X6 c/ CEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 ( w# J+ B5 r' d. u, y: Q/ d
EnumSystemCodePages 枚举系统中已安装或支持的代码页 s5 N" ~8 p) D9 c" Z
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
5 j, D) Y/ p$ {" ~EnumTimeFormats 枚举一个指定的地方适用的时间格式
9 g2 Z" Z8 L3 |; e0 w, Y) XExitWindowsEx 退出windows,并用特定的选项重新启动 $ S/ @! u$ b( ]9 }
WINUSERAPI BOOL WINAPI ExitWindowsEx(
- J. y! n5 q1 }6 A8 u0 lUINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG- L& v7 R o) p
DWORD dwReserved); //03 a( b0 ]) i, U( k$ g2 K
ExpandEnvironmentStrings 扩充环境字串
8 d: E7 f+ u5 s, h. uFreeEnvironmentStrings 翻译指定的环境字串块 , Q& o$ Y' V: a, R: ~
GetACP 判断目前正在生效的ANSI代码页 : j( u: j, z: x& s0 Q5 l& R
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
4 v) h, c& R0 h6 z3 OGetCaretBlinkTime 判断插入符光标的闪烁频率
0 u l# @5 C* |# W0 K+ u& a4 m% } d* lGetCaretPos 判断插入符的当前位置
7 _% k" W% H- z& a7 b0 [' fGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 $ M" ~2 T2 H! T% j# Z! R6 m
GetCommandLine 获得指向当前命令行缓冲区的一个指针
# Z8 r8 F2 b- O4 m ]+ d2 ^2 SGetComputerName 取得这台计算机的名称
* Z5 X1 m8 P/ fGetCPInfo 取得与指定代码页有关的信息
7 u8 K" J3 H+ nGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 $ m' \1 H% h0 X+ i
GetCursor 获取目前选择的鼠标指针的句柄
3 Z x! J/ F( h! d0 D- i: J2 v7 [GetCursorPos 获取鼠标指针的当前位置
1 h0 m, e t1 L! q) Z4 n: rGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 ) P, H) K5 m- v* u! J% p7 j3 ?# k7 S' |
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 5 l7 S% P* J! @: Z1 V, i3 f
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
0 z4 y* R0 E J" M/ ]GetEnvironmentVariable 取得一个环境变量的值
j- H+ e* w5 a0 I pGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 2 I- d, E9 G3 J0 `) k
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
1 n% o+ i8 \/ y! yGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 $ ^% G0 T# c7 ?3 u) X& I
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
! W9 y; Q! F9 ?( }8 Q6 H( MGetKeyboardLayoutName 取得当前活动键盘布局的名称
& D7 r) w& E: ^ |3 k. _# k) BGetKeyboardState 取得键盘上每个虚拟键当前的状态
9 _/ X- S! g- \/ L1 ?- `+ `GetKeyboardType 了解与正在使用的键盘有关的信息
! U5 I& R3 z/ F% yGetKeyNameText 在给出扫描码的前提下,判断键名 ' X% {+ h) o, B0 o
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
! O: p8 s& s: y9 ^% I% x9 j% Q) WGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
- w6 P) y1 e$ ?2 YGetLocaleInfo 取得与指定"地方"有关的信息
2 a4 M3 K" q3 W. u/ c' OGetLocalTime 取得本地日期和时间 " S' p( D J2 R
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
, M3 L; C& t7 L0 M5 MGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
& x1 K4 w1 ]- m( t0 b9 O3 XGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
8 r! q# Y. ~9 o# C7 qGetSysColor 判断指定windows显示对象的颜色
* a! a1 P4 ^% B( H" _; k' `: s9 WGetSystemDefaultLangID 取得系统的默认语言ID
$ Q, b5 E2 L9 pGetSystemDefaultLCID 取得当前的默认系统"地方"
6 A* I: j0 c5 A0 u6 p6 kGetSystemInfo 取得与底层硬件平台有关的信息 ) I. |' b* ]. ?* I- _! _ {% _
GetSystemMetrics 返回与windows环境有关的信息 , {/ P* g* U, k2 r& l
GetSystemPowerStatus 获得与当前系统电源状态有关的信息
+ C6 |3 k! P$ K$ `6 iGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
3 ?0 K5 N8 g" p3 j! ~" y* \GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
0 |3 H* D* B( a% v9 b" iGetThreadLocale 取得当前线程的地方ID - o: K$ n8 q2 k! F) B5 x( Z- A
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
- x7 S! r0 v% F. m# F. ?1 I S1 pGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 " t! d; |5 K% B9 h9 `# w5 E5 k) r, a
GetTimeZoneInformation 取得与系统时区设置有关的信息
* l s u) s/ J- S+ i9 tGetUserDefaultLangID 为当前用户取得默认语言ID 7 S( t$ c7 [; u
GetUserDefaultLCID 取得当前用户的默认"地方"设置
" F9 `: b: j z1 A. z4 g5 r, Z) B+ }GetUserName 取得当前用户的名字
8 E7 \8 }- X5 v" f# pGetVersion 判断当前运行的Windows和DOS版本 ! ~" P$ Y% `3 `8 p/ M
GetVersionEx 取得与平台和操作系统有关的版本信息
2 D# J% |: n, k# H6 ?8 x# k' HHideCaret 在指定的窗口隐藏插入符(光标)
( \4 p. g* Y6 ?0 N/ }6 y8 [' YIsValidCodePage 判断一个代码页是否有效
[) @3 X, d3 h, S; ^IsValidLocale 判断地方标识符是否有效 ; Q, k0 ~- H+ k% m. R
keybd_event 这个函数模拟了键盘行动 + T g1 N) F. X$ D5 z# {; x6 H' v
LoadKeyboardLayout 载入一个键盘布局
/ b! d7 f0 L" G. b2 Z: gMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
6 n0 |) I6 {) OMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
/ P# e8 m- R: m# qMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 9 t, m, A7 \& ?( k
mouse_event 模拟一次鼠标事件 9 _- {0 t$ T4 Z) }
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
4 g) h b i2 `8 S* r9 nOemToChar 将OEM字符集的一个字串转换到ANSI字符集 1 h) G7 o" J0 {0 U5 G
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
$ H' \# Y& B' |- A, j3 o/ L) h! n' ASetCaretPos 指定插入符的位置 2 G1 n5 R: a' ^0 Q5 O) r0 x
SetComputerName 设置新的计算机名
( q' h2 _+ l) J) h0 [* oSetCursor 将指定的鼠标指针设为当前指针
6 a% t8 M3 a7 P$ P* ^2 Q: `/ M7 YSetCursorPos 设置指针的位置
+ G, G. X' K, S& b2 lSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 ) m% u- | [9 R4 W9 ^0 p" X& [, r
SetEnvironmentVariable 将一个环境变量设为指定的值
9 I# n0 O. S- F2 y( OSetKeyboardState 设置每个虚拟键当前在键盘上的状态
# `! ^. A% q3 J) k" ESetLocaleInfo 改变用户"地方"设置信息
5 T, p' ?/ \" z6 xSetLocalTime 设置当前地方时间 ; m8 I* Y ]( a. Y! K w9 ?
SetSysColors 设置指定窗口显示对象的颜色 ! V9 e8 k3 I8 N' J) | \
SetSystemCursor 改变任何一个标准系统指针
* d/ E: M# O7 y: e# pSetSystemTime 设置当前系统时间 : r) U; _" W2 T0 K
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 ( s2 u. [! D& w- R# f2 d* A: r
SetThreadLocale 为当前线程设置地方
' i& G, l, Q& S; E7 CSetTimeZoneInformation 设置系统时区信息
b* F6 p+ B# z7 l$ p0 JShowCaret 在指定的窗口里显示插入符(光标) # m( C; @/ G' Q' J9 V: S0 K2 B
ShowCursor 控制鼠标指针的可视性
) h% [4 z9 n; c/ ~9 @+ |3 t9 x, r* _ FSwapMouseButton 决定是否互换鼠标左右键的功能
/ p1 M7 d( a9 P7 |7 G/ jSystemParametersInfo 获取和设置数量众多的windows系统参数 , I8 w5 I1 H) Y! H1 v2 w
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
8 d; K$ Q' _% R) f- Z; hToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 " W. O% g5 P2 q# r
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
- f" r0 T3 Z( O, w2 K/ {UnloadKeyboardLayout 卸载指定的键盘布局 1 B( \5 ?3 ~' m+ A
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
. P+ A/ E$ b& X11. API之进程和线程函数
2 Y' B$ ^$ e8 O6 g) o7 U( j! |CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
( c1 {: A; G: K. ACallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 9 i- e8 b# |& W" O5 f* l1 m/ F
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 / E3 U+ S `! K# z5 X
CreateEvent 创建一个事件对象 4 Y$ r9 ^9 ~# a/ I+ J* S5 Q0 Y
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
$ Y: T; T9 L' i+ n% Z2 s' g1 t1 QCreateMutex 创建一个互斥体(MUTEX)
+ T/ n7 v7 r# q% T. t$ ?5 UCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
& L' O8 l. u! s8 e7 d, S# NCreatePipe 创建一个匿名管道 1 P z2 Q7 O0 s( U
CreateProcess 创建一个新进程(比如执行一个程序)
0 m, M' g" x; N% K/ i* y/ o6 ?CreateSemaphore 创建一个新的信号机
X' G! r4 I) q, v( U, ACreateWaitableTimer 创建一个可等待的计时器对象
O2 i: L- H7 y7 _. f. _+ V$ X# ODisconnectNamedPipe 断开一个客户与一个命名管道的连接
7 D& {/ e; }# R* } i X5 \DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 + a1 I" |/ z" c" J" j, S
ExitProcess 中止一个进程
4 x9 M: l1 N0 G1 t5 [FindCloseChangeNotification 关闭一个改动通知对象 . H1 n7 k/ W0 u6 e/ U1 B
FindExecutable 查找与一个指定文件关联在一起的程序的文件名
+ D% f5 S% v) u0 F; | pFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
$ e9 z: F& \& a$ L# A. M. DFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 , O/ Y7 A( e+ |. a
FreeLibrary 释放指定的动态链接库
; U2 d2 r7 |$ @! U WGetCurrentProcess 获取当前进程的一个伪句柄 $ i; x( q. z) }
GetCurrentProcessId 获取当前进程一个唯一的标识符
$ f4 p3 D$ v% o9 |GetCurrentThread 获取当前线程的一个伪句柄 5 L* [6 D3 A) n6 W: `
GetCurrentThreadId 获取当前线程一个唯一的线程标识符 " R- n7 }4 G4 C( \) U
GetExitCodeProces 获取一个已中断进程的退出代码
4 s# P8 w# x" Q, W5 D6 E; j5 xGetExitCodeThread 获取一个已中止线程的退出代码 1 r8 @1 k" t- M% a
GetHandleInformation 获取与一个系统对象句柄有关的信息 8 h& G4 [; V+ H0 o
GetMailslotInfo 获取与一个邮路有关的信息
( ^! {3 ~0 @1 d0 S. w$ UGetModuleFileName 获取一个已装载模板的完整路径名称 8 r$ m! A/ u" b4 `+ \
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
+ Q& W* P$ @: F6 T0 M! ~ GetModuleHandleA(LPCSTR lpModuleName);: {) v: M% u$ ]$ C& Z2 c- u9 t
GetPriorityClass 获取特定进程的优先级别 - o' X9 w$ ^/ L0 J( w
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 2 J3 F1 M+ a" `) t8 p
GetProcessTimes 获取与一个进程的经过时间有关的信息
8 r) s: _9 S% c' ~: eGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 0 d% X' J6 {8 h2 n# N0 t/ Y+ @" w
GetSartupInfo 获取一个进程的启动信息 & W5 o1 f5 }6 q6 m' R
GetThreadPriority 获取特定线程的优先级别
& @# e! v+ c4 S6 F. @, hGetTheardTimes 获取与一个线程的经过时间有关的信息
" S% b; L' W/ qGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 ( {' U5 p$ e2 p1 Q7 b3 |4 u% L
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
9 A4 b% _& a% M0 t) A6 j! |0 jLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 ' E9 j2 p b5 m/ ~# k9 P
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 : }2 c+ b8 e, f- _
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
( n; f9 O' D1 r* ASetPriorityClass 设置一个进程的优先级别 8 I( u! r" x: i6 e9 l8 L" G. x
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 8 u+ _- w5 p1 t& A
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
6 y; D& s1 X6 |6 [SetThreadPriority 设定线程的优先级别
: t8 l2 A* R% P7 GShellExecute 查找与指定文件关联在一起的程序的文件名
- C, q6 ]2 T: ^9 H7 f+ s( Z) NTerminateProcess 结束一个进程 ; F* Y8 m+ x/ {: t9 ]" Y2 a/ c+ O$ z
WinExec 运行指定的程序 ( w& d, E/ F2 `/ E0 B
12. API之控件与消息函数
4 j% Y8 q0 @) i. ^% ]$ pAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
6 k6 n3 w+ U+ @: h/ D( Z+ g/ j) X8 U# IAnyPopup 判断屏幕上是否存在任何弹出式窗口 9 |' }+ ?5 [% H6 o" V4 r
ArrangeIconicWindows 排列一个父窗口的最小化子窗口 ( o9 i) m. a z' H- t
AttachThreadInput 连接线程输入函数 4 z- Z/ @6 @$ T) p3 s6 t
BeginDeferWindowPos 启动构建一系列新窗口位置的过程
g8 X6 d1 G% Z( z7 [& TBringWindowToTop 将指定的窗口带至窗口列表顶部
~+ |- A/ P2 v+ a7 dCascadeWindows 以层叠方式排列窗口
4 c# d6 ^+ l! R2 pChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 $ i" A3 |0 N4 b2 x+ u
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 3 i9 G* V/ J$ ^( W( F
CloseWindow 最小化指定的窗口 0 E" C; D# r2 ~' a
CopyRect 矩形内容复制 - {- v# A5 q8 v
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
' I" ]3 e' k3 j# s6 S+ n1 wDestroyWindow 清除指定的窗口以及它的所有子窗口
; r& C3 j A2 w$ z% ?$ ]9 S9 V8 DDrawAnimatedRects 描绘一系列动态矩形
2 A& V0 ?2 x6 }4 h: g7 Y+ yEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 , w* x1 g5 O, m \ r8 O
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
5 G0 n- _+ n! G' D S7 KEnumChildWindows 为指定的父窗口枚举子窗口
9 F$ g3 w3 S! [, K- Z4 H7 LEnumThreadWindows 枚举与指定任务相关的窗口
$ K3 R* f! C1 xEnumWindows 枚举窗口列表中的所有父窗口 , }4 J/ O, M/ H$ m) M+ y; w
EqualRect 判断两个矩形结构是否相同 3 @# S* S- K' i
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
, V! o @7 E- y5 Y! Q% A4 EFindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
) Z( C# a N$ I2 {FlashWindow 闪烁显示指定窗口 . |7 S; s* }; P7 t
GetActiveWindow 获得活动窗口的句柄
. v2 y( f8 f B/ g: mGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) - v- M/ z# e( d) ^% [
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 6 Y4 c- a! v* C6 m$ q2 _& P% C N
GetClassLong 取得窗口类的一个Long变量条目 ! A# W" p I* k) }2 X
GetClassName 为指定的窗口取得类名
7 g/ _0 p) ` d9 M: x0 G+ mGetClassWord 为窗口类取得一个整数变量
! ~2 }# j t! @% I& k" PGetClientRect 返回指定窗口客户区矩形的大小
7 M, E! J/ w8 X( T3 O$ eGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
/ T6 v% \* f5 `/ M% {7 GGetFocus 获得拥有输入焦点的窗口的句柄 4 v) K1 T1 q) P+ m, g. a) q! X
GetForegroundWindow 获得前台窗口的句柄 & v% X M" W3 o6 b" D$ Q" k
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 5 V) Y* ]6 I0 z. G, i$ V( D: w
GetParent 判断指定窗口的父窗口
, }- \5 e: K1 h* g# O/ GGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
. t, T( W) j+ X5 O0 sGetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
9 `6 c' B* \( `: @. d4 T. a/ |! Q/ {GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
5 r# M) P$ }2 `* N4 {5 OGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
( W1 H/ H. Q6 z' L: JGetWindowLong 从指定窗口的结构中取得信息
6 O7 p2 }. |# J6 q" z1 ?GetWindowPlacement 获得指定窗口的状态及位置信息 , D8 R' Y% j' r3 l: i* [* _2 S+ x
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 $ a8 d( H: {( T/ D4 [" d
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 % b; k. _+ K& u0 t
GetWindowTextLength 调查窗口标题文字或控件内容的长短 5 h L( l$ ~8 H
GetWindowWord 获得指定窗口结构的信息 9 P; x/ P% p9 p
InflateRect 增大或减小一个矩形的大小 & e9 t4 h" o- N
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
4 @" v3 o# Z' sInvalidateRect 屏蔽一个窗口客户区的全部或部分区域
( o: O U2 s+ nIsChild 判断一个窗口是否为另一窗口的子或隶属窗口 ; q* u. ?! c8 _4 K* u: Q) r. ^
IsIconic 判断窗口是否已最小化 3 k: F b3 l2 F% ?
IsRectEmpty 判断一个矩形是否为空 $ N1 v8 W! c3 {$ f, y' E6 V
IsWindow 判断一个窗口句柄是否有效 & P( b" y. j9 \
IsWindowEnabled 判断窗口是否处于活动状态
: p3 c& R4 Z2 x" F6 S. x- k" TIsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 7 K T E# E/ L4 k
IsWindowVisible 判断窗口是否可见
5 F, S. @% ?/ c+ y- z7 ~0 ^ ^IsZoomed 判断窗口是否最大化 - t: D! e- J/ z9 k- ?/ m- C' \1 W
LockWindowUpdate 锁定指定窗口,禁止它更新
4 m7 V* }, h$ _! @MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
/ o* Z" Z( S! zMoveWindow 改变指定窗口的位置和大小
- @( c+ C# Q, V; [: a) Y& E" `2 TOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
" p+ W! O2 d3 N- I$ U: cOpenIcon 恢复一个最小化的程序,并将其激活
/ q, d' |* o/ `7 N. d! ~( R% sPtInRect 判断指定的点是否位于矩形内部
( g* }* Y6 G8 a$ _4 C3 vRedrawWindow 重画全部或部分窗口 5 X+ K. [" b0 j6 }+ A( F
ReleaseCapture 为当前的应用程序释放鼠标捕获 " c8 }/ @6 q. E3 l
ScreenToClient 判断屏幕上一个指定点的客户区坐标 ' W- f3 V7 c: v& z2 N& j' F
ScrollWindow 滚动窗口客户区的全部或一部分
/ k! m+ S( ~+ Y4 b* ?0 g/ u% TScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 ' s$ C# B: T% {0 v( n' ?0 p; L
SetActiveWindow 激活指定的窗口
; B* w* X% B6 [6 @9 k- c! `' cSetCapture 将鼠标捕获设置到指定的窗口 - D8 l ?; G. w1 r
SetClassLong 为窗口类设置一个Long变量条目 . M" w: z) h/ _6 O' s1 W
SetClassWord 为窗口类设置一个条目 $ L7 A/ _( U# O# T/ w! B4 A
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 * K# b) O6 F% C
SetForegroundWindow 将窗口设为系统的前台窗口 ' Q% }0 u' a/ h
SetParent 指定一个窗口的新父
0 s% Z5 w* c U/ X C# k/ pSetRect 设置指定矩形的内容 ! _; ^9 W3 N% H% O) J6 ?
SetRectEmpty 将矩形设为一个空矩形 ; ]9 ~5 n* w' |( E& L8 e
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID 1 _! G/ a; s% N' z0 _
SetWindowLong 在窗口结构中为指定的窗口设置信息
/ `7 ^- o, }" pSetWindowPlacement 设置窗口状态和位置信息
2 m7 G; e# A6 r9 c% B- O& q( |( D5 }SetWindowPos 为窗口指定一个新位置和状态
$ Q% h0 P, d0 L/ [# J" T2 w- k MSetWindowText 设置窗口的标题文字或控件的内容 ! T. y: a5 @7 W# m* m5 c
SetWindowWord 在窗口结构中为指定的窗口设置信息
1 M; l6 ?: ^9 l( B! s3 q: zShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 , k' D6 Q' Q/ x; B) ]8 M
ShowWindow 控制窗口的可见性 ( N9 D9 ^0 Z6 v5 h
ShowWindowAsync 与ShowWindow相似 , B- Y8 }# ^7 |
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
& Y+ @: O- b' ~7 c9 ?) b; |TileWindows 以平铺顺序排列窗口
1 o8 O: p8 V n* P3 [UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
9 J& [! y; t. \& \: L+ K' ~: HUpdateWindow 强制立即更新窗口
0 N3 W) j: {6 p" |4 b& H; |ValidateRect 校验窗口的全部或部分客户区 2 b$ N; P. i$ Z
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
5 n# Z8 ]5 U2 r/ f5 i, c, Z+ N高级音频函数—参看《VC++ 编程指南.chm》11.6
! a/ [$ ]7 e0 M6 A1 o3 i1 w+ ] Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
( F# b! _5 A( i BOOL MessageBeep(UINT uType);
; G7 [7 a, n) r# O该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。0 E7 [( L) n5 ]5 v* S9 j$ C
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。8 H- `8 T! O( r( G/ y4 B/ M5 [/ c
级别
' x& r' \1 a) Y; I | 描述
- w. P9 f! m2 f; j | -1
. V& \* |# Y9 n | 从机器的扬声器中发出蜂鸣声。 5 k5 E5 I4 k- k9 m+ R& q
| MB_ICONASTERISK
, R! l6 m5 P) t5 q) a8 b | 播放由SystemAsterisk定义的声音。 B3 |8 H* K! X( ]2 \/ w! f
| MB_ICONEXCLAMATION 2 i; ^# _9 B, P: h m3 _
| 播放由SystemExclamation定义的声音。
+ N/ T! j& u4 t# m* z- z | MB_ICONHAND
# [+ {: r/ i' @5 v. {, i | 播放由SystemHand定义的声音。
+ V: E. n, Y$ _% D7 B; d | MB_ICONQUESTION 6 m4 f" K; n# w, Y$ `" Y
| 播放由SystemQuestion定义的声音。 : Y+ }8 C6 `, c. \2 i/ |# m
| MB_OK
% H; p8 r) I" T | 播放由SystemDefault定义的声音 0 s9 z& q) b' {6 P6 Z z
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);; F' C1 e2 ?1 P1 H7 V& J' d
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。; U# M8 g. L. f7 }: S
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。4 e1 i: A; o+ x
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
) t0 A- F' A8 x标志 0 U$ y* {& Q, z
| 含义 4 M" H# k% b( t: R( g4 {
| SND_APPLICATION
% W& f& W- d& D: u | 用应用程序指定的关联来播放声音。 + }9 E" c A4 Z+ }: o. W: ]
| SND_ALIAS
. K6 o4 ~( f v) l' T$ k# i+ A' R% C | pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 6 N0 L" ?8 M+ [6 o) j
| SND_ALIAS_ID ; e3 ]: }8 ~% I, _$ }8 T# f% [
| pszSound参数指定了预定义的声音标识符。
6 ^$ G! N3 T" n- M | SND_ASYNC
. g; L! ^; ]5 ?# ^% H! G | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 # I. L5 e/ }. r7 b* L
| SND_FILENAME + F+ w4 h& @! R7 P& N
| pszSound参数指定了WAVE文件名。 % Z9 S9 I1 \. B
| SND_LOOP
; R2 g D; h! g$ {) C+ k% | | 重复播放声音,必须与SND_ASYNC标志一块使用。 # S* k! u. w( v, i
| SND_MEMORY
5 N% ]9 Q \) d& w: e/ y | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 # K6 R6 ]- u, X9 h! N. m
| SND_NODEFAULT 6 z* k( t, d9 l1 f# e# `$ [5 T$ Z
| 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
( P( ~3 m+ ^- R5 i9 @0 F | SND_NOSTOP
2 n: r5 S7 Z8 b! k | PlaySound不打断原来的声音播出并立即返回FALSE。 # p4 I3 H, Z6 t0 a; @7 @1 F1 B
| SND_NOWAIT ! s7 L3 k7 K5 t
| 如果驱动程序正忙则函数就不播放声音并立即返回。
# V5 Y4 i, F7 ^' ~- E( u' B8 _, { | SND_PURGE
3 D4 U. y/ r' n" u% Q7 I | 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 * _: J% e# {( J' A0 q/ x4 E( D1 O
| SND_RESOURCE 3 | \$ M5 z' C* j t8 f
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
( I3 U2 H2 K1 r1 i/ i2 l | SND_SYNC $ V* D4 Z! j" a$ S
| 同步播放声音,在播放完后PlaySound函数才返回。 ! t4 X k, S0 n/ m8 X! Q
| BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
# o w7 O2 Y. D* B1 ]3 ]函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。* Z: b- ]& v# \8 E* P+ H6 q( ^3 k1 S
MCI播放& j. R7 L% U: R3 n
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
: ]' ]8 `1 f* h( _3 z9 \0 DMCIERROR mciSendString(
" S" E Z, x2 r1 g( Q5 FLPCTSTR lpszCommand, //MCI命令字符串
5 G; F w* |: T. f$ P: aLPTSTR lpszReturnString, //存放反馈信息的缓冲区4 B/ C. n$ J* L: l; e
UINT cchReturn, //缓冲区的长度
+ A0 y- g: D5 M: z' LHANDLE hwndCallback //回调窗口的句柄,一般为NULL: \ K# P: d4 Y: h' M( v4 D( R5 e" e% c
); //若成功则返回0,否则返回错误码。
! i' y1 S& V5 f0 r+ G3 ]7 t该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
3 z- X( ~- G' hBOOL mciGetErrorString(/ Y! f% F( T5 E* s
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
3 Y7 W7 {( O- o" v( QLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区8 w n O" d) g) W
UINT cchErrorText //缓冲区的长度
H" F9 ?% V0 {2 a% u1 h5 j);! u" K( S: Q( X) ?5 A- x: V
|
|