找回密码
 注册
查看: 4677|回复: 0

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html$ C& K* [2 d) O, L* \  z
1. API之网络函数
2 l" }. w6 t5 X9 g$ \  @4 W5 b3 @WNetAddConnection 创建同一个网络资源的永久性连接 0 l' C2 v: p9 E0 x; }
WNetAddConnection2 创建同一个网络资源的连接 " }0 e8 B( Q8 ^* Y0 v5 A1 n2 z
WNetAddConnection3 创建同一个网络资源的连接
: k( Y3 k( s! r% p# z$ XWNetCancelConnection 结束一个网络连接
  j' X' f- D) L4 \9 OWNetCancelConnection2 结束一个网络连接 / q2 A3 |( U+ h7 U  N  o6 k8 R) u, J
WNetCloseEnum 结束一次枚举操作
2 V4 |4 m1 a" {: B9 h& ^WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 7 c+ W' C# N, C9 g) I6 `
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 , s, c/ I0 ]9 ]: j5 M
WNetEnumResource 枚举网络资源 " ^2 _/ @$ K9 ^; p1 d/ f
WNetGetConnection 获取本地或已连接的一个资源的网络名称 ) W! p9 o  Y; I* Q3 Z8 H$ E* P
WNetGetLastError 获取网络错误的扩展错误信息
( ^; S  A! m7 |! I$ e$ z: o2 k( TWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
7 J7 ]: }' v; y' x4 P1 a2 xWNetGetUser 获取一个网络资源用以连接的名字 3 X% C; y) O# e+ a6 v1 n! J- v
WNetOpenEnum 启动对网络资源进行枚举的过程
& l  {+ F. n: u# r0 I+ g2. API之消息函数
8 R( q# d. y/ X* Z$ c# iBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 1 ?3 d4 S  Q# B1 a4 M4 K8 B5 }
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
8 h% j1 v5 _! L8 R# DGetMessageTime 取得消息队列中上一条消息处理完毕时的时间
) N& A, O% ?+ D. D6 BPostMessage 将一条消息投递到指定窗口的消息队列 7 e# n. S9 ]7 o* f! g1 ~
PostThreadMessage 将一条消息投递给应用程序
* O/ T: t* H9 H, DRegisterWindowMessage 获取分配给一个字串标识符的消息编号 8 J& m5 K% x* ?7 j8 ~% ]: _
ReplyMessage 答复一个消息
9 q- G& I: F& T% {: ASendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 + Z- g! D+ }* H8 g- t! ^/ g" h2 F
SendMessageCallback 将一条消息发给窗口 " C( K1 Y/ X1 H$ [' ]
SendMessageTimeout 向窗口发送一条消息 8 _) x& _. w& x5 v4 Y
SendNotifyMessage 向窗口发送一条消息
0 {0 Y$ B2 ~0 `3. API之文件处理函数 ; w+ J8 B1 X+ V8 P
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
3 B2 G0 Z5 ^5 ], B  b/ q9 e; MCompareFileTime 对比两个文件的时间
  d2 v+ X  z3 j- `) FCopyFile 复制文件
  f6 X8 [" v: rCreateDirectory 创建一个新目录
' j2 k, G' V9 g" P! {8 Y4 b' J4 ZCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
9 \' t5 h8 |5 c8 c' w4 \CreateFileMapping 创建一个新的文件映射对象
- |; a, p* {! Y# Z$ _0 s) @DeleteFile 删除指定文件 % [' q, H* F0 w
DeviceIoControl 对设备执行指定的操作
) @, D& l; M1 e& z2 O9 Y% xDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 , o! w; U$ n" M
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
. b% Y4 h( j. b6 ~6 j5 v3 O, q: RFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
. a6 B5 w# J5 k3 ZFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
: T; z8 X0 S* z' XFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 ' F2 M: @. c: ^# ?) {8 o0 b5 D
FindFirstFile 根据文件名查找文件
; [6 s" s: ?( V+ sFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
! M2 r3 g* V) `) F. F, @; |0 ~FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 / R, F# Q4 y( f2 x6 A: l! C2 y' F! h
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
6 w! o8 b' o! ^6 }+ K. L9 z: UGetBinaryType 判断文件是否可以执行 " Z* y; w; T; G" C- l
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 7 z1 `, a: u$ g7 d- U
GetCurrentDirectory 在一个缓冲区中装载当前目录
3 u+ w& A/ g& @# m1 ?; hDWORD GetCurrentDirectory(2 K, T4 o, }& E4 L$ \
    DWORD nBufferLength,    //缓冲区大小- D" ^9 @8 r% l, |) K+ |. W
    LPSTR lpBuffer          //缓冲区的首地址2 M& H' y5 u) V# [1 n7 x
    );
' p; ]! T% C. r, ^( e3 u  EGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
1 C; @! E: a( @GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
) Z; f3 D  r3 |% O, aGetDriveType 判断一个磁盘驱动器的类型
4 R$ G0 O* U" _  [' j: s$ y& T: GGetExpandedName 取得一个压缩文件的全名
  p3 g4 X) p4 X; k2 H5 ]6 yGetFileAttributes 判断指定文件的属性
