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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
# ~: l# j+ F% e* f1. API之网络函数
1 L5 `( S# I3 U  s/ |3 T- F6 uWNetAddConnection 创建同一个网络资源的永久性连接 % [. o! Q% v2 _2 B: B( ?2 V
WNetAddConnection2 创建同一个网络资源的连接
1 y1 M" ?" g- e7 I; {8 [WNetAddConnection3 创建同一个网络资源的连接
! S' D- l7 _, f% ~& ^' ^( LWNetCancelConnection 结束一个网络连接 - x9 g& E. ~7 Q4 A, J9 I. B* d% S3 b
WNetCancelConnection2 结束一个网络连接   `3 S' X' t; [/ g5 d$ a! A
WNetCloseEnum 结束一次枚举操作 / N2 d; T8 P- o9 s7 `" C
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 , a% _8 S/ v, e1 `% y" i, }
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
  ^7 |$ g7 I$ d6 u# E. b# jWNetEnumResource 枚举网络资源
6 ^8 S: o: p/ {( m( w1 C4 QWNetGetConnection 获取本地或已连接的一个资源的网络名称 5 @; h4 Y. @( R! N* b
WNetGetLastError 获取网络错误的扩展错误信息 $ V" U- U4 \8 E& x8 |7 V# c
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
+ g' c& d( O4 M2 B$ }, O6 ^9 O8 rWNetGetUser 获取一个网络资源用以连接的名字 ( K% M$ s! n" q& A) x# |
WNetOpenEnum 启动对网络资源进行枚举的过程
* a0 H+ i) J' K& V# @+ a) [2. API之消息函数 ; ~$ z% P6 T) J8 e3 u: m7 d
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
2 U& ]2 ?* L  \0 kGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
/ I/ t2 c8 o9 U- o: sGetMessageTime 取得消息队列中上一条消息处理完毕时的时间 " W4 ~! @. s8 }2 d+ P0 S6 p9 Z
PostMessage 将一条消息投递到指定窗口的消息队列
0 Z' u* d/ K, m* i$ DPostThreadMessage 将一条消息投递给应用程序
' q( h! F8 k+ U$ h8 ORegisterWindowMessage 获取分配给一个字串标识符的消息编号 % ]$ w% c# l8 e1 b
ReplyMessage 答复一个消息 4 O) H3 o  P  u. o& o/ C
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
! o$ p; [, L* N* ]4 c2 V- {SendMessageCallback 将一条消息发给窗口
" O  T) W0 X+ _$ v: a) L2 l2 aSendMessageTimeout 向窗口发送一条消息 4 y* m! H) j$ Q6 X$ v$ g
SendNotifyMessage 向窗口发送一条消息
2 p; s% p. G) p3. API之文件处理函数
/ o, `( j1 Z7 [# Q# J1 z! nCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 5 k  F) o7 b2 F5 I
CompareFileTime 对比两个文件的时间
7 X3 Z) h8 k. S- f1 ]$ CCopyFile 复制文件
. G7 v7 E; p/ M+ P" E9 A( ^$ p5 ECreateDirectory 创建一个新目录
$ o4 B; I& k8 g7 _1 |CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
$ a0 `8 _0 `8 f. V4 K& B  V% ^CreateFileMapping 创建一个新的文件映射对象
9 v3 [& O9 T; @5 t. w% a" y+ SDeleteFile 删除指定文件 ( E( J/ X9 R) I7 U$ z# H! Z3 ~4 v5 h
DeviceIoControl 对设备执行指定的操作 8 l" f4 l  M# R! n+ Q
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值   ?# ^% J  d' B( q6 w/ L, d
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
: w0 P* a9 Z1 C: R0 ?FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
9 C% D  ]4 c* o4 B) X* Y$ PFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 , k8 P& y2 r8 @0 X7 U7 {
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
8 k; X! F, e6 _$ H8 W3 w' R% ?FindFirstFile 根据文件名查找文件 0 I* V, `+ O) d1 `+ n) t
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
1 n% A3 _- w6 i$ D5 m. o/ [FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 1 t$ @2 D  i* ?% w2 g' x
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 : \6 d; X7 ?" U) U
GetBinaryType 判断文件是否可以执行
9 e7 p! x. G: Y2 P; \GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
8 u# B/ o+ Y. Z. tGetCurrentDirectory 在一个缓冲区中装载当前目录 * D7 M. K5 ^# p% A: [8 \/ n2 `* n
DWORD GetCurrentDirectory() o3 r+ E' Q" S; m8 }
    DWORD nBufferLength,    //缓冲区大小+ |8 W; G/ b% I  i. O9 a& |- h. V
    LPSTR lpBuffer          //缓冲区的首地址
0 u( O1 P- e4 t7 Z    );: u3 @8 U( X; V
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 / B1 V$ U1 y: g* q& L, }8 `
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 + ?0 `' o0 h( k; p3 {
GetDriveType 判断一个磁盘驱动器的类型 * T0 @5 ~2 i* U, U% F" D: b
GetExpandedName 取得一个压缩文件的全名 ( U) x8 Z7 K4 W5 _) E9 Y
GetFileAttributes 判断指定文件的属性
8 {$ V6 |( Y# M- |  LGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
, Y( k& X& B% X( ^  e$ K+ _GetFileSize 判断文件长度   W- t0 i6 z4 T9 U% G
GetFileTime 取得指定文件的时间信息
" r6 w) E& X' x. h0 H# @' @; ZGetFileType 在给出文件句柄的前提下,判断文件类型 0 h3 ]+ y8 p( `
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
' u: H1 v% J( e% [GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
2 D4 X( ^, T: W2 iGetFullPathName 获取指定文件的完整路径名
7 N. B) J( w0 M4 o- X3 ]GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
, d! q4 M, [" Z& Z  [. C  fGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 3 w* x+ t1 \- I8 S
GetOverlappedResult 判断一个重叠操作当前的状态 ' d  G! z! W( Y  r# ^7 u! L  s( G6 w& J
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 : M+ _  W/ X  s+ ^3 y
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
& [& ^  r6 i5 ?- kGetPrivateProfileString 为初始化文件中指定的条目取得字串
9 O+ \- Z" t* s6 l' z& o( hGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
6 ~3 [$ F7 H6 T( |9 VGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
& e, Q7 ]6 C( t0 ~& EGetProfileString 为win.ini初始化文件中指定的条目取得字串
' U6 m6 \0 G) |- e( pGetShortPathName 获取指定文件的短路径名
: x( X; q" C( j+ t7 y- @GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 / C( O/ J9 N3 h( G' e
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 1 E% ^% ]3 u2 v
GetTempPath 获取为临时文件指定的路径 & s$ B/ ~8 \' [0 S
GetVolumeInformation 获取与一个磁盘卷有关的信息 ) r6 I# W" [2 r9 t0 O
GetWindowsDirectory 获取Windows目录的完整路径名 ! @& Z0 R. W% \" `. q7 R# k5 Q/ t5 ^
hread 参考lread 5 X$ P- u' x6 o1 Z' h
hwrite 参考lwrite函数
# e: Y8 B# {) L- Ulclose 关闭指定的文件 $ C* x2 [) H3 V, L* E/ w/ d' j
lcreat 创建一个文件 0 V% R$ N) ~& a$ B6 X/ U5 M7 H) D
llseek 设置文件中进行读写的当前位置
/ E& Q# r" z/ ~1 ALockFile 锁定文件的某一部分,使其不与其他应用程序共享
& Z3 r  N0 f5 V  }4 gLockFileEx 与LockFile相似,只是它提供了更多的功能 ! v# {. R! m% i4 y
lopen 以二进制模式打开指定的文件 . A5 E1 ?! u9 U1 u" w" V4 m4 w3 t
lread 将文件中的数据读入内存缓冲区
3 R  P: x  X9 a7 ^) Nlwrite 将数据从内存缓冲区写入一个文件 4 y) y9 V) [" j* c. n+ V/ ^, p9 @! w" w
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
& I# u- U# ^4 T8 Y: {3 V9 N- S" [LZCopy 复制一个文件 & l7 L. C0 t+ |$ @
LZInit 这个函数用于初始化内部缓冲区 ) b+ I/ ~# a1 l& `9 I
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 1 d0 h4 K2 d, j9 g0 |8 f
LZRead 将数据从文件读入内存缓冲区 1 y+ L5 P3 R, f$ E& e5 x
LZSeek 设置一个文件中进行读写的当前位置 ( {' c4 M" Y  l) X' k: c
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 4 I. P* N9 E' \" m0 _
MoveFile 移动文件
% b# [, }0 C; l  g2 ~; V6 K2 d. J- qOpenFile 这个函数能执行大量不同的文件操作 7 o1 l+ b7 ^' P
OpenFileMapping 打开一个现成的文件映射对象 & ]3 ?# D8 A( }# E! b
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
3 f' _8 [0 \* W  i- [6 ?$ v8 `$ mReadFile 从文件中读出数据
: |4 L" ]2 G( ?" ZReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
( l8 ?* k6 p; O; {1 @5 t/ ~+ URegCloseKey 关闭系统注册表中的一个项(或键) ! r" l7 _  s! B( M# [& C
RegConnectRegistry 访问远程系统的部分注册表
& ?5 f2 U( L3 E4 \9 o! y  CRegCreateKey 在指定的项下创建或打开一个项
" P9 b# T6 {9 O6 _RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
) c- G" [9 H5 Q% q6 `+ @! WRegDeleteKey 删除现有项下方一个指定的子项
  U9 y/ ~1 i* u5 I  a% ?+ s4 GRegDeleteValue 删除指定项下方的一个值 , |3 ^. [" L; k- e0 h) `
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
3 X% v/ b& I& C/ O+ dRegEnumKeyEx 枚举指定项下方的子项 : Y$ k, y! A$ Y% S! j
RegEnumValue 枚举指定项的值 " ]9 W/ P: n1 }1 b
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 4 u( r4 \; Y3 [* \4 K& e; H2 A
RegGetKeySecurity 获取与一个注册表项有关的安全信息
- h7 H; W1 M9 J% `RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 3 _( ]* M6 F0 J' R5 k" Z4 z
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 * b7 ]% k; w/ K' M+ b
RegOpenKey 打开一个现有的注册表项
* N& b3 D7 i/ U# |RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 6 u! ?( Q& y. W+ l
RegQueryInfoKey 获取与一个项有关的信息
7 ~1 X4 F2 P  h+ DRegQueryValue 取得指定项或子项的默认(未命名)值
/ }3 b! P& S9 ^: `. ERegQueryValueEx 获取一个项的设置值
  n( K0 F( T; n1 [RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
* e3 J, @& w) m  X0 h' wRegRestoreKey 从一个磁盘文件恢复注册表信息 1 N4 G# y# ~* D
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 - B" S  m1 ?' ?
RegSetKeySecurity 设置指定项的安全特性
- i. O3 X1 l9 eRegSetValue 设置指定项或子项的默认值
; ?$ M: g8 ^" o2 X& ~$ \1 R/ u! u  ]$ tRegSetValueEx 设置指定项的值   X+ h" n- z5 Q: l/ b( Q
RegUnLoadKey 卸载指定的项以及它的所有子项 - l8 m7 j/ t- J! K
RemoveDirectory 删除指定目录 8 Q/ k) y+ v# m
SearchPath 查找指定文件
$ ^& T9 H, v, GSetCurrentDirectory 设置当前目录
: J  ~( j* Z1 D8 p3 HSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
9 D/ |( t( m% m( `0 b2 k: x5 |! [SetFileAttributes 设置文件属性 1 T' w& h4 s( e+ B) T2 S3 ]$ j
SetFilePointer 在一个文件中设置当前的读写位置 ; p7 Q7 o0 Y0 m5 R( s8 c
SetFileTime 设置文件的创建、访问及上次修改时间
- O0 h+ j' i0 D' i% K# D- iSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
# j- V  y& G6 }; b7 ^" E5 \SetVolumeLabel 设置一个磁盘的卷标(Label) ( e2 [% \" w9 ?& W
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
) Z4 f0 W) S5 c( }/ ]7 p* SUnlockFile 解除对一个文件的锁定
4 g) S! Y+ C, q1 }UnlockFileEx 解除对一个文件的锁定 - _0 W! b+ w6 ^
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
$ ^/ R9 I  e* ^0 J. M* SVerFindFile 用这个函数决定一个文件应安装到哪里 ! Q7 u, }5 z' ]7 w( m! C. o. t/ q
VerInstallFile 用这个函数安装一个文件
6 m0 u8 p+ [( t/ YVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
* x' o: r  o2 C, g' u# kVerQueryValue 这个函数用于从版本资源中获取信息
. H* {3 V, g1 w  A! O9 S% BWriteFile 将数据写入一个文件 ) x) `) p0 `% L+ e) V! H1 b
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
  ~& ~' |9 L. u/ {& Y# d- e. b! u$ J( uWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 ) G# F5 n8 c: V3 Z+ W
WritePrivateProfileString 在初始化文件指定小节内设置一个字串 * f, a) `2 f/ k+ E/ o6 z" N; B
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
% E; ?4 a% p- W  r" u* RWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 8 ~. b! q- [$ R
4. API之打印函数 & k( ~' G6 W+ @- z
AbortDoc 取消一份文档的打印
5 J+ P- v+ L, F* z! ]AbortPrinter 删除与一台打印机关联在一起的缓冲文件 1 ~0 A0 O7 k: R! s8 d3 |
AddForm 为打印机的表单列表添加一个新表单
6 G7 A- ?1 z( m* V) sAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
  q/ d8 i) U* M$ w3 `& pAddMonitor 为系统添加一个打印机监视器 ( u0 b( C8 z" _3 Z! z, ?
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
9 h. z- P; l. l$ h% `1 \AddPrinter 在系统中添加一台新打印机 " r" o& J' ^' b4 Z5 k
AddPrinterConnection 连接指定的打印机
$ N6 e8 ]! i& Y: X0 MAddPrinterDriver 为指定的系统添加一个打印驱动程序 & U  [% K; l& ^7 b& w. N8 i
AddPrintProcessor 为指定的系统添加一个打印处理器 " R; u4 D) f# h2 y
AddPrintProvidor 为系统添加一个打印供应商
9 L5 _6 P9 f( R- Y$ i. vAdvancedDocumentProperties 启动打印机文档设置对话框
0 H# i/ n7 L6 f! |! y- zClosePrinter 关闭一个打开的打印机对象 2 w' W  \5 Q. x& _
ConfigurePort 针对指定的端口,启动一个端口配置对话框 , ~: l: e, F! Y; |. ^
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
, ~1 p7 ^4 J3 iDeleteForm 从打印机可用表单列表中删除一个表单
) l7 o- i4 o6 `$ C+ ]DeleteMonitor 删除指定的打印监视器
$ A; h8 D2 M- O9 }( c) bDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 ( d/ P/ R; l2 h+ F
DeletePrinter 将指定的打印机标志为从系统中删除 ) ~2 @& D' U0 Q) m
DeletePrinterConnection 删除与指定打印机的连接 # j' N3 \$ R6 C9 ^  e/ [8 D5 I
DeletePrinterDriver 从系统删除一个打印机驱动程序 ; ~/ A! @* ]6 |" @+ Y3 J! p5 @
DeletePrintProcessor 从指定系统删除一个打印处理器
% s8 {/ Z7 J0 @; ], H% zDeletePrintProvidor 从系统中删除一个打印供应商 : U1 Z8 d/ i6 Y
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 8 W% ]- K) ?3 o1 V; v" C
DocumentProperties 打印机配置控制函数 ) F& K+ s* ]& ~1 N4 e
EndDocAPI 结束一个成功的打印作业 # }0 v7 [6 r- {% t4 r
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
7 u- N3 x$ K5 X3 NEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
* h0 J5 p; p( J  v1 l( @: L7 z9 H- YEndPagePrinter 指定一个页在打印作业中的结尾
8 U* n; t. r% l! \% p7 i! ^EnumForms 枚举一台打印机可用的表单 # M, e3 i1 y& R/ \; c
EnumJobs 枚举打印队列中的作业 0 U* Y* r5 S2 ~6 S3 `
EnumMonitors 枚举可用的打印监视器
+ P& P5 N0 B. K6 O$ }! CEnumPorts 枚举一个系统可用的端口 8 H; q* N' z  f% f2 a) Y! I+ U9 g- X
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
" C; A- _7 b/ k& D' k5 G. iEnumPrinters 枚举系统中安装的打印机
3 M5 p4 {4 b( W2 _EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
1 r& ]$ Y. w; G+ t# F5 B& p, CEnumPrintProcessors 枚举系统中可用的打印处理器
7 v& b4 `* y' Z2 a0 q9 JEscape 设备控制函数 ' }+ N$ o2 T, }! n7 |7 A
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
" R+ c, g) @4 oFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 + ^, U& M+ R7 k) ?
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
7 d% X7 g: n8 U2 ?4 uFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 . @8 ?; E9 E% [* M# k
GetForm 取得与指定表单有关的信息 * s3 s: L5 w/ g
GetJob 获取与指定作业有关的信息
) |2 E# j& \- ]7 _! i7 @GetPrinter 取得与指定打印机有关的信息 5 g0 {/ l: Z) H' g: d, c3 w
GetPrinterData 为打印机设置注册表配置信息 8 A/ @3 V* ~8 W1 r, I$ F; ]
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 : {' F: W7 ]! r4 k. ~
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
, c1 T; W5 b  n' s# fGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
: l0 {6 c, ?' @: o- J. POpenPrinter 打开指定的打印机,并获取打印机的句柄
! u! W! y8 l  fPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
. Q- ~& O0 h. c9 S' c1 cPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ; Y+ p% S( p  N% x, ^
ReadPrinter 从打印机读入数据 - V# Q% ~2 o7 Y! I" s6 T& T
ResetDC 重设一个设备场景 8 X, q& ^0 e+ q) l( b% z5 u
ResetPrinter 改变指定打印机的默认数据类型及文档设置 . H, r% }: ~/ Q* i0 f
ScheduleJob 提交一个要打印的作业
% R# W2 v! z$ b$ XSetAbortProc 为Windows指定取消函数的地址 ' }3 V4 h5 c, X. i! ]
SetForm 为指定的表单设置信息
/ p! F9 M, D/ Q- \SetJob 对一个打印作业的状态进行控制 - m3 O1 l8 w" l/ |) g4 r: V
SetPrinter 对一台打印机的状态进行控制
, G3 h+ l& H. ^/ g; NSetPrinterData 设置打印机的注册表配置信息 : t2 U* L' u2 I" o
StartDoc 开始一个打印作业 4 a& Q( U3 `1 Q7 ]4 Z
StartDocPrinter 在后台打印的级别启动一个新文档
5 C- x1 G% E! s$ `  [8 r8 j6 bStartPage 打印一个新页前要先调用这个函数 ! ]# _0 p5 c% v' D. m$ U  S
StartPagePrinter 在打印作业中指定一个新页的开始 . O4 e% s% m( o% Y$ X- V4 u" d
WritePrinter 将发送目录中的数据写入打印机
1 g, E! v5 C+ M) u5. API之文本和字体函数 * V/ s6 h6 d6 J7 n- a' X+ x- a: t# {
AddFontResource 在Windows系统中添加一种字体资源
$ d5 K  b2 S% a! _" CCreateFont 用指定的属性创建一种逻辑字体
! ]+ T3 l# g* b( ?2 e; nCreateFontIndirect 用指定的属性创建一种逻辑字体
. l. Z) U% @6 F' ^0 h6 L8 [CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 & M( R6 l3 A$ e" I1 S* t
DrawText 将文本描绘到指定的矩形中 . }/ e; \/ D' g, n( u, c
DrawTextEx 与DrawText相似,只是加入了更多的功能
' U9 ]4 ^! r& ^% ]. l# R) E1 nEnumFontFamilies 列举指定设备可用的字体 . j! Y) R. p2 X5 g
EnumFontFamiliesEx 列举指定设备可用的字体 / F9 a2 T! Y0 }' a; f0 s
EnumFonts 列举指定设备可用的字体
" E# l, c: [/ mExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
. _  p! K) ~( W6 aGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 # M' G" V% X* M$ J& V" B6 C
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 9 F- T% u& M+ q6 D6 G4 Y+ w
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
! z; j3 Q# S- _$ t9 r! ^- ]* t. ?GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
' P. m6 r( k- u3 ~9 c- U; RGetCharWidth 调查字体中一个或多个字符的宽度 / C" e) \5 v; Y/ \( {
GetFontData 接收一种可缩放字体文件的数据 ! @5 k' [& X! s- k- v! X
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
0 t: O- ^& U, o: k/ Y" k% xGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 8 i6 [' e; q! B$ I! F% U* T
GetKerningPairs 取得指定字体的字距信息 + ^+ {7 v& E$ O) j
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
6 i) r% r7 V) @* A6 ]GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
0 A7 N! e9 g1 U2 J1 F6 ?- q" VGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
, ~+ J0 s7 V& `GetTextAlign 接收一个设备场景当前的文本对齐标志
+ g% _) r  i8 i# n9 W  I$ hGetTextCharacterExtra 判断额外字符间距的当前值 9 l3 C2 p" ~4 ~# Z/ E1 f
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
8 S1 L; E" z& {* r7 r6 lGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
4 c( x  \. g4 H# i. u  A& FGetTextColor 判断当前字体颜色。通常也称为"前景色"
' t* ^4 `, `- q4 j# C% d3 Y5 L" vGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
- X- g/ W& h. j! ?6 `; KGetTextExtentPoint 判断一个字串的大小(范围)
7 _" @# i7 I5 `+ F# l" VGetTextFace 获取一种字体的字样名 " K$ X4 m$ H/ \; z+ k5 M
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 ' t) \5 L- l' R4 a
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
) V, y- ~: g1 u0 u0 KPolyTextOut 描绘一系列字串
" N/ n2 `5 P' lRemoveFontResource 从Windows系统中删除一种字体资源 9 [# L8 P5 `- `( x  h2 B) ^; Y
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 ( d3 n/ \3 O0 p/ y4 j
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置   f9 a; D- x( s3 y  t! J
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 # V3 `6 e$ G2 d0 _* u# }
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" 9 I/ w" p6 C( \4 U5 j
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 - \2 b) z; W+ z
TabbedTextOut 支持制表站的一个文本描绘函数
$ s9 R1 f7 m" ATextOut 文本绘图函数 - L# b. `& a. Y6 a
WINGDIAPI BOOL  WINAPI TextOut(
4 _: d. F# n8 N8 h) P9 ?! DHDC,     //输出设备
8 j/ t/ l( N( a; l" Q; i" C/ Gint,     //输出的横坐标9 w+ Z" h) B+ ]8 s' `  r
int,     //纵坐标
5 ~7 w% s. \* T: Z% PLPCSTR, //输出的文本str. G7 T1 D2 f# f% I* h# m
int);    //文本的长度:lstrlen(str)
! a* ^, X1 B. Z2 }/ ]6. API之菜单函数 8 N4 J, c4 F3 P! a1 e3 C; o
AppendMenu 在指定的菜单里添加一个菜单项 ! g  v0 f# X  C- j# ^
CheckMenuItem 复选或撤消复选指定的菜单条目
9 J) l+ ~+ g3 N/ p; B, zCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 9 y" K. p, I' ~( \1 T! T
CreateMenu 创建新菜单
; a4 B( Y) {, Q! p! G0 n1 ^: sCreatePopupMenu 创建一个空的弹出式菜单 / i7 ?/ o, w6 w% }1 \
DeleteMenu 删除指定的菜单条目
; ]1 S5 U: {* z: [( y3 s/ LDestroyMenu 删除指定的菜单 9 W9 {$ X4 k" y* F% t
DrawMenuBar 为指定的窗口重画菜单 2 F: Z6 Q; D0 z* [; A8 G( k
EnableMenuItem 允许或禁止指定的菜单条目
* I# V$ C; p1 v% Q" P" H" o8 tGetMenu 取得窗口中一个菜单的句柄 * b' @3 q# p  K, H+ A- K1 a& B1 f0 Y" G
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 ) P% W2 _. y$ V
GetMenuContextHelpId 取得一个菜单的帮助场景ID ) s! W* _" m- x% B& J& H
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
0 ~4 B3 d- @: x: _) [- I/ v# ?GetMenuItemCount 返回菜单中条目(菜单项)的数量 " t0 Q; T; V- C; ]' W: i) {/ [6 X
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 3 ~% z$ _; D2 t. W6 X& I3 R
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
5 ?+ v5 t6 {3 L- h& G2 bGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
( y/ o9 Z; h* h5 W' T! |. uGetMenuState 取得与指定菜单条目状态有关的信息
: S1 p% n5 J2 s! g* `GetMenuString 取得指定菜单条目的字串
9 P. O+ w  q; z$ X" @2 i& ZGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 : I. M: A  i$ n$ X* v! y
GetSystemMenu 取得指定窗口的系统菜单的句柄
; ^) @# j& `; a# Y7 `1 L: {/ \7 }HiliteMenuItem 控制顶级菜单条目的加亮显示状态
' v+ Q, J% M8 `  X+ O5 \InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 + H2 o7 x. {& a
InsertMenuItem 插入一个新菜单条目
8 N* {3 V! ]3 I0 s; H6 g) NIsMenu 判断指定的句柄是否为一个菜单的句柄
/ x" C% n8 ], e, G; N" F. JLoadMenu 从指定的模块或应用程序实例中载入一个菜单
; N. x* D+ q9 j8 o8 pLoadMenuIndirect 载入一个菜单 % I4 @- W8 d9 y2 q
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ( p, G9 a4 x$ k' e- G" _& K  p
ModifyMenu 改变菜单条目
% p+ I, D& r+ q) G9 BRemoveMenu 删除指定的菜单条目
" ~& x( e2 M& Z9 t+ m8 @* X, K) {5 KSetMenu 设置窗口菜单
. x) n. w- N" CSetMenuContextHelpId 设置一个菜单的帮助场景ID * [5 J) I) k9 g
SetMenuDefaultItem 将一个菜单条目设为默认条目
8 I  ~; A6 h% Z: cSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
9 d# w, Z" G% j' gSetMenuItemInfo 为一个菜单条目设置指定的信息
# }% r. ^/ s* N- CTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
3 W! I& T+ i3 Q  o- a; D" STrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 $ ^# h  ~6 l" J6 z1 Q+ }
7. API之位图、图标和光栅运算函数 5 @6 K% ?- a6 R" p- a
BitBlt 将一幅位图从一个设备场景复制到另一个+ S& l5 M; j) A" l) O
     WINGDIAPI BOOL  WINAPI BitBlt(  K( y0 g# V  g, u# b4 \8 t' ~
HDC,     //目标HDC; s, b, E( z' V' `
int,     //X1" H) O  x2 z6 Z: U
int,     //Y17 S3 Y2 Y" B5 a+ C6 B: A
int,     //width8 \! q7 r" E( j; ]3 O# x
int,     //height
7 |  m0 Q0 B# L: ?4 [HDC,     //源HDC
3 y5 T- q3 B6 g+ R; E  D, rint,     //右边的距离* u2 N& a+ Z9 e( d
int,     //??
% ^. ~. y9 a9 n7 A  Z1 I: _DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
0 E( H3 V& `4 X- w; d5 ]PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
! W: u) a. h) U% ^6 P8 w5 V. OCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 & F9 ~& z: f( Z1 Y) M# H
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 / M0 D) x9 M! Y' ~5 t( s
CreateBitmap 按照规定的格式创建一幅与设备有关位图
/ Z: z; |! B; u) ]% U$ s5 FCreateBitmapIndirect 创建一幅与设备有关位图
: a7 T1 g: U; \! @CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 ( N' }+ }' M" J% l7 H
CreateCursor 创建一个鼠标指针 / O# s- w) u# H/ t
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 # k6 G7 x# }* a! l( K1 ~/ ^$ f5 y
CreateDIBSection 创建一个DIBSection
+ L8 `$ j' U7 }  U6 b* VCreateIcon 创建一个图标
0 ]5 W3 H! j+ VCreateIconIndirect 创建一个图标
3 D2 d+ u: ]8 l/ G. z: wDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 $ [: H/ R6 \# r) c
DestroyIcon 清除图标 4 a. F2 h, T/ B3 ~
DrawIcon 在指定的位置画一个图标 / K) K, }% S) D
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
# X: A7 f1 m# UExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
$ u2 d( l$ _) s& |) U' \( m$ g9 HExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
0 e, m6 V0 j' |0 X( dGetBitmapBits 将来自位图的二进制位复制到一个缓冲区
0 ]4 f/ O6 }& r5 G! }GetBitmapDimensionEx 取得一幅位图的宽度和高度
0 [. v( B5 @2 y' V8 a7 D  IGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 % u$ F; |/ P4 Y) v5 L4 V& @
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
, y) m2 y3 u, c% p: @GetIconInfo 取得与图标有关的信息 $ G. J1 c: _" J) T2 `$ ]* w4 ~  x
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
* ]8 K. _% k/ d9 `5 xLoadBitmap 从指定的模块或应用程序实例中载入一幅位图 . P3 O/ F9 b6 F  r3 r
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 1 l- ^/ u' h) B& A% u
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
& l# f+ \: U  ]; @LoadIcon 从指定的模块或应用程序实例中载入一个图标
6 Z$ f0 J  O, D: V2 Q5 n; O3 SLoadImage 载入一个位图、图标或指针
3 g, ]$ N) `* `* zHANDLE LoadImageA(0 R) C$ p- V1 Y% s" M& E$ r  d" O
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle(). H( U  I& D% ~; Z2 O. r
    LPCSTR,               //资源所在的目录:c:\help.bmp# `( j5 m8 J4 k% a4 Z, C
    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
  I8 M1 ~9 I: v9 s' v' ?    int,                  //
4 ?- a) f+ c4 L; q2 o: y/ {. I+ _    int,                  //
" c9 m5 q2 Z1 |$ eUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
8 r0 y$ I% O" X7 n" z& ?# ?R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
( Z& i$ P  I* X5 A; b4 L, Z/ P# sLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
3 z0 K' a/ V$ rMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 , `' J8 ?1 Q# ]3 [5 q* @4 a
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景   G" h! o9 w: |1 `2 @% O* V. u
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
3 c) {) k/ b3 D3 ^8 [  oSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
- Q% J+ r. P. A, lSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
2 a4 s! z. j* @SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
1 p, l5 p3 \8 w) }# `; f7 l& PSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 8 a) z9 L) C2 K1 L& g8 Z
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备   M) Y2 \, F: G: d, G) F& D, [5 U% f+ p
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 ; f( p1 s7 O# U+ m: w& ]
StretchBlt 将一幅位图从一个设备场景复制到另一个
% r+ l  h: k. r; BStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
3 g  g' l4 h! e. O% w: }8. API之绘图函数 4 f) j8 k2 `7 ^. F5 T3 m
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
1 T$ [7 z8 k( S9 t" _AngleArc 用一个连接弧画一条线
4 g' L+ d$ ~- |Arc 画一个圆弧 6 H; K/ Z4 Z& b# S
BeginPath 启动一个路径分支
5 s5 Z$ N. K+ |' u: h# M7 `CancelDC 取消另一个线程里的长时间绘图操作 ) {- e" \' Y  ]( b! v9 n; e
Chord 画一个弦
8 [+ s& V" G) G  y  `CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 ! g9 _0 N* z& ~/ j
CloseFigure 描绘到一个路径时,关闭当前打开的图形
* s) R/ Q( U+ t* fCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
5 r) P/ p8 T* v: w- c" \CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) % h! ?; Q6 ^. {% \8 E3 ^
CopyMetaFile 制作指定(标准)图元文件的一个副本 2 `. B2 p0 e" \+ Z0 N
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 + _! O& ^6 ]5 P6 ?+ E
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 4 d6 ~2 G. y2 x! S* c
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 " j0 p+ C1 P6 `6 d0 R
CreateHatchBrush 创建带有阴影图案的一个刷子
% n2 X4 f" l# \) Z6 KCreateMetaFile 创建一个图元文件设备场景
/ O5 e4 k, a- @  yCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
& j7 ?0 U5 d" u9 MCreatePen 用指定的样式、宽度和颜色创建一个画笔 ) u5 X- Z+ ~  |" z
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
% `- c: G! j# g- T& s+ J+ ]" z( @CreateSolidBrush 用纯色创建一个刷子 ; Y5 d' n* g' Y! l
DeleteEnhMetaFile 删除指定的增强型图元文件 7 a. F" P# a5 E$ f
DeleteMetaFile 删除指定的图元文件
+ z% p' P' s/ ~# R1 f# SWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放7 B& ]  R( S! J- Y2 m
DrawEdge 用指定的样式描绘一个矩形的边框 9 A- m" O1 s* M1 q* A" O
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 - s2 |) {6 D! J/ q
DrawFocusRect 画一个焦点矩形 3 H! l# Z& E# N. O/ ^& W6 o9 i+ J: K
DrawFrameControl 描绘一个标准控件 . ~/ p) [: H4 n0 t* z- f" x
DrawState 为一幅图象或绘图操作应用各式各样的效果
- W' X  X# N- _1 @Ellipse 描绘一个椭圆,由指定的矩形围绕 , |; a. K% ?& {7 I
EndPath 停止定义一个路径 ; J# p4 [; ?/ u- ~/ m4 ]; t1 Y
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 1 c6 W" j7 D- y* e- @! T
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 * i7 r4 Z( ~1 Z9 E: S' }
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 ; o- M* i- P" q& N, n8 G8 C
ExtCreatePen 创建一个扩展画笔(装饰或几何)
7 m. D) o4 |( \) y" t- d# [' uExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
8 F* R) L  T- y* U  P9 S6 [FillPath 关闭路径中任何打开的图形,并用当前刷子填充 ) T; i- A% c$ I; X/ u
FillRect 用指定的刷子填充一个矩形
8 b9 f0 b# C* E. p- K# {FlattenPath 将一个路径中的所有曲线都转换成线段
: T7 P5 Y) k$ T" ~. xFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
# y. v& v: D& z4 T8 [2 u1 RFrameRect 用指定的刷子围绕一个矩形画一个边框
7 M9 h2 Q9 d; ^) I! KGdiComment 为指定的增强型图元文件设备场景添加一条注释信息
$ {; C3 }. i3 t. f! }: o/ d$ `GdiFlush 执行任何未决的绘图操作 , C+ S2 l- q0 c, L4 ^' {2 |# n7 u: I
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 2 O0 R/ _9 r' S9 A' m, f
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
0 G# e- N; ~7 d7 {$ `GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
( X, G% T) u/ \2 Z' ?GetBkColor 取得指定设备场景当前的背景颜色
6 m: p; |6 z+ N; aGetBkMode 针对指定的设备场景,取得当前的背景填充模式 , Z6 c- m- O# Z& M- E; H; _
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 . [7 W, H: t  a' ~( M" s( ]0 x& A
GetCurrentObject 获得指定类型的当前选定对象 - q1 w- @8 a* T$ L6 g
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
! V: a0 Q- Q$ e3 W. KGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
$ e! d3 L& {% r# z# z1 V- DGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
. Z6 f2 ^$ D. D4 ^7 O- N3 o8 Y6 @4 SGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
% H- j" T  [! m3 U3 A. CGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 ; E" x/ h. \6 [* G2 x! a
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
) c3 D' R' [/ c0 r4 zGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
6 I: l* D6 z; N" tGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 % n3 u& y6 U7 b$ J9 \) w
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
$ j7 e1 {5 Z. M; p" w: w& k9 AGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
& p  O4 O2 j* B0 }GetObjectAPI 取得对指定对象进行说明的一个结构 1 i4 `6 F& O: I
GetObjectType 判断由指定句柄引用的GDI对象的类型
  R! c6 A2 {7 I+ KGetPath 取得对当前路径进行定义的一系列数据 $ ?$ G; k6 w; i# ~% v1 ~* S
GetPixel 在指定的设备场景中取得一个像素的RGB值
! ?. n5 _* w% j+ ]3 o0 RGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 8 p5 H/ S* F; C9 b8 D. T( W
GetROP2 针对指定的设备场景,取得当前的绘图模式
! D* Z: _4 F0 r9 L$ PGetStockObject 取得一个固有对象(Stock)
  z+ q' T2 e. a  Z! FGetSysColorBrush 为任何一种标准系统颜色取得一个刷子 * _  t9 d) W9 D; {
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 , ^3 Q  ?$ Y# I1 k6 w
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
7 |! \1 I/ e$ O: u/ oLineDDA 枚举指定线段中的所有点 . H/ r7 d/ h+ i* c
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点 * Q5 w! U; L% ~( Q7 u
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
( o0 R( y: b7 F. X/ K# A: W8 Z9 [( b5 {PaintDesk 在指定的设备场景中描绘桌面墙纸图案
0 n) p( Q8 }' g7 z# MPathToRegion 将当前选定的路径转换到一个区域里
& ]9 N7 G& {; ^; F6 `& T. yPie 画一个饼图
" {' A3 [* a7 ^3 [! k: hPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
; \! _- {% M) y& `( n, w: o$ lPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
1 L, I2 x. t1 JPlayMetaFile 在指定的设备场景中回放一个图元文件
- T# P% ~0 J5 m1 sPlayMetaFileRecord 回放来自图元文件的单条记录 + x% C, H* |# \% @3 a1 W
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 8 F+ j; @# c. p; d
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 8 h0 ]7 f& Z2 C% _( u
Polygon 描绘一个多边形 ! ~! v6 H5 w/ w8 `
Polyline 用当前画笔描绘一系列线段
+ z8 c& `0 _7 y: D! t7 O9 s' zPolyPolygon 用当前选定画笔描绘两个或多个多边形 8 J) P- V+ O9 m, f7 ]1 U7 q" l
PolyPolyline 用当前选定画笔描绘两个或多个多边形
1 Y& j6 T/ [, h8 I0 b2 dRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 0 A, }8 c6 {" W% j2 D7 @" l
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 9 z8 B. m, K$ @! V$ h
SelectClipPath 将设备场景当前的路径合并到剪切区域里 $ H0 S) O" V" Y" ~
SelectObject 为当前设备场景选择图形对象
8 I. s! f7 N! B7 s2 H     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
( |$ |2 U: u8 c: d& d+ S0 }) ASetArcDirection 设置圆弧的描绘方向 / j/ s" P) `, j% ~; i! N# r+ {
SetBkColor 为指定的设备场景设置背景颜色
  N* w. z; z6 a  V, V; C2 n8 rSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
! I, Q0 Z7 f( j' [0 E, |, |2 L* f0 a' RSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 7 D" P: I6 }' f$ s' x# Y3 @
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 & Y' q( l0 Q) k. ^# P% I$ ^1 v
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 ! f0 z) M, S* J5 d2 j) o# Q
SetMiterLimit 设置设备场景当前的斜率限制 3 u' Q- j+ @  y) f# g
SetPixel 在指定的设备场景中设置一个像素的RGB值 " y, r- ?- }8 W1 x: W! E
SetPixelV 在指定的设备场景中设置一个像素的RGB值 $ ^, a+ R- ^# u! }" f8 y8 o4 d! W
SetPolyFillMode 设置多边形的填充模式
( L8 C4 d) I$ M. U& ]1 W5 ISetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
9 ~; H( P3 o1 |0 Z5 [SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 ! P) K: ^# X. a! Q' Z8 p( d
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
5 ?6 C- l  S9 h) C5 Y+ eStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 & m! Y! c' F6 v# v9 }
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 4 E" ]3 O+ J6 B- G5 W
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 # Z. v9 F3 Y5 I4 [
9. API之设备场景函数 7 o+ W  J' y1 m& s* e" m
CombineRgn 将两个区域组合为一个新区域 ; r! x7 j) l. U: n% Q+ W6 \( Q
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
, V% s; @9 a) d) h4 y  M' N0 T7 ~CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 8 p/ O" G5 N7 Y1 l7 u( l3 Z: K
CreateDC 为专门设备创建设备场景 3 E& w) J$ i- K
CreateEllipticRgn 创建一个椭圆 . A- W+ {4 Q7 P7 H. `( H
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 ) I' \- v/ C+ _6 m# @0 |. C
CreateIC 为专用设备创建一个信息场景
& z% j4 v) i5 Y6 c# ?7 {" @( q  ?CreatePolygonRgn 创建一个由一系列点围成的区域
+ t- p3 H- `8 ^2 }CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
6 U8 k& t+ k/ J0 G* W* k, kCreateRectRgn 创建一个矩形区域 ; [; i# h- p( u  K
CreateRectRgnIndirect 创建一个矩形区域
7 r+ ?6 x% m. ?2 ]: C' K  d' ^CreateRoundRectRgn 创建一个圆角矩形 3 o+ l" ?  a/ f4 G/ D1 l7 Z+ K
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
6 x7 {" p7 P7 F5 |7 z8 FDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 : S3 P1 F- {% m, Q" C( c  ~3 I: ~
EqualRgn 确定两个区域是否相等
9 a  C2 d" ~. M* V  u3 ~) T, X* dExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
+ U: g8 V8 o* {& B7 KExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 ' R2 y1 {, H- p( X4 D& D) z; |& h
ExtCreateRegion 根据世界转换修改区域
7 k0 s" n: `& B7 |3 FExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
+ w  p' F8 v9 y5 K/ I+ kFillRgn 用指定刷子填充指定区域
9 @$ T! f+ X4 r, f; t' F3 x( FFrameRgn 用指定刷子围绕指定区域画一个外框
5 B( r4 A& ~1 Y0 ^) E$ i" sGetBoundsRect 获取指定设备场景的边界矩形 + X1 V3 }  F- G0 D6 W
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
: q# O, B: |  c4 b+ X, s8 S+ VGetClipRgn 获取设备场景当前剪裁区
1 y) F" u) d  f  z: zGetDC 获取指定窗口的设备场景
2 W% ]4 n/ J+ B  t4 r( K/ _GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 , R( K7 K6 q. e; w
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
5 C$ B' B$ P: g( ]0 ?3 HGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
/ m% ]8 p/ W, A+ \GetGraphicsMode 确定是否允许增强图形模式(世界转换)
( T2 ~4 B; f+ Q; m4 \7 c& u0 sGetMapMode 为特定设备场景调入映象模式
  ^  `5 @3 P: V* b) [3 IGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 * W7 w  ~9 p3 b
GetRgnBox 获取完全包含指定区域的最小矩形 2 z) w# s7 o1 L6 l( D* \
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
! w4 x. |7 C0 RGetViewportExtEx 获取设备场景视口(viewport)范围 $ a  P# u) V3 i. R. o
GetViewportOrgEx 获取设备场景视口起点
9 R% f5 t1 u4 c0 R6 @9 wGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 7 ?9 k8 l$ y7 n  W$ }. e+ K8 D
GetWindowExtEx 获取指定设备场景的窗口范围
' C* ?% Y8 o8 \$ \3 ?; g  R( _  AGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 / I. V. h: a* ?: O* S0 }
GetWindowRgn 获取窗口区域 2 I& K  f6 d2 s% l
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 3 w- u4 R/ z) A; ^% _* m
IntersectClipRect 为指定设备定义一个新的剪裁区
" j( t% v" N/ M6 l6 G# L( \$ ]InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 : S  r7 j3 y4 v9 }
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
. }3 h: U% u1 |LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 ! Q, y6 ?* M/ K) h' U( v' l/ u
ModifyWorldTransform 根据指定的模式修改世界转换 8 s2 b% D# l# S- o/ Y* Y+ Q
OffsetClipRgn 按指定量平移设备场景剪裁区
; F9 J! c' A0 o* @; kOffsetRgn 按指定偏移量平移指定区域
9 r0 I# Q! b* u! G" \8 r' lOffsetViewportOrgEx 平移设备场景视口区域 $ x6 L; W: S$ N. y! b2 B  W
OffsetWindowOrgEx 平移指定设备场景窗口起点   ^5 y+ I" B$ H7 R
PaintRgn 用当前刷子背景色填充指定区域
' g& ^$ x. ]7 o. b" U, M+ X9 KPtInRegion 确定点是否在指定区域内 8 n4 }3 I/ d0 U" X3 I
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
  T- H+ y! c3 F5 lRectInRegion 确定矩形是否有部分在指定区域内 3 a9 u! x# U) ]1 E& C" T2 r
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) + }5 ]2 s6 O- o6 ?
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 * E; x7 X2 {5 H" ?* L5 @/ m* @: i8 ^5 p
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 ( Z( |6 c1 `7 W! ^% r
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
( E' h* Y; H& d' R3 gScaleViewportExtEx 缩放设备场景视口的范围   }. \2 g. n- U& x! e! o/ b3 P' k
ScaleWindowExtEx 缩放指定设备场景窗口范围
3 c2 a" B2 {  @$ I4 AScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
  t) W- ^8 U$ v- ?SelectClipRgn 为指定设备场景选择新的剪裁区 0 Q. b' p$ ~+ x# k, Z: v
SetBoundsRect 设置指定设备场景的边界矩形
6 V  C& C% Z$ [- LSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
5 Q* }- i6 K+ J2 V! N* jSetMapMode 设置指定设备场景的映射模式
7 G8 R! M9 p1 X/ }) ^5 NSetRectRgn 设置区域为指定的矩形 8 V2 y2 ?3 e0 p* F7 a( r. h. ~% r
SetViewportExtEx 设置设备场景视口范围 * w$ j/ g+ L  u9 x7 f
SetViewportOrgEx 设置设备场景视口起点   u6 P; k! s5 Z- \2 t
SetWindowExtEx 设置指定设备场景窗口范围
, A+ z+ O9 g$ gSetWindowOrgEx 设置指定设备场景窗口起点 : n8 R$ Y5 v: q5 t
SetWindowRgn 设置窗口区域 . w) v) ~( j" b/ z3 V
SetWorldTransform 设置世界转换 6 B/ E7 Y( W" U' F4 l
ValidateRgn 激活窗口中指定区域,把它从刷新区移走 8 Y4 V1 G1 p5 v# D/ r3 ^% t, Z
WindowFromDC 取回与某一设备场景相关的窗口的句柄
+ {8 ]7 \( ?$ Y: h& D0 _% M! F10. API之硬件与系统函数
4 {" }) k1 i$ A" X/ A  PActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 ' k0 N3 Z1 q/ r0 L: C% Y. L
Beep 用于生成简单的声音
; e5 o% q: h: e% B* k6 i# d! m* _$ GCharToOem 将一个字串从ANSI字符集转换到OEM字符集
) N. I% ?+ ]5 f* X: l$ AClipCursor 将指针限制到指定区域
0 j' N0 b/ V0 HConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
+ Q- T/ w5 X& j3 lCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 ( T$ i4 \, U; S% [/ `6 E
DestroyCaret 清除(破坏)一个插入符 # E1 Q3 ~$ `0 N8 j+ V$ ]* J( E$ Q
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 - _9 S- ~- F: i7 p! q/ A" t; Y+ |2 v
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
/ i; ]' z' O  }) r+ B4 tEnumSystemCodePages 枚举系统中已安装或支持的代码页 ; m2 y- I9 @, R+ g' A* w
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
+ g' h2 A. i  B# PEnumTimeFormats 枚举一个指定的地方适用的时间格式 & O3 e& u# D' X
ExitWindowsEx 退出windows,并用特定的选项重新启动
! z' I# t' \# \! Z% `     WINUSERAPI BOOL WINAPI ExitWindowsEx(
9 [4 b: ~' X: [UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG+ `) L4 ?0 O; \# q9 _8 Z9 \! h
     DWORD dwReserved); //0
: X. n- }- }  ]ExpandEnvironmentStrings 扩充环境字串 ( C' ?6 M/ j& j8 c
FreeEnvironmentStrings 翻译指定的环境字串块 8 B6 U5 P2 D; y3 T5 _1 j0 y
GetACP 判断目前正在生效的ANSI代码页
2 R* h& j7 {. q% GGetAsyncKeyState 判断函数调用时指定虚拟键的状态
/ l; l- k0 M* ?, H' P; @GetCaretBlinkTime 判断插入符光标的闪烁频率 ( n3 [) [/ R3 [+ I9 _8 l2 P
GetCaretPos 判断插入符的当前位置 * W% ~# u" D4 i( `
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
: l  ?0 n) r* E1 E" n7 i, R% b% t  IGetCommandLine 获得指向当前命令行缓冲区的一个指针 1 r  H# E- r/ m  U# R3 v1 m1 x" q6 f
GetComputerName 取得这台计算机的名称
, N0 t- P- U6 N2 L; M. L1 ^GetCPInfo 取得与指定代码页有关的信息
: T/ G1 g/ ~2 W& x; K  m$ [# iGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
) m7 [0 {+ @+ R7 _- ?GetCursor 获取目前选择的鼠标指针的句柄 # h/ @9 H: `# A* h2 m. j
GetCursorPos 获取鼠标指针的当前位置
6 s9 G* D3 \8 ]  M; m( E7 a% gGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 0 ?# Z1 Z3 ]  q- Y
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 9 N5 V" b2 [( ]
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
  T$ D. j9 ], Z: r8 L6 [4 m! e! u( qGetEnvironmentVariable 取得一个环境变量的值 . u- ?4 o/ H4 x' c% v% Z
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
2 o0 i8 }$ @% O! S* AGetKBCodePage 由GetOEMCP取代,两者功能完全相同
" \( F1 I8 X1 n: kGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
. v7 T3 s! i% x% Y# [* ?9 M5 QGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
# A% x' b6 a) m! t- D- c) GGetKeyboardLayoutName 取得当前活动键盘布局的名称
. Q& h- w% \( I: A  UGetKeyboardState 取得键盘上每个虚拟键当前的状态
# e* b* M  H5 K; `% @GetKeyboardType 了解与正在使用的键盘有关的信息
- S! `( S; B7 X/ J$ P7 {/ vGetKeyNameText 在给出扫描码的前提下,判断键名 + e, j4 ?7 ~! W0 J( ~9 Z
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
' O! m5 B- p. Y+ J5 z3 p! ^( mGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
/ N2 N, W# ]" R2 Q$ P  r& ]GetLocaleInfo 取得与指定"地方"有关的信息
2 [9 ~4 J9 E! h% S9 H1 |" x9 u0 ~GetLocalTime 取得本地日期和时间 / k. o( ]/ {8 C& I
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
3 r7 L8 T' X, H1 rGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 0 J5 G- ^7 v# E! g- H, ^. b
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 0 u! h+ }! n4 Q  B5 c( e
GetSysColor 判断指定windows显示对象的颜色
) E: h) A* x7 j& n& f( E$ nGetSystemDefaultLangID 取得系统的默认语言ID 3 N, j3 y5 N, i
GetSystemDefaultLCID 取得当前的默认系统"地方" ) \( q9 H) p3 |3 D, `0 b. }
GetSystemInfo 取得与底层硬件平台有关的信息 1 j( M/ |7 [6 a- ^/ u- w
GetSystemMetrics 返回与windows环境有关的信息 . z; N. m; @$ Q% Q
GetSystemPowerStatus 获得与当前系统电源状态有关的信息 * Y) y$ i7 D( G- I- n% L- E9 B
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 / h2 V/ ^5 ?9 r% D0 f+ _& g) R% b
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
: U: V; N- u. [3 t9 W, |# MGetThreadLocale 取得当前线程的地方ID : d3 ?) i& p! ?4 d; p
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
( Y; j9 \1 ~4 T* l  m) d- G+ PGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 # m8 E& L' f" L
GetTimeZoneInformation 取得与系统时区设置有关的信息 3 m( o9 N) |7 q2 r/ x
GetUserDefaultLangID 为当前用户取得默认语言ID
3 c: y8 Q. i, W( f) \GetUserDefaultLCID 取得当前用户的默认"地方"设置 3 P, q6 \9 `4 r1 G& u: h
GetUserName 取得当前用户的名字 ; T3 d* l& L5 A7 E9 g4 D$ x* d
GetVersion 判断当前运行的Windows和DOS版本
0 h2 k8 w& @( m% ^9 JGetVersionEx 取得与平台和操作系统有关的版本信息 2 I( ]; @' K. r& P" [
HideCaret 在指定的窗口隐藏插入符(光标) ' H% @3 L4 Y& a5 J
IsValidCodePage 判断一个代码页是否有效
0 N; e! z9 K! p& V* _- KIsValidLocale 判断地方标识符是否有效 4 I, W/ g% n$ O4 d8 z
keybd_event 这个函数模拟了键盘行动 - C9 d  v0 X* @# u" x! p9 H
LoadKeyboardLayout 载入一个键盘布局 . k- m# Z! S" q: }  G* I1 N5 i
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 ' h" P$ D2 [$ o1 k0 U
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 & ]4 `2 v% \; r' G9 [1 O5 P7 n
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 + H3 O' L: I8 k% M* `0 m& ~: l
mouse_event 模拟一次鼠标事件
. }# }; @/ `% BOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
4 U7 s0 \+ c3 i; k6 \  pOemToChar 将OEM字符集的一个字串转换到ANSI字符集 0 T) \  \7 U& a" F" X
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
/ `- M* y  p, USetCaretPos 指定插入符的位置
7 R" C$ x& x( ^; A" M, K# j+ NSetComputerName 设置新的计算机名
7 h" C8 y, b4 n! w/ NSetCursor 将指定的鼠标指针设为当前指针
7 m1 p0 y1 j9 F1 ZSetCursorPos 设置指针的位置 - Z# l( K' ?5 X1 I) V5 _
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
4 k" P+ c/ l' P* F' JSetEnvironmentVariable 将一个环境变量设为指定的值 . E, f" `+ h& M( F+ ?! v7 i
SetKeyboardState 设置每个虚拟键当前在键盘上的状态
: p" z0 P- F/ N* YSetLocaleInfo 改变用户"地方"设置信息 4 g  D) O, b; A
SetLocalTime 设置当前地方时间
3 U: S; f- N( x4 ZSetSysColors 设置指定窗口显示对象的颜色
! [. H" X5 c9 c: _3 t- f9 Z) jSetSystemCursor 改变任何一个标准系统指针 6 [: D0 W. b3 L" T0 g
SetSystemTime 设置当前系统时间
6 P. B2 X4 v! w$ `- Z5 c  |4 W# mSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 4 {: ?- w4 L2 X' e* l0 S
SetThreadLocale 为当前线程设置地方 6 T$ B6 p+ ?9 n4 {( F
SetTimeZoneInformation 设置系统时区信息
) a6 e& \8 o# ~8 bShowCaret 在指定的窗口里显示插入符(光标)
9 E. e- J* E, K8 M% _ShowCursor 控制鼠标指针的可视性 / p* U# c& M6 p% G) N
SwapMouseButton 决定是否互换鼠标左右键的功能
6 A8 b( M, A7 G% Z/ m# eSystemParametersInfo 获取和设置数量众多的windows系统参数 ! s) J8 ?  b- P3 u
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
3 ]  i6 K7 @5 _, lToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
2 l- A( G4 u0 s. VToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
, g, a2 g5 W: |8 G2 @- p1 XUnloadKeyboardLayout 卸载指定的键盘布局 , |3 J0 o( b& a& b. O( A; A
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 $ u2 Q; g! H& x1 G9 \5 J: t+ ]
11. API之进程和线程函数
% N! l+ H  C3 W$ GCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 5 w( g7 ]4 J# c" n0 H8 y- @1 G6 s
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
; E+ F* n, f) AConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
4 M) ^* L( c8 t) S$ bCreateEvent 创建一个事件对象 & t9 n6 L9 A, G& s# X6 z" X  @
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) ! M- @' c7 q$ B; G% C' o3 v+ R( Q8 l
CreateMutex 创建一个互斥体(MUTEX)
) D4 D7 A& W0 e2 B/ G! r5 TCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 6 _( }$ O. z; C# e% ^) F* Q7 R
CreatePipe 创建一个匿名管道 7 _3 Y, C8 ~; l- Q0 c6 B  W
CreateProcess 创建一个新进程(比如执行一个程序)
) Q" E3 F# K6 TCreateSemaphore 创建一个新的信号机
7 b. l$ y* l" W1 X+ w# rCreateWaitableTimer 创建一个可等待的计时器对象 0 {# f* h" E% u5 b7 `, r% q1 q0 g
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 7 g# l2 V& _2 W" `. `4 d' D' e
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 1 s+ u) T! k/ x) t
ExitProcess 中止一个进程 % Y- e8 U# b1 Y0 v
FindCloseChangeNotification 关闭一个改动通知对象 5 Q) y( m4 Y& i' L
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 5 }" b. M- R7 Q6 u1 c& @1 N) a, ~
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 ' }- M! f7 Q3 }, l* |7 ^
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 + b7 K0 I( B7 e5 a6 o( ?9 f
FreeLibrary 释放指定的动态链接库
" w5 x7 y& i/ eGetCurrentProcess 获取当前进程的一个伪句柄 ) |& t2 i! b0 t, R; o6 i$ w5 L
GetCurrentProcessId 获取当前进程一个唯一的标识符 " T9 Y2 ^7 j/ V" Z* w/ o
GetCurrentThread 获取当前线程的一个伪句柄
- Q# T8 ^8 |# v4 v5 N1 X. \1 S+ HGetCurrentThreadId 获取当前线程一个唯一的线程标识符
% v' Y' z- }' [GetExitCodeProces 获取一个已中断进程的退出代码
3 ^& }& I$ r& wGetExitCodeThread 获取一个已中止线程的退出代码
- M$ W9 a+ y+ A4 Q4 ]0 i% e* ZGetHandleInformation 获取与一个系统对象句柄有关的信息
# R" n  P9 b  NGetMailslotInfo 获取与一个邮路有关的信息 + t' z9 I" K) e' t5 j
GetModuleFileName 获取一个已装载模板的完整路径名称
& X2 w7 }1 K7 |( [GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 & |/ K6 |- J: `+ _5 F3 I* n1 Q
     GetModuleHandleA(LPCSTR lpModuleName);; M; F, O* v) b; r3 x
GetPriorityClass 获取特定进程的优先级别 0 {1 s+ E, U/ V5 }
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 7 D. q% y3 R7 o$ d
GetProcessTimes 获取与一个进程的经过时间有关的信息
# |( h/ C  m9 a* ]7 K$ G9 D6 [GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
0 @9 R  j, B) i5 U$ D- EGetSartupInfo 获取一个进程的启动信息 / b4 y7 @0 g$ s" e, U( b. b
GetThreadPriority 获取特定线程的优先级别
8 N0 p7 h9 F9 Y$ k% R% i7 k/ FGetTheardTimes 获取与一个线程的经过时间有关的信息
3 u% o; T4 i4 W* ?, n$ \. eGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 6 S+ Z( ~4 g! E6 x. y1 U+ o; [( ^
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
. N6 M) R- R% K) Y$ n/ {LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 * ~* c0 j- |1 S# X
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 2 A, i/ s2 ~/ u4 Y
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
9 k( ~5 S" j' F0 T- k" Q! z% iSetPriorityClass 设置一个进程的优先级别
, b& t0 `' i! |# A+ O) V$ s% PSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
$ e8 ~9 n% u) X) a2 RSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 $ l! I' E3 E; T% b3 W8 ~- {# n: C! ]
SetThreadPriority 设定线程的优先级别 & q: x# R6 a9 r! D+ b8 J! d- Y; P0 I3 U
ShellExecute 查找与指定文件关联在一起的程序的文件名
8 B4 g* M5 x1 }( c2 @0 x" O8 V" QTerminateProcess 结束一个进程 1 Q: A- j# `( f$ ^- Y& v" `8 e, Z
WinExec 运行指定的程序
3 V6 c% }8 m# `0 \/ [; [12. API之控件与消息函数
' B4 H( F2 z5 c9 I% J, m0 [: oAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
( S- V- |" A4 U, T7 M* @. nAnyPopup 判断屏幕上是否存在任何弹出式窗口 5 S( _# ^% `8 |
ArrangeIconicWindows 排列一个父窗口的最小化子窗口 ! L0 M' D# |% U; h, y5 f
AttachThreadInput 连接线程输入函数
; w% o; Y: c& Z, |" [/ {- h9 L' YBeginDeferWindowPos 启动构建一系列新窗口位置的过程 " }4 ~/ \! j8 v) Y% u
BringWindowToTop 将指定的窗口带至窗口列表顶部 " B; C7 O2 s4 B
CascadeWindows 以层叠方式排列窗口 , X9 D6 w0 d2 T7 y7 r
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
# Q! b/ M/ D% o2 EClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 - t9 |* F0 E5 V+ z( n8 R7 H
CloseWindow 最小化指定的窗口
2 d: P+ N, g) L* o2 N( a  YCopyRect 矩形内容复制 7 }& b- z, `3 N* K
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 ! P, \7 Z, h# x2 k: q: {
DestroyWindow 清除指定的窗口以及它的所有子窗口 * j* B  ~, Q1 G
DrawAnimatedRects 描绘一系列动态矩形 ' z( U  ]9 r2 b- R
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 " ?- d# [$ P! S4 \7 }
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 $ T+ q8 C  X6 `  p7 z
EnumChildWindows 为指定的父窗口枚举子窗口
- U7 z9 C; }. l& F4 v7 ZEnumThreadWindows 枚举与指定任务相关的窗口
# ^% F& s1 e4 o1 @6 K5 bEnumWindows 枚举窗口列表中的所有父窗口
& c$ Y' i( D: m: l  P5 m3 ?' LEqualRect 判断两个矩形结构是否相同   q& I- K; _. K. \$ ^
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 , V' O, Z! `7 A1 k2 x
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 2 b, {3 }4 O8 y, L
FlashWindow 闪烁显示指定窗口 1 z7 y! H7 e  C: o/ c' _* F
GetActiveWindow 获得活动窗口的句柄
, m1 }& J  N; }0 VGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
0 `. S7 m4 v" e7 v4 UGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 * @2 w& a+ |% o# I) C- C/ O3 b
GetClassLong 取得窗口类的一个Long变量条目
0 O& r! c- U1 pGetClassName 为指定的窗口取得类名
% L5 N( `3 K5 PGetClassWord 为窗口类取得一个整数变量
/ |4 u( L# P" H: l) nGetClientRect 返回指定窗口客户区矩形的大小
# e4 H4 z6 P. o2 |* tGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
; {( N9 Z+ Y# w) cGetFocus 获得拥有输入焦点的窗口的句柄
/ b2 K' K" s9 t3 D2 L. {: ~) \GetForegroundWindow 获得前台窗口的句柄 # a$ n- M' A7 [1 A3 T$ _8 `% j1 Z6 M
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 3 Z8 ^7 U+ [3 a. v) @& Q; h7 ~/ K
GetParent 判断指定窗口的父窗口
9 r6 m4 l  T( x+ @GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄   R. z( b1 P' X6 Z
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
# U' x$ r, v* t  uGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 2 O' e# Y& b5 u' T1 b
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
( K  W6 C+ P* M: M/ Z: s5 n5 DGetWindowLong 从指定窗口的结构中取得信息
8 i8 t9 Q9 V; f1 L- S  R5 |8 p6 |GetWindowPlacement 获得指定窗口的状态及位置信息
. z! U. T/ ?+ Z. C1 f5 ]# dGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 $ i* X( T# s4 G4 q/ D6 ?% |; P
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
' j# @$ k6 ?9 p6 eGetWindowTextLength 调查窗口标题文字或控件内容的长短 : k1 |; ], n2 \
GetWindowWord 获得指定窗口结构的信息
9 p; x# ^3 f- I7 |7 HInflateRect 增大或减小一个矩形的大小 1 e; Z; V) Y' \% n5 x  T1 N
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 " a3 z  N( u: _- O
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 ' c2 O4 L9 Z% X( ~1 @8 T, B
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口   f2 R6 I' M2 U3 t2 Q% Z% \: h+ {
IsIconic 判断窗口是否已最小化 / U' B7 p" |; S. W" n
IsRectEmpty 判断一个矩形是否为空
% E- F5 ^+ k( Y) S! Z7 B8 IIsWindow 判断一个窗口句柄是否有效 9 ~! H5 o& z# A. E. _& g; x- x9 ^
IsWindowEnabled 判断窗口是否处于活动状态 7 v: J  E& H5 }7 L" Q9 b9 e' b
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 / c$ t6 I6 y! e0 }
IsWindowVisible 判断窗口是否可见 . c" i/ h3 M* ]9 t0 S+ w3 W) V
IsZoomed 判断窗口是否最大化 # I0 v3 r* V" K
LockWindowUpdate 锁定指定窗口,禁止它更新 1 D% h$ L6 C* `4 Z; k
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
! k5 m$ z+ m2 V$ Y1 M4 SMoveWindow 改变指定窗口的位置和大小
# e5 y8 E) |) h: oOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 4 F0 d* W7 _: \, t8 j6 p3 K
OpenIcon 恢复一个最小化的程序,并将其激活 6 ~* d, B6 v. p0 y! H, X, ?8 G
PtInRect 判断指定的点是否位于矩形内部 5 ?. h9 M7 W. y
RedrawWindow 重画全部或部分窗口 - u! t' w  X. V& J3 D2 T3 b% K
ReleaseCapture 为当前的应用程序释放鼠标捕获
5 R; ~) q4 z8 |/ i8 g  }* GScreenToClient 判断屏幕上一个指定点的客户区坐标
8 N- n0 v' k; g/ [7 {6 cScrollWindow 滚动窗口客户区的全部或一部分
4 p8 L* i, {2 mScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
+ h8 D% I" m% `3 ISetActiveWindow 激活指定的窗口 : J/ g, |# X; }# ~4 D" g4 }
SetCapture 将鼠标捕获设置到指定的窗口 , j) _2 h: v0 L; q. g6 j
SetClassLong 为窗口类设置一个Long变量条目 % ]( n  p9 l, x
SetClassWord 为窗口类设置一个条目
  _9 ~! X4 s1 Y5 `1 T" dSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
" Y5 N1 w0 P( S, GSetForegroundWindow 将窗口设为系统的前台窗口 : I1 c: ?1 S2 [
SetParent 指定一个窗口的新父
+ P3 J* h# K5 q# q, U; L* @; vSetRect 设置指定矩形的内容
1 b; C! p5 C8 z% l6 Z- pSetRectEmpty 将矩形设为一个空矩形
( k  u- B# M8 L3 tSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
. O: {# z' D, E3 i  m! z) Y) NSetWindowLong 在窗口结构中为指定的窗口设置信息
9 T9 K" P! u5 M7 f- q' gSetWindowPlacement 设置窗口状态和位置信息
* W* c. @) `9 w7 HSetWindowPos 为窗口指定一个新位置和状态 ! t* Q$ L+ [3 v/ t: K8 ?' J$ p
SetWindowText 设置窗口的标题文字或控件的内容 0 d7 D( N( s& |" `
SetWindowWord 在窗口结构中为指定的窗口设置信息 3 [% w4 g! t' _% k
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
; S0 e$ O0 T4 X% J+ H) h% ~ShowWindow 控制窗口的可见性 , W% H! e8 W: x/ h( |2 k
ShowWindowAsync 与ShowWindow相似 - s6 T( p  P2 q3 W# X
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 % |# A3 l0 k( x1 g( a- e0 N
TileWindows 以平铺顺序排列窗口
3 b: @7 W! d9 P! }* AUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 6 q' O! z7 M3 |# g' r# b
UpdateWindow 强制立即更新窗口
6 ]5 r3 k5 z/ ?9 A5 c4 h" p" E% a( CValidateRect 校验窗口的全部或部分客户区 ! M, T% {2 K0 r$ b- o6 ~2 t; A
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口; U  T( a+ \- B8 ^* E9 O  k
高级音频函数—参看《VC++ 编程指南.chm》11.6: r; z( Y. |  ?' b  E9 w( Z
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
5 w& A1 B+ R+ ], |" ~     BOOL MessageBeep(UINT uType);
' K8 q, p% H0 Z4 M- a: i7 y该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。. l7 \7 U( q9 `. @
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
, `0 ]9 S8 e$ S& W2 v6 [
级别 + h: {" I# p/ A+ r9 W( K
描述
( f6 S/ j' M4 ^8 \- m9 i+ `" |
-1 * X8 \$ a7 q& d  v2 P8 K! i
从机器的扬声器中发出蜂鸣声。 * M$ Q: j7 s' ^/ t" |) j* ~
MB_ICONASTERISK 5 s4 ?$ M, N, e6 Z3 R
播放由SystemAsterisk定义的声音。 $ g1 |" o. p' G' I
MB_ICONEXCLAMATION
2 d( i( _/ b: l+ V& z  o
播放由SystemExclamation定义的声音。
! m" n' n! c6 T- k; J( D
MB_ICONHAND
! ~9 d, Q& p" _/ ^! p. W
播放由SystemHand定义的声音。
% A% r! M* m) L3 ]6 C  |0 }
MB_ICONQUESTION
; t. f; Z7 H& @; s
播放由SystemQuestion定义的声音。
* H# r( d+ C  [7 \6 n, t# H
MB_OK ; T1 j4 T. W9 K
播放由SystemDefault定义的声音
$ b3 I* m" f$ m* q# G2 v' C/ P
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);4 U! S; ?; s; M% ?8 H7 c2 g( K3 S
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。$ @$ G: d: b9 ~/ |# Q/ M6 K
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
, d* O  w, T6 p6 H参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。: ]) B6 Q) p6 O# z; j( v
标志 : ^7 l% f! d9 k" O; g# D6 ^
含义 8 P" N% L* n0 Y! F4 s% b% X5 Y
SND_APPLICATION 8 H7 z' }5 Z/ ^5 n
用应用程序指定的关联来播放声音。 3 W" i+ C7 V# a0 U& c/ m0 @
SND_ALIAS
/ i6 |/ e. x6 b3 y" o4 L0 B5 F, A6 o8 \$ n; t
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
  G* E0 H  |0 ~8 l' I; s
SND_ALIAS_ID 1 g1 [; V4 w$ v) w6 A/ V4 S" N
pszSound参数指定了预定义的声音标识符。
% S/ M6 z. w. B3 Q$ h. Q, o- ?/ Q
SND_ASYNC 2 V5 B. @9 F+ G8 r: X( \
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
4 n9 I' o; {! y
SND_FILENAME 5 F' q) O, |* y5 O3 B
pszSound参数指定了WAVE文件名。
  K3 F  \$ {9 f( R  d
SND_LOOP
" L- F  C7 r8 V" F* R1 H
重复播放声音,必须与SND_ASYNC标志一块使用。 * {$ G0 u8 V- s$ O) l  B
SND_MEMORY
8 |/ [6 W/ S" Z! Y2 o
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
$ P: r4 G8 F8 Z9 v( ]1 c$ b
SND_NODEFAULT
6 U2 L0 W! L/ w+ }0 R
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 1 Z3 \; r( }! u$ j1 d
SND_NOSTOP ; Y/ q! z0 B- ]1 {
PlaySound不打断原来的声音播出并立即返回FALSE。 5 P% @9 F( U& J# p: ^5 t
SND_NOWAIT $ i0 ~9 |. [( N. N9 |5 |5 P4 k
如果驱动程序正忙则函数就不播放声音并立即返回。 6 z1 [$ v1 B$ D6 O' X
SND_PURGE
5 h& \+ m2 I0 m
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 4 N& X* D1 }: y& E6 Z
SND_RESOURCE   l( q  w  N! ~2 W9 n- o7 j' \
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
2 l' h0 c! _; h- k+ H
SND_SYNC
1 S* H/ J7 a- E
同步播放声音,在播放完后PlaySound函数才返回。 7 K3 x0 @% [. x8 B3 w9 z
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);# F: C5 w9 Q( V$ u
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。) B  v* g( o: q4 M* J
MCI播放) Z6 n& I" J2 z; E; m: u  c
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
/ s9 ]8 S7 L+ SMCIERROR mciSendString(9 l% g& ~$ \, F; Q: u# c! d" F
LPCTSTR lpszCommand, //MCI命令字符串9 S0 Z9 Y- b5 S9 v
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
- i' B% U# H. o2 X& @' a* q+ |UINT cchReturn, //缓冲区的长度/ j# v2 y1 t3 s2 Q
HANDLE hwndCallback //回调窗口的句柄,一般为NULL
; E- h* v2 ?9 i8 N- p  g, c; p); //若成功则返回0,否则返回错误码。: c6 z" b3 j2 X& H
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
; u/ a: S- @4 n3 uBOOL mciGetErrorString(% P# B! ]9 u$ N6 u+ M
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
$ m% Q- X4 B! VLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
# @/ n7 i/ U7 RUINT cchErrorText //缓冲区的长度0 j8 L. _' n7 X! }6 W
);
0 N& z7 u9 T* }( J; P6 p8 q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 11:47 , Processed in 0.023091 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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