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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
- L6 ~! y. q7 D' o1. API之网络函数
7 r: }: q' ]! ^6 ZWNetAddConnection 创建同一个网络资源的永久性连接 ( B! V8 O& F' I9 S
WNetAddConnection2 创建同一个网络资源的连接 8 B# d8 N: F- A; R$ c+ Q: r* @
WNetAddConnection3 创建同一个网络资源的连接
+ T9 l+ A' n0 s! f4 tWNetCancelConnection 结束一个网络连接 9 {" a3 J3 k# i% y8 |% P5 r
WNetCancelConnection2 结束一个网络连接 & @% H$ u) Y9 u5 h" I/ C& q
WNetCloseEnum 结束一次枚举操作 6 V9 Q' G/ j: l4 N
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
: z& o' @, B3 X7 s6 oWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
- }! _/ L. m% Q, KWNetEnumResource 枚举网络资源 % N0 B: D, _3 D. m
WNetGetConnection 获取本地或已连接的一个资源的网络名称 , ^; D% b% ?  G3 O1 N0 y/ P$ P
WNetGetLastError 获取网络错误的扩展错误信息
% i; D7 P8 W, R" l8 WWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 # V, Q% o2 G! ~; h+ W
WNetGetUser 获取一个网络资源用以连接的名字 8 K' `* N; p% M  n' b
WNetOpenEnum 启动对网络资源进行枚举的过程 6 a0 e/ k& i( R9 D9 X& d
2. API之消息函数 + W3 P! Q" _% w9 L4 q( Y
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 ' U6 F& s& G; r( N
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
0 H) G- |' [% G4 @9 r; jGetMessageTime 取得消息队列中上一条消息处理完毕时的时间
% Z3 t% R9 t2 F' }" U. b" ePostMessage 将一条消息投递到指定窗口的消息队列 & ^+ V$ ^5 Q3 Q2 N6 |; N
PostThreadMessage 将一条消息投递给应用程序 - J# t# a2 E# R5 m' g: m
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
1 v, M5 A1 C: W3 iReplyMessage 答复一个消息
( O; K/ e9 X/ x3 E! }1 |SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
! x, t8 D. g( `0 r3 C$ sSendMessageCallback 将一条消息发给窗口 . Q2 Q) p9 X  [* U% F7 N
SendMessageTimeout 向窗口发送一条消息
  j% ]& K0 Y/ O( W: C$ KSendNotifyMessage 向窗口发送一条消息 1 t& @6 o4 A( V2 J# V3 U1 z* G( m" N' M
3. API之文件处理函数 : l) q% I* L- ~, q- R
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等   j0 Z" o( w) P( [
CompareFileTime 对比两个文件的时间
1 V. [/ s" Q% p. Y& j9 s, RCopyFile 复制文件
! t8 r( S; q8 G0 E( w+ _9 yCreateDirectory 创建一个新目录
! N- e6 C- h% a0 y" M, MCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 9 Z5 ~/ ~$ m$ Z. f
CreateFileMapping 创建一个新的文件映射对象 2 Z$ I8 ^# @$ @( t4 V- C! _7 ^
DeleteFile 删除指定文件
5 `& F/ a' M8 k; QDeviceIoControl 对设备执行指定的操作   K/ @1 p: i( y/ U5 H, c, u
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 2 O. W* G( M( \0 N( H. R6 n
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
2 u2 j- b0 M" A6 S: e' {" l* @FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
' h! h( k. T3 @" T% ~, z1 r$ ?% f5 cFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 9 n1 V/ E2 f/ H8 l7 v4 b
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 + _- m7 S( E. P/ \# U; V" B
FindFirstFile 根据文件名查找文件 1 d0 h* \% u3 r
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 $ U/ a8 B8 m; [5 l2 a% f
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 ! W$ }* z7 E( s+ V' l6 C
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 ' Y- I9 F$ ]6 \) Q/ Q
GetBinaryType 判断文件是否可以执行 + \2 M& I+ H" A8 `, s
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
" C8 d7 Q9 o; b6 G" y4 `GetCurrentDirectory 在一个缓冲区中装载当前目录
1 X( _- w$ ?! V1 w: S8 }DWORD GetCurrentDirectory(
- L. ]4 H$ i1 i    DWORD nBufferLength,    //缓冲区大小
8 d" g# L7 g, v5 }% M: g5 k3 l    LPSTR lpBuffer          //缓冲区的首地址
8 _- T5 B/ O! ~  E, U0 I! w2 m    );
6 L- K: S2 O/ Y6 {/ t+ YGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 / d) l6 D" G. E& z
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 7 l% ^+ f5 ]7 a
GetDriveType 判断一个磁盘驱动器的类型 ; P+ J) h$ O& Q( K2 X' t3 e9 F5 Z
GetExpandedName 取得一个压缩文件的全名
4 C$ D3 U) p$ Q. ~# wGetFileAttributes 判断指定文件的属性 6 ]; B, o5 R& u9 o: @
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
- L, }' t) P3 z  z5 h# PGetFileSize 判断文件长度 & x! z; k  o3 e% l  X' X
GetFileTime 取得指定文件的时间信息
& M( f/ v; z3 P% L  }& \- iGetFileType 在给出文件句柄的前提下,判断文件类型 5 u& l! C# w1 h+ c+ m5 O% |
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 6 N, I3 W* s% G3 ~) `* W( l: t( L
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
) o1 [9 s$ y( H+ ^7 S# I; t, ^& OGetFullPathName 获取指定文件的完整路径名 8 Y# k! M# y3 e% G7 [
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 / g* U, z( A( Z7 ~: g9 g" e, s. i: R
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径   U4 {8 H2 ?4 p$ U: U& V2 a3 Y
GetOverlappedResult 判断一个重叠操作当前的状态 / `9 d7 L/ B- ~# Y- _& p
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
  n8 L6 F$ D( n9 I+ HGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
5 B2 f9 N5 p# }& `+ nGetPrivateProfileString 为初始化文件中指定的条目取得字串
+ [! Z# n- j3 Q) b3 s, qGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
/ K) Q8 l# I( I# L5 f3 qGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
) F2 m' ?2 }' d- |- ?- Q7 WGetProfileString 为win.ini初始化文件中指定的条目取得字串 ' ^% X' G1 q9 `% I4 B5 }9 w( o
GetShortPathName 获取指定文件的短路径名
. d3 n9 U: `& i* o5 C% C2 }GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 # |7 V# z) N+ x* N6 |/ B
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 $ G& b" K+ x) H3 P: O4 U
GetTempPath 获取为临时文件指定的路径
. N4 d& I8 B/ w2 O3 _2 CGetVolumeInformation 获取与一个磁盘卷有关的信息
- k6 l0 e: w9 \8 @* Z; X8 e; U% @( aGetWindowsDirectory 获取Windows目录的完整路径名
# }8 Z" Z  g2 W4 M8 n  Ihread 参考lread
0 E7 a' M5 N1 ~3 Z) I* r. w- Ghwrite 参考lwrite函数 - [. J- v9 d8 ^; D
lclose 关闭指定的文件 % H2 }( H3 c' X" b
lcreat 创建一个文件
* @. }. i: G1 R' V, x2 K6 q9 \, _llseek 设置文件中进行读写的当前位置 $ ?! n" A4 F. K0 W" A/ G9 l
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 - y( P  Y6 |1 r( r6 l0 }
LockFileEx 与LockFile相似,只是它提供了更多的功能 $ h' O! Z3 }9 M3 u6 T1 K
lopen 以二进制模式打开指定的文件
6 b. W6 M6 v. G* e7 g) Clread 将文件中的数据读入内存缓冲区
: K' n0 f# Q" Alwrite 将数据从内存缓冲区写入一个文件 4 `9 C% k  o# o  k
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 % _8 ?- Z. m* N
LZCopy 复制一个文件
, l2 S, l* E$ E' ^+ h) DLZInit 这个函数用于初始化内部缓冲区 " y7 G; N2 w/ a* s1 _) r2 W
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
% T) H& x, o7 JLZRead 将数据从文件读入内存缓冲区
# `$ o& f6 o9 |* P$ ILZSeek 设置一个文件中进行读写的当前位置
6 f% ?! |# r+ w$ J6 ^, ?* JMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 % l7 n/ J3 S- ?8 f( M  s
MoveFile 移动文件 ! G, y8 q) `; ^; B
OpenFile 这个函数能执行大量不同的文件操作
1 M; ~  X  K9 `: V( FOpenFileMapping 打开一个现成的文件映射对象
8 L& R: J0 U0 X8 ?6 \QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 , }- `) w& n) f/ N" L
ReadFile 从文件中读出数据 + {" \7 x. q. O6 G! U1 J8 `& ^
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
* W# K2 v  @7 t% ]4 v* tRegCloseKey 关闭系统注册表中的一个项(或键)
6 ^* f7 ]) z9 G$ C. f; MRegConnectRegistry 访问远程系统的部分注册表 0 g5 r( M% Y# E2 H0 |
RegCreateKey 在指定的项下创建或打开一个项 2 g% o  e- Q) r+ U: f% B6 y# N! x9 n, o
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
2 p) N5 d1 J2 k8 n) a% o% V' ^$ [, iRegDeleteKey 删除现有项下方一个指定的子项 & I% I$ H- ?& S  J
RegDeleteValue 删除指定项下方的一个值 3 D# g* y0 B5 \/ P/ X+ f
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx 6 d; v/ H) S3 p- z7 x' d5 C' j) f& A
RegEnumKeyEx 枚举指定项下方的子项 + P) ?1 A* J6 x8 K- E
RegEnumValue 枚举指定项的值   q, V# O; h9 k
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
0 V9 B, M3 d* G. U8 r0 gRegGetKeySecurity 获取与一个注册表项有关的安全信息
* ?7 Y  Y1 |6 u, f3 _RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 , _( V* z& L9 J& O& D
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制   K8 g2 q* q. K/ ]9 x
RegOpenKey 打开一个现有的注册表项
9 `$ z/ Y! i* H) q# nRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 8 _5 q, R* a( l
RegQueryInfoKey 获取与一个项有关的信息 / Z/ C. x0 L7 w
RegQueryValue 取得指定项或子项的默认(未命名)值 ) |" i6 S6 q% o0 N, m) {
RegQueryValueEx 获取一个项的设置值 3 y$ A( C: x) W2 W; g
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
- }8 `) Y; p# rRegRestoreKey 从一个磁盘文件恢复注册表信息 9 ~# U, r; i# O
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
4 d- Q. U* u0 \- MRegSetKeySecurity 设置指定项的安全特性
$ A. P% Q) }; j% ?RegSetValue 设置指定项或子项的默认值 9 ^: Z1 w; a1 l9 j, |
RegSetValueEx 设置指定项的值 2 `% }- Y- ]% Z" k& h# A( K
RegUnLoadKey 卸载指定的项以及它的所有子项 9 z! q, j- O8 \; l
RemoveDirectory 删除指定目录
/ e6 D' O4 x5 E; H1 Y. j/ z  ESearchPath 查找指定文件 & Q% n' n3 a$ V
SetCurrentDirectory 设置当前目录
5 ?: x8 r5 w; _$ Y. }SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
/ @' l1 k/ z2 DSetFileAttributes 设置文件属性 2 A) @9 ^, v+ H; Q) S+ g( g. _
SetFilePointer 在一个文件中设置当前的读写位置
3 g2 x! {  I! W- VSetFileTime 设置文件的创建、访问及上次修改时间
/ s; j$ u+ ^* H$ pSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
9 F1 }0 v$ d1 ^2 MSetVolumeLabel 设置一个磁盘的卷标(Label) : L2 O& d4 Z' n
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 3 H7 [8 ]: t! H$ G! J
UnlockFile 解除对一个文件的锁定
/ w! s. U. m9 f; h0 k: W* v' FUnlockFileEx 解除对一个文件的锁定 * m; g9 L$ t: y% I0 ~  I
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 * k4 c' X. r; X- j; ]; [
VerFindFile 用这个函数决定一个文件应安装到哪里 6 K! f# [/ m4 I
VerInstallFile 用这个函数安装一个文件 # a2 z: l- V2 n' l+ X  R
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
5 U( r- Y2 |7 hVerQueryValue 这个函数用于从版本资源中获取信息 ; M. G: m% J3 V8 k, _' J
WriteFile 将数据写入一个文件
3 R7 W; O; T, }7 N  X% z- jWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
) s3 H5 {4 |8 V+ m6 eWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 ! R" w; i; W; ~5 ^5 |! c# Q
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
# P, [, B; D: O2 I; [3 Y! dWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
# L* t; y7 ]& P) y& D% b2 W1 fWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
; |8 t6 K8 l" P! |- v4 |6 r$ {4. API之打印函数 * w) Z$ X2 X0 R: l( W5 n" H
AbortDoc 取消一份文档的打印
9 s# h8 K+ K0 ?, o; ]% C+ GAbortPrinter 删除与一台打印机关联在一起的缓冲文件
8 W/ p; F  _* q8 H) d* |4 V+ hAddForm 为打印机的表单列表添加一个新表单
# V6 n  L; B; b# F' ]- lAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
( b5 ?  V9 u# I5 gAddMonitor 为系统添加一个打印机监视器
7 L( Z% _3 d! J, s* U/ v, YAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 2 d6 y) S" w: }$ A. ]
AddPrinter 在系统中添加一台新打印机 . O  |* Y# n  o' }$ Q
AddPrinterConnection 连接指定的打印机
& y; K8 u1 D% X1 ]& K6 z/ AAddPrinterDriver 为指定的系统添加一个打印驱动程序
$ {$ w1 h4 b7 k6 F8 E3 `2 @AddPrintProcessor 为指定的系统添加一个打印处理器 ( Q5 C2 S) B7 L+ b: t
AddPrintProvidor 为系统添加一个打印供应商
  ?3 Y2 B( w9 tAdvancedDocumentProperties 启动打印机文档设置对话框 & ~0 i6 j% `# ~2 c, c( `
ClosePrinter 关闭一个打开的打印机对象
9 A! N4 j1 T8 ]  hConfigurePort 针对指定的端口,启动一个端口配置对话框 1 `& X3 K2 w8 A
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 + e3 `: v, y2 `+ j1 X6 m) e
DeleteForm 从打印机可用表单列表中删除一个表单
% O, g& C' \! C) T# qDeleteMonitor 删除指定的打印监视器
! k/ S5 p8 ?9 X" k- i) m, h$ P: KDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 ' Q$ |4 `( Z7 l6 r9 t1 u, M( B
DeletePrinter 将指定的打印机标志为从系统中删除 + P4 f) w; F. O5 k0 r4 C# G( ~8 A8 e
DeletePrinterConnection 删除与指定打印机的连接 7 Y" v/ f) x. h3 c) t& Q8 ]! K
DeletePrinterDriver 从系统删除一个打印机驱动程序
- Y* V' N$ ^- t5 FDeletePrintProcessor 从指定系统删除一个打印处理器
5 p- c+ a0 v9 n, C' BDeletePrintProvidor 从系统中删除一个打印供应商
" Q* v1 H* p! n: oDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
- n' [; u9 _$ {& {$ NDocumentProperties 打印机配置控制函数 ; X- ~7 i7 d" w
EndDocAPI 结束一个成功的打印作业 ! `- V# u" A( |6 Q# G+ B
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
# |$ q' }  L, p1 J' e- r2 L! BEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 1 J! _! r7 s8 W: x+ o4 o
EndPagePrinter 指定一个页在打印作业中的结尾
3 j7 e& T2 ^) G( n, T) X. j1 GEnumForms 枚举一台打印机可用的表单 ' t6 E5 c- J* [0 w8 d9 G+ G' z
EnumJobs 枚举打印队列中的作业 , ~5 z5 m( c" X" Y* p1 o1 c
EnumMonitors 枚举可用的打印监视器 ' k- n7 w' o, W8 i2 H' V6 S
EnumPorts 枚举一个系统可用的端口 ; h( n* K! z; u$ y
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 9 ?* J) L- l* `2 H! K1 U8 ]5 x
EnumPrinters 枚举系统中安装的打印机 $ H3 A" h2 `% n8 E$ Q
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
' d5 k" E; h7 ~2 g1 ~& Y8 `0 AEnumPrintProcessors 枚举系统中可用的打印处理器
- Z8 R7 e5 d3 w4 t9 s9 jEscape 设备控制函数
6 L9 {; Z9 E& M0 d' W0 xFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 ! A% {: i$ `8 N4 `; [- Y( \% o
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
3 f+ t. f6 |9 [1 v( rFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
% i! M3 G. ]0 D2 x0 o& a9 H# bFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 - A6 }' e8 N) h; v& s- b
GetForm 取得与指定表单有关的信息 ! f! g( b) _$ o- i: E
GetJob 获取与指定作业有关的信息 5 V+ o! h1 x5 I% H7 ]2 _0 |* q+ y
GetPrinter 取得与指定打印机有关的信息 * @/ b/ N% o' k& |1 ~; O
GetPrinterData 为打印机设置注册表配置信息 " g, ]9 l+ i" I9 s& b. T+ V
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
1 D3 z1 i& i. a7 I3 HGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
$ A, f4 y# Y( {/ C7 kGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
8 S9 v, Q) m+ [: v0 D& VOpenPrinter 打开指定的打印机,并获取打印机的句柄
$ t6 D% z! W( c2 {PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
& g! W# {& p" Y8 lPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 3 p( _: C( e; {
ReadPrinter 从打印机读入数据
% F' g% v6 c) |3 cResetDC 重设一个设备场景
- H! N  z6 {/ w! WResetPrinter 改变指定打印机的默认数据类型及文档设置 ' ^! F4 w- n2 d- W: y1 a' `' b* X* @
ScheduleJob 提交一个要打印的作业 + a% o: M3 F: R% S, }
SetAbortProc 为Windows指定取消函数的地址
7 ~0 ~1 L- L) u* H7 HSetForm 为指定的表单设置信息 4 f4 f* ^2 g% H1 C: F
SetJob 对一个打印作业的状态进行控制
" G3 }  s, F8 U4 `SetPrinter 对一台打印机的状态进行控制
2 h1 N7 h8 K  I& d0 X' e9 j, {SetPrinterData 设置打印机的注册表配置信息
' S7 w8 a" b% O2 `. {  a7 XStartDoc 开始一个打印作业
, q5 K2 n( ^" l7 aStartDocPrinter 在后台打印的级别启动一个新文档
- R6 Q" [6 A" L' F, SStartPage 打印一个新页前要先调用这个函数
* x# V: H, \& R' m' D/ @StartPagePrinter 在打印作业中指定一个新页的开始 ; {, _5 d. Y) z( b$ _7 F
WritePrinter 将发送目录中的数据写入打印机 5 s% i" B  \6 Z4 Y3 r
5. API之文本和字体函数
6 P# m- g5 B5 F5 M) ~AddFontResource 在Windows系统中添加一种字体资源 2 V. [' @, N4 Y# r) m
CreateFont 用指定的属性创建一种逻辑字体
& \1 X. z2 F: h, ^CreateFontIndirect 用指定的属性创建一种逻辑字体
4 Y2 `- \& i! v, D$ }0 VCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
' H' p3 h/ z; c% A7 b- G% RDrawText 将文本描绘到指定的矩形中
# `1 H2 p6 |* ~0 mDrawTextEx 与DrawText相似,只是加入了更多的功能 5 c4 `0 O/ A. G2 n; Z1 F
EnumFontFamilies 列举指定设备可用的字体
" V# ~9 t. E- `% H* U$ z9 b  JEnumFontFamiliesEx 列举指定设备可用的字体
2 d7 Y- O8 }7 p( G( g+ R- tEnumFonts 列举指定设备可用的字体
9 F+ W( B3 n; O8 A, O0 `ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
9 k9 Q1 ~$ V. F( eGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
6 S  \7 A- r9 b) f" ]4 oGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
; _6 k. e, Q. v" l7 o" YGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
: ?* T  U7 k7 C0 k. e' V" y+ y! @GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 4 I# \* v$ u" T5 |: n
GetCharWidth 调查字体中一个或多个字符的宽度 8 N' ?- m' b/ i0 }8 R" @  f3 m
GetFontData 接收一种可缩放字体文件的数据
; p- O0 G" b/ Q0 bGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 % P6 S% x4 m7 T/ B
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 5 f& `, p- U9 E8 v% ^& m' Z% b3 _
GetKerningPairs 取得指定字体的字距信息
2 }$ @# o1 U: L5 p9 i. DGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 # ~9 w- H$ s! R: f0 x- F
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
- V& }' W/ W8 x/ ^GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
; u, T' H$ c+ u& B" ]' \7 mGetTextAlign 接收一个设备场景当前的文本对齐标志 , e1 U! P9 ~9 t5 {2 Z" Z5 e0 M
GetTextCharacterExtra 判断额外字符间距的当前值
* C/ B& H5 _6 VGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
% C7 B$ S5 [0 i8 o. A1 H# |1 G  [GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
$ S* q( q) u# g. X% {! vGetTextColor 判断当前字体颜色。通常也称为"前景色" 5 r% O! x& M5 ^& c# M
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 " G% |& J/ ]* a$ L  ^9 a; o& u, ^, W
GetTextExtentPoint 判断一个字串的大小(范围)
9 h' z8 a6 S  N7 {2 B0 NGetTextFace 获取一种字体的字样名
  d, j+ A% }) ~! q7 Z- h# ]GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 + y( v- u. J  U; J! C
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
+ w% r2 w. |% m8 z0 W9 cPolyTextOut 描绘一系列字串
8 C% C4 ]9 E' k+ I/ ~0 P1 _1 D5 k) pRemoveFontResource 从Windows系统中删除一种字体资源 ( h& z5 S) ^# |
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
- I- h/ q6 H3 s# @: t& S1 sSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
5 J; q( p. H/ V9 t5 DSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 7 K" A; Y( ]7 N* q/ p3 W; J
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
! ^" r  k- e* @$ uSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 4 J- p5 G" G) o$ ^+ Q; b
TabbedTextOut 支持制表站的一个文本描绘函数 1 v9 U. G3 a7 H& a
TextOut 文本绘图函数 * H, L/ b$ `) X2 w2 S# ^9 Q8 `& _
WINGDIAPI BOOL  WINAPI TextOut(- d+ \. g6 J" v+ i3 K8 q* W( g
HDC,     //输出设备
! S8 m6 R* K( z9 C0 [int,     //输出的横坐标$ |' q* S4 X, H) K/ v
int,     //纵坐标8 z% T; ]% `; I* V. ~0 N# u% Z& ~$ ?
LPCSTR, //输出的文本str( _, v# }- E2 i2 u  Q( _( w5 S& |
int);    //文本的长度:lstrlen(str). \* ?! {/ W! A& |" F
6. API之菜单函数 $ |9 C& X  u- I" {
AppendMenu 在指定的菜单里添加一个菜单项 4 H6 _! I* D( q+ ~4 T# }
CheckMenuItem 复选或撤消复选指定的菜单条目 ) s( p0 C/ w0 n: ^; l2 r) o
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
5 w3 M) J7 i& ?" ~/ K# UCreateMenu 创建新菜单 / \' z% c( ]3 F  M
CreatePopupMenu 创建一个空的弹出式菜单 . L- j; a7 ]( [; ~" W8 H, T2 @
DeleteMenu 删除指定的菜单条目 - w$ l) E- x+ O8 |6 @
DestroyMenu 删除指定的菜单 : q* J: S" y/ u/ l  H7 r, S5 S
DrawMenuBar 为指定的窗口重画菜单 ' i* Y) Q8 z) u( B" a6 c
EnableMenuItem 允许或禁止指定的菜单条目
7 h: {( f. `, k) b' u/ s5 mGetMenu 取得窗口中一个菜单的句柄
) t9 U3 q; |- ]+ X' E( i9 p# @GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 4 O2 n) F+ f, a  M; g/ Q: b4 X
GetMenuContextHelpId 取得一个菜单的帮助场景ID
$ T9 z, l4 w  d7 e  H7 h+ `2 rGetMenuDefaultItem 判断菜单中的哪个条目是默认条目 9 ^6 z; U* c# d$ N7 n  c  o. L& J
GetMenuItemCount 返回菜单中条目(菜单项)的数量 - D7 E- m2 D( L2 Y# C" d9 `
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
( Q) ~# |4 q, T- g3 e! x4 @GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
0 L+ r) t% |, p- ?4 VGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 9 i& A, A# {; z8 n
GetMenuState 取得与指定菜单条目状态有关的信息
# X+ J) |: \; g- b' XGetMenuString 取得指定菜单条目的字串 7 n& g+ L& {5 ^' G& D2 q
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 6 c" R5 Q# Z: k5 |9 Y. J% ~, J
GetSystemMenu 取得指定窗口的系统菜单的句柄
: [0 L2 ]2 y. I$ i" A( \  WHiliteMenuItem 控制顶级菜单条目的加亮显示状态 + Y4 L- U0 u! }4 l5 t
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
. A# m) f" J6 T/ O2 lInsertMenuItem 插入一个新菜单条目
% H: Q: `1 E" K# i% RIsMenu 判断指定的句柄是否为一个菜单的句柄 ; H" e$ j2 M. V: S
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
' N; |, q; a( v6 j/ qLoadMenuIndirect 载入一个菜单
# H8 l' W# V# U/ I# u$ b# Q9 sMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
; o- X) v1 [! G: r5 {ModifyMenu 改变菜单条目
. ?4 c! X/ F- Q2 S' c/ URemoveMenu 删除指定的菜单条目
' q$ b8 m: b  `: oSetMenu 设置窗口菜单   s0 K, L) z4 R" _% K: q1 I% O( K* ^
SetMenuContextHelpId 设置一个菜单的帮助场景ID
/ g4 J  @7 i6 G( {0 ^' Q. a, u% @% VSetMenuDefaultItem 将一个菜单条目设为默认条目
7 j8 A7 v7 l3 a7 C$ d- E; ^3 SSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) / a: x# t6 D8 X5 I: Q" L: U
SetMenuItemInfo 为一个菜单条目设置指定的信息 ! J, Z/ |  |% C( J# r$ Z. q
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
/ F5 J9 n' |: z2 O# Y6 Z+ GTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
; W7 m1 D5 I' n2 i& J% w7. API之位图、图标和光栅运算函数 1 p, j0 ~. d6 x5 N
BitBlt 将一幅位图从一个设备场景复制到另一个
! N1 L; S; t' d     WINGDIAPI BOOL  WINAPI BitBlt(! z5 D% |% |: E8 v$ D0 a
HDC,     //目标HDC; \( j8 F/ f5 E  D$ _- `( U
int,     //X10 G! b$ r# T5 }
int,     //Y1, z7 u- g- s5 C" k6 g
int,     //width/ @6 `$ h+ C& P/ B3 }4 T, I
int,     //height1 F: p! p* y7 B) L% z
HDC,     //源HDC" H$ C! A* R/ F; L" A7 {
int,     //右边的距离9 O2 ?& V' @# r4 ^, _& l* l
int,     //??/ q5 ~! Z' C, u; D# {
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|3 m! t  Y! ]% b3 X
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
. K2 Q0 N4 H& N+ xCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
+ r; X4 E  J6 b/ i; s0 HCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 - M' c/ w: {) B, L8 [1 }
CreateBitmap 按照规定的格式创建一幅与设备有关位图 ( P" U* ]8 t5 F
CreateBitmapIndirect 创建一幅与设备有关位图
' L; w2 Z) @/ v* o3 ^, A9 uCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容   m$ X& Z" R( I7 [' b$ B
CreateCursor 创建一个鼠标指针 ! W- Y  Q6 \: ]! Z; `
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 " \0 N# M$ m; B0 b* T7 ~2 j
CreateDIBSection 创建一个DIBSection
' d- q' J2 f, g7 {: |/ u  OCreateIcon 创建一个图标
/ |( s8 e! K! O  K1 TCreateIconIndirect 创建一个图标
( a3 k  }+ Y' @  v! A6 m. i# {' `DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 ( S* Q+ J, R3 |! j
DestroyIcon 清除图标 $ G) q& p4 \0 O! W6 m1 o" G, X
DrawIcon 在指定的位置画一个图标 4 L1 c  [8 f6 H6 b
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 & ?5 D+ o1 L1 S$ d" p
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
; O0 K5 J2 W  l2 _ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
+ b" B) {# h/ ^9 G6 Z+ JGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 2 t) C" y2 t, f: b0 I, W! Z" V
GetBitmapDimensionEx 取得一幅位图的宽度和高度 ) J& j* J5 V. D( f
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 4 z2 S: m: h% O, z1 E
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
" l% K3 T# H' o. P- ?" `GetIconInfo 取得与图标有关的信息
# j) [5 ~7 W0 H- r& `2 qGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 3 M, r" m* g8 I
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 3 Z# J  N6 v% _4 V3 W5 h
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 # ^9 S8 s6 W( C) \8 q. z# ~
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 & R' Q5 f% {1 {; A0 f
LoadIcon 从指定的模块或应用程序实例中载入一个图标
  m% v6 S8 U& vLoadImage 载入一个位图、图标或指针 9 k- K% P. R- A1 V1 @, u* {$ m
HANDLE LoadImageA(
! D% P! p8 Y' c0 F4 EHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()3 ?- W5 s$ X% b0 }3 J' [
    LPCSTR,               //资源所在的目录:c:\help.bmp
' R: q: Y. ~+ w4 Z- o    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE. g! ]. [+ f, I4 _1 ]+ N
    int,                  //
6 d& z# O+ _4 L. s0 w8 |" {    int,                  //7 F- `$ u2 |; @. h& e: R+ f
UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
4 K0 F: @/ {, S  [8 ~6 iR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
1 v0 A* v" {  j& t& }5 p: ?LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
: L) K6 e! O2 O& M; G% u7 xMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
6 G0 R% L7 M& C8 a7 N8 ?6 Q4 Z8 DPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
; ?( C( p( j1 A# HPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
/ I0 m2 p7 c* c* d2 f% _, _& hSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 6 E- {3 w9 M/ n+ }
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 9 `6 o; y, ?* N' _9 o8 j1 n
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 0 V& L. `. j( x) i7 `
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 " P8 w# h5 G7 Z; b
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 . V- ?- H) Q9 [/ V
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
) v7 e; I/ b1 H. |  z. x! IStretchBlt 将一幅位图从一个设备场景复制到另一个 . q2 Q+ I  d; B, y$ c
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景   K. S1 G8 l' `$ u9 L
8. API之绘图函数
( B1 {% U; [( O! PAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
9 y' r3 {; A' ]% w2 RAngleArc 用一个连接弧画一条线 7 k: e4 s& h, f; ]+ ?
Arc 画一个圆弧
' x/ W0 Z8 t; f. B/ Z% `BeginPath 启动一个路径分支
( B" o2 b; c8 d5 l5 @" v! ]CancelDC 取消另一个线程里的长时间绘图操作
  Y; _- l: ?* {9 a; KChord 画一个弦 + [, ~6 r1 _& c; }* N! x
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 4 {4 X5 b" n4 m3 T
CloseFigure 描绘到一个路径时,关闭当前打开的图形
1 f; i5 f. f* E9 Y; J% h  D1 y8 w# PCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
) {, k! B! j* O/ [1 @CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) 4 w5 q+ Z3 ^0 _& `; p- H% S' @+ a
CopyMetaFile 制作指定(标准)图元文件的一个副本
& P2 J+ S0 _% d- e- e: vCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 ( C& I; z7 q$ L
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
. A1 S+ c' P0 j7 e4 u, K8 h( s8 L! `CreateEnhMetaFile 创建一个增强型的图元文件设备场景 + \, t- M" Z* o( \0 b; V
CreateHatchBrush 创建带有阴影图案的一个刷子
9 c8 H7 u0 t; a- q9 R2 t/ E9 g1 XCreateMetaFile 创建一个图元文件设备场景 9 ^& n" U2 X& W
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
# n" M! J* {4 e4 R3 Y; t, mCreatePen 用指定的样式、宽度和颜色创建一个画笔
; v& {' `) {7 ]- WCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
6 E9 s5 U% T  ?CreateSolidBrush 用纯色创建一个刷子 - c0 V" J4 }: v
DeleteEnhMetaFile 删除指定的增强型图元文件
) {% ?8 f4 ^" w) ?. ADeleteMetaFile 删除指定的图元文件
5 _. b5 x" l7 M, F! uWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
" A" R" W3 t, v: \DrawEdge 用指定的样式描绘一个矩形的边框
' I2 M+ x0 G; t$ ZDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 8 g2 c- I* r/ \9 |; S
DrawFocusRect 画一个焦点矩形
/ Z  M- K7 B/ ]3 K) x9 I: |DrawFrameControl 描绘一个标准控件 7 Q( e* y6 u6 h) m: I/ X7 P
DrawState 为一幅图象或绘图操作应用各式各样的效果
/ G9 J+ F% v3 k" p9 O+ ~* R) wEllipse 描绘一个椭圆,由指定的矩形围绕
# c( W. @% O7 JEndPath 停止定义一个路径
: U7 C8 T5 v6 Z4 I3 s% eEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
; |) v% c# X/ {6 L8 c1 W% lEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 : C6 D$ u7 ~& H: P
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
! U9 R: V0 @) n5 [ExtCreatePen 创建一个扩展画笔(装饰或几何) * t4 h+ r  Q: N; l% m9 R0 l
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
" N8 B  l) q# d! B% tFillPath 关闭路径中任何打开的图形,并用当前刷子填充 0 ^0 o+ X. m* N! U# c: p9 U, B+ Y
FillRect 用指定的刷子填充一个矩形
  a$ |/ r8 C$ G$ c; M# dFlattenPath 将一个路径中的所有曲线都转换成线段
/ X, Z, I3 p" V3 i7 M0 ^, JFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 - {+ K- ^0 s5 P4 `6 `- g0 B! ]
FrameRect 用指定的刷子围绕一个矩形画一个边框
& N( e- @( w) U+ BGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 7 O( m; ]- p8 ^
GdiFlush 执行任何未决的绘图操作
0 }5 D5 g0 j' `: c& ]  t" JGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 1 G( }& r& [4 S& ^, U: t: E
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
- Z! e/ R+ U7 x' }, R$ yGetArcDirection 画圆弧的时候,判断当前采用的绘图方向 ! @, M' _+ G4 f+ m. K) `; I2 Q; U
GetBkColor 取得指定设备场景当前的背景颜色 % z! ]8 M( o* {6 d% c* v
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
1 s' u1 X0 M0 H  ZGetBrushOrgEx 判断指定设备场景中当前选定刷子起点 6 ^6 a3 i& l) Q' S
GetCurrentObject 获得指定类型的当前选定对象
9 O4 P: Y2 w5 ?/ [) P; Z. XGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
; f4 B6 t- c, w, `/ f2 C. ]GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
( o* n) m' ]8 R( fGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 6 }- v9 f" M. u8 L/ R8 e; @
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
5 F9 k& b0 c( p  E! C/ xGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 0 i: b4 L! i5 O! A* w/ e% i$ P
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 $ H( ]8 G6 A% ~1 k8 B
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
( S0 P* f2 R7 J# s2 r' oGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 . o1 \7 G. F: E0 G4 y) b8 V
GetMiterLimit 取得设备场景的斜率限制(Miter)设置 ) |; ^$ e0 b" v; i$ y! G
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
; Z7 u: J2 u# h* g* L) l4 ~GetObjectAPI 取得对指定对象进行说明的一个结构
8 A9 a/ a0 @; {  L' F& r1 bGetObjectType 判断由指定句柄引用的GDI对象的类型
0 U4 H( ]6 Q5 N) o9 gGetPath 取得对当前路径进行定义的一系列数据 6 X: ]  V$ i. [' A% B+ [
GetPixel 在指定的设备场景中取得一个像素的RGB值 ) \* K6 h* Q* M
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 * L$ o8 K+ ~7 l/ n
GetROP2 针对指定的设备场景,取得当前的绘图模式 + h% `3 K0 J, p5 o* |- E6 h. Q
GetStockObject 取得一个固有对象(Stock)
) c3 f4 n) R' N, v# V% u6 \# JGetSysColorBrush 为任何一种标准系统颜色取得一个刷子 " t" _( n8 b' t+ F+ H
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
1 j# Y% I% f4 d  y2 J! a  zInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 7 h% L% [, N) f/ S+ \9 i( `; D
LineDDA 枚举指定线段中的所有点 5 Z( |% k/ ?( q1 w0 `# f4 P  d
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
" ?, S: M9 r/ c9 D1 P* O+ rMoveToEx 为指定的设备场景指定一个新的当前画笔位置 # f% I5 n* o* K: e0 a+ h: m
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
, ~% R, ]6 w5 @! B  I# J4 i& N6 L3 sPathToRegion 将当前选定的路径转换到一个区域里
$ }- S/ @: ]# X2 DPie 画一个饼图
4 Y. P4 ^, B' }4 O  C5 f6 A/ ePlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 , W8 x4 V  i) h
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 & L7 ?  m4 O8 j4 n+ ]- `1 b+ X3 U
PlayMetaFile 在指定的设备场景中回放一个图元文件
% X: G  _" j& i# Q: m3 _PlayMetaFileRecord 回放来自图元文件的单条记录 3 P; M& s9 h' O
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 ) q' g/ d2 e, H* r" v8 K
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
0 e' d% L2 X4 g5 V2 ~Polygon 描绘一个多边形 + y: M8 Y3 @; E# `- l% w6 z, _2 l
Polyline 用当前画笔描绘一系列线段
4 u) E% n5 R$ [: R- Z. \PolyPolygon 用当前选定画笔描绘两个或多个多边形 7 M, t2 a/ M* z- l$ T3 U; }
PolyPolyline 用当前选定画笔描绘两个或多个多边形 / Q9 e  f6 r. A# v
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
* G% K" }. j0 d! R8 KRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
+ \9 n) p/ x5 lSelectClipPath 将设备场景当前的路径合并到剪切区域里
. u( C6 S! `6 a' X* PSelectObject 为当前设备场景选择图形对象 ! R0 u7 A" a' M* K+ r
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);; x, z1 ^+ s7 |# w. P' ~1 K
SetArcDirection 设置圆弧的描绘方向 ; f6 D  r) |7 p4 I% S0 }& [0 L* d
SetBkColor 为指定的设备场景设置背景颜色 8 ]% J# [5 E5 t4 H
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
9 F; V$ b3 g7 h3 k, c% ?5 ?SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
$ ~- W; w( v6 sSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
9 b0 {$ z9 H' d! n6 PSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 ) Z# C, |) n7 m" k
SetMiterLimit 设置设备场景当前的斜率限制 ; j; n  |' C2 M6 p
SetPixel 在指定的设备场景中设置一个像素的RGB值
# B: J4 e' P0 d0 v9 O! u" P* |" PSetPixelV 在指定的设备场景中设置一个像素的RGB值 9 X, T' _' N1 P
SetPolyFillMode 设置多边形的填充模式
( ~2 Z% y! |4 q* @7 Z$ tSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 . j# B' D3 w; V
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 ' ]/ c3 e. N. D9 o
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
8 Y/ V1 i: i, c9 o1 q1 JStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
/ n* {- _7 M; {UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
5 g; U& v1 K% y8 x" {WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 8 X0 e; w; C8 r0 h9 h- C6 ^9 j
9. API之设备场景函数 6 t! K5 A% f: p" y
CombineRgn 将两个区域组合为一个新区域
8 N' u1 b: A, CCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 3 B( q4 [# W1 |! B" J
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
0 H* F1 m. Y4 D; c/ C! tCreateDC 为专门设备创建设备场景
: N8 `9 \+ W5 S# KCreateEllipticRgn 创建一个椭圆
5 f  c/ H9 y7 D! f6 ]% n! `' FCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
# }3 y$ Q* m/ FCreateIC 为专用设备创建一个信息场景
" \7 \( ~8 l1 [6 ICreatePolygonRgn 创建一个由一系列点围成的区域 / t; w' [# o8 t8 B. B' ?
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
3 `) M+ n% e) I& S( a0 hCreateRectRgn 创建一个矩形区域 # s* `* C. F, h# B/ T
CreateRectRgnIndirect 创建一个矩形区域
! k) R$ ]! d* A, YCreateRoundRectRgn 创建一个圆角矩形 & D2 F0 Y% Q, {
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 9 u/ G2 n, k0 k( ?9 z5 P" `
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
5 Y3 T* k9 Z& w$ Q% |$ {% }( zEqualRgn 确定两个区域是否相等
+ ]; a: m! Z* J( dExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 . ]! H2 E+ e! U* S$ \" ^+ A# x
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 - P$ ?# k; @7 q- K2 o! \6 l4 e
ExtCreateRegion 根据世界转换修改区域
* e' [3 K8 h, KExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
" G" s7 }! V3 ~/ C- t6 HFillRgn 用指定刷子填充指定区域 : x" [5 [  f  [& _2 w; I
FrameRgn 用指定刷子围绕指定区域画一个外框 + j$ a1 ^8 s8 }/ c
GetBoundsRect 获取指定设备场景的边界矩形
: d: V5 o% r3 F" `GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
, G. O! w0 s' k0 y$ PGetClipRgn 获取设备场景当前剪裁区 4 g- ?, o8 I# ~4 Z( m
GetDC 获取指定窗口的设备场景 - u) z4 r* N; U. D7 S4 k) z
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
. x+ ~0 V- X) X: t' |GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) ! S6 ?8 l* M: }, T  c% {$ Z4 u' s
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 ( @6 l7 m( x; e' _* E
GetGraphicsMode 确定是否允许增强图形模式(世界转换) 4 A9 d0 h9 p6 x( a9 J, R
GetMapMode 为特定设备场景调入映象模式
6 I1 ^3 ]4 n" A( {/ m: qGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
2 X- j/ ~9 G  y) s* }GetRgnBox 获取完全包含指定区域的最小矩形
' ?  f9 x9 E- ?  a: \GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 $ u1 x. w) k; U# Z. y( `' x  s+ V5 k
GetViewportExtEx 获取设备场景视口(viewport)范围
- ^  K) M+ ^7 c9 @GetViewportOrgEx 获取设备场景视口起点
& d/ C! F6 D7 ]3 x, S8 {: _GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 9 ]  V, ]6 m1 ~3 i" m
GetWindowExtEx 获取指定设备场景的窗口范围
# [) t$ k' V) a/ c9 x3 {GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 ; Z7 r- w# k/ P- u  Y
GetWindowRgn 获取窗口区域
, @8 n, B2 `4 p2 ^( A  O" f% V' a: L: @GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 + }# O, f2 B+ a2 H/ u0 S. J
IntersectClipRect 为指定设备定义一个新的剪裁区 % C8 K. a8 U; O, B7 k9 I
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
9 J; A6 I2 C" }, z/ XInvertRgn 通过颠倒每个像素值反转设备场景指定区域
4 V2 R4 E1 @, h+ p* ]LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
& [( R7 t+ Y  t. x6 H; C0 i3 ^ModifyWorldTransform 根据指定的模式修改世界转换 7 J& q$ w  I; A$ g# p2 L8 H; P
OffsetClipRgn 按指定量平移设备场景剪裁区 1 j0 n5 v; n" ^4 U( e
OffsetRgn 按指定偏移量平移指定区域 " k- O6 A$ |. R* Y8 W
OffsetViewportOrgEx 平移设备场景视口区域
+ c: y0 p2 A4 H2 vOffsetWindowOrgEx 平移指定设备场景窗口起点 * t2 c$ Y( B& x' a# |
PaintRgn 用当前刷子背景色填充指定区域 + `8 W4 A9 W8 F
PtInRegion 确定点是否在指定区域内   {( [* p6 h6 J  p1 o8 }0 ~
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 7 g: ?; Q$ \. |" Q  H+ k
RectInRegion 确定矩形是否有部分在指定区域内
/ l3 n5 n: y1 o: h) O& uRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
5 E4 k& h' o" e% u8 C$ A4 gReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
* a1 Q% }. Y; A6 v( [RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 ( k5 h( Z+ W" I% B- D* ]9 T
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
4 {0 q) H) U$ rScaleViewportExtEx 缩放设备场景视口的范围 9 _; B8 F! S- \$ L5 ]
ScaleWindowExtEx 缩放指定设备场景窗口范围
( K, z( ]1 a3 M, t1 z# {ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
  L3 e3 X) Y+ V. oSelectClipRgn 为指定设备场景选择新的剪裁区
8 M% O- J6 n) `; r3 l" O# vSetBoundsRect 设置指定设备场景的边界矩形
: q& \- K# {$ P( B' P- lSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) # l/ J. r% Y% z; K7 y, u  T% i! `- D1 E
SetMapMode 设置指定设备场景的映射模式 7 H! N' ~' R  P" J$ S+ L  [
SetRectRgn 设置区域为指定的矩形 - t- [9 k# X# e3 X  g$ w
SetViewportExtEx 设置设备场景视口范围
% E6 L4 O" M! c- m7 p9 qSetViewportOrgEx 设置设备场景视口起点
' o! s5 E! ~7 s' ]( S% t+ qSetWindowExtEx 设置指定设备场景窗口范围 5 V4 M- ?- C7 `. V, X
SetWindowOrgEx 设置指定设备场景窗口起点
1 G& z) i. M# ESetWindowRgn 设置窗口区域 . |9 [' T0 Z: ]
SetWorldTransform 设置世界转换 " R3 x1 b. S  Z3 y
ValidateRgn 激活窗口中指定区域,把它从刷新区移走
2 b# V# u; N6 Z/ PWindowFromDC 取回与某一设备场景相关的窗口的句柄
1 ]) D2 u5 Y+ a: f7 |% `10. API之硬件与系统函数
- C( P% n/ O% E" y( zActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 $ Y2 H5 I+ ~& \0 ?& s
Beep 用于生成简单的声音 % |) z- v% i; M- e8 D1 V  Y0 b9 f
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
) |7 U! v3 L+ e  h7 ZClipCursor 将指针限制到指定区域
& v/ p# _" t- b$ I2 |ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
8 ~8 D# Y1 r$ X$ S% N9 ?6 m" z5 BCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 4 `9 ?2 d* K# x1 w$ b$ L
DestroyCaret 清除(破坏)一个插入符 5 |: |; j3 }" L
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
& D) L) i: j* |* PEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
( ^  f3 D( r7 ?/ i7 kEnumSystemCodePages 枚举系统中已安装或支持的代码页
+ R3 D6 T7 M: O# O6 dEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 1 B1 |' ~) b7 i: N* _0 J7 U" W4 l
EnumTimeFormats 枚举一个指定的地方适用的时间格式 5 s" P7 W& {! E# A
ExitWindowsEx 退出windows,并用特定的选项重新启动 + z0 |: L/ U& E  @# D! u! x! G
     WINUSERAPI BOOL WINAPI ExitWindowsEx(
0 E; U, L- ?9 W* I% vUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
! Y( M$ ]9 M' l' e; {2 x) ^: i     DWORD dwReserved); //0
* @/ c% [7 V) }2 i' Y& d% @6 o: mExpandEnvironmentStrings 扩充环境字串 ! R' o% S9 W: X, l( B
FreeEnvironmentStrings 翻译指定的环境字串块 % y: V( v8 {; \9 H
GetACP 判断目前正在生效的ANSI代码页
' u: A7 a4 ?% G# ?0 ]2 H+ Q! a* kGetAsyncKeyState 判断函数调用时指定虚拟键的状态 5 f+ l4 [7 ~7 |' \0 h
GetCaretBlinkTime 判断插入符光标的闪烁频率
! q8 `' ?% F' E4 m2 ?GetCaretPos 判断插入符的当前位置
4 a9 w) e$ {) O3 ]! O  M. X4 d2 tGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
% h! b. |: y" a6 v( NGetCommandLine 获得指向当前命令行缓冲区的一个指针
. @; m  J& l, u9 E( e0 B( WGetComputerName 取得这台计算机的名称 + J3 `& D* [4 R4 s
GetCPInfo 取得与指定代码页有关的信息 9 e! T; y3 P- |) H# R
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 ! I. _" {3 s1 q
GetCursor 获取目前选择的鼠标指针的句柄 / T' k6 S1 s2 E$ l1 o
GetCursorPos 获取鼠标指针的当前位置 / G$ \6 s2 U: ?% \4 l7 }
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 5 x5 z" \! s$ s, i" I
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 . y" Q/ O  L0 [. [
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄   |% r* e. x) S" J
GetEnvironmentVariable 取得一个环境变量的值 " M. ~0 J  \+ y+ e. B
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 $ @7 d! x3 B& j1 I2 L9 _
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
. ]' ~% ^" f: v/ [$ VGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
' W2 ?7 n  V! d! P* h: d6 R7 n. mGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 " s: _* u0 R  Y" R
GetKeyboardLayoutName 取得当前活动键盘布局的名称
( x" L( ]" Z/ E8 TGetKeyboardState 取得键盘上每个虚拟键当前的状态
6 {+ m7 [# Z9 X% z4 S" W  W! S* PGetKeyboardType 了解与正在使用的键盘有关的信息
! k) {. \- @, h4 W$ `GetKeyNameText 在给出扫描码的前提下,判断键名
% s6 e2 \6 S7 bGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 + S" F! h* y* t' r+ Q- n4 f
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 $ N, l7 w1 x0 |/ v9 ~
GetLocaleInfo 取得与指定"地方"有关的信息 7 B5 |/ i- `) d! z
GetLocalTime 取得本地日期和时间
3 c) J9 X+ u9 oGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 ! w7 Z1 G/ c8 {; E9 V: E6 B+ t& T; X
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 $ \4 d% W: W3 Q! e# A
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
0 J% ?' v# f& |GetSysColor 判断指定windows显示对象的颜色
6 p( t9 j) }4 TGetSystemDefaultLangID 取得系统的默认语言ID 5 V) N. w( t8 U: M9 e1 N
GetSystemDefaultLCID 取得当前的默认系统"地方"
. ~0 e7 m; k0 ]/ M! z3 o7 pGetSystemInfo 取得与底层硬件平台有关的信息
% _3 x& B$ K$ E: {: V. kGetSystemMetrics 返回与windows环境有关的信息 9 l5 V; D9 h5 I
GetSystemPowerStatus 获得与当前系统电源状态有关的信息 & T: x  ~- R) L% X( i
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 9 H8 o4 t4 J: i6 h! R
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 ) @& n# D! d; n1 x  h1 q, p  q6 O
GetThreadLocale 取得当前线程的地方ID 7 Q: _$ v5 [) A: n  E
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
/ y: i. U6 c/ y8 C9 i4 y2 o# ^GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 % }4 [) Q8 f- }. H' G# s
GetTimeZoneInformation 取得与系统时区设置有关的信息 7 }- }+ f' X* |* i
GetUserDefaultLangID 为当前用户取得默认语言ID 6 Z# y9 h! {. ]( C# ~
GetUserDefaultLCID 取得当前用户的默认"地方"设置
7 B2 ~/ q' }5 i9 HGetUserName 取得当前用户的名字
" `  P  ?! ]! iGetVersion 判断当前运行的Windows和DOS版本
( y9 _) X8 E& x: vGetVersionEx 取得与平台和操作系统有关的版本信息
5 S, y2 O3 K: O: LHideCaret 在指定的窗口隐藏插入符(光标) " a" E9 L; K" A
IsValidCodePage 判断一个代码页是否有效
0 M! U+ l+ s3 g: B4 Y+ lIsValidLocale 判断地方标识符是否有效 0 ^& J$ K; L5 c
keybd_event 这个函数模拟了键盘行动 ; U) p0 k$ F# w$ R/ e
LoadKeyboardLayout 载入一个键盘布局
# f9 T9 j% I- z+ n5 O' l7 z- o9 ZMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 6 K. K, m, D, @8 t) y' o
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 + @; T$ }! Y& D; A# \! O5 [
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 * k! i. |' A+ Z% \  Z2 U! L0 x
mouse_event 模拟一次鼠标事件   d6 A( s& ]0 |# Z  T
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
; ~1 g- t+ [2 ]& O. B; ]3 KOemToChar 将OEM字符集的一个字串转换到ANSI字符集 7 b8 A  z8 l* h
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
: z- A! y; K5 p& Y6 kSetCaretPos 指定插入符的位置 ) r2 Y" X# i' A
SetComputerName 设置新的计算机名 5 h" K. q/ o8 ^6 z. x+ g: D2 J
SetCursor 将指定的鼠标指针设为当前指针 ' _  f4 c, G: |) E
SetCursorPos 设置指针的位置 1 F+ K2 a! e* `1 q
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
0 C1 t& \5 _: C. g5 b6 b7 \/ XSetEnvironmentVariable 将一个环境变量设为指定的值 : e  M4 L, }4 ]
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 & D9 `3 H2 W4 S
SetLocaleInfo 改变用户"地方"设置信息 8 u% M# O7 g  H
SetLocalTime 设置当前地方时间 8 [  P' a% J4 R# x; O/ c
SetSysColors 设置指定窗口显示对象的颜色 $ c: x* _/ U, b' Q+ ~
SetSystemCursor 改变任何一个标准系统指针 5 X5 Y) o+ ]$ B$ c
SetSystemTime 设置当前系统时间
; }  ^" x. i4 T* T5 W5 fSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 / R& X- A7 A) v2 R$ i6 l
SetThreadLocale 为当前线程设置地方 % A8 ~6 {  f( g! h2 ~# I
SetTimeZoneInformation 设置系统时区信息 % @2 J/ u9 Z! O3 Z+ w
ShowCaret 在指定的窗口里显示插入符(光标) : y( r' c" l8 o2 n) f8 ?+ D
ShowCursor 控制鼠标指针的可视性
9 H! ^* M4 B, ?' S. ^# O9 c' U0 s5 \SwapMouseButton 决定是否互换鼠标左右键的功能 5 T" l: [6 {0 E# ~7 A( }
SystemParametersInfo 获取和设置数量众多的windows系统参数
8 p3 X8 w3 j- }' fSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 9 ^% l& ]/ x2 n5 ^
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
4 ~3 [; `' X; RToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
3 n4 [  U2 R) |" C2 c  fUnloadKeyboardLayout 卸载指定的键盘布局   d2 `7 m) Q% h
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 , A  J7 |% S0 P, `9 s8 H. v+ r# c8 O
11. API之进程和线程函数
9 d* u8 E* V* M* w/ V6 WCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
! m0 e! j1 y$ m. WCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
+ B5 U5 i  o# A# j* |ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
! U9 W, @7 P# b7 W  L- S8 l, aCreateEvent 创建一个事件对象 ! y6 ~- @3 b2 ]( G" B
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
7 N' U$ ~' ^- t8 a+ Q0 @! GCreateMutex 创建一个互斥体(MUTEX)
/ }# B. H* e5 ]$ j5 mCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
$ w( \0 `5 |  D& x/ l  W; l& _CreatePipe 创建一个匿名管道
  w$ s( o  a9 m% f2 HCreateProcess 创建一个新进程(比如执行一个程序) ( O  M" W7 I) t: b) t- I
CreateSemaphore 创建一个新的信号机 , x$ g. v$ m3 C$ {
CreateWaitableTimer 创建一个可等待的计时器对象 # o# \8 \% r: {
DisconnectNamedPipe 断开一个客户与一个命名管道的连接
2 V; ]0 F' a! x2 H7 g$ `DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 $ I& v& H/ f. P: Q' [
ExitProcess 中止一个进程
5 x. U$ E: V7 e3 B0 qFindCloseChangeNotification 关闭一个改动通知对象
1 [" F. J4 e! pFindExecutable 查找与一个指定文件关联在一起的程序的文件名 : q- G4 A3 j( E" Z
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 7 P: u; H- H! v% J( g- a
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
5 B( t  l. Z" u2 ^# L4 ]FreeLibrary 释放指定的动态链接库 & E7 u/ ]' D) a, D7 x% a$ Z
GetCurrentProcess 获取当前进程的一个伪句柄 * C$ J9 n% a3 [* j( A
GetCurrentProcessId 获取当前进程一个唯一的标识符
3 P/ _. c7 u( D' {8 A& y8 t$ \GetCurrentThread 获取当前线程的一个伪句柄
& D: H1 \7 J+ q' HGetCurrentThreadId 获取当前线程一个唯一的线程标识符 4 r: k4 s. l& G) ?
GetExitCodeProces 获取一个已中断进程的退出代码 + H3 f4 r& n2 ?( k5 C" C9 Y' \. |
GetExitCodeThread 获取一个已中止线程的退出代码 5 m5 C/ d, }8 L, y9 M( r
GetHandleInformation 获取与一个系统对象句柄有关的信息
, B: ~5 t& s6 a# U0 }3 YGetMailslotInfo 获取与一个邮路有关的信息 1 v  S4 ~1 C+ f. y" m
GetModuleFileName 获取一个已装载模板的完整路径名称
: T5 g/ ?4 k, y9 U- f( C* JGetModuleHandle 获取一个应用程序或动态链接库的模块句柄
5 r- M/ v$ \9 F# F4 o8 ~     GetModuleHandleA(LPCSTR lpModuleName);
" S# y! h/ _+ c' UGetPriorityClass 获取特定进程的优先级别
/ C1 s! g  x- N$ _: j6 @GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 + R% K2 ^. W! i7 j, I, C5 w3 f
GetProcessTimes 获取与一个进程的经过时间有关的信息
& h3 j, f7 j8 ^5 s0 vGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 " h9 O0 Q9 V! F4 Z2 `( F8 b* x
GetSartupInfo 获取一个进程的启动信息
: j: R: @. d% ?% B9 GGetThreadPriority 获取特定线程的优先级别 ) j  s# P* p7 F+ s; f! {
GetTheardTimes 获取与一个线程的经过时间有关的信息 : G* Z& r3 s0 X1 K
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
" `) a+ U7 d2 x1 J' C3 cLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
) t% K. \4 o- I5 N1 ^6 vLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
3 l% c% s! ?% O# cLoadModule 载入一个Windows应用程序,并在指定的环境中运行
( ?# f6 X5 A0 s1 s$ o6 n" D2 SMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 ( _9 f; ?/ i) G8 @& ]
SetPriorityClass 设置一个进程的优先级别
: Z: R" C8 L/ U6 p2 GSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
8 i: U" D. H. V3 _' VSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
6 ]3 s, `( ~* W! r# OSetThreadPriority 设定线程的优先级别
5 `( z' q" j- {- G! H* [: HShellExecute 查找与指定文件关联在一起的程序的文件名 * ^) [# ?& P/ q% D- p6 B: s! y
TerminateProcess 结束一个进程 . @4 u+ @0 Q" c: A/ d" q8 g/ M; C) S
WinExec 运行指定的程序 4 f, H/ |/ \+ _! a9 d5 e, n# x
12. API之控件与消息函数
5 x8 t# O) g' g1 T* CAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小   E4 v* K6 a8 r5 Y% p7 m
AnyPopup 判断屏幕上是否存在任何弹出式窗口
& P3 k; f8 a0 \! Y6 `) [ArrangeIconicWindows 排列一个父窗口的最小化子窗口 5 m5 v9 f0 y  ^9 R* b) @% P& g
AttachThreadInput 连接线程输入函数 + ^1 H2 X) l) @
BeginDeferWindowPos 启动构建一系列新窗口位置的过程
* J% a5 [( M& B& @0 nBringWindowToTop 将指定的窗口带至窗口列表顶部 3 X! Z; T! C# A/ g
CascadeWindows 以层叠方式排列窗口   o2 y0 ?9 T0 G# v8 _% b8 ^
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
. n  h9 B; n. E# E, A' yClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 4 a- L- q! F( ~
CloseWindow 最小化指定的窗口 % v# r  h; a6 T0 j3 u7 d
CopyRect 矩形内容复制
$ T' m( I" h! `$ B2 [DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 % w4 o/ s3 |+ j' ]" N1 ?
DestroyWindow 清除指定的窗口以及它的所有子窗口
0 Y% S6 ]) K. ?DrawAnimatedRects 描绘一系列动态矩形
9 P# }- S, }4 A, [9 P( jEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
0 O1 b, ^4 k4 P& E0 c, l. [EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
3 y& I# G" f- \* \# E4 B3 ~EnumChildWindows 为指定的父窗口枚举子窗口
2 ~1 P" c7 d+ v# e" @EnumThreadWindows 枚举与指定任务相关的窗口
! ^& H) s3 Y* R1 SEnumWindows 枚举窗口列表中的所有父窗口
3 {+ A, E* ^6 FEqualRect 判断两个矩形结构是否相同 $ n2 E" k4 I* f4 |
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
& m8 S# X. c/ aFindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 9 h# _* t# a4 G# T
FlashWindow 闪烁显示指定窗口 " F6 t5 O6 v7 {; t  P6 ~
GetActiveWindow 获得活动窗口的句柄 0 Y. T& y5 S7 Z- S$ d5 y
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
5 a4 Q( X% ~: F; x8 gGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
6 b* a/ {, N8 l. f" FGetClassLong 取得窗口类的一个Long变量条目 2 m" g; `# Z1 z5 t; k( z; M
GetClassName 为指定的窗口取得类名
9 O* @; M% Q2 E+ T7 m! l2 aGetClassWord 为窗口类取得一个整数变量 ! D* N% h5 k7 i9 @% N& m
GetClientRect 返回指定窗口客户区矩形的大小 3 \9 ~/ ]/ [9 }5 [
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
# p; m2 M, H) K) ~GetFocus 获得拥有输入焦点的窗口的句柄
7 P5 t. K- C% x4 @* S2 B$ j& IGetForegroundWindow 获得前台窗口的句柄 % v3 |3 L- L9 w, B$ e) M% ?
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
+ Y, {1 E; ~; k, V5 z) r; B" wGetParent 判断指定窗口的父窗口 $ I- v3 _! M$ @( Y7 w
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 " U7 i8 @- i: X* U! X; M, P6 j. P
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 ( w) j, ?1 o; J; |2 H
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
; N$ E9 K# R( i3 v: h$ ?+ T9 o9 HGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID / e9 v, k! z4 Q% A) o% ]& G4 D" {
GetWindowLong 从指定窗口的结构中取得信息
: d# c: T3 X# o5 c6 R4 iGetWindowPlacement 获得指定窗口的状态及位置信息
# {, G! W0 U$ v7 MGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 4 d3 I/ q! e  r7 z0 Z5 d
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
8 A; k! A1 w6 a9 nGetWindowTextLength 调查窗口标题文字或控件内容的长短
* V5 ^! P% _! @" R# v+ {$ p0 TGetWindowWord 获得指定窗口结构的信息 " X9 d. f( B3 i
InflateRect 增大或减小一个矩形的大小 0 o( [2 }9 i( E( d
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 0 r1 X; j$ G& d( g, `9 t( d8 p
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 6 F% s4 \: S, j1 L" j
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
5 k: |: Z( {6 X+ t3 e0 AIsIconic 判断窗口是否已最小化
. F/ O% \( _6 S" ~' s3 Z/ C, SIsRectEmpty 判断一个矩形是否为空 : k5 f# B- r) [. ]# F' B$ A
IsWindow 判断一个窗口句柄是否有效
- o) }0 |$ F' u% |7 ]8 M) e: KIsWindowEnabled 判断窗口是否处于活动状态
% n; s; N5 _) A2 nIsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 1 O- B% A2 p$ O( x" O
IsWindowVisible 判断窗口是否可见
: L3 i3 a1 G' A4 z+ x5 F( u2 `IsZoomed 判断窗口是否最大化
+ i7 Q7 n: Z  r  d* [LockWindowUpdate 锁定指定窗口,禁止它更新
4 g& L# p8 U  z; V7 TMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 + g  a% u! Y0 i; y6 \
MoveWindow 改变指定窗口的位置和大小 4 C# P" q! l1 W8 c- S# d/ \5 ~1 m
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 6 W9 t# I1 c$ d
OpenIcon 恢复一个最小化的程序,并将其激活 $ r, O3 X% l: G# ^5 j  N
PtInRect 判断指定的点是否位于矩形内部
4 b) S8 h2 U! y/ ?RedrawWindow 重画全部或部分窗口
0 J- u0 ?' m& e. l  s4 S6 \2 VReleaseCapture 为当前的应用程序释放鼠标捕获 # u2 ^1 V8 Y, s  }- o! }5 S6 P
ScreenToClient 判断屏幕上一个指定点的客户区坐标 7 V# R# i+ t& x! N3 A- Q* a
ScrollWindow 滚动窗口客户区的全部或一部分
( e" [% j' a! W$ |# I, wScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 1 J6 v8 d( z+ ?+ B2 p4 @8 v
SetActiveWindow 激活指定的窗口 % |" [+ _- F$ K7 X
SetCapture 将鼠标捕获设置到指定的窗口
  T0 M8 f4 B6 U: P) Q. @* ySetClassLong 为窗口类设置一个Long变量条目 & l7 H; ^6 c5 T5 ]# {/ R3 [
SetClassWord 为窗口类设置一个条目
) I! h( }: b6 S8 ~SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 . w6 L; }4 L3 M  ~, L2 Q
SetForegroundWindow 将窗口设为系统的前台窗口 9 I1 Y; U4 }2 B( o4 y
SetParent 指定一个窗口的新父 2 t# f  ~/ Z- z# L( P+ n
SetRect 设置指定矩形的内容 0 ^1 I- g8 ?6 A! m
SetRectEmpty 将矩形设为一个空矩形
+ x( g# \, ^( W. TSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
$ r6 ^' [9 o$ d- SSetWindowLong 在窗口结构中为指定的窗口设置信息
, t: l1 y6 U  G$ T, p$ t. a3 g" V1 i0 OSetWindowPlacement 设置窗口状态和位置信息 ; G: ~% D: a; R* S3 Z2 p$ m+ D
SetWindowPos 为窗口指定一个新位置和状态 " L$ E, _# ?4 T5 Z) d
SetWindowText 设置窗口的标题文字或控件的内容 . u" C% ^2 p9 x$ V) }
SetWindowWord 在窗口结构中为指定的窗口设置信息 8 J) @# i& x8 x3 R7 a4 [
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
0 W! K; p& A( l+ gShowWindow 控制窗口的可见性 ' G/ @! \  I  z, \7 G# T; W8 g! Q
ShowWindowAsync 与ShowWindow相似
+ {' ~) b4 o( \& N9 Q3 \: DSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
" V5 B& x7 X: R9 ]% bTileWindows 以平铺顺序排列窗口 4 L" B4 N! q7 \. Z
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 + G7 N/ k: M$ b6 I2 q
UpdateWindow 强制立即更新窗口
( F8 T. N# u6 ~/ `ValidateRect 校验窗口的全部或部分客户区
4 M+ u. K7 G6 e0 N( {WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口) {( I* n: t) w5 D  ^# y
高级音频函数—参看《VC++ 编程指南.chm》11.6
2 N  M3 A& w7 j% y# F0 ?: I     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
" z1 X6 b, @4 I4 _. L; v/ W     BOOL MessageBeep(UINT uType);
8 u) N& u' y0 i$ n该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。- R- s% P7 g  J! z! B
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
2 ~. ~( q+ T* R$ @  ~. k8 `' [
级别
8 v" C, H/ U3 V' I( o. t
描述
% K4 T- N0 b0 K' N
-1 & N* b' r$ {/ i
从机器的扬声器中发出蜂鸣声。
: d. a! [6 N4 z4 Y% x! J
MB_ICONASTERISK ! g  Y! t! Y( v+ ~
播放由SystemAsterisk定义的声音。 ' F( S# q* y9 g4 W) a$ o
MB_ICONEXCLAMATION ' e/ ~& ~! X6 q+ y
播放由SystemExclamation定义的声音。 # r* i% ^, \! k: F8 G8 b" O% a* I
MB_ICONHAND 9 X7 I$ M/ S) E: j( a
播放由SystemHand定义的声音。
3 N' x8 }. _% w9 C% ?& \0 V
MB_ICONQUESTION
7 e3 h' ?; E: j3 Z" l" s' _
播放由SystemQuestion定义的声音。 . j* g5 R4 y& x+ _% F% l
MB_OK 0 _3 U/ ?% h! o
播放由SystemDefault定义的声音 $ O: R% l( l! f( ?8 |* c# X
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);
: }+ C, n/ P, j5 w% w参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。1 Z9 `( i0 x4 T% D( G
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。& W* l# c4 M' t, y$ |2 H0 w$ r
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。& P$ O1 V, N# R% [! ^) s, c
标志
! _2 B; j& _) h. d- `
含义
; s3 m7 v* h9 }, M
SND_APPLICATION
1 j) u! w% }, Y2 I/ O" J" h, x
用应用程序指定的关联来播放声音。 , B9 P/ l4 M2 v3 |0 Q( E
SND_ALIAS
; K/ g# r3 _2 R. r
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
) o8 T' F( ?/ o  s" b& t" {
SND_ALIAS_ID 4 b6 T1 ]$ z1 n9 |
pszSound参数指定了预定义的声音标识符。 9 B& O6 m8 F. Z/ H# i' ?% _
SND_ASYNC
4 l- e. U# N7 Y6 i* c1 X
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
& w5 r, H# F7 g
SND_FILENAME ! `$ W. G  Z: i% B+ A2 d+ o" C
pszSound参数指定了WAVE文件名。
; S( N; U' x' Z0 G
SND_LOOP . z7 f$ ?$ ^( t: i: ?
重复播放声音,必须与SND_ASYNC标志一块使用。 1 P0 T- J( }, ]: v5 x8 L
SND_MEMORY
3 g9 L1 b5 l+ O. E6 G- r
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
( o+ u3 [* F/ Y. f8 j
SND_NODEFAULT
! B7 l0 f* u; K% b1 o
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 9 g: G/ Y) n# l% m* J1 P
SND_NOSTOP 3 }5 S9 S8 d* @: \7 |$ O
PlaySound不打断原来的声音播出并立即返回FALSE。
; u: c* n' J# K) b1 ~9 W
SND_NOWAIT
& Q$ w& m/ [% e  [
如果驱动程序正忙则函数就不播放声音并立即返回。
1 q+ w: W/ }7 n9 V) P" m2 C
SND_PURGE 0 E/ T) y7 U4 n- O
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 1 g$ E. I; Q/ j2 K2 _& c
SND_RESOURCE # e$ ]$ {5 O, {$ K$ E" X$ J( F
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 % G% {. K6 B1 \5 o* W, P. w
SND_SYNC 6 w% M! ~) R# T8 y3 z6 G' ?$ Q
同步播放声音,在播放完后PlaySound函数才返回。
9 u  N* ]' T0 N2 ^& V
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
3 ^: k) V* ?& t) N8 A函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。' f# r# z9 h0 q" U. n
MCI播放/ ~+ f8 Z. ?. m
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
; {2 L2 {4 @, l5 w& J& D. u' oMCIERROR mciSendString() x5 N7 [% Q- n3 a' S
LPCTSTR lpszCommand, //MCI命令字符串
- E$ E4 V& ~) U4 x# @% U5 h( sLPTSTR lpszReturnString, //存放反馈信息的缓冲区
. ]' g/ s+ _- g( o1 S2 GUINT cchReturn, //缓冲区的长度/ M! O1 W/ K) r  o6 B
HANDLE hwndCallback //回调窗口的句柄,一般为NULL" Z: h' C& r7 c% Y& b/ J3 x
); //若成功则返回0,否则返回错误码。# {# E; n! v0 T( B$ D6 V: A
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
' ~% ^, _9 K2 k: B7 _8 ^BOOL mciGetErrorString(
% u! H1 e) p' J6 ]DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
- ^& ^# r, G8 [7 PLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区! t) H4 a) U2 c3 s) n5 i0 X
UINT cchErrorText //缓冲区的长度
. p/ n% k. y; w7 x% d* K);
) R% I2 Z  T5 H2 A. b+ B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 08:45 , Processed in 0.025761 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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