2 [& |) k: U4 W9 b9 y! FGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 * @0 q' N' s* c. D2 o2 D2 F
GetFileSize 判断文件长度
' z* t; x  d! C( K- vGetFileTime 取得指定文件的时间信息
: d5 _% e8 g: \/ J3 ^GetFileType 在给出文件句柄的前提下,判断文件类型 - |$ k$ M$ l! `; R
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
# J4 N! D2 e% g0 ?( hGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
% q: X' d2 N( h# Z6 w. o+ F& K- \GetFullPathName 获取指定文件的完整路径名 2 L  i/ N3 U- a$ d
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
) L' ~. Y2 z: b# `: YGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 - M+ c0 h% U' m' O* d$ M% E
GetOverlappedResult 判断一个重叠操作当前的状态 " s5 f- m+ z- N2 r+ Q; ]' O9 Q! Z! O
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
$ C4 _* h5 V, S7 k; S, gGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 ) z- e9 T# w: a) U' m! O" @
GetPrivateProfileString 为初始化文件中指定的条目取得字串 7 r+ _: D' r5 F- o' [
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值   d9 ~& ]% D% P* J
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
# P" E  u2 ?: e, mGetProfileString 为win.ini初始化文件中指定的条目取得字串 0 E- \+ U+ Y( O6 f6 @
GetShortPathName 获取指定文件的短路径名
' A( t+ D; X& G) y% `GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
: D4 ^& ]5 i5 ^! A. kGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 - v& S1 ~3 N5 r( b" H
GetTempPath 获取为临时文件指定的路径 / P: F" }: l2 f' N9 N
GetVolumeInformation 获取与一个磁盘卷有关的信息 ; Q) {0 }% e- |6 l; P- f, q  w+ P0 x
GetWindowsDirectory 获取Windows目录的完整路径名 & @+ Q4 @) k; a/ ^
hread 参考lread
4 P6 k! \  K- b6 ihwrite 参考lwrite函数 ; |2 z& W5 k; b; q
lclose 关闭指定的文件
$ {3 k+ `2 V4 |+ dlcreat 创建一个文件 3 J2 Z7 g) r) w
llseek 设置文件中进行读写的当前位置 3 K$ m: w) Y' G" u9 K' A/ C
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 1 H. P4 S. Q4 o# Q3 k$ a9 w
LockFileEx 与LockFile相似,只是它提供了更多的功能 ) \5 ?; W" \+ b& ]
lopen 以二进制模式打开指定的文件 ; X1 o2 E7 g" c( Z* i6 R8 p
lread 将文件中的数据读入内存缓冲区   e$ D( Q4 o+ S1 e4 r3 e
lwrite 将数据从内存缓冲区写入一个文件 # m0 l: k, Q; T! [  b2 ?5 Y
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 4 g' U' K" \1 `
LZCopy 复制一个文件 + }' C1 O6 |+ Q3 t9 e# i
LZInit 这个函数用于初始化内部缓冲区 $ q% c% Y* {5 ~7 e. n' ^6 _+ q
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
! R# d+ t2 i( ^LZRead 将数据从文件读入内存缓冲区
4 y+ l  A- r% Q! ^1 b! U% n$ pLZSeek 设置一个文件中进行读写的当前位置
: ?, b. c7 A% [3 ^! aMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 : g0 _& L+ f/ i* z$ K
MoveFile 移动文件 5 o  n! E# q6 F9 w' r/ ?. J* f' j
OpenFile 这个函数能执行大量不同的文件操作
# ~! t! j+ v1 W, ]OpenFileMapping 打开一个现成的文件映射对象
$ O, q) B! j! }9 C; A5 Q: oQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 4 P( b) [# c% ?! e( \
ReadFile 从文件中读出数据
1 F  X5 \9 C6 e1 G, E4 Q8 YReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
6 m! }6 h8 P7 J( a7 t5 WRegCloseKey 关闭系统注册表中的一个项(或键)
, O, T; [5 x$ L8 VRegConnectRegistry 访问远程系统的部分注册表
3 y( }; r7 S9 r  ?4 LRegCreateKey 在指定的项下创建或打开一个项
; w: A7 q6 X/ C1 o4 KRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 3 ], G9 |8 H/ p# {: Y9 M2 a
RegDeleteKey 删除现有项下方一个指定的子项
* g6 n1 X9 b( ORegDeleteValue 删除指定项下方的一个值
  X0 v. O5 k; {* }; T$ ~& I' hRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
/ V, ], J8 `# v) @4 rRegEnumKeyEx 枚举指定项下方的子项 8 X: {  a5 K: L$ T" t
RegEnumValue 枚举指定项的值
/ C% i: `$ {1 yRegFlushKey 将对项和它的子项作出的改动实际写入磁盘   u) f) l# ]: q6 h& U
RegGetKeySecurity 获取与一个注册表项有关的安全信息
: {! q% f, U) W' t# F& Q6 m, TRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
+ U% U% A. ~9 T% B( `  I& I- Y1 w* ?; fRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 , p$ I8 D4 U( q/ m' w
RegOpenKey 打开一个现有的注册表项
; v% t, h9 l& ?. \3 U: ]9 I8 E+ y, oRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 + D! x9 J9 d# v" ^
RegQueryInfoKey 获取与一个项有关的信息
5 p" j' `* r, D. }2 s9 t) lRegQueryValue 取得指定项或子项的默认(未命名)值
8 J9 {6 F& X  M+ kRegQueryValueEx 获取一个项的设置值
& D, A0 m' P. V, [6 @( `RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
/ N. I5 d& h2 {  B9 QRegRestoreKey 从一个磁盘文件恢复注册表信息 1 W' E( l- Q' B& o1 ~" w
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 & T9 I  T/ ~1 X6 ~9 M' A" ]! V
RegSetKeySecurity 设置指定项的安全特性 , `0 N* d4 F9 ]" {4 S2 s# e
RegSetValue 设置指定项或子项的默认值
  i( Y. s% H+ o, I8 }" o3 ]RegSetValueEx 设置指定项的值
) m$ k8 a2 O! {0 Y7 X, i9 X' JRegUnLoadKey 卸载指定的项以及它的所有子项
8 n$ C1 y2 b6 E4 K& K3 MRemoveDirectory 删除指定目录
, }8 p8 M; l; x, C1 y( pSearchPath 查找指定文件 & q5 H! A2 G: d7 E9 X
SetCurrentDirectory 设置当前目录 8 D; `' w# l( T& O% [
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 % R2 i( U0 O- s7 N# T
SetFileAttributes 设置文件属性
5 B! r- J4 B5 H+ Y- i! W3 eSetFilePointer 在一个文件中设置当前的读写位置 ; D% G/ v* m$ A: U' i
SetFileTime 设置文件的创建、访问及上次修改时间   J; A2 o% q* \" l  f/ P
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
, ?0 {) [5 Z- f& W& C  ySetVolumeLabel 设置一个磁盘的卷标(Label) ! |1 s# `8 z4 ?1 x
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 ( m7 s6 a0 G, Y( S5 z
UnlockFile 解除对一个文件的锁定
2 F. U! @; g+ z, |! K% Q+ [1 QUnlockFileEx 解除对一个文件的锁定 $ Q4 ~2 v5 ?3 ~9 e* g' ?# S
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
9 I5 p' y! l. C- PVerFindFile 用这个函数决定一个文件应安装到哪里 ( B4 s; b& O3 \. v* m
VerInstallFile 用这个函数安装一个文件
  e7 a  K  g% r, u0 R  I. vVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
! g% d5 W' U; y# {9 N, w* bVerQueryValue 这个函数用于从版本资源中获取信息 + l2 q/ U& r" L% \1 T
WriteFile 将数据写入一个文件
9 s: ~$ a2 G, `# c& iWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 2 s3 b8 a% ^, n/ e+ {* E
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 * |* \1 U8 O. E3 I
WritePrivateProfileString 在初始化文件指定小节内设置一个字串 & O, l* K# p4 S: Q/ U- Z
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
" q0 s7 q4 a! X/ AWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 3 W: ?# }/ X4 t2 M
4. API之打印函数
5 A2 h/ Q* B8 b% qAbortDoc 取消一份文档的打印 4 D& [* W2 U9 P# E
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 4 M- t+ |+ s' M1 Q( ]# u* D
AddForm 为打印机的表单列表添加一个新表单
0 Z) M9 }4 _/ R+ j0 dAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
' H* Y/ `) o  T! T0 WAddMonitor 为系统添加一个打印机监视器
; L% Q) _6 q; c( Q* zAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
( ]$ T7 g- c5 G- I- @- i! qAddPrinter 在系统中添加一台新打印机 , |9 N9 r6 Y- T: b- f1 T
AddPrinterConnection 连接指定的打印机 3 Q0 o$ _, v+ L& I7 e
AddPrinterDriver 为指定的系统添加一个打印驱动程序 $ d9 c7 k( H' B2 n
AddPrintProcessor 为指定的系统添加一个打印处理器 " h. d5 S3 C- _7 j' M
AddPrintProvidor 为系统添加一个打印供应商
' }% R0 w7 O$ ]1 MAdvancedDocumentProperties 启动打印机文档设置对话框
9 @2 N" p5 r/ [7 V) M4 |+ m( z0 Z( \ClosePrinter 关闭一个打开的打印机对象 - r9 m! A  }7 c2 q5 X
ConfigurePort 针对指定的端口,启动一个端口配置对话框
8 X) K- i1 ^6 s6 XConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 ) x# Y! K9 Y  d; k! q- y4 W% W
DeleteForm 从打印机可用表单列表中删除一个表单 ' p) H! P$ D( F% N! N
DeleteMonitor 删除指定的打印监视器
0 U: D& c2 V2 z; nDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 + v- u. P2 |% e
DeletePrinter 将指定的打印机标志为从系统中删除
1 k0 r! P( ]- ?; W+ FDeletePrinterConnection 删除与指定打印机的连接
1 t; G+ O+ K* S2 }0 ]DeletePrinterDriver 从系统删除一个打印机驱动程序
& `  m* T- [4 A/ @7 J# NDeletePrintProcessor 从指定系统删除一个打印处理器
4 x& Q4 J% q$ xDeletePrintProvidor 从系统中删除一个打印供应商
* _  k6 k. D; oDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 - A5 T1 i3 \6 m+ \; ^- c
DocumentProperties 打印机配置控制函数
& B4 t0 R& `9 X( l. k) DEndDocAPI 结束一个成功的打印作业 ' f8 x  f" C, t
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 / ^6 a( x7 @- A: I9 x; o) c# C6 A
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
8 G1 U: q! Y8 M+ m% g9 {9 CEndPagePrinter 指定一个页在打印作业中的结尾 6 m  D& `/ m7 C& Y$ [+ V. Y  F
EnumForms 枚举一台打印机可用的表单 4 c2 \7 |" X3 k  x
EnumJobs 枚举打印队列中的作业 ( q& S8 U. e) l8 \0 J2 w
EnumMonitors 枚举可用的打印监视器
; Y, f0 j6 f) QEnumPorts 枚举一个系统可用的端口 $ p7 S$ \' r) I3 G/ T. z  n* S  R
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
: a  W; L  p" x; r; nEnumPrinters 枚举系统中安装的打印机 ! o, F: L) H/ S6 T8 L! D
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 , K2 a! t: J$ h+ V# U  l
EnumPrintProcessors 枚举系统中可用的打印处理器
! }. n6 e' M8 HEscape 设备控制函数
) \! T5 G( X# g& zFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
/ @' E9 F! x$ o0 L4 E, Y1 RFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
3 x8 X7 d7 ?) U! `8 M5 c! ^FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 % P3 `, d( y+ F
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 : b' w& H1 ]/ Q% U- |
GetForm 取得与指定表单有关的信息 % U+ g0 M, f% \' p) _$ B- x0 w9 N' W+ C
GetJob 获取与指定作业有关的信息
/ H0 `- Z. x6 @" ?! iGetPrinter 取得与指定打印机有关的信息
6 k: p6 d- U+ V4 ?- `' eGetPrinterData 为打印机设置注册表配置信息
" x+ O, P( V2 d5 D  D& xGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
  g* ~9 ], C/ c$ Z8 YGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
3 J* {. T% u+ K) h$ c9 _GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 . ~4 h1 t  f* }9 x4 o
OpenPrinter 打开指定的打印机,并获取打印机的句柄 ) d" g9 \3 b3 b  q$ M* m" i
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 / R2 |5 S$ G+ W, }) R5 i
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
0 O! b( I, p6 m" CReadPrinter 从打印机读入数据 2 X* U3 E  N% S) h1 {0 |! Z( L. m
ResetDC 重设一个设备场景 # G) S! q' d( z, Q
ResetPrinter 改变指定打印机的默认数据类型及文档设置 * [! g/ ?0 h% N' b" O7 M" }! C
ScheduleJob 提交一个要打印的作业
1 T1 Q2 ?/ _% C  J% c  WSetAbortProc 为Windows指定取消函数的地址 2 H5 {6 p, T+ x7 S
SetForm 为指定的表单设置信息 0 a4 D5 ?) M% T" `! o* i
SetJob 对一个打印作业的状态进行控制 # ^6 {; x% s! t" c4 S- C
SetPrinter 对一台打印机的状态进行控制
7 N# G5 N' r# |0 i& i2 Q" gSetPrinterData 设置打印机的注册表配置信息
: R9 U3 i6 C. K0 D0 UStartDoc 开始一个打印作业
# K& f3 [- ?+ k6 C! @  g/ Z& sStartDocPrinter 在后台打印的级别启动一个新文档 % M( @3 p& D2 q8 }
StartPage 打印一个新页前要先调用这个函数 ; \+ m1 Y* `2 ~+ z) W, a
StartPagePrinter 在打印作业中指定一个新页的开始
, P$ N7 [8 C, r6 z1 [5 hWritePrinter 将发送目录中的数据写入打印机
# o6 k) a3 c- Q3 D/ Q5. API之文本和字体函数
1 E  S, w! G, K1 `; f$ D+ tAddFontResource 在Windows系统中添加一种字体资源 3 u( h6 k. M) N* @+ j' x+ [5 f5 ?  k
CreateFont 用指定的属性创建一种逻辑字体
$ a; Y+ s' T3 K# I! _9 xCreateFontIndirect 用指定的属性创建一种逻辑字体 : u1 t* j; B& T( V
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
, @8 A' P' ~3 K( T! pDrawText 将文本描绘到指定的矩形中
2 S* J8 U$ w( ^0 H$ m# A; o& VDrawTextEx 与DrawText相似,只是加入了更多的功能
3 f! ?4 a" A5 R" o/ mEnumFontFamilies 列举指定设备可用的字体
9 N! U0 j, u/ Z0 d% aEnumFontFamiliesEx 列举指定设备可用的字体
" U5 p- D  O8 b8 o0 i2 J6 LEnumFonts 列举指定设备可用的字体
: R' n+ e& ~0 K) JExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
' ~) o. n9 g( o. gGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
! A* A+ r7 f: S2 w; p4 w/ _GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 5 \7 f/ n2 y" ]4 [+ N3 k& v3 P6 f
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
7 ?6 _) f) ?' k) P( N6 N' IGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 + {2 {4 o" |+ }& F# b
GetCharWidth 调查字体中一个或多个字符的宽度 " Z6 l" ]2 n2 v% s* Z0 M
GetFontData 接收一种可缩放字体文件的数据
) u0 [" Y5 O7 [! UGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
/ z( S; u6 I/ h0 [GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 * W& B7 a2 R" V
GetKerningPairs 取得指定字体的字距信息 9 u" F( G7 \7 ?. k9 K
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
4 y, X. V' t, Z* t0 G3 iGetRasterizerCaps 了解系统是否有能力支持可缩放的字体
" m3 ~6 m3 _8 C1 W' oGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 : l; t# r  ~) C+ f. X+ z* G. I
GetTextAlign 接收一个设备场景当前的文本对齐标志
& e+ f& E% d4 n3 H* pGetTextCharacterExtra 判断额外字符间距的当前值 3 r$ e- J6 e) p  J2 m, t
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
+ }% |7 I1 {; n! R& k  U* y6 jGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 : m3 e4 Y" U& t
GetTextColor 判断当前字体颜色。通常也称为"前景色"
: I5 l! _% n" i2 R6 q8 [GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
+ R! ^3 z7 Z( m6 b0 G  Z" {GetTextExtentPoint 判断一个字串的大小(范围)
( r/ n$ R- c& F& }6 |GetTextFace 获取一种字体的字样名 1 i9 m2 k' s1 u- U( W
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 , g( ^' ], J' S$ z5 u# f' h
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 3 U" f4 C" u0 [5 B, y; t; @
PolyTextOut 描绘一系列字串
: j- @+ \2 j/ m3 i6 S, a" _RemoveFontResource 从Windows系统中删除一种字体资源
$ B0 C8 l" q# m' s' f  KSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
* O$ z+ `) _# `4 C5 d- x1 bSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 " a" j; i* x: j7 n. _
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
: g4 D+ }: \) xSetTextColor 设置当前文本颜色。这种颜色也称为"前景色" ! g, m1 }+ _% z' L. f
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
& l8 K3 ]/ \4 e. L9 H5 l" {, c% GTabbedTextOut 支持制表站的一个文本描绘函数 ) {( u* O& v% `* q% [! n2 O# `
TextOut 文本绘图函数
0 L: n2 @# b* o9 o% y4 ?WINGDIAPI BOOL  WINAPI TextOut(
5 J7 _' F. f0 k( Z/ Y- dHDC,     //输出设备' X: H- a1 {& {7 b7 I
int,     //输出的横坐标( W7 \6 ]0 q6 J
int,     //纵坐标
' V% o7 o2 z$ {( z; [0 C* I0 ^LPCSTR, //输出的文本str. U8 i  W. ?# a3 L: C! S
int);    //文本的长度:lstrlen(str)1 I5 f! o3 r5 ]* T1 `' j
6. API之菜单函数 - j8 ~/ y7 Q" t7 k1 P% z! i3 s
AppendMenu 在指定的菜单里添加一个菜单项
6 z7 ~* T% z: Y9 f. \/ YCheckMenuItem 复选或撤消复选指定的菜单条目
1 Q/ C3 U/ E9 V6 R% ~7 j* yCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 * J0 h0 u; y) g7 G
CreateMenu 创建新菜单 % T& {1 L2 l1 Q
CreatePopupMenu 创建一个空的弹出式菜单
1 ?6 i0 I) T  _: l* |0 _- l+ nDeleteMenu 删除指定的菜单条目 ; X2 O+ F4 C# g! u
DestroyMenu 删除指定的菜单 ) @. r6 r* a7 e  b$ q
DrawMenuBar 为指定的窗口重画菜单
' e( x& h) d2 K2 _% H# j9 oEnableMenuItem 允许或禁止指定的菜单条目 ) l0 `, I6 T6 y9 W3 Q3 n
GetMenu 取得窗口中一个菜单的句柄
4 D6 w+ l$ D8 v3 B# p+ S- y1 YGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 7 f: T7 ?( `6 q% B+ y
GetMenuContextHelpId 取得一个菜单的帮助场景ID " F  u/ W8 ~: `4 [5 K! O
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
% ~9 m' ~+ o8 _" M) ~) fGetMenuItemCount 返回菜单中条目(菜单项)的数量 ; X; o8 P2 S6 Z3 v
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
& D% x$ p9 X! ~7 nGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 - w& O0 j3 ~# R" R( w
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 + c3 ~( I+ B9 ?- Z: X! b8 y3 x6 E/ V
GetMenuState 取得与指定菜单条目状态有关的信息
; I4 J3 J! f. E2 S' U/ MGetMenuString 取得指定菜单条目的字串
. E5 p$ s! w0 N7 \: ~# G* L# WGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
. n7 q% ~8 G3 T7 K6 t% [, a- mGetSystemMenu 取得指定窗口的系统菜单的句柄 % o' J/ k$ D) R* L  f2 \% Y
HiliteMenuItem 控制顶级菜单条目的加亮显示状态   w6 A! @1 N8 N+ l# \( d5 }3 N& q
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
4 T" |" _3 P3 F7 R+ bInsertMenuItem 插入一个新菜单条目
' z% v4 C7 G6 T  D" ^( N7 Z; EIsMenu 判断指定的句柄是否为一个菜单的句柄 3 l6 ^( ]# f4 z1 e
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
7 t! _6 \( a! kLoadMenuIndirect 载入一个菜单
8 J8 i! f3 i# F  qMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ) E) C9 i0 M: O/ ^7 l& _$ K3 Y
ModifyMenu 改变菜单条目
4 G% }' W# y8 t! ?- f; T6 `RemoveMenu 删除指定的菜单条目 8 p2 K7 b! e9 @/ H$ S' V& k2 Y- U
SetMenu 设置窗口菜单 ( P0 @  e4 t! o  e6 O1 \3 B- U
SetMenuContextHelpId 设置一个菜单的帮助场景ID
5 R2 I6 o4 Y( r7 {; _4 o% mSetMenuDefaultItem 将一个菜单条目设为默认条目 ; z+ A2 b( x  G* C7 d
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) 2 w6 e2 Q: }: k7 ^' q6 j
SetMenuItemInfo 为一个菜单条目设置指定的信息
0 E, c8 _) l- Z, w( V. OTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
4 K' S0 d4 ]7 D% O$ X: B+ S" YTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 ) f% _" F8 m5 z/ Z* |  v" d6 r
7. API之位图、图标和光栅运算函数 4 V, J$ M* P) o' K  v  ~
BitBlt 将一幅位图从一个设备场景复制到另一个7 u% q1 t  q3 c7 q8 d& J  F
     WINGDIAPI BOOL  WINAPI BitBlt(8 L( n& S7 B1 i: r$ s- i
HDC,     //目标HDC) j1 j' {1 }, M; e9 D7 G: Q2 P8 h
int,     //X1
  O8 E1 O! g/ x: V: oint,     //Y16 }0 D. U% G4 e1 S" V& b
int,     //width/ A+ \. {9 a' l
int,     //height$ b* G3 t# y$ c6 `/ N2 e
HDC,     //源HDC
: V$ y6 u- o/ Oint,     //右边的距离
8 F8 a9 G4 F9 [& c( \% uint,     //??
' h% _, u* `( J5 s# L, Y4 NDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
# w1 U( e  C) V) l: ]9 D7 G7 XPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
# R, ^! A9 u/ K, vCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
% |% Q; I3 h7 G8 VCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 - o* B6 s. o5 S- g+ U, G
CreateBitmap 按照规定的格式创建一幅与设备有关位图
+ `1 q  B, }6 Y3 w* Z) w) Y: sCreateBitmapIndirect 创建一幅与设备有关位图
6 W1 ]5 W5 t( E8 bCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 0 K7 E9 Y9 L) q: `! X/ X1 L. X3 d
CreateCursor 创建一个鼠标指针 8 k3 i6 O# [! W/ H$ x% \
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 6 @6 p; ^4 g8 j& g; s6 T
CreateDIBSection 创建一个DIBSection ' c$ k9 A4 ?- R
CreateIcon 创建一个图标
* Q  o* \* v/ x/ j9 ^8 ~CreateIconIndirect 创建一个图标
; m* y/ |9 R1 W  J  }DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 ! L! \2 F  O# Q, Q
DestroyIcon 清除图标
$ ?8 V, j+ n6 R/ N0 WDrawIcon 在指定的位置画一个图标
: D+ @  ^; E1 ^DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
1 F- P6 E( x+ ?7 |2 k: T/ g5 sExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
& P. q1 p7 e' M- T; dExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
' j) V0 o/ ^* X2 i; u" LGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 / J+ g  X' P; l: @# |
GetBitmapDimensionEx 取得一幅位图的宽度和高度 / g4 G+ q5 `$ O  C0 z* h
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 & c' M& n9 k3 S, i+ Y
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 , i7 E2 z6 _) ]  n% p
GetIconInfo 取得与图标有关的信息 2 U/ c! h+ v% X7 G7 K6 c6 f
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
. Q# o' N: [* p  f6 q; W, S, X: `. MLoadBitmap 从指定的模块或应用程序实例中载入一幅位图
; J9 w- f1 R% F7 U) D' V; e, JLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 ( E6 o; A) V$ F3 e( N1 y+ _# j$ T
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
/ H5 T" I6 h1 c/ o4 R0 PLoadIcon 从指定的模块或应用程序实例中载入一个图标 9 F! s; i0 P5 ]& y0 [6 F" }& m4 M
LoadImage 载入一个位图、图标或指针
  h3 S/ [4 u3 x3 f1 R# S6 {HANDLE LoadImageA(
$ s- t3 i" k1 a  VHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
. A7 S3 p: \# k& q6 d8 J    LPCSTR,               //资源所在的目录:c:\help.bmp
" s% z. O, p7 S" q% u    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
$ c* i9 h# t0 z; K) h2 s" f    int,                  //! s5 {- N* s! w8 d
    int,                  //
& x- s7 p% ?7 v- L3 eUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
+ r" U0 e8 K( _1 Y4 @R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|& z0 m* f9 u" _( {3 J" Q1 v! s
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED( g4 m& T, g6 F4 G; Q1 m
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 6 C8 e: l; E2 K3 @5 q0 _$ W# j
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景   o: u8 e* ~+ k% V. b3 m
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
0 f! S8 U" c3 jSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
7 B; d  i4 E: U* b& D& BSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 . Q) B+ _) u$ J/ [
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
4 h* P: {3 G0 c5 [+ `# B6 d  KSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 . _2 h0 `7 ]0 k* o4 P. y
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
3 b$ d( o/ K( a: t8 kSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 5 D" L* K" C  ^
StretchBlt 将一幅位图从一个设备场景复制到另一个 6 v' o9 X8 u4 c, d) [6 M
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
* \7 n; c, E! R# n3 q3 P8. API之绘图函数 . {3 Q( }& p) ^  r7 x( X9 k
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
$ ]+ v/ U' b1 mAngleArc 用一个连接弧画一条线 4 h) V1 E( I9 t- \- R0 H
Arc 画一个圆弧
" S: H  }* P7 K' g$ A$ mBeginPath 启动一个路径分支 % y5 ~2 n3 E, a1 k6 V
CancelDC 取消另一个线程里的长时间绘图操作 / H9 L$ M" `6 G
Chord 画一个弦 8 ]' M4 t9 F7 U3 J  X
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 ; L2 t$ O$ m0 o+ F' z; r
CloseFigure 描绘到一个路径时,关闭当前打开的图形
+ W3 ~, F, M1 C+ _% cCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 ' D9 O6 w  Q+ L- K4 s. q% x5 W/ l
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) ' O2 H3 l2 Y  d# o! Z" T
CopyMetaFile 制作指定(标准)图元文件的一个副本
+ w6 ?9 E* G3 uCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
8 P$ P/ E" P5 s, yCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 6 u( j7 Z, P5 c) I( Q
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
7 I/ u. [/ I0 R9 hCreateHatchBrush 创建带有阴影图案的一个刷子 ! X% x$ w# |, k- K
CreateMetaFile 创建一个图元文件设备场景 $ Q, E. q$ L$ f) M
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
7 P* Y& ?: U* e7 S6 YCreatePen 用指定的样式、宽度和颜色创建一个画笔
9 e7 w1 c! h4 c9 D4 O- F5 SCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 5 B4 m7 b9 u5 Q/ S
CreateSolidBrush 用纯色创建一个刷子 0 W0 ~% R: K) |* Z& m& H4 k0 t1 L
DeleteEnhMetaFile 删除指定的增强型图元文件 ; D0 ?1 f+ p. h
DeleteMetaFile 删除指定的图元文件
7 ?( l2 [; z: W9 g' L/ r+ ?WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
7 ]4 {, w* Q( V. X8 ODrawEdge 用指定的样式描绘一个矩形的边框 & i% b1 J% r; G7 M9 k
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 , z& L1 U# _. l4 S
DrawFocusRect 画一个焦点矩形
/ V5 M# h' p) [9 W7 L+ R0 `DrawFrameControl 描绘一个标准控件
; f8 ^- ^; a, z5 c4 K1 [% j& s3 oDrawState 为一幅图象或绘图操作应用各式各样的效果
" A* F  W/ U' K) _- M/ aEllipse 描绘一个椭圆,由指定的矩形围绕
; l6 K8 P0 D* b/ _" Q6 O+ }1 iEndPath 停止定义一个路径 5 Q% X! \2 H$ Y' @, B
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
5 Z* |2 x" G$ M; HEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
! L, x* Q3 E  \# d; c+ L% T2 UEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 ' |* B3 U/ ?  x9 J0 O& Y2 W
ExtCreatePen 创建一个扩展画笔(装饰或几何)
2 J) H% Q; j# r! K. x) rExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
2 W: Y5 I2 Z/ Z" x+ uFillPath 关闭路径中任何打开的图形,并用当前刷子填充
* S1 B$ d2 E0 c9 M& y) Z8 |# VFillRect 用指定的刷子填充一个矩形
3 f5 k+ l/ B+ A) |# }# Z$ HFlattenPath 将一个路径中的所有曲线都转换成线段 ; B* I  Y# s2 V5 j$ \
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
, m1 B! `/ J& ?& i+ A% B0 f- XFrameRect 用指定的刷子围绕一个矩形画一个边框
9 w% A: N7 n  I$ d8 H) Z# BGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 - L* `6 U. @3 c, \4 M) ?5 }
GdiFlush 执行任何未决的绘图操作 # W9 v/ h- E5 |: b/ g( v. h+ L
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 7 F/ o" F% `" Z7 h
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 7 A9 E3 m  ]- n7 r7 K$ E
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
+ t2 i& r( b1 R; u0 ~6 m; oGetBkColor 取得指定设备场景当前的背景颜色
' ]* f' \6 S, E* n3 LGetBkMode 针对指定的设备场景,取得当前的背景填充模式 ; N: N6 ?0 N. ^) }
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
! U4 l  |1 W+ O+ d% \GetCurrentObject 获得指定类型的当前选定对象
) R* Y- F& B9 a) k# zGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
- {: ~9 B) G- ~: A) {$ NGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
$ ~; Q# A0 @5 YGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 4 j6 {: E* B+ l8 M. E4 s1 S- K
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 # Z/ M, M* z* D, @
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
* P) F+ N1 v6 n* c' F9 I! ^GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
: L0 ^. ]1 f% u1 s  YGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 1 G7 m7 I. b5 e/ q
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 8 s  O3 p/ ]2 X/ P/ c  Q( d
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
. Q& _! T# D* s3 M/ ~/ B9 z) wGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 0 b, u) s2 @' S  D: e5 D" d
GetObjectAPI 取得对指定对象进行说明的一个结构
9 q9 l, I& X5 KGetObjectType 判断由指定句柄引用的GDI对象的类型 0 @6 l1 {$ z+ [6 I# p- q8 o% v* q
GetPath 取得对当前路径进行定义的一系列数据 + W/ X2 z' t! L# W& U% l
GetPixel 在指定的设备场景中取得一个像素的RGB值 1 x/ p& p9 m0 c) [
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 : B% p' b8 K( T1 N! Z! ~
GetROP2 针对指定的设备场景,取得当前的绘图模式 1 M: d' f8 Y! r, B" g: U) n5 r
GetStockObject 取得一个固有对象(Stock) , Z+ M( @' U" M0 V4 u" A9 l
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 + c( o9 v4 T) G" h1 V* k
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 " a6 L5 T0 U. v% v
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
, e' D/ C7 ]  g) W3 r6 R6 ]& C; o0 xLineDDA 枚举指定线段中的所有点 8 \& @" }$ H. K% ~( ]2 [3 s/ I
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
, }" D' K) {1 z) bMoveToEx 为指定的设备场景指定一个新的当前画笔位置
+ o" g' R6 z& K+ Z! b! |* r" W- {PaintDesk 在指定的设备场景中描绘桌面墙纸图案 + u5 V+ p' k7 c; l$ x1 K
PathToRegion 将当前选定的路径转换到一个区域里
" `4 l: Q  t# UPie 画一个饼图 7 h( t; {0 ~) V: y: N# ~) m; ~8 c
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 : N! D0 |& e3 V7 a
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
- ]$ m! y/ u) f* y. `. L+ u. ~PlayMetaFile 在指定的设备场景中回放一个图元文件 8 V3 c7 ~( n) }; k/ ^0 j" J0 L/ B# I
PlayMetaFileRecord 回放来自图元文件的单条记录 + z; m9 |) t6 E. L. U
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
- ~/ u4 n" Z7 V. A& MPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
7 @% @# Z# F3 ~- c- R$ Z* ?Polygon 描绘一个多边形
3 O: o3 C# [( M0 ?6 L4 d* `Polyline 用当前画笔描绘一系列线段
9 u/ [! k4 J0 n! q1 F8 ^PolyPolygon 用当前选定画笔描绘两个或多个多边形 5 B' v+ a% r0 ~
PolyPolyline 用当前选定画笔描绘两个或多个多边形
( O; \  w2 U1 {, k/ gRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 : S4 L8 o9 J$ U6 Z
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
. Y4 r6 q/ Q$ q7 g$ ?0 _8 ]SelectClipPath 将设备场景当前的路径合并到剪切区域里 4 d0 U* Y: `6 h" C1 n' r# D, K
SelectObject 为当前设备场景选择图形对象 / t' C* ?* ^8 e+ _7 X
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
3 r# m. K# f8 V% J% p$ n; PSetArcDirection 设置圆弧的描绘方向
4 j2 e  v/ `; o6 X; qSetBkColor 为指定的设备场景设置背景颜色
2 H! ?2 @- Z4 ?. \3 h! C, d3 wSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 ' E5 j4 H* J) E3 k% ^& R
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
* J. B6 ]6 R! DSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 ) V5 X% n, y) ~3 |3 |7 _- N; X
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
6 I7 j0 R5 U  bSetMiterLimit 设置设备场景当前的斜率限制
; v; m2 T* L0 s( m# A8 ~1 u  ]SetPixel 在指定的设备场景中设置一个像素的RGB值
/ B; P, }7 N( H3 M2 WSetPixelV 在指定的设备场景中设置一个像素的RGB值
* j0 v9 Q  J: g; DSetPolyFillMode 设置多边形的填充模式
9 F6 ~7 Z4 e1 A( N( a5 F$ y+ |1 ]: SSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
% m& X# n8 i/ j; T6 wSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
; {" Z+ g9 p+ G( l9 h& hStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
9 l9 Y* C; u( nStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
# h/ F  [. o# b$ t7 }; v7 h/ UUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 6 p% B/ h7 l, u6 f
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 & J  k! V3 }5 x* o
9. API之设备场景函数 & V4 U& d3 U  [
CombineRgn 将两个区域组合为一个新区域
4 E5 [  o) z; o+ f+ p% MCombineTransform 驱动世界转换。它相当于依顺序进行两次转换
' I; J; m, \7 X! u, YCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
8 W3 q$ l% }/ r) J: pCreateDC 为专门设备创建设备场景
3 k3 W$ g5 h* C$ nCreateEllipticRgn 创建一个椭圆 ! U& C: x% y( m8 T0 u# q  f
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
$ A" M- b# h$ {  hCreateIC 为专用设备创建一个信息场景
7 s- l* N5 p6 v# BCreatePolygonRgn 创建一个由一系列点围成的区域 0 n# ~: H0 H' T: k( B
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
$ e/ q, P; C0 \. x  ]' H4 p2 E" vCreateRectRgn 创建一个矩形区域 3 I( g6 n: g4 ^6 ^
CreateRectRgnIndirect 创建一个矩形区域
1 ]1 W5 y6 G. rCreateRoundRectRgn 创建一个圆角矩形
; n( K0 ?# F* B7 O, xDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
( \# c  N7 E2 T! \DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 . p% t$ I+ }$ q) \8 K
EqualRgn 确定两个区域是否相等
; i3 w0 C: Q1 I# W3 c% A+ xExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
7 B6 p% p# L/ u. B" V3 q* z4 `9 NExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 8 u" y( k' B; C0 K( J# j/ c6 G* `" C5 E* r
ExtCreateRegion 根据世界转换修改区域 % T! o8 o4 s/ b) T
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 3 d. g4 g# E- Q  i0 a2 A
FillRgn 用指定刷子填充指定区域
, n$ Y% |4 p% q: JFrameRgn 用指定刷子围绕指定区域画一个外框
  e& _+ e/ V& k( O) R. Y, F+ o& iGetBoundsRect 获取指定设备场景的边界矩形 2 I0 r' H% i. u6 s( @9 Z) M
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
) I0 f* L. ]3 b+ v7 {0 g. d: `, WGetClipRgn 获取设备场景当前剪裁区
- a' h. U0 \% p1 P4 o% HGetDC 获取指定窗口的设备场景
4 O! I, J  U2 C$ U- SGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 3 l; O  T, v, M3 L- A5 `" ?3 F
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
, B0 e9 X& |9 o8 hGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
% `# \" \$ ^& q9 \GetGraphicsMode 确定是否允许增强图形模式(世界转换) - \4 h- R" u9 C% s( \1 z' ]
GetMapMode 为特定设备场景调入映象模式
/ |! l4 C6 ~; U4 z& E6 c* z$ |GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
  a- ^0 S$ n$ q9 f  ?4 iGetRgnBox 获取完全包含指定区域的最小矩形 7 [7 o9 w1 J& O- u% x% U5 M: {
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
# Q, h6 Z3 C7 J' x9 _GetViewportExtEx 获取设备场景视口(viewport)范围 . h# \6 a$ I4 O/ S" [1 E5 ^
GetViewportOrgEx 获取设备场景视口起点 - L1 ^, v; q# V' i( |! O$ ~# g5 t6 X
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 , s  }7 d& \, `2 v) I
GetWindowExtEx 获取指定设备场景的窗口范围
: p: I7 O9 k/ @7 UGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 , G6 K, d- l3 G5 s: T6 i
GetWindowRgn 获取窗口区域
. K. J0 z  b7 R" vGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
* i( A2 D; [) c& W" I; n$ YIntersectClipRect 为指定设备定义一个新的剪裁区 ; v0 j8 m  x! z6 `) `
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
% k5 G( v- ], Q5 j6 cInvertRgn 通过颠倒每个像素值反转设备场景指定区域
, W6 ~  A1 K$ x' N9 qLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 ! O. z; n1 @& h8 D0 o8 g
ModifyWorldTransform 根据指定的模式修改世界转换 : C! S! d$ Y. v+ M/ ~7 T1 S. U6 e; e
OffsetClipRgn 按指定量平移设备场景剪裁区
( q' W2 W% E) [# ]; a6 q1 mOffsetRgn 按指定偏移量平移指定区域
& `0 W4 X" E4 s' Z/ s/ l7 x% uOffsetViewportOrgEx 平移设备场景视口区域
+ b- P8 C! e, A' lOffsetWindowOrgEx 平移指定设备场景窗口起点
3 d1 X; `% e* Z1 l# ZPaintRgn 用当前刷子背景色填充指定区域
) b! C2 u$ z4 j5 @8 C4 p! G2 yPtInRegion 确定点是否在指定区域内
# E2 q8 T7 N: h1 YPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 0 {. }1 _; V! V
RectInRegion 确定矩形是否有部分在指定区域内
$ K7 \% _7 j$ u  sRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
! o1 l7 N' z0 u8 v0 w0 L; U  aReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
: N# K- J+ H8 g; H, G7 h/ ?2 qRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
- L1 t2 b" B0 y* p, R2 I$ l$ CSaveDC 将指定设备场景状态保存到Windows设备场景堆栈 2 @3 ]/ B5 }6 [% V! p! L
ScaleViewportExtEx 缩放设备场景视口的范围 . X& o3 \+ o0 R
ScaleWindowExtEx 缩放指定设备场景窗口范围
' V9 u4 s1 U! E/ m* lScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 % Q1 Z; C; {" u/ L  @
SelectClipRgn 为指定设备场景选择新的剪裁区
+ W. q2 W; t% N! PSetBoundsRect 设置指定设备场景的边界矩形
" C# Q: g7 V& I2 Q# L; GSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 8 @+ `% w7 c  r  D; E4 F- W: O
SetMapMode 设置指定设备场景的映射模式
* V) N0 m( i; I$ N5 RSetRectRgn 设置区域为指定的矩形
& w8 v* u; ?4 YSetViewportExtEx 设置设备场景视口范围 1 v% g4 P- @! v0 w0 c2 O5 B3 o
SetViewportOrgEx 设置设备场景视口起点 ' V: {2 K) L  Q8 a1 b
SetWindowExtEx 设置指定设备场景窗口范围
% A+ h1 Q% ?& a, M$ f7 kSetWindowOrgEx 设置指定设备场景窗口起点 : a  V5 s* O" g
SetWindowRgn 设置窗口区域 + b* ^4 D- A/ B
SetWorldTransform 设置世界转换 ! V$ Q7 `0 O8 B  o
ValidateRgn 激活窗口中指定区域,把它从刷新区移走 6 }0 j: I0 B! z6 c
WindowFromDC 取回与某一设备场景相关的窗口的句柄
$ `  y; H" j9 T+ r% F, u! @10. API之硬件与系统函数 ' S+ h! G4 x3 ^* S4 o$ l
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 4 \" Y3 B4 t/ F2 l% y, R4 s% [
Beep 用于生成简单的声音
% U  \2 f; ]0 Y: k7 ~' P' V3 {+ YCharToOem 将一个字串从ANSI字符集转换到OEM字符集 ! v, j. D( L0 o- B( `# h
ClipCursor 将指针限制到指定区域
$ s- m! I: ]* V" m5 X/ {6 D% kConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
7 @: u2 j4 o! o$ y8 m6 Z8 d" LCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 ! U- h: s- o# ~( p
DestroyCaret 清除(破坏)一个插入符   r: `) H# Q4 K8 L( v" n
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 * @8 l& a% ?' J4 A
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
" t8 A. Z; S, g( X, {& i5 [1 CEnumSystemCodePages 枚举系统中已安装或支持的代码页 - r1 m1 z5 t. h
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 ) k/ C! m! V2 j  Y' M: x
EnumTimeFormats 枚举一个指定的地方适用的时间格式 $ L2 g2 l  B3 g# x1 u9 t# U+ R
ExitWindowsEx 退出windows,并用特定的选项重新启动 3 v/ z2 |5 Q" N; [+ s, s
     WINUSERAPI BOOL WINAPI ExitWindowsEx(
* x) r4 o  x3 \8 G, dUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
( F0 U' [" u% h& v6 |     DWORD dwReserved); //0
4 u& N" M: F5 s9 L2 ^* b/ GExpandEnvironmentStrings 扩充环境字串
  T2 ~$ t5 z8 p6 q0 @5 J6 `, `FreeEnvironmentStrings 翻译指定的环境字串块
5 w8 w+ U0 ^: A7 ~GetACP 判断目前正在生效的ANSI代码页 % J; o7 B' ^9 v1 d: W% @
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
* q1 B: y: s& s- R; ]. ]GetCaretBlinkTime 判断插入符光标的闪烁频率   v8 F  s& O3 z3 W' q" n% o
GetCaretPos 判断插入符的当前位置
' r% v, D# }3 D" tGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 - [- K( v' L3 u2 O
GetCommandLine 获得指向当前命令行缓冲区的一个指针
' H6 S' r! r0 ~0 ?GetComputerName 取得这台计算机的名称
; ^4 K/ I- \& _# m, A+ w4 s  ~6 C* iGetCPInfo 取得与指定代码页有关的信息
1 M( o: E' M9 k: C# ^: bGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
7 e6 [3 g2 a, @, G4 ]GetCursor 获取目前选择的鼠标指针的句柄 3 ~7 h! D6 \5 B) j
GetCursorPos 获取鼠标指针的当前位置
- U7 ?. D- L& h# Y$ k1 e% [8 xGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 9 P& m, N, B  E! p: k- p6 P9 M5 c
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 / E" M5 s; m+ G: a0 J  Y3 y
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
* a: H3 P2 `) `9 y: X7 r( ?GetEnvironmentVariable 取得一个环境变量的值
- h! U4 z  Y$ z; A" K2 l5 f8 qGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
1 J7 @. n% p" e; e: c# hGetKBCodePage 由GetOEMCP取代,两者功能完全相同 3 C! F& X3 k" k& ~
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
2 k$ D1 g9 X& k" U+ ?$ qGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
7 Y+ c9 O; ^- F" c' QGetKeyboardLayoutName 取得当前活动键盘布局的名称
* ]% D/ a7 d9 _GetKeyboardState 取得键盘上每个虚拟键当前的状态
3 o0 I, D& k; d) V& q6 E. r! C+ kGetKeyboardType 了解与正在使用的键盘有关的信息
% B# H7 Z# R4 m8 QGetKeyNameText 在给出扫描码的前提下,判断键名
1 `% H& R9 V+ VGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
3 P. i# ^' C/ i/ C- p9 w: UGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 2 f! h4 [1 w, d' \
GetLocaleInfo 取得与指定"地方"有关的信息 % [: n+ V  l6 ^! Y+ |& g. i& }$ y
GetLocalTime 取得本地日期和时间 4 Z7 I; y5 L) ?: z" H2 g7 a; C5 F3 Z
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 + v) s3 @, {7 W% j6 H/ n1 n6 ~
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 7 z/ y6 U! g8 \3 d
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
* _3 p  ]2 |' fGetSysColor 判断指定windows显示对象的颜色 - @. E) g. X6 g
GetSystemDefaultLangID 取得系统的默认语言ID
0 U- }+ P- A, b7 d% FGetSystemDefaultLCID 取得当前的默认系统"地方"   r( R6 {8 a7 x) b
GetSystemInfo 取得与底层硬件平台有关的信息
, [% ~# t+ {. G6 C) M: j3 O5 T6 gGetSystemMetrics 返回与windows环境有关的信息
- b$ I6 B0 x% WGetSystemPowerStatus 获得与当前系统电源状态有关的信息
8 X" ?9 B+ P& P- }- L3 H( KGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 . z$ L$ R) s8 `6 P: ^
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
! l6 o8 e& b0 v+ H' c! [GetThreadLocale 取得当前线程的地方ID 1 z  l& r6 E$ d/ N7 K/ H. D- e
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) 2 Q, J1 c- p2 n0 l. J( ^
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
5 ~; a! r( q2 O' q! t; c9 qGetTimeZoneInformation 取得与系统时区设置有关的信息 ; b9 Y, E# o2 M5 P
GetUserDefaultLangID 为当前用户取得默认语言ID
; H6 a3 U4 p  q* i0 Y# a1 X, NGetUserDefaultLCID 取得当前用户的默认"地方"设置
- o& ]0 g! L/ G! N- HGetUserName 取得当前用户的名字 5 G, b# |2 D3 w8 i2 L) q/ G
GetVersion 判断当前运行的Windows和DOS版本
: I0 Z/ Z: d8 \; {# NGetVersionEx 取得与平台和操作系统有关的版本信息
9 ^; X. n, t& lHideCaret 在指定的窗口隐藏插入符(光标)
2 G  Z$ R$ [( h# _* H& uIsValidCodePage 判断一个代码页是否有效 " I3 U! w, x$ D4 @3 O4 n* ~
IsValidLocale 判断地方标识符是否有效 # k* Q/ n" N7 D0 [- K) }7 \& A7 r
keybd_event 这个函数模拟了键盘行动
9 @, i. Y6 t; @: aLoadKeyboardLayout 载入一个键盘布局
0 s# r2 g7 l$ U1 u; }% Y1 xMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
; T3 J# p/ T: W/ r; [- V1 }5 \MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
& {* E9 M) ~' Q# j  h+ CMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
; ?5 A% B; }3 A( p+ v: N: d. [mouse_event 模拟一次鼠标事件 . X6 I1 j$ ~4 L
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 % l. a. f0 x9 p
OemToChar 将OEM字符集的一个字串转换到ANSI字符集
+ x, U/ M1 V4 j4 f- {3 ESetCaretBlinkTime 指定插入符(光标)的闪烁频率
- w9 }, d. Z9 c* [5 ^) GSetCaretPos 指定插入符的位置
1 ]. c' Z- d8 D( w4 bSetComputerName 设置新的计算机名 ) o  G) X. n( @3 n( B  ]$ m; b) \- E
SetCursor 将指定的鼠标指针设为当前指针
* U0 C+ Y  B7 b  j: PSetCursorPos 设置指针的位置
, W: I5 o' Q) v1 h4 ?SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 ! k; H: w! l2 ?5 l! h! _: t( R. y1 a/ ?
SetEnvironmentVariable 将一个环境变量设为指定的值 , m" t; Y1 o3 i9 o
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 4 U% H; d; R4 j- Q7 s# u
SetLocaleInfo 改变用户"地方"设置信息 2 [+ u: o! C4 K$ ~1 }
SetLocalTime 设置当前地方时间
5 S0 c) S' ]' o$ [& y3 @SetSysColors 设置指定窗口显示对象的颜色
3 D5 _# r: b* ]5 ^2 o" o  N4 NSetSystemCursor 改变任何一个标准系统指针
! x5 m6 i) M% \0 }% b- x' j% qSetSystemTime 设置当前系统时间 ! j4 o3 N2 H. \" M1 k+ {7 L
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
) Q& k( u" R$ @* K) w( `% [1 ^SetThreadLocale 为当前线程设置地方
" P1 Q7 C- J6 o* FSetTimeZoneInformation 设置系统时区信息
1 D8 x; F( w$ WShowCaret 在指定的窗口里显示插入符(光标) / R; O% K* S4 H! t. U, a$ c- `; G5 m
ShowCursor 控制鼠标指针的可视性 + j2 G' A# o6 L5 A+ Z8 c% _
SwapMouseButton 决定是否互换鼠标左右键的功能
. M* c8 {( Q5 J% O$ O6 f/ ?SystemParametersInfo 获取和设置数量众多的windows系统参数
& x0 h$ l' n: r$ H8 ?SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
  y" N5 G5 G/ p! ~: ^) S- YToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 ' f( U) I+ p' T9 q" d
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
, J# |% q  ?" z9 \! BUnloadKeyboardLayout 卸载指定的键盘布局
( [3 q( |+ Y7 q% dVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 ; f4 a7 ], E* ?+ }# b2 u+ u" O
11. API之进程和线程函数 - d% I3 n1 _4 a
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
. x/ I) Q% L+ A* @- [5 D4 N3 ACallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 : ~; C9 z* X+ r5 S
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
0 M! X5 m8 N- @CreateEvent 创建一个事件对象 : }( U  n5 P7 K* Q% H. E
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
: B0 y/ B3 @: q, o) s. V$ e7 }CreateMutex 创建一个互斥体(MUTEX)
  F% d; Y' A' e; b7 h2 ^CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 9 l  y3 {! j9 Z* S& j
CreatePipe 创建一个匿名管道
3 f* V! `- ?  }6 O8 ?* yCreateProcess 创建一个新进程(比如执行一个程序) 0 v7 L) B3 I. x. _- q' W9 H$ v
CreateSemaphore 创建一个新的信号机
4 s  X( K: R) O/ `% K. a0 qCreateWaitableTimer 创建一个可等待的计时器对象
5 k9 U% o! u+ uDisconnectNamedPipe 断开一个客户与一个命名管道的连接
0 j/ y% K( m9 X  N" m! HDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 3 G5 W$ F, K1 D; g# h. W
ExitProcess 中止一个进程
2 J( E/ a0 {  U4 P, vFindCloseChangeNotification 关闭一个改动通知对象
+ K- ]0 \9 e( o, W7 @FindExecutable 查找与一个指定文件关联在一起的程序的文件名 ) Y5 z$ ~3 H! i6 ~
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
/ N/ z/ X; V' G$ p. x# I: NFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 - T0 F$ H5 A. R" @4 C% i- m. q3 z
FreeLibrary 释放指定的动态链接库 ( u) o' g. V- j! N% x
GetCurrentProcess 获取当前进程的一个伪句柄
. K# |. L5 d0 [2 f4 y1 g0 oGetCurrentProcessId 获取当前进程一个唯一的标识符
7 x0 J, ]% w! e% R4 R& c* yGetCurrentThread 获取当前线程的一个伪句柄 ; ^9 r1 H( `8 B
GetCurrentThreadId 获取当前线程一个唯一的线程标识符 " a7 @1 x; Q6 E  [, t
GetExitCodeProces 获取一个已中断进程的退出代码 % [3 ~0 m6 G$ r' J# ?8 p' Z
GetExitCodeThread 获取一个已中止线程的退出代码 6 r, c. W% [0 M" \
GetHandleInformation 获取与一个系统对象句柄有关的信息   M. Z1 s& v) a, c. d5 r
GetMailslotInfo 获取与一个邮路有关的信息
9 U- r6 a2 M! MGetModuleFileName 获取一个已装载模板的完整路径名称 5 G; V; Q4 V2 i' ~* w
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 , D8 H3 G' B2 I/ [: |
     GetModuleHandleA(LPCSTR lpModuleName);  G% z0 r2 t' R) k9 ?: O' ~0 Y
GetPriorityClass 获取特定进程的优先级别 + E5 h" ^" m) y, V1 I
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 - L) n3 E1 ~# \+ |- C3 y. E
GetProcessTimes 获取与一个进程的经过时间有关的信息
$ x* _8 s0 {) M, X0 V) _; w& ]GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 1 ?" o1 Q1 U! _. a
GetSartupInfo 获取一个进程的启动信息 % I8 E/ T0 k) h
GetThreadPriority 获取特定线程的优先级别 ) a4 ?7 j0 Y% Q1 K0 |
GetTheardTimes 获取与一个线程的经过时间有关的信息
9 s& h+ d5 }# w' R, aGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
7 M! m# S3 n+ X! P  i0 A  e% PLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 ! k! F# F+ g! r& ]6 i: a* @2 @6 `) a( n: Q" G
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
, |- ~) ^4 u! W7 \& ~LoadModule 载入一个Windows应用程序,并在指定的环境中运行 ) j* v0 p6 b2 F) C. }% l  L
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
4 o" L5 k. Y% y3 x* H+ D7 vSetPriorityClass 设置一个进程的优先级别 " v; |; _% d/ u0 E7 S- p; X
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
! J9 k/ g7 S4 d8 s2 f0 d9 d& |SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 + Q4 ^4 H- {* @
SetThreadPriority 设定线程的优先级别 5 C0 B0 Z+ A3 ?% N' b( o
ShellExecute 查找与指定文件关联在一起的程序的文件名
4 G2 t" y0 p: C2 dTerminateProcess 结束一个进程
: J" y7 P' c' k+ c" M/ eWinExec 运行指定的程序
. z* p' @; N, {12. API之控件与消息函数 3 ~  r- N2 O8 f# v  l: ^& V/ l, `; B
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
/ r5 b9 [: z- o: o. c$ oAnyPopup 判断屏幕上是否存在任何弹出式窗口 4 ~9 w* S; q  Y7 y
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
& G7 t+ u# f7 Z3 G( f: W* ^AttachThreadInput 连接线程输入函数 & \* H; O! B' _) a
BeginDeferWindowPos 启动构建一系列新窗口位置的过程
5 x% k% |2 w6 T- x- H/ U! C7 bBringWindowToTop 将指定的窗口带至窗口列表顶部
# m3 W( O+ V4 g* W) [CascadeWindows 以层叠方式排列窗口 , `  x" _8 T" Z" _. ]1 W5 s/ @5 N  Z
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 ! [: M3 }, t3 c4 Y0 x
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 ( a2 T2 g; E9 D2 [% q  ^- P
CloseWindow 最小化指定的窗口
, q9 [) Z" Q. E9 E0 P) _$ P; KCopyRect 矩形内容复制
$ j. W7 L3 P+ W7 ~# o4 IDeferWindowPos 该函数为特定的窗口指定一个新窗口位置
3 p$ z/ J( d7 j; [: ?+ T6 q2 LDestroyWindow 清除指定的窗口以及它的所有子窗口 2 B) {' ^* v4 F4 Y. y* Y
DrawAnimatedRects 描绘一系列动态矩形 3 W) H4 ?& U0 o3 P4 d) V
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
; B) y, u, Y5 y$ e  }8 k, M* MEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
" W' l4 X* J  S3 N/ F! U$ jEnumChildWindows 为指定的父窗口枚举子窗口 ; d9 A1 l# k$ N! h" S
EnumThreadWindows 枚举与指定任务相关的窗口
' X0 D5 r$ w* ~EnumWindows 枚举窗口列表中的所有父窗口
$ \& F5 k  J0 o! gEqualRect 判断两个矩形结构是否相同
  L& a' G8 A$ OFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 " X: ?; c" ]: q
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 - k2 t& F! |8 j0 ]  R
FlashWindow 闪烁显示指定窗口 5 S/ \4 l) s$ K5 {
GetActiveWindow 获得活动窗口的句柄
# U' O4 m( ^$ L- {9 n8 D/ `GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
$ Y- r8 d8 u5 H% j/ Q( g. hGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
. y2 P2 l4 K5 m# O$ W  NGetClassLong 取得窗口类的一个Long变量条目 - b) X% W' G% _% x% j$ j' ]
GetClassName 为指定的窗口取得类名 ) f7 |) W3 c) m; h5 m" t# R9 E
GetClassWord 为窗口类取得一个整数变量
: G; h" a6 o8 i4 p4 HGetClientRect 返回指定窗口客户区矩形的大小
* P( c+ M0 k- s! UGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 ( L5 Q1 x, g! u2 @: i
GetFocus 获得拥有输入焦点的窗口的句柄 ' M0 P! s; }' J3 [- C" b) L& T7 ]
GetForegroundWindow 获得前台窗口的句柄
$ R3 q9 h& z9 YGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 ) K) G- s8 t3 r* T- N* b+ s; q! c
GetParent 判断指定窗口的父窗口
1 L/ V8 l  ~5 M5 q+ [# t2 tGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 , g% D" P) T# Z/ f6 N1 l
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 , [3 N7 S0 a' F3 b+ G  A3 {
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 " w2 G# E( P# P9 z3 d
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID ! P) P9 ~+ K) A/ I& u
GetWindowLong 从指定窗口的结构中取得信息 8 L+ M* `/ K' E& V/ L4 L" S
GetWindowPlacement 获得指定窗口的状态及位置信息
6 e% A- G# ?8 @. Q! {! `% `GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 # V5 M; d0 R4 v: o6 q# x; P. j( e* l6 X
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 / g0 r) t1 w. ?4 }
GetWindowTextLength 调查窗口标题文字或控件内容的长短
/ v) u8 w2 |4 N- A4 d5 TGetWindowWord 获得指定窗口结构的信息
( u' S" C1 P( d$ ^( Z8 e7 O9 dInflateRect 增大或减小一个矩形的大小 ; e/ z$ A3 g4 y$ r% y& y6 n
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 ; l3 E. Y, r$ Z: ~0 R; {& O
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
+ q! L1 I0 q* s& Z  M, S1 AIsChild 判断一个窗口是否为另一窗口的子或隶属窗口 9 r0 P4 Q. Y' M" ?4 ~
IsIconic 判断窗口是否已最小化 ( G: R8 h3 n) E
IsRectEmpty 判断一个矩形是否为空 * z/ }7 D- }: S$ U
IsWindow 判断一个窗口句柄是否有效 % v4 K; x2 S+ b# @: Q. N) y% Q
IsWindowEnabled 判断窗口是否处于活动状态
, d% A& V% @8 i) }' wIsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
" q2 `9 j6 a( f5 L3 {* hIsWindowVisible 判断窗口是否可见 7 {! x: j* t# [
IsZoomed 判断窗口是否最大化 * j' r% v9 F! r& n
LockWindowUpdate 锁定指定窗口,禁止它更新
% |+ j* P) H# l( ~8 B7 TMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 7 c, p2 `3 `0 @4 Q% \, B# g) q
MoveWindow 改变指定窗口的位置和大小
! T& D: `" G( _* |9 t  iOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
! u5 @' G7 Q7 z9 M4 W$ l1 z! I. LOpenIcon 恢复一个最小化的程序,并将其激活 . j  j( X1 I* n
PtInRect 判断指定的点是否位于矩形内部 8 g. s. i6 j4 j, o' g
RedrawWindow 重画全部或部分窗口
: V  T* Y5 w' e& {% b; w6 dReleaseCapture 为当前的应用程序释放鼠标捕获
( q4 R- J2 l& M; ?ScreenToClient 判断屏幕上一个指定点的客户区坐标 8 d' X* D1 l- ]! H. h( m3 R9 M
ScrollWindow 滚动窗口客户区的全部或一部分 ; Q4 L7 E5 I! G# \& T
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 7 ?1 H( B9 W+ Y" P% C% e4 u
SetActiveWindow 激活指定的窗口
0 l4 l* B) V9 p) W# d/ a" h, }; QSetCapture 将鼠标捕获设置到指定的窗口
7 j! l0 v  k0 c' nSetClassLong 为窗口类设置一个Long变量条目
  O, ~; a2 f# K9 E+ [0 R; V. m% B: nSetClassWord 为窗口类设置一个条目
9 E- O4 q! ^! x/ o9 pSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
3 l& C9 _# E/ nSetForegroundWindow 将窗口设为系统的前台窗口 0 H" w0 e" p3 c6 v  O1 v4 n
SetParent 指定一个窗口的新父 , L0 x8 G. u. I3 V
SetRect 设置指定矩形的内容
, K9 q& d7 K! T$ V- u4 c5 TSetRectEmpty 将矩形设为一个空矩形   `0 i3 X, @4 x/ Z
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID ) T; R8 ?% C- I5 ^& `8 U9 X
SetWindowLong 在窗口结构中为指定的窗口设置信息 2 {0 P8 J6 F3 ~$ g# g2 J
SetWindowPlacement 设置窗口状态和位置信息 2 t2 M" T4 Z- I* |2 O' Q- C
SetWindowPos 为窗口指定一个新位置和状态 2 I3 q' p3 n* k
SetWindowText 设置窗口的标题文字或控件的内容 9 N5 ~2 L  C, C9 K/ p
SetWindowWord 在窗口结构中为指定的窗口设置信息
" T7 B- \2 H2 p  E$ I" [0 h8 AShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 & `9 |0 e! J" }* d$ V- R
ShowWindow 控制窗口的可见性
6 @1 ^& c. O; e2 kShowWindowAsync 与ShowWindow相似 ; u4 m) c5 `8 E7 `
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 , p4 ?8 {1 ?" Z& {; W+ u4 I
TileWindows 以平铺顺序排列窗口 : W" ]' f: g% a9 l) ?' p
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
2 s/ x4 v* |1 n( @5 ^! {' s3 fUpdateWindow 强制立即更新窗口 ) J8 u* k. F5 l' }; o
ValidateRect 校验窗口的全部或部分客户区 3 y. ^& h  R3 q0 n0 B- I$ }
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
- X: L3 l- o2 X( ]! R$ b4 p9 I高级音频函数—参看《VC++ 编程指南.chm》11.6
, Q# y. V# J- J- A' s  s6 L     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
, E( ~6 K7 K$ @% B. x& C$ u; ?; H     BOOL MessageBeep(UINT uType);" s. F4 q# k8 x' k
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。0 \" e6 l8 o# L% Y! o
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
/ R  ]# D5 D: u* Z* c1 R% e
级别
0 P4 r6 l0 _9 h/ f
描述   C" p/ E5 M# I6 I( I
-1
. ]2 F7 v. V2 z2 n2 E
从机器的扬声器中发出蜂鸣声。
2 _- M1 Y5 j3 X* A2 b, K& K# o
MB_ICONASTERISK
7 H/ C; A! H, a  \5 s3 c& U/ G
播放由SystemAsterisk定义的声音。 / s$ g6 v; S, F6 L, E
MB_ICONEXCLAMATION
8 r# u' e0 M5 |$ h1 C! Z) f
播放由SystemExclamation定义的声音。
) |# \8 Y- V. B/ H
MB_ICONHAND
$ M# Z  d2 u; Q( F# X. S( I, m
播放由SystemHand定义的声音。
6 h4 C9 h. N% m6 L$ O
MB_ICONQUESTION
* J% y! f0 [# X2 D$ h4 M9 X; K
播放由SystemQuestion定义的声音。
8 A7 L9 e2 P5 `9 X7 N2 C
MB_OK - D, h* j* j/ H0 S2 j2 ^
播放由SystemDefault定义的声音
! A# h+ U9 V$ C' p
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);1 m8 [' `' @4 o
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
: |) j& _9 I# c! }$ `0 g/ O- n: n参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
# L; u3 p" E& J. Q0 e  @' @参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
8 R% f7 j9 u. w  G3 u% W
标志 : e, p( H  V# o& f
含义
+ ?$ g; m6 Z' P# q2 Y) K! `5 W
SND_APPLICATION
! }. t. c- \3 e9 x
用应用程序指定的关联来播放声音。 * j6 `7 B5 N* O! q# o: k/ [2 v
SND_ALIAS % z! v/ [1 q) W+ W- c2 A" }
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 ! L& ?9 V1 y' J# |7 q. x6 Y# ~3 b! I
SND_ALIAS_ID # I, I& B- T) ]( t
pszSound参数指定了预定义的声音标识符。 6 q8 _- M8 M0 ?$ Z) O- [" Q4 d
SND_ASYNC . m  ]0 w( _) Z' ?3 a
用异步方式播放声音,PlaySound函数在开始播放后立即返回。 , T5 l5 Q$ h1 F+ T* ^$ Y
SND_FILENAME
8 f7 U6 U$ C4 L; v% Y
pszSound参数指定了WAVE文件名。
  M: f* N( `- [
SND_LOOP ( a% ~1 z, H2 n0 Q; f9 s
重复播放声音,必须与SND_ASYNC标志一块使用。 - o+ {7 P8 Z# B0 a- F: K( W
SND_MEMORY
0 @; e+ g4 y3 z3 n. |7 e2 f
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 ' Z8 W8 W; f' d. d
SND_NODEFAULT   W# {* @* F9 W9 {& Q7 t  G
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
4 M$ q0 E) ]( w
SND_NOSTOP 3 Z2 i9 ^% L+ [, H; ], Q$ e
PlaySound不打断原来的声音播出并立即返回FALSE。
' h" g. Q8 o# Q) n0 V2 r, ^) n2 o
SND_NOWAIT + b8 W( x% \/ P+ F: Z# x. ~; u" U
如果驱动程序正忙则函数就不播放声音并立即返回。
- E7 |5 V& `- G9 H/ _0 ~
SND_PURGE % `6 m: v' A% k3 x
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
, X% G5 D6 _3 p
SND_RESOURCE , t4 H! N* q1 r- Q. B
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
. l% y# _! F3 {# f* ^5 l: ~% S
SND_SYNC
0 D0 x) C( S! g9 A. u: A
同步播放声音,在播放完后PlaySound函数才返回。
' x) n: b, p& N8 x5 B; ?
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
7 T( Y% N1 p: A% O函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
: G5 K- ~8 w* _' |% K$ m. v" RMCI播放
: @6 W: Y8 K7 y' b$ |  ]2 w4 \/ s/ L7 g所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
0 p0 G2 y9 q* K7 k/ c5 |8 KMCIERROR mciSendString(
2 Y3 H: D0 v( L- T; W0 fLPCTSTR lpszCommand, //MCI命令字符串
1 i) s" z1 `) Y$ Z2 F4 d" Y) U5 YLPTSTR lpszReturnString, //存放反馈信息的缓冲区6 N; D/ M/ V7 D8 Z+ Q: w' H. Y4 b
UINT cchReturn, //缓冲区的长度
. ]' M: ]# k- I& LHANDLE hwndCallback //回调窗口的句柄,一般为NULL* g+ b5 Z2 L+ q) [
); //若成功则返回0,否则返回错误码。+ [# z; C: f4 B5 B
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
) }& C; z* s( y+ f$ `" K' wBOOL mciGetErrorString(. M' T$ n) D% D8 \/ s: m
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
2 S2 |$ H% `! D  CLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区5 D2 ]3 V. F: f& w% l
UINT cchErrorText //缓冲区的长度
8 ?5 }& n, i4 O! y7 q; B. X);( v+ m& Z& m) Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-1 23:52 , Processed in 0.021682 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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