|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html
6 {' I8 J3 P) ~0 h1. API之网络函数
' \" r: W, b X. X3 j# oWNetAddConnection 创建同一个网络资源的永久性连接
: @% N% ?) \' J1 G/ ^" w/ \9 ]9 w1 tWNetAddConnection2 创建同一个网络资源的连接
$ e& T, j6 |7 G; ?. b4 [8 `8 _WNetAddConnection3 创建同一个网络资源的连接
# v# h& J: W" h. X ?5 QWNetCancelConnection 结束一个网络连接 9 _) h( ~$ ?( L6 s, [
WNetCancelConnection2 结束一个网络连接 & L, G/ q7 X% k5 y+ o) {8 t9 [5 I
WNetCloseEnum 结束一次枚举操作
8 p m4 J# B% T( d) E2 D2 d/ c9 |WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 s7 P) j6 Q: {' U5 n
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 ) I, o( j& C* Z* P; f1 s
WNetEnumResource 枚举网络资源
3 H! u+ y$ }. s( J2 cWNetGetConnection 获取本地或已连接的一个资源的网络名称
/ K& _3 Z# u+ q0 D! VWNetGetLastError 获取网络错误的扩展错误信息 5 o. N. C6 Z$ r6 |4 W. z% Y
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
; M n; ^! j! i* x! a: Y- R7 [0 EWNetGetUser 获取一个网络资源用以连接的名字 + q: T V6 N# k. N3 s
WNetOpenEnum 启动对网络资源进行枚举的过程
* S& \: y8 F* c" d5 _2. API之消息函数
$ C" }1 s0 R# pBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 0 b1 u# o% D; G9 h
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
8 ~" c, s2 ^$ E" g- s; ZGetMessageTime 取得消息队列中上一条消息处理完毕时的时间 7 f+ w: o$ t, Y v
PostMessage 将一条消息投递到指定窗口的消息队列
+ s$ i+ m) U9 a3 n( p- d( hPostThreadMessage 将一条消息投递给应用程序
* k0 e0 v0 C3 r. @RegisterWindowMessage 获取分配给一个字串标识符的消息编号 # B" u3 b! Z/ i( o7 |
ReplyMessage 答复一个消息 5 x% x( }3 n/ a+ h3 V1 M$ G
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 ( U5 U1 X ~4 K0 b! w
SendMessageCallback 将一条消息发给窗口 ( _4 D; q5 e- m8 W/ ?( i, s
SendMessageTimeout 向窗口发送一条消息
, a8 K. x+ _4 xSendNotifyMessage 向窗口发送一条消息 4 \* C6 @" {3 H5 J
3. API之文件处理函数 , Y9 I$ y1 s! H4 ^' \! l- H( q# n
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
4 e( d# Q4 Z# M( pCompareFileTime 对比两个文件的时间 `% j( u8 |- \$ G) u7 F
CopyFile 复制文件
+ d$ g/ i3 P( c; i3 FCreateDirectory 创建一个新目录 8 t- {0 P8 w) Z3 K1 F$ }- f
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 . ]! |, [8 g, C. A5 i8 B: G- h
CreateFileMapping 创建一个新的文件映射对象 K( N) O7 d2 ]
DeleteFile 删除指定文件
% N" H, D5 k6 h0 xDeviceIoControl 对设备执行指定的操作 : p. U1 r. I; [8 T( i+ F
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
2 f7 F% u! T, D4 f/ OFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
' L( `& h- ]) mFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
: a- o' d& W9 N7 |5 f; K2 eFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
/ S. r' P# g0 {& S% ^FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
8 p0 N, `1 M/ r P' A# mFindFirstFile 根据文件名查找文件 0 Q5 B' @: b* Z* O9 `/ [
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
: T% b. |7 M+ ` L: |' w, l5 jFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
3 q! A5 P( b; b% L: [9 {FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
. S! H& l; j: N6 r2 x' a/ qGetBinaryType 判断文件是否可以执行
+ ]8 N2 b: y# l$ C+ H' [GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 # S* H6 u- `" n+ z1 I. E' g
GetCurrentDirectory 在一个缓冲区中装载当前目录
) H8 x$ y+ S8 IDWORD GetCurrentDirectory(
! m" a/ z! i% D; _3 y DWORD nBufferLength, //缓冲区大小. I- M6 J6 B0 n }/ s
LPSTR lpBuffer //缓冲区的首地址
; S: s, Y. J+ [7 P );- m' Q ^. q/ `! B- N8 E
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 & {0 W6 o' u2 U! Q# B2 j
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 6 o8 m. v8 I2 w1 R) e% G, J
GetDriveType 判断一个磁盘驱动器的类型 2 V" ?6 O3 q# a& N/ @0 G4 |
GetExpandedName 取得一个压缩文件的全名
3 k( z7 N& D9 XGetFileAttributes 判断指定文件的属性
0 h% l; p* U& T( A3 q% Q4 D4 ~GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 , {+ o/ L5 {" m0 u B: e
GetFileSize 判断文件长度 3 g; f6 k( J* y+ V1 P' X
GetFileTime 取得指定文件的时间信息 : P# s0 \# R6 |0 A+ ^! A
GetFileType 在给出文件句柄的前提下,判断文件类型
; j' s$ S) ^6 M* ^$ G: A2 I4 yGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 # o; a5 C3 T4 y! b2 X4 h( L! z
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 3 H4 @( h' Z3 @% E7 y- Z
GetFullPathName 获取指定文件的完整路径名 , p$ G7 s8 z8 T" K; k$ g
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 3 r: }: E: i5 w7 O
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
, @* V0 Q$ x; N0 q- }8 }GetOverlappedResult 判断一个重叠操作当前的状态 0 [1 z# W' m: d# \
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 & `2 V9 K) {8 G% E. E
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 * m, h: T; ?3 O5 B% [2 P: ~" o. H
GetPrivateProfileString 为初始化文件中指定的条目取得字串
* ^* ? k4 V1 X3 |GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
\) U J8 O }0 B: K; wGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 4 B8 f# F5 S$ s0 E+ V! z+ y
GetProfileString 为win.ini初始化文件中指定的条目取得字串 4 p, o7 S' F& U) {% k* l4 b5 E
GetShortPathName 获取指定文件的短路径名 / S$ X; s- l1 \
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
+ `, J4 a5 J! j) u# E4 g2 KGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 : \& ~( Z( o4 G; j2 O4 i
GetTempPath 获取为临时文件指定的路径 : [. V' K: x# S
GetVolumeInformation 获取与一个磁盘卷有关的信息 . I t9 r' k+ s! b
GetWindowsDirectory 获取Windows目录的完整路径名 # H3 T( b. ~1 m: c
hread 参考lread 9 Y$ `7 [0 w0 \" Q
hwrite 参考lwrite函数 # L5 [' ^% E- n) Q$ L
lclose 关闭指定的文件 5 |% [7 r* o+ }0 }. P9 J
lcreat 创建一个文件
1 q8 w Z* a% R) T" t. jllseek 设置文件中进行读写的当前位置 7 ?" `; C# {8 p$ z
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 6 \- u) O4 Y |) ^2 j
LockFileEx 与LockFile相似,只是它提供了更多的功能 3 O0 p3 e7 k: d5 j# x. T% K
lopen 以二进制模式打开指定的文件
/ F' `" T+ N' w3 l, k; {! ylread 将文件中的数据读入内存缓冲区 ; G+ K, n( J3 g$ z
lwrite 将数据从内存缓冲区写入一个文件
/ F& A' v/ h1 a: f4 N0 qLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
/ H+ w& U; _3 H! I, n ALZCopy 复制一个文件
% q" \1 H* u; `7 O) [- y& S- rLZInit 这个函数用于初始化内部缓冲区 9 {) e7 F# ?! i0 ^
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
! P' p: M- F3 S; z( [0 kLZRead 将数据从文件读入内存缓冲区
) \ Z! \3 p' q* {LZSeek 设置一个文件中进行读写的当前位置
' y4 V' d0 c9 F, XMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
$ T% E, x; k* B6 V& Q( QMoveFile 移动文件
+ F W" W! d1 f U$ iOpenFile 这个函数能执行大量不同的文件操作 " }7 K* Q8 H% c) x
OpenFileMapping 打开一个现成的文件映射对象
0 l9 Z0 `0 A% R) J' O4 TQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 / D5 r5 d5 C0 G
ReadFile 从文件中读出数据
' Y& s& r6 N$ N3 M JReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
8 ~! c8 n! q+ ~. ~/ y% M* ?5 jRegCloseKey 关闭系统注册表中的一个项(或键)
) v& s8 i5 B# c' k, tRegConnectRegistry 访问远程系统的部分注册表 # s# Q% \0 Y* w0 E* T
RegCreateKey 在指定的项下创建或打开一个项 $ g' ~6 j' p7 _! U6 {4 x& ]
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 / B" r" o% w" F* D( Y
RegDeleteKey 删除现有项下方一个指定的子项
5 J# k/ ^, ^, ~/ v: i- oRegDeleteValue 删除指定项下方的一个值
0 `" W# K$ D( f J, H. {! WRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx r8 d) U! v. }, K
RegEnumKeyEx 枚举指定项下方的子项
! a0 k% D s$ v" H/ G. U" jRegEnumValue 枚举指定项的值 ; H' g6 Q, m0 T7 N
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
8 ]- m* l7 a( |% a6 Q, g1 B% jRegGetKeySecurity 获取与一个注册表项有关的安全信息
$ e5 @5 W2 d4 H4 m& |8 b9 b" qRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 2 Z& ?8 c: K1 [" {' k7 _
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
3 y( ^0 S+ ~' M% f- I' PRegOpenKey 打开一个现有的注册表项
. S1 |4 z4 j! y5 E6 i. {0 u8 bRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
7 `- S, L8 ^- d; _# e) P* g0 qRegQueryInfoKey 获取与一个项有关的信息 * L$ j- i* s' _
RegQueryValue 取得指定项或子项的默认(未命名)值 $ c: u" V- M) \9 F* n) Q
RegQueryValueEx 获取一个项的设置值
; V, b8 V" T* z' M1 }9 vRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 # E* k# t$ z' C/ V4 Q/ Q
RegRestoreKey 从一个磁盘文件恢复注册表信息 " M: i* q a: Z# M2 Q
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
8 {5 v, f! Y) ?' i* b' jRegSetKeySecurity 设置指定项的安全特性 7 Z5 P+ e1 X9 ?/ W7 z6 ?. Y; ]" g
RegSetValue 设置指定项或子项的默认值
% G; Y/ ^: L/ i s$ jRegSetValueEx 设置指定项的值
, I" b9 g5 X$ X2 x# ]' uRegUnLoadKey 卸载指定的项以及它的所有子项 ; u3 z7 I0 A) F, R2 _6 H
RemoveDirectory 删除指定目录 ) M5 ?- D, _# c1 a& M6 I- V/ n
SearchPath 查找指定文件 + t* u0 l* I% O4 k& w$ R
SetCurrentDirectory 设置当前目录 9 M- p5 g+ d- l' r2 l0 v+ \+ |; @: J
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 1 l& V Q( K+ [0 J3 A% l1 R
SetFileAttributes 设置文件属性 6 K7 `' b, d0 s+ l _& V
SetFilePointer 在一个文件中设置当前的读写位置 & n+ D! ]# a" a2 v* a! H" Y$ Y6 @
SetFileTime 设置文件的创建、访问及上次修改时间 , Z/ H% x; U5 m8 b6 h
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 8 p' Q5 E+ u( ]! Q- G2 D
SetVolumeLabel 设置一个磁盘的卷标(Label)
( w; C b3 s" mSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 # S! \7 \( } H* k4 a7 F
UnlockFile 解除对一个文件的锁定
- f* N& V9 c6 g WUnlockFileEx 解除对一个文件的锁定 3 n5 W$ c9 c' d) \; d
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
4 x$ l) d3 m4 @, eVerFindFile 用这个函数决定一个文件应安装到哪里 $ X6 d1 P% H9 j- g! X
VerInstallFile 用这个函数安装一个文件
6 x% K/ C* V/ w+ wVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
V/ z: s8 J; MVerQueryValue 这个函数用于从版本资源中获取信息
4 B R# y7 G+ gWriteFile 将数据写入一个文件 0 E# F* i' o$ W5 n6 c+ R4 @4 g- ?7 C
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 5 p; `+ B: W& b, f5 C- r3 t
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
6 d" S* [2 w/ _2 y$ ^ E: cWritePrivateProfileString 在初始化文件指定小节内设置一个字串
! y7 k5 D" q$ RWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 * @/ ~% i9 `& \9 n3 _$ K, ^: N; j
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 C6 p! U* o8 N& R
4. API之打印函数 " I0 |: a* g, Q, ^" B+ n# |
AbortDoc 取消一份文档的打印 ; h) M6 h8 q, ?2 X7 E8 d
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
/ h4 H- v: O7 x" L, rAddForm 为打印机的表单列表添加一个新表单 % u. y3 Z! s/ [; Q6 l. x1 h
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
2 B7 j, e7 K2 g+ ~) d6 d6 d9 WAddMonitor 为系统添加一个打印机监视器 6 y9 {' D" O: P; a8 F% M1 m1 }1 O
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 2 Z# \3 ~5 J& l/ u2 U: Y! Z2 F& Z
AddPrinter 在系统中添加一台新打印机 * C& C) p" `2 J4 u! q
AddPrinterConnection 连接指定的打印机 ( B4 }, \- s' @. k- T
AddPrinterDriver 为指定的系统添加一个打印驱动程序 # H$ {1 M3 V) f1 v* B
AddPrintProcessor 为指定的系统添加一个打印处理器
8 F3 \6 d2 S9 z, R( |. }AddPrintProvidor 为系统添加一个打印供应商 $ ^+ t" C3 d. v" a$ y$ Q. B
AdvancedDocumentProperties 启动打印机文档设置对话框 5 L2 }8 Z5 m2 O" z' f' c
ClosePrinter 关闭一个打开的打印机对象
, M' m: E% R. b. TConfigurePort 针对指定的端口,启动一个端口配置对话框
! F4 H. D% I, PConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
8 x/ V" J% n( V. ?( H) `9 tDeleteForm 从打印机可用表单列表中删除一个表单 6 y" u* x' `1 a! K' F+ j
DeleteMonitor 删除指定的打印监视器 $ o) s. w) O6 e* S
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 1 K& N1 ^! D* ]* m
DeletePrinter 将指定的打印机标志为从系统中删除
& W0 E3 B2 u% c: ZDeletePrinterConnection 删除与指定打印机的连接 $ q5 ?2 \. r/ I& ^: `
DeletePrinterDriver 从系统删除一个打印机驱动程序 / D0 U& V2 R8 H' n: L, y8 y* i
DeletePrintProcessor 从指定系统删除一个打印处理器
7 c- ?8 |" P) f) mDeletePrintProvidor 从系统中删除一个打印供应商
P5 q6 o4 Q' A8 C2 a4 h$ `2 zDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
; P0 y( d0 ]& a8 ADocumentProperties 打印机配置控制函数
7 z5 l0 b6 s" O* [EndDocAPI 结束一个成功的打印作业 5 O) a, O7 \. ~# K6 s( L
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
% p3 H$ P0 l) a6 I- g5 PEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 1 D+ x7 y2 U$ V r: I* W- P
EndPagePrinter 指定一个页在打印作业中的结尾 ; Y- S6 }0 @! I E( _8 Q- V6 u& A8 M
EnumForms 枚举一台打印机可用的表单
8 g6 [6 ~9 s7 o! ^, E% q8 O, \EnumJobs 枚举打印队列中的作业
- {4 P# x, z0 g. PEnumMonitors 枚举可用的打印监视器 ) u6 }3 z: v6 j5 b& g0 v
EnumPorts 枚举一个系统可用的端口
3 H6 T+ \- d' r+ g. j9 qEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 ; T! a0 a+ g# M5 W; l1 j2 U
EnumPrinters 枚举系统中安装的打印机 ; B9 H2 s% x* b6 k3 j( R! E: D
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
3 U3 R) p" x* b* C2 J1 I: X0 W$ vEnumPrintProcessors 枚举系统中可用的打印处理器 6 r0 l0 D8 Z+ s* \
Escape 设备控制函数 / _& [ C* P' ]7 H
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 1 N/ t. m$ `: a
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 # \( z4 L) e* h3 p: v! q% i
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
% l1 D% Q1 f8 b3 Z6 NFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
. ^ H2 [4 n$ f- A% T0 FGetForm 取得与指定表单有关的信息
. l+ Q$ j- N" l3 ^+ H Y' aGetJob 获取与指定作业有关的信息 9 ]; ~# Q+ m1 e' K
GetPrinter 取得与指定打印机有关的信息
# m; B- M, |7 }9 A" I1 iGetPrinterData 为打印机设置注册表配置信息 / H- B0 R- O7 r9 [" t
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 . Y: @& m4 a# X- z0 P
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
3 z# Y. e9 e8 q# I8 KGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 - @4 z. R( c. ^( N) `0 {& t1 O
OpenPrinter 打开指定的打印机,并获取打印机的句柄 ; l& O* s" c4 G4 J6 m
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 # F3 q. z1 M8 B& d9 U) \
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 5 x9 I8 _% m: N' X
ReadPrinter 从打印机读入数据 2 f$ {2 ]: E1 W9 O3 A& {0 i
ResetDC 重设一个设备场景
" L' C" o$ d- x8 y2 o& XResetPrinter 改变指定打印机的默认数据类型及文档设置 . n3 W$ G# }# ?: m: J
ScheduleJob 提交一个要打印的作业
- U4 I3 b- Q* c5 h$ \SetAbortProc 为Windows指定取消函数的地址
' w% q+ q# w( u$ f) t! zSetForm 为指定的表单设置信息
; _6 h, k4 H" \, H. q7 \SetJob 对一个打印作业的状态进行控制
/ `8 J7 p7 `( C5 |; L3 B8 CSetPrinter 对一台打印机的状态进行控制 3 s* }: y4 o' q3 G9 n
SetPrinterData 设置打印机的注册表配置信息 - n, W( L5 x# n% X6 B9 s% m
StartDoc 开始一个打印作业 - K! s( ?2 w! O f
StartDocPrinter 在后台打印的级别启动一个新文档 8 c( w4 B* P: f+ W1 {# ^: s
StartPage 打印一个新页前要先调用这个函数 1 G) I. m) L9 x7 y) }' V
StartPagePrinter 在打印作业中指定一个新页的开始
' v9 y, P9 f$ f+ d; dWritePrinter 将发送目录中的数据写入打印机 * m( b( w$ {7 S" m
5. API之文本和字体函数
* k/ M$ c' U& f9 K) p* tAddFontResource 在Windows系统中添加一种字体资源
- s8 G4 T$ M0 @+ FCreateFont 用指定的属性创建一种逻辑字体
+ {( b- A& I* [6 W" S4 wCreateFontIndirect 用指定的属性创建一种逻辑字体
4 K; X8 p" W6 ~( Q0 s4 hCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 4 L. c) I% E' U$ p- R5 }% m
DrawText 将文本描绘到指定的矩形中
2 @/ V5 ?" E) a2 W' Z5 |DrawTextEx 与DrawText相似,只是加入了更多的功能 9 B. u' j2 k. a
EnumFontFamilies 列举指定设备可用的字体
/ @8 p0 P# g5 tEnumFontFamiliesEx 列举指定设备可用的字体 , M3 T- P8 t2 @
EnumFonts 列举指定设备可用的字体 6 v4 ^1 D+ n* w/ F9 h9 s
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
3 T ^# n; N. s! C! B, k4 ]GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
i& r/ D& ?! u2 tGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 ! x0 ^: [2 ~7 f, r# P
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
/ r4 J; j* E, s7 Z& L& e9 qGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
4 n: T$ c+ @7 ]" fGetCharWidth 调查字体中一个或多个字符的宽度 / L6 J% N6 F, V1 V, d
GetFontData 接收一种可缩放字体文件的数据 & F. r/ v, h7 q- R
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 0 f. G5 C# r0 a5 O: L$ [
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
! Y6 @8 }. D- p* x2 dGetKerningPairs 取得指定字体的字距信息 1 J5 G* U8 z( g2 J
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 # {* J$ z6 \' c9 S/ g1 |) ~
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 . Q2 _5 f `( b
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
) O, H# w6 N! C9 zGetTextAlign 接收一个设备场景当前的文本对齐标志
( T1 g: _( f& e5 E$ oGetTextCharacterExtra 判断额外字符间距的当前值
% T4 c( V t! ?* @ aGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
# W$ m7 U; i I& ^/ QGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 9 B, R* e, o. ]/ c8 R" A9 }0 M- T% {
GetTextColor 判断当前字体颜色。通常也称为"前景色" / a, m% f- k* y) t1 X0 G
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 ! y$ e7 Z% D1 Y9 S8 u+ Y1 J+ z/ s% C$ c
GetTextExtentPoint 判断一个字串的大小(范围) * p3 r& k: o5 `9 |* j& Y
GetTextFace 获取一种字体的字样名 1 x8 p$ L7 [6 ^; @7 S
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 " i0 \5 C+ n" q* N& I
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 ; G# t8 D _0 J! V
PolyTextOut 描绘一系列字串 4 g) R9 U% [" Z$ N4 c
RemoveFontResource 从Windows系统中删除一种字体资源
4 t6 f3 ~% |5 b0 mSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 3 p$ R! f% K$ q$ c
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
* Z8 |: C7 |, D" ^& pSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 1 }' R# c" F: v/ ]) F
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
+ L- E) E# p2 e( ?4 i: hSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
) Q( x/ {2 P+ s1 tTabbedTextOut 支持制表站的一个文本描绘函数
% g* N n$ I( z, _) ^$ M& mTextOut 文本绘图函数
8 u# E, o2 O( W1 c$ q9 kWINGDIAPI BOOL WINAPI TextOut(" L& _7 c5 h' ^4 K1 d1 E9 p
HDC, //输出设备
9 E4 w2 p" }* F hint, //输出的横坐标! ~7 U3 o& }2 {5 Q% y* p
int, //纵坐标6 M! I! ^5 L. O8 M$ j# I
LPCSTR, //输出的文本str2 {8 E3 i, z- E0 O: A6 [
int); //文本的长度:lstrlen(str)
7 L, F) K9 }6 y* F# @! W8 x6. API之菜单函数
4 o n ]$ m0 K" R3 Z- sAppendMenu 在指定的菜单里添加一个菜单项
0 g7 f$ @( `9 i* `6 C( ?CheckMenuItem 复选或撤消复选指定的菜单条目
6 T6 q. }& {# H0 c3 R$ |CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
; K: s% q1 q Q( P0 ~CreateMenu 创建新菜单 : o. h2 W8 k: j: q
CreatePopupMenu 创建一个空的弹出式菜单
" f3 [2 \+ U3 }6 i- NDeleteMenu 删除指定的菜单条目
" |# {: d/ _% ]; n' M6 [DestroyMenu 删除指定的菜单 + h, U. ]; Z ^4 ~
DrawMenuBar 为指定的窗口重画菜单 " a/ p$ `. P3 n7 |
EnableMenuItem 允许或禁止指定的菜单条目 5 d. K# `: G3 `/ @5 M
GetMenu 取得窗口中一个菜单的句柄 & _5 a- h' @9 s4 s2 i6 h
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
+ b- Q& v6 o' U. r0 f( pGetMenuContextHelpId 取得一个菜单的帮助场景ID : ~* ^! ~0 J/ {7 X6 l6 v! b- y
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
9 h: t1 p" i# G/ @' ?GetMenuItemCount 返回菜单中条目(菜单项)的数量
/ W6 B- X- Z6 ?, C/ p6 HGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID % j# x3 |( S1 E O
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
1 a6 `0 H; T: k* c) z8 C2 X8 MGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 8 `8 K8 r3 B& c/ ?3 u2 S
GetMenuState 取得与指定菜单条目状态有关的信息
' z9 h7 U3 C1 L: h% oGetMenuString 取得指定菜单条目的字串 D7 W9 e. e# |4 X- G: p6 u
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
6 i: s2 G% j5 L4 xGetSystemMenu 取得指定窗口的系统菜单的句柄
g, l% X9 f [( N$ mHiliteMenuItem 控制顶级菜单条目的加亮显示状态 : F/ _5 |0 O" v- K" ~/ r; g# f
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
1 v8 |+ O; L+ O' Q4 `InsertMenuItem 插入一个新菜单条目
' ~; P9 n5 _6 }" `0 w( F" Q6 eIsMenu 判断指定的句柄是否为一个菜单的句柄
6 Z' {6 J2 u! P+ h* y& a$ kLoadMenu 从指定的模块或应用程序实例中载入一个菜单
( L0 K: Z" I0 ]7 d- L1 l/ a6 I) }LoadMenuIndirect 载入一个菜单 s9 K# H9 u5 E$ X3 Q1 _! E
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ! A$ Q1 l {! l X
ModifyMenu 改变菜单条目 4 P: d8 N$ _( g" i4 ]% [+ Q, S
RemoveMenu 删除指定的菜单条目 : W# J( _* Q8 L
SetMenu 设置窗口菜单
: H7 m: d( B" f& \% S$ T" OSetMenuContextHelpId 设置一个菜单的帮助场景ID 2 T! X5 H. N. s+ e6 K% {
SetMenuDefaultItem 将一个菜单条目设为默认条目 * L& K, r: q' x# g6 [' ~
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) ; a# B3 W1 ?* D& h+ l
SetMenuItemInfo 为一个菜单条目设置指定的信息 " Y+ w" e5 W% w
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 * a. C0 h. v* a/ w: }" _
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 * M! P- {; U0 x( b! r
7. API之位图、图标和光栅运算函数 ' S! y9 H4 T$ f, K& ~% T% U
BitBlt 将一幅位图从一个设备场景复制到另一个
8 Y: v9 h+ m/ C7 F WINGDIAPI BOOL WINAPI BitBlt(6 [ K4 q* P1 m9 F( Z
HDC, //目标HDC
( \& F- p" T* ?. Zint, //X16 P/ x7 }6 N+ {0 _/ U/ p3 v
int, //Y1
m, L6 _. Y5 q+ F: @5 Xint, //width& T! l2 u; B% A3 g5 E V
int, //height
* \7 c$ ^! n" h. q/ q9 L: WHDC, //源HDC
. ^6 ?) F3 e! iint, //右边的距离/ Y3 w' D/ t: T+ f7 D
int, //??
/ V; @! T6 O$ r% F- {/ q5 {DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|" C0 z3 B) Q' V: j! B$ `
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
9 ]0 ` @ u7 P# I3 v! H r3 F- y2 OCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 ; Z6 {) B/ g6 K) @
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 6 G9 F: j$ w* | u# g
CreateBitmap 按照规定的格式创建一幅与设备有关位图
7 T- p2 o ^; D) Z' MCreateBitmapIndirect 创建一幅与设备有关位图
q7 {- ^( r/ ^! `& SCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
9 v2 z+ |5 ]' D9 OCreateCursor 创建一个鼠标指针
+ x9 d& b5 U8 a1 X( r3 ~0 u! e3 b0 DCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
8 `/ X4 o" W4 o7 S8 QCreateDIBSection 创建一个DIBSection & A7 A5 l& ~: I4 V( t
CreateIcon 创建一个图标 2 q) K& }. f E2 g3 k
CreateIconIndirect 创建一个图标 5 e2 j4 Z: @& [2 m" E9 Y5 @
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 9 y5 n9 T9 x- ~+ z
DestroyIcon 清除图标
$ N& a3 [! U& x4 x- sDrawIcon 在指定的位置画一个图标
2 G' T! L! r" M# }8 m/ KDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 # C$ j4 Q$ _" ^) x1 s
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 5 g( Q1 g9 B5 t' E
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 * a- w' V2 Z J) n$ ]4 N/ w$ y. @: p
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
# g% K! L3 [' q* zGetBitmapDimensionEx 取得一幅位图的宽度和高度 ; n7 ]0 I' ?- ^2 W
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
0 [: x+ ]; H( I1 L9 `1 HGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 9 G# k: C5 Y; s( w5 Y: I
GetIconInfo 取得与图标有关的信息
9 V7 |; ~5 `& G( p' K% L) M1 rGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
$ O/ x% g' [6 qLoadBitmap 从指定的模块或应用程序实例中载入一幅位图
: D r% A9 f3 xLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
1 S. n4 o" I5 E) dLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
. B4 F2 p8 s! ~2 I7 ], r, b, rLoadIcon 从指定的模块或应用程序实例中载入一个图标
0 i1 T6 S1 k$ R/ Y2 fLoadImage 载入一个位图、图标或指针
. z8 [7 B: ]9 v8 g) y8 Y+ QHANDLE LoadImageA(; p2 \, |( m: c! L6 S% |/ q
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()
( O8 v( j8 i! c1 S, k LPCSTR, //资源所在的目录:c:\help.bmp7 k2 A. W- F/ I# [+ v! ^
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE& Y R0 J A+ [* K9 w" h! f
int, //+ N6 h/ v U v9 t6 Q7 p
int, //* q r9 c3 o G
UINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
: G! x) s% k& q1 J. ]9 [R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
8 F; h& D" r( }7 J& Y+ [LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED$ i7 a3 t: M$ p; L' L/ l
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 8 f7 Q4 n' A# `- j% D8 j
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
0 ], j0 B9 W6 b* ^; VPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
9 y4 t% a' \: n6 E! qSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
5 d; O0 R9 w% ZSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
0 c0 ?$ ]) J/ K w' Z9 [7 ^SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
; a- m. v) m; A1 |SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
; z d, F+ _( }1 I8 {% gSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
8 P2 o3 T- p. O2 Y) r# r3 PSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 , T' g' \1 k: w+ ?7 b
StretchBlt 将一幅位图从一个设备场景复制到另一个 ! `' E" u% {& W3 M, D6 X
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
# A+ {: O" x) l# A7 [7 s8 y8. API之绘图函数
- Q3 v; h$ f+ S: S$ j( \8 N. hAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 * b2 w2 P0 ^( w! l
AngleArc 用一个连接弧画一条线
+ }6 ? R/ n9 R% {/ d" p" A; LArc 画一个圆弧 ' N% |" q) ] {: d% `
BeginPath 启动一个路径分支 ) W/ [" H; c7 b+ S5 Y- ]+ }+ N* v
CancelDC 取消另一个线程里的长时间绘图操作
5 P& R7 e; K+ l" w7 o4 D x$ ?Chord 画一个弦 N+ K: ]* y. O+ Q- f4 X
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 , D; h" [ w8 x6 y5 d
CloseFigure 描绘到一个路径时,关闭当前打开的图形 : c# |: M+ l9 j& ?9 ^8 G5 E; l5 \% c
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
6 {6 [) T* ^& O: M* d! ~# u% J( lCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
( u' @# y: Y; h) @6 V- [CopyMetaFile 制作指定(标准)图元文件的一个副本 % F* H/ [1 w1 G8 p" c& g0 }
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 4 w2 H* h/ l& T5 x4 r; f; v
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 9 ~" u+ [: Y; V5 x( p: F
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 - ^+ i$ |9 M: g% W
CreateHatchBrush 创建带有阴影图案的一个刷子 , Z+ m/ ?" L! e, V
CreateMetaFile 创建一个图元文件设备场景
& z4 C& R; ^5 n+ g6 PCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
6 R7 N) G6 N lCreatePen 用指定的样式、宽度和颜色创建一个画笔
$ l7 ^6 C9 s H6 z# ~CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
; F5 z0 I0 K- H9 L# KCreateSolidBrush 用纯色创建一个刷子
" d. c- Z) i4 X9 MDeleteEnhMetaFile 删除指定的增强型图元文件 5 x7 H1 d0 o! P/ T8 ~ W6 p
DeleteMetaFile 删除指定的图元文件
3 i' J; b% q) jWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放$ j2 w& I& g* [5 O
DrawEdge 用指定的样式描绘一个矩形的边框 9 t- A: i" j3 f! O; d
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
9 h `) z+ c' o f! K' FDrawFocusRect 画一个焦点矩形 , @; U: Y( Y, r5 I+ j3 I7 `
DrawFrameControl 描绘一个标准控件 - F; b; ?: ~" C% z
DrawState 为一幅图象或绘图操作应用各式各样的效果 ! j3 X: u- H* d* t4 L& S ^6 d F
Ellipse 描绘一个椭圆,由指定的矩形围绕 6 t# L+ M" ~6 K, U1 T, N0 d
EndPath 停止定义一个路径 6 K {/ t3 P k4 x; G+ q
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
% t- s3 j- R; k& ]+ Y [5 EEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 - L9 Y' q, y) C" `3 a/ S0 I0 Y& X
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
) z6 x$ a2 l5 H. CExtCreatePen 创建一个扩展画笔(装饰或几何)
$ M3 `/ C7 G1 P0 O* R- w" e. m! X! gExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
$ b$ Y9 `0 }) L3 Y, D0 Q/ Q1 }FillPath 关闭路径中任何打开的图形,并用当前刷子填充 / {* h. |, V1 d" w5 R5 ]% \
FillRect 用指定的刷子填充一个矩形 6 \' T4 a9 ?. r. K* C
FlattenPath 将一个路径中的所有曲线都转换成线段 ; s) A1 j9 T1 J* d& ~+ D8 v$ A
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
1 x9 T6 v+ S6 P7 h) {+ s \FrameRect 用指定的刷子围绕一个矩形画一个边框 4 i8 ~2 C( ~$ f9 q
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
/ ]+ D, O; ]) T8 Y3 ?& [2 S" H& jGdiFlush 执行任何未决的绘图操作 0 H4 w# }3 s, A! U) A1 }7 Z
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 6 T9 R' J# f5 F3 R1 b/ v
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 $ [; }5 e* Z& X2 i- a* _4 k0 g
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 - N7 [/ v5 t( I+ Y/ s/ c
GetBkColor 取得指定设备场景当前的背景颜色 $ [7 o3 f8 S' ^' K+ u
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 f- L# x0 a+ e6 V/ V% d/ g
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 7 |( [; E8 @2 \$ ]$ ?
GetCurrentObject 获得指定类型的当前选定对象 - @- \6 {( b/ l( s
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 4 Q1 R8 D2 b# b1 @& e2 |* r1 W' i
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 $ c6 l9 k0 m8 s) }+ m
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 2 y9 O8 Y1 m; [: u% k5 }
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 % n8 D" e' k5 g) G/ B+ b6 R9 n
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
3 N- D( J, q' p3 ~2 s, X" G; VGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
" h3 I) V2 J/ D% j% p- aGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 : n0 D& v; Q+ Z: }/ c9 J# s/ p0 r$ V
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
' k2 E, s5 B8 o3 }5 f2 C2 nGetMiterLimit 取得设备场景的斜率限制(Miter)设置
$ w/ F+ z/ \0 Z. q2 YGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 * i/ T' L# a1 d. V- N, E
GetObjectAPI 取得对指定对象进行说明的一个结构
p% R1 Y z0 ]* [. GGetObjectType 判断由指定句柄引用的GDI对象的类型 2 J4 v1 _( h s8 a" f: `
GetPath 取得对当前路径进行定义的一系列数据
' U0 n4 D' u$ k" {* o( d8 a$ {GetPixel 在指定的设备场景中取得一个像素的RGB值
) K) Q; @3 K( @- a: \) O' o& XGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
$ r/ |, R- R5 j) kGetROP2 针对指定的设备场景,取得当前的绘图模式
7 P& G; M0 z2 r' Q! ?, {GetStockObject 取得一个固有对象(Stock) / k; C( Y5 d' u
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
4 h* A" ]4 N1 hGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
1 r9 ~: F% h( k- H6 {InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
7 Z3 |; L* ]) y6 w* t, }* m7 hLineDDA 枚举指定线段中的所有点
5 @7 C; [9 ^2 D* E2 o& ^/ W! wLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 : }6 T) J) \" V7 k% h% o$ G/ N
MoveToEx 为指定的设备场景指定一个新的当前画笔位置 $ Y0 K' w( o7 p3 U& o2 {$ d9 ?" J
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
4 }( c) a' S; M7 g" u4 h3 C, m6 ePathToRegion 将当前选定的路径转换到一个区域里 # [& K+ z6 c% Q, \$ P/ @- v
Pie 画一个饼图 ( e' h9 M; B6 N& b" S- [) b
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
3 |4 h/ C, L7 L/ y. f3 vPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 ' S$ c( q7 M( j" S/ q
PlayMetaFile 在指定的设备场景中回放一个图元文件
; Q* i+ n) z, i5 z/ X FPlayMetaFileRecord 回放来自图元文件的单条记录
- T' [0 f. |& ~( W$ Y9 ^PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 4 Y6 A. X8 I4 [* g0 z
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
( R. r7 h4 H3 N YPolygon 描绘一个多边形 * n3 a/ K5 G$ @8 [9 R7 j: A
Polyline 用当前画笔描绘一系列线段
& Y! H6 l# W* p- G2 ~5 j$ kPolyPolygon 用当前选定画笔描绘两个或多个多边形
( t2 x3 a( i$ {! F) n9 d. |2 HPolyPolyline 用当前选定画笔描绘两个或多个多边形
! u4 L3 @* C% S d5 GRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 : p' A5 X- E9 D- Y- A" u3 G
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 ) k- g M1 T8 N: |- a
SelectClipPath 将设备场景当前的路径合并到剪切区域里 y! G2 `( `& k% p# H
SelectObject 为当前设备场景选择图形对象
! w2 K1 _7 F& J9 s5 ~1 S8 c* [( G WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);4 V% n- N/ n" G
SetArcDirection 设置圆弧的描绘方向
0 k9 p& I5 H1 T6 \9 V: h0 pSetBkColor 为指定的设备场景设置背景颜色 " S9 |3 Q9 ^) `% U
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
4 G8 L5 k) g+ L% n, H eSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
9 k3 v8 M" h& M/ J" D; ?SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 ' u0 Y3 a' K7 W/ R6 Z, x
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 , X7 A7 P2 b, m3 Z# {
SetMiterLimit 设置设备场景当前的斜率限制 3 B; k F: d& T1 Z4 w
SetPixel 在指定的设备场景中设置一个像素的RGB值 % ~' R$ s. U E |1 `7 I9 R
SetPixelV 在指定的设备场景中设置一个像素的RGB值
4 m9 |% f$ {3 [/ m- e) M/ OSetPolyFillMode 设置多边形的填充模式
T8 }4 D) M1 y7 B5 e7 RSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
8 e! E0 f2 L9 H+ n- ESetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 0 a, l% `/ n# n% D& d* n
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
; X) e) [8 o6 A7 e' n `StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
" E9 J3 h/ u$ m, s+ sUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
# y: V- I6 p$ `( v9 jWidenPath 根据选定画笔的宽度,重新定义当前选定的路径
e( P# i' |/ n9. API之设备场景函数
; x( H' g4 W# C! z: ~5 eCombineRgn 将两个区域组合为一个新区域 f7 U$ } V, ?# E3 z* @( g$ q' B1 G
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
3 w! M6 e2 f+ p) n B! O) N* O* A/ BCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
' c2 ^9 l, l' Y5 ]3 x( S# hCreateDC 为专门设备创建设备场景 1 ~& o( S$ o) E# [- ~
CreateEllipticRgn 创建一个椭圆
4 T, P( y7 M3 z" [$ v+ `CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
% Y9 Z+ ^4 { G7 zCreateIC 为专用设备创建一个信息场景 : f% a$ F6 s: E
CreatePolygonRgn 创建一个由一系列点围成的区域 : @, k4 k6 w( s
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
- S) c- j4 Z/ L @3 @CreateRectRgn 创建一个矩形区域 2 N0 p( u3 v$ Y. e! Q% Z
CreateRectRgnIndirect 创建一个矩形区域
4 m/ ^, w. S4 _5 m2 O( ~CreateRoundRectRgn 创建一个圆角矩形
! T* g+ }& f% x- QDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
" s# G) a9 J0 Q$ w |, u& lDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 3 M1 M& U D% O, a
EqualRgn 确定两个区域是否相等 2 L2 Z% L/ s/ a$ r9 e$ A
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 ! p$ [5 V$ Y8 I+ a. F& e- D
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
0 l5 A; w+ h3 K( TExtCreateRegion 根据世界转换修改区域 ' O& i9 g# E/ z2 O$ ^
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 ! O* A4 h" M& W
FillRgn 用指定刷子填充指定区域
: J9 ^( i+ P+ m$ uFrameRgn 用指定刷子围绕指定区域画一个外框
1 t8 v* X( [) c8 N# i" N# g+ hGetBoundsRect 获取指定设备场景的边界矩形
5 X8 @0 n2 w* Q4 @/ ^2 RGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 8 Z8 G* |) A; C4 S2 p
GetClipRgn 获取设备场景当前剪裁区 / O6 w0 s3 k" f
GetDC 获取指定窗口的设备场景
]( B& H) S1 k+ ~8 r) uGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 , z2 D9 R7 _7 }
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) 5 s+ {* [1 i t) u3 w+ j
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 7 o2 l/ ?- J% I: U$ Y' t
GetGraphicsMode 确定是否允许增强图形模式(世界转换)
% ?3 C. R% t/ Q# d7 g2 \, l( tGetMapMode 为特定设备场景调入映象模式 8 b8 H! p9 E- A/ g% }
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
- M7 G" e7 e i( o7 I: \GetRgnBox 获取完全包含指定区域的最小矩形
8 C6 e+ N4 M# `; i Q9 c+ A9 BGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
1 ]: x2 |' F5 [4 D$ S9 ~1 oGetViewportExtEx 获取设备场景视口(viewport)范围 - i6 a0 w: _7 }* l3 d N/ f
GetViewportOrgEx 获取设备场景视口起点
( f$ v; m! }3 ^& f) w# K, }# IGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
7 o6 z7 _6 r3 XGetWindowExtEx 获取指定设备场景的窗口范围
: J" [. Y% q$ _% z+ ~4 R: e6 b4 t! fGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
! p) d. p1 e7 V6 s! S% VGetWindowRgn 获取窗口区域 . m/ R' K/ j5 p0 ]. t8 i4 c9 u
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
( p. }1 A( U3 f9 XIntersectClipRect 为指定设备定义一个新的剪裁区 & b0 {- k, g/ W* U4 `0 V
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
6 A* T4 d: v8 _ [6 vInvertRgn 通过颠倒每个像素值反转设备场景指定区域
E7 T: k' x! D( hLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
! t6 u- y5 M; ]1 U: r3 }9 a6 L8 R" H4 ?ModifyWorldTransform 根据指定的模式修改世界转换 & h# a/ W5 B0 c
OffsetClipRgn 按指定量平移设备场景剪裁区 1 W! O% y2 J! t! z, I4 K
OffsetRgn 按指定偏移量平移指定区域
+ y; Z: } L: z" l& UOffsetViewportOrgEx 平移设备场景视口区域
# \. {, q! b sOffsetWindowOrgEx 平移指定设备场景窗口起点
0 @$ C3 Y! j* s$ n7 S+ FPaintRgn 用当前刷子背景色填充指定区域 , V5 o3 T+ H6 Y* S
PtInRegion 确定点是否在指定区域内 ' Q2 B: i1 {" m) }: Y" R _
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
+ J# n9 r4 P5 b% Y7 G! X" w# JRectInRegion 确定矩形是否有部分在指定区域内 9 f! i( ^/ F4 @' N. b
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
/ ~) H: M4 u6 g( jReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
2 c$ _! A* o. _% h6 d1 `1 G `RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
4 y( S9 r+ j2 [5 p* ], f1 i+ xSaveDC 将指定设备场景状态保存到Windows设备场景堆栈 4 |/ |7 F% u a4 \! o! ^
ScaleViewportExtEx 缩放设备场景视口的范围 9 i& @. d1 P5 B' C" v
ScaleWindowExtEx 缩放指定设备场景窗口范围
B# I N+ _( ~- {ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 0 S+ v6 a8 W9 i0 w* ?# o5 i, `
SelectClipRgn 为指定设备场景选择新的剪裁区
! U0 v5 J& u1 u2 G S) ASetBoundsRect 设置指定设备场景的边界矩形 ! G3 S Q; o6 A
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) : W/ k: G% V& e7 Z! O( D! \; k! E
SetMapMode 设置指定设备场景的映射模式 9 ]' H$ O7 d- ^9 `) M( W' u q
SetRectRgn 设置区域为指定的矩形
* B! b( L7 Q$ pSetViewportExtEx 设置设备场景视口范围 * }4 h9 K( Y* m% s- N! w
SetViewportOrgEx 设置设备场景视口起点 . Z' l6 ^6 r/ e3 h
SetWindowExtEx 设置指定设备场景窗口范围
4 A; I9 W2 y& s- A2 {SetWindowOrgEx 设置指定设备场景窗口起点 : W, n r! i( r( `( _
SetWindowRgn 设置窗口区域
& W/ z3 z* b% }4 I% n+ pSetWorldTransform 设置世界转换 , x* s2 c. V2 g' R% B' S
ValidateRgn 激活窗口中指定区域,把它从刷新区移走 " j1 Y% s4 t2 N) J$ Z. d0 N
WindowFromDC 取回与某一设备场景相关的窗口的句柄 " Z1 S& u' l1 v2 {8 G9 r
10. API之硬件与系统函数
1 m4 F3 i. O) S( I9 s4 wActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 & J& U; l( \) i v" Z" \; Z9 V: c
Beep 用于生成简单的声音 8 O# x1 q( r! ] ]5 J
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
( e4 V8 D, ^. }* y/ sClipCursor 将指针限制到指定区域 0 Z1 Q3 {0 k% `3 O4 O, [
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID : p, ^- [" P! B
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 9 V N4 ?& d( A, p. b
DestroyCaret 清除(破坏)一个插入符
1 E, U+ R" O$ f1 rEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
4 \2 {- ?: T- e( Y& p# I( n2 [. V2 w* kEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
2 F' q+ |8 t" s* P# j8 F- H8 pEnumSystemCodePages 枚举系统中已安装或支持的代码页
( k$ L8 | f3 n8 N7 G$ |EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 9 Z8 e! L, U& |$ u9 h2 x) y
EnumTimeFormats 枚举一个指定的地方适用的时间格式 5 P% j1 L( H( C: }/ l
ExitWindowsEx 退出windows,并用特定的选项重新启动 3 q) m" D( x0 z3 P; x% a" |, d
WINUSERAPI BOOL WINAPI ExitWindowsEx(
j$ o! `4 i. T0 F) M, ^2 p ~& P# RUINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG8 j) \) `9 [6 `0 Z( L6 \
DWORD dwReserved); //0; S( v, B) d$ J; w: q
ExpandEnvironmentStrings 扩充环境字串 7 p' G) X L0 @7 B$ V. a+ `
FreeEnvironmentStrings 翻译指定的环境字串块
! [+ ]9 M( {+ p& `0 G7 wGetACP 判断目前正在生效的ANSI代码页 0 j& ^" b4 W/ H1 k/ w6 w, n; G
GetAsyncKeyState 判断函数调用时指定虚拟键的状态 0 U6 z4 D# [' Q9 Y; `
GetCaretBlinkTime 判断插入符光标的闪烁频率
3 ^9 y3 `+ D3 a" ~' tGetCaretPos 判断插入符的当前位置
, G1 m) T" w+ n7 G& v# F) ]GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
5 z2 q6 s2 V7 l- ^GetCommandLine 获得指向当前命令行缓冲区的一个指针
0 x, K6 O5 x# W7 BGetComputerName 取得这台计算机的名称
$ ~! U" v3 b2 U& Z9 g# @GetCPInfo 取得与指定代码页有关的信息 / u! K0 ^9 |9 z
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 $ L7 o- t U' X
GetCursor 获取目前选择的鼠标指针的句柄 9 D5 F8 u' i1 f+ d2 h& @
GetCursorPos 获取鼠标指针的当前位置
) a4 p T, Y+ \( _- WGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
% O: t* ^$ q/ A W ~) b# s/ FGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
' t. _' ` ?! ~ }, e0 I2 X, uGetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 & }1 C+ w7 Q2 @7 k- N' t$ v
GetEnvironmentVariable 取得一个环境变量的值
Z) P) w/ A7 j& C: x( MGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 4 L8 F* {! ?# g
GetKBCodePage 由GetOEMCP取代,两者功能完全相同 # \9 V; [) r+ i% O1 i
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
4 ?) k& r/ M/ E; }4 n9 q* AGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
3 h* ^/ [5 b% G4 k' s9 aGetKeyboardLayoutName 取得当前活动键盘布局的名称 . @4 }8 m3 {5 _. }1 m4 R
GetKeyboardState 取得键盘上每个虚拟键当前的状态 ! E% H0 W5 N% y2 g2 J9 W# K- |
GetKeyboardType 了解与正在使用的键盘有关的信息 ) Z2 O, D! j2 _* O% t
GetKeyNameText 在给出扫描码的前提下,判断键名 2 c, j4 E% ]! T7 U, u9 |" n5 r
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
& m( B. H. Q5 F% E+ E" b9 f0 WGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 $ j6 {/ Z" l* E- j- F
GetLocaleInfo 取得与指定"地方"有关的信息
* ?, N0 @. T$ y, K7 u8 v- EGetLocalTime 取得本地日期和时间 ; U6 E4 Z4 a- X @
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 , x8 ~1 l' g8 u+ K8 _, l( ~# j# ?
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
k* j: Z. |( c m1 VGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
: B) g! v0 t2 Z2 \7 T( t5 `; xGetSysColor 判断指定windows显示对象的颜色 n% o, D% ^3 Z$ C( g4 T) p$ `
GetSystemDefaultLangID 取得系统的默认语言ID
) B/ N1 M$ z: h& W. X" o+ {GetSystemDefaultLCID 取得当前的默认系统"地方" ! D( [: F% i/ ? }( G
GetSystemInfo 取得与底层硬件平台有关的信息 0 V4 R) A9 i5 s# z" `) E2 Y
GetSystemMetrics 返回与windows环境有关的信息
6 B; A4 S( J! Z) AGetSystemPowerStatus 获得与当前系统电源状态有关的信息
- V9 ?4 M1 J& a/ ]GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 + S% O2 d/ b* R$ Z# b) E
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 , y6 g+ a5 o7 t) q
GetThreadLocale 取得当前线程的地方ID
: E- ?; \$ d! @+ TGetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) ! q* ^6 w" A! V& L/ G. \ G, [
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 6 f$ P6 X$ q" I8 e( ?
GetTimeZoneInformation 取得与系统时区设置有关的信息 L$ i# c: _6 |" j
GetUserDefaultLangID 为当前用户取得默认语言ID 9 L! j$ Y9 Y1 z% S) s3 ]
GetUserDefaultLCID 取得当前用户的默认"地方"设置
3 [% s3 K5 Y9 b; O$ {GetUserName 取得当前用户的名字
; [/ |, v+ ^+ Q( Q/ xGetVersion 判断当前运行的Windows和DOS版本
0 U# L7 r3 D4 z2 h, Y8 r4 hGetVersionEx 取得与平台和操作系统有关的版本信息
2 V; W- ]& w2 m0 b: U% C; fHideCaret 在指定的窗口隐藏插入符(光标) : @2 {* U3 _. t2 m
IsValidCodePage 判断一个代码页是否有效 5 T" N8 ?) q# z' \1 @
IsValidLocale 判断地方标识符是否有效 ( \3 q4 J: g2 A9 p" v1 p
keybd_event 这个函数模拟了键盘行动 / k [0 c. b4 I- S; g: S) Q4 g
LoadKeyboardLayout 载入一个键盘布局
0 i8 H: E5 `: s# w) }# _MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
9 d- Y1 A0 c: _2 p3 }MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
) C0 Z8 ]2 G3 |. D" \9 M4 hMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 - Y" Q# k, S! U0 Y
mouse_event 模拟一次鼠标事件 * Q9 j7 ^# @" Q5 ]5 ?
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
, Q D* s5 N5 j2 JOemToChar 将OEM字符集的一个字串转换到ANSI字符集
5 A& a( G% m( p# @SetCaretBlinkTime 指定插入符(光标)的闪烁频率 4 }' I1 ?2 M; ~8 a& b2 E$ c
SetCaretPos 指定插入符的位置
' q' o, j7 t$ f7 ^1 L0 [) @& Y; gSetComputerName 设置新的计算机名
4 R0 \, P3 a; }4 s/ }* ], X# H$ jSetCursor 将指定的鼠标指针设为当前指针 7 i7 a6 [7 r( B1 Y1 a
SetCursorPos 设置指针的位置
% m9 M$ n0 V+ u: r( SSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 ( I" y* j2 A Q& n8 a C' `0 e
SetEnvironmentVariable 将一个环境变量设为指定的值
! V( P( \1 Y7 f u) g; TSetKeyboardState 设置每个虚拟键当前在键盘上的状态
5 c) c( Q) C' SSetLocaleInfo 改变用户"地方"设置信息
) p5 n8 {2 Q7 ISetLocalTime 设置当前地方时间
/ t3 m# W F n1 [SetSysColors 设置指定窗口显示对象的颜色
4 k' p) ~0 x( TSetSystemCursor 改变任何一个标准系统指针 5 C- l- r4 r7 J+ K% }
SetSystemTime 设置当前系统时间
$ U5 i0 e3 c& @$ ~SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 2 C! F/ n# [: p. H
SetThreadLocale 为当前线程设置地方 $ z+ f. n7 u ^: j# o% T* r# z
SetTimeZoneInformation 设置系统时区信息 / \% j* j' b: `( i0 I7 U% z- F
ShowCaret 在指定的窗口里显示插入符(光标) - U# D( R4 ?$ {% r f- T
ShowCursor 控制鼠标指针的可视性
. |- I4 I5 O% `% nSwapMouseButton 决定是否互换鼠标左右键的功能 & k/ X( t* a$ m* {! \- U" j) ?
SystemParametersInfo 获取和设置数量众多的windows系统参数
/ P% J8 n7 Y. W& J8 Y* G: Y) Z+ mSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
: m# `; T+ t4 h0 L, M yToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
$ D3 Q4 z) Z5 c# NToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
, P& q6 |7 f& ?% zUnloadKeyboardLayout 卸载指定的键盘布局 " c$ s, L8 H9 @# v' ]* s6 f6 ^; w
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
& n, |. q0 k+ O4 t11. API之进程和线程函数 9 D4 f7 T! \9 h3 `6 H, r* t
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
6 U5 U5 k2 H2 H. K% L* N4 {0 \CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
$ r7 @: ?; j: _4 lConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
1 R3 ]2 d3 r3 H! ]8 Y0 rCreateEvent 创建一个事件对象 - h5 m( i, ~* X
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) ! C: Y/ g8 R' d& o% Z0 M
CreateMutex 创建一个互斥体(MUTEX) 5 e4 @2 T+ b8 } D9 J$ a5 v
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 # N, ]& d+ [7 E7 f! F
CreatePipe 创建一个匿名管道 9 O; D# t6 U8 \+ \7 K8 v4 e
CreateProcess 创建一个新进程(比如执行一个程序)
5 Q$ [1 \+ w( ~6 B' m- D% @CreateSemaphore 创建一个新的信号机 0 s# {4 k+ Q# r" w4 F% I9 x
CreateWaitableTimer 创建一个可等待的计时器对象 ; a* m$ [9 Q% e; T$ A1 @$ `2 P
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 " M) W* e+ h8 O( K
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 ; y& |( N0 x! ^$ _, G5 ^0 y
ExitProcess 中止一个进程 + d; ]$ f2 M; K: B% A
FindCloseChangeNotification 关闭一个改动通知对象 ) [3 e) h% K. K" v \& H
FindExecutable 查找与一个指定文件关联在一起的程序的文件名
% U* l2 C6 E" r+ T( Z" l3 q. OFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
7 N% y0 E# _, Y5 G2 WFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 . G X4 R3 V5 e
FreeLibrary 释放指定的动态链接库
- U; R& x1 ^3 Z% o1 M* b: PGetCurrentProcess 获取当前进程的一个伪句柄
, E1 g6 C8 Q* J& j, K0 f' eGetCurrentProcessId 获取当前进程一个唯一的标识符 * v0 Y7 S5 J. G) U3 h( u
GetCurrentThread 获取当前线程的一个伪句柄 6 W# w% k4 }0 V# H- v
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
. K! s% s% P- o( l5 @GetExitCodeProces 获取一个已中断进程的退出代码
' B, H X/ F `' d& zGetExitCodeThread 获取一个已中止线程的退出代码
7 D5 v5 o5 o6 tGetHandleInformation 获取与一个系统对象句柄有关的信息
4 ~5 N3 k6 B" g3 _6 l) N" NGetMailslotInfo 获取与一个邮路有关的信息 8 g! b: m5 _* ]% |( ~5 u+ P
GetModuleFileName 获取一个已装载模板的完整路径名称 * r3 A$ z a% C1 t& |
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 7 D' G, c5 r! \! G$ U
GetModuleHandleA(LPCSTR lpModuleName);
5 S ]* }( l* E& R9 q5 c3 EGetPriorityClass 获取特定进程的优先级别
) H) c- y1 g4 ~( s2 kGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 : |2 k) ]) V9 |& l6 K# a
GetProcessTimes 获取与一个进程的经过时间有关的信息
$ d0 \; ` x* g2 v& U% E, }/ sGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
, L" T4 o, _: G& [GetSartupInfo 获取一个进程的启动信息 - E" d6 \ j7 _5 Y! ~+ X+ O5 O
GetThreadPriority 获取特定线程的优先级别 2 V) L* V7 L. r
GetTheardTimes 获取与一个线程的经过时间有关的信息
y1 a* A9 R3 J CGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 $ L2 H7 S% D1 C9 `3 R
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 : E5 h3 R7 }8 t
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
' D$ d( h: e+ V+ S) q/ b+ B7 hLoadModule 载入一个Windows应用程序,并在指定的环境中运行
$ S' H. ?% J0 S( v( N1 RMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
( Z, g& F: X8 ?+ Y/ l; d$ qSetPriorityClass 设置一个进程的优先级别 , T# X* j: ^9 |8 u0 j
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 . R/ T( ?+ {; ?; S7 n4 l% l
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
+ I$ v' c/ @/ ^$ E5 p }9 gSetThreadPriority 设定线程的优先级别
' q% w$ z1 Q0 K$ x4 e" N5 @ShellExecute 查找与指定文件关联在一起的程序的文件名
0 v) W1 l2 ]* f' y+ a) ITerminateProcess 结束一个进程 8 ?" \7 c: v, G6 R
WinExec 运行指定的程序
, w& C+ m+ i! J, X/ C12. API之控件与消息函数
6 j% x7 O; [) \- ~ a8 i0 gAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 # v, T3 {0 d( k$ J* Y) v% i
AnyPopup 判断屏幕上是否存在任何弹出式窗口
- c( c$ b5 T: O9 W/ R6 x/ wArrangeIconicWindows 排列一个父窗口的最小化子窗口
' \& c; \" D, r. d" b8 }AttachThreadInput 连接线程输入函数
; |; r7 [3 J7 t8 J3 n, I; m, B0 KBeginDeferWindowPos 启动构建一系列新窗口位置的过程 0 }: [: f3 z+ {: `9 k$ K: `
BringWindowToTop 将指定的窗口带至窗口列表顶部
/ v5 H3 P1 T* } Z6 z- f9 v% N7 k' sCascadeWindows 以层叠方式排列窗口 " k( A1 h# V- h0 U* } B
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 + Z: _5 [* W: N/ ]' `" E- W
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 6 O4 U$ |) R5 i: a2 ^6 v5 b
CloseWindow 最小化指定的窗口
% U0 }4 H% s( S+ v2 S7 h2 SCopyRect 矩形内容复制 3 |' O: s& ]$ Q, N
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
* _; }1 O) |' ADestroyWindow 清除指定的窗口以及它的所有子窗口 ! S8 G8 t9 |0 g
DrawAnimatedRects 描绘一系列动态矩形
9 x/ |: g5 d# j! B8 Z( ]EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
6 w$ t% @2 y3 `5 ^6 pEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 3 P5 x |! c3 _/ L3 L
EnumChildWindows 为指定的父窗口枚举子窗口 + r2 b2 q/ U5 m0 L% T
EnumThreadWindows 枚举与指定任务相关的窗口 " ^; o' Y9 T, H O
EnumWindows 枚举窗口列表中的所有父窗口 6 \/ o0 I8 N! `0 n& C4 d, |+ C1 c
EqualRect 判断两个矩形结构是否相同 2 O, F, |: ^+ E" r* [0 q5 Q
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
8 ]/ S5 z& U- F& {FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 ; @0 Q; B8 d, }
FlashWindow 闪烁显示指定窗口
; b, j! V( G- o, X @- kGetActiveWindow 获得活动窗口的句柄
7 j3 _- H) W4 J: {9 i# xGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) , d" R% J+ {' g7 R
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 0 q, D; J: a9 d
GetClassLong 取得窗口类的一个Long变量条目 ) f- J6 ^) Y) N( ?; c @
GetClassName 为指定的窗口取得类名
7 P D! @2 Q: k$ c9 v# G. GGetClassWord 为窗口类取得一个整数变量
2 Y( ^0 M0 K( `! R, OGetClientRect 返回指定窗口客户区矩形的大小 . e" A1 \! r: ^" [8 t: }# c
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 0 a9 E3 X7 H3 O4 H* d( Q
GetFocus 获得拥有输入焦点的窗口的句柄
7 \$ k, \. l' S; U# ~8 FGetForegroundWindow 获得前台窗口的句柄 , m; r2 q! p$ g% ]" A
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 9 F8 G5 `& h5 \. G6 o( `
GetParent 判断指定窗口的父窗口
. p0 W: l6 b. u: s* K# \GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 3 N' b" e- f! {0 p0 h' U1 ^/ m
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 $ P$ m4 x5 z1 u1 }- U/ Y
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
u0 T0 R: n3 i% {) T: YGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
: K9 @1 K; m5 R' N! RGetWindowLong 从指定窗口的结构中取得信息 1 K( I; Y# ]& y
GetWindowPlacement 获得指定窗口的状态及位置信息 ( l/ y# p- D6 ?8 Y* I9 k
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 5 ?: I- _6 e5 D3 t3 {$ c' h5 Y
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 2 ]: l; C( k% a; G2 m; ?; m
GetWindowTextLength 调查窗口标题文字或控件内容的长短 9 a' O# Z+ A% @' V0 \1 z
GetWindowWord 获得指定窗口结构的信息
4 v! p. H) x: nInflateRect 增大或减小一个矩形的大小
7 C3 d: G9 Q ]$ s/ `IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 4 g5 N- z: W$ w2 {' L9 V; }
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 1 p* V- t8 c- ]8 h) b
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
1 z/ T q+ {' F' [IsIconic 判断窗口是否已最小化 ) o4 B! t% h; @9 s/ `
IsRectEmpty 判断一个矩形是否为空 7 x1 ^) ?' d, A& a" u! L
IsWindow 判断一个窗口句柄是否有效 ! N0 A' K3 l) D- a8 v5 P- n
IsWindowEnabled 判断窗口是否处于活动状态 1 S1 u9 Z% N# I& H
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
5 X0 _! Z* @& n2 oIsWindowVisible 判断窗口是否可见
2 T v7 u2 ]0 y' @IsZoomed 判断窗口是否最大化
4 w7 @# s- r8 J% M- B3 \. ]' X( MLockWindowUpdate 锁定指定窗口,禁止它更新
$ e% Z6 k- }6 n. l. tMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 / Z8 K9 m/ k0 q
MoveWindow 改变指定窗口的位置和大小 ; v: W, p8 @. K$ o. y! J7 |
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
6 F9 }$ P0 U6 M+ }! \OpenIcon 恢复一个最小化的程序,并将其激活 1 O# ~7 g b& w' A M- ]
PtInRect 判断指定的点是否位于矩形内部
' ?7 ~ c# c- G- F& j0 ORedrawWindow 重画全部或部分窗口
4 G% w# `( Y& R! A! A7 yReleaseCapture 为当前的应用程序释放鼠标捕获 . s, Z: {5 ?* U; P3 d
ScreenToClient 判断屏幕上一个指定点的客户区坐标
- T3 Z& d$ k0 q# p nScrollWindow 滚动窗口客户区的全部或一部分 ) M. @. ?0 w+ A6 w" Z1 S3 \
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 $ z' R1 p- Y2 x v$ v
SetActiveWindow 激活指定的窗口
& Y$ w$ {- M7 s3 VSetCapture 将鼠标捕获设置到指定的窗口
% ~) b9 S+ p! \% G' \' J- i1 }6 pSetClassLong 为窗口类设置一个Long变量条目 ; \+ @+ T3 @5 c n2 x# u3 t
SetClassWord 为窗口类设置一个条目 7 u) s2 Z5 N% c0 B
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 7 G- U5 a. y' ?- `( t+ i
SetForegroundWindow 将窗口设为系统的前台窗口
, S0 m Z2 F& p" X- {* y( dSetParent 指定一个窗口的新父
i) O/ W7 q" z0 Z T+ H. h' v$ ~SetRect 设置指定矩形的内容 + H& j! C7 A4 G5 ^+ M6 G: A
SetRectEmpty 将矩形设为一个空矩形 9 _. [/ ^( u) c: l5 A
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID # c5 n8 B/ q* O4 @' a* q, y( e6 c
SetWindowLong 在窗口结构中为指定的窗口设置信息
& P. l$ d% ?7 E, o) K1 Y( eSetWindowPlacement 设置窗口状态和位置信息
& M; J9 _% E) J7 Z) dSetWindowPos 为窗口指定一个新位置和状态 8 T6 ^6 q' l8 H. @
SetWindowText 设置窗口的标题文字或控件的内容
8 c. k( o% M7 Z& i9 {, W6 L+ ^; iSetWindowWord 在窗口结构中为指定的窗口设置信息 8 ~5 X( ~/ q1 t {
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 ) F, o- m- h" |/ l2 B: X
ShowWindow 控制窗口的可见性
5 U; K7 K% H/ K. OShowWindowAsync 与ShowWindow相似
' C# V8 ~" y- LSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
" U; b, a/ w; I7 `8 PTileWindows 以平铺顺序排列窗口
# B, h& b! k2 J7 Z# ?6 C; y) FUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 ) T1 F8 P) s$ K* ^' @5 x* Q
UpdateWindow 强制立即更新窗口
) Y, z! O8 c5 F% ]ValidateRect 校验窗口的全部或部分客户区 & ^1 x# a' Y3 M9 j
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口5 H+ {" b& p9 }! r4 I/ |+ R$ [0 J
高级音频函数—参看《VC++ 编程指南.chm》11.6
2 l- [$ Q' [" |' R9 @; C Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。/ i. x" T1 I8 b
BOOL MessageBeep(UINT uType);% ]( h! U0 T. ], n8 X
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
v2 y& p+ Q2 w9 L) I' b: U参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。9 c3 Q4 z9 J- \5 b
级别
/ S# X& ?0 C& C4 r | 描述 : @! u& R% B5 w; G% f7 g* o
| -1 & b4 {9 n$ Y" j2 @
| 从机器的扬声器中发出蜂鸣声。
, ?, X# k; R! i4 K2 d% \ | MB_ICONASTERISK
K" H! e# Z: m- \ | 播放由SystemAsterisk定义的声音。
$ y% O% G1 p' E, } | MB_ICONEXCLAMATION 3 o; \) b" L) y: o) v! U- k& W
| 播放由SystemExclamation定义的声音。 # m/ l7 j) ], D- L
| MB_ICONHAND . F9 Q- o2 V' o% ^
| 播放由SystemHand定义的声音。 W0 h/ L' U- h) s; c( t4 Z, \" Q
| MB_ICONQUESTION
! V0 j B' X3 ]. W1 V2 _8 q | 播放由SystemQuestion定义的声音。 * \( c6 g$ A' N
| MB_OK ; l/ Y' F9 o3 N( e) \3 \
| 播放由SystemDefault定义的声音 8 y4 j$ _ r0 S8 |, y, ^" k
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);4 h- m$ R7 D |! R3 w% V% l
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。 C7 A$ t* m' |, r# {$ y
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
" F3 h0 B1 @6 F( ]参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。- R; b0 s; K8 U1 n: j8 \- n; V, A
标志
$ n- X# D. u6 a% D( D7 ~ | 含义 6 E! g' @: J1 {; U
| SND_APPLICATION & O' g5 ^0 z3 z: O' m6 c
| 用应用程序指定的关联来播放声音。
0 L+ \4 B; O, e4 T | SND_ALIAS
+ I# m& N$ i, e8 w6 s; ]$ ]: U | pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 + C6 V, j: b+ J- G
| SND_ALIAS_ID 7 K* I9 ?( h$ F' r0 q$ t- `5 s
| pszSound参数指定了预定义的声音标识符。
. v( `* B0 J6 j$ Q5 i+ v | SND_ASYNC
6 _' Y+ |# r" l | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。
# z# F6 C; ~' ?/ t5 B0 l | SND_FILENAME
' I6 D, |' D1 f( T0 i; @7 o | pszSound参数指定了WAVE文件名。
0 ?0 G C; z* T) [; |1 k) x7 d: w | SND_LOOP
+ z: x7 |! c b6 ?8 a | 重复播放声音,必须与SND_ASYNC标志一块使用。
9 \8 D& ]- B, [/ z. q | SND_MEMORY
0 Z3 J6 m( M9 z# W( I& [/ s | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 ; Z4 F* [+ O5 M0 l9 n$ ` _
| SND_NODEFAULT
$ p' s( S3 G t# m9 [ | 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
* v; d! K& V( c; z | SND_NOSTOP : R2 Y7 Q) M$ A! A7 {
| PlaySound不打断原来的声音播出并立即返回FALSE。
' F V; {" Q5 ]& v | SND_NOWAIT 3 Z5 `& D+ g9 b4 I9 x5 P$ a# t
| 如果驱动程序正忙则函数就不播放声音并立即返回。 ; q; R( W9 d' }& S1 c8 ^7 U
| SND_PURGE 5 R; ?, f X* D7 V* `0 f
| 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 ) `3 o- C4 e( L+ A$ f
| SND_RESOURCE - C. g# v0 E- e* N1 J* D( d0 s# O
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 ! \! k* I2 Q% |0 Q4 {
| SND_SYNC
- u a4 p8 o% a' Y$ v8 d | 同步播放声音,在播放完后PlaySound函数才返回。 8 S, F/ e4 T, ?: u: |
| BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);- p* U- u% H. A$ {1 j/ Z
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。, Z- J7 ^2 [; R% x0 o( d# u
MCI播放' e" u4 W9 O, c% @
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:2 ?5 O1 g* _0 M w
MCIERROR mciSendString(( I7 p/ Y- i7 m2 j# ]% c M
LPCTSTR lpszCommand, //MCI命令字符串$ V0 @- M2 ^* H# ]. G
LPTSTR lpszReturnString, //存放反馈信息的缓冲区* a$ N {4 l- F
UINT cchReturn, //缓冲区的长度
$ b7 ^& ^, z$ WHANDLE hwndCallback //回调窗口的句柄,一般为NULL
" x& p9 V+ f x1 |# M* O! t); //若成功则返回0,否则返回错误码。: }$ _+ l- ]* @- `- f
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
4 o) O5 ]6 u. M0 _. YBOOL mciGetErrorString(1 ~9 m% H8 S' g
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
( B4 m$ Q) p' H" a5 a- m% m( ULPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
7 p# e& _; h" B* c. }' |* NUINT cchErrorText //缓冲区的长度
, u) _8 R: Q0 {( G" q. x& u);
9 E5 W& P* w i5 X, H2 b |
|