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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html) g( |. _0 Z2 F' F  x4 K
1. API之网络函数 9 l1 j* D# ?! p: o* Y5 l0 z
WNetAddConnection 创建同一个网络资源的永久性连接 2 G8 n: r. l1 d
WNetAddConnection2 创建同一个网络资源的连接 5 Y0 c6 s# C4 L1 r- |8 u
WNetAddConnection3 创建同一个网络资源的连接
% J/ K' h9 ^: b! q* cWNetCancelConnection 结束一个网络连接 , s1 p0 H3 t2 U9 E1 U6 a: w  r: o, d
WNetCancelConnection2 结束一个网络连接
, v7 R3 `9 w1 }1 c; ?8 aWNetCloseEnum 结束一次枚举操作
' ~7 e. w3 a# wWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 # z9 \  P( c4 L3 w9 p( D# m3 w
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 " r- F; q( N* Q7 c6 j
WNetEnumResource 枚举网络资源
9 B4 G( Y, |! c1 E" x! c4 RWNetGetConnection 获取本地或已连接的一个资源的网络名称 - d- x% _2 p& B5 W
WNetGetLastError 获取网络错误的扩展错误信息 - X" M5 A! q% |/ u" j
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 5 v0 k, ?* `5 Q3 ]+ @
WNetGetUser 获取一个网络资源用以连接的名字 : }' z/ G$ P1 b2 P1 f
WNetOpenEnum 启动对网络资源进行枚举的过程
9 d3 s# V7 M) S7 [) C2. API之消息函数
. z5 I* j/ ?0 z3 OBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 . ?  _" C! E: h) r$ x1 K
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
. {2 R7 [7 K5 z( FGetMessageTime 取得消息队列中上一条消息处理完毕时的时间 $ i0 U1 M8 {- ~' `! t2 T
PostMessage 将一条消息投递到指定窗口的消息队列 9 S  N; {9 z- I& m7 Z8 j
PostThreadMessage 将一条消息投递给应用程序 2 [8 C8 \0 @. O$ t2 r- \( `1 @& Q  y+ Z
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
* ?* `8 D& E7 C) h* R, L$ qReplyMessage 答复一个消息
: X  h! e, U; [1 R+ O/ tSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
1 `0 X" U2 U) C+ X. f! CSendMessageCallback 将一条消息发给窗口 7 _; y& M( G: \- j! O5 |7 G7 a/ W
SendMessageTimeout 向窗口发送一条消息
: d! K/ r1 I1 OSendNotifyMessage 向窗口发送一条消息
) H1 y5 P0 m4 ?  ~6 j( ^3. API之文件处理函数 ' m/ K+ _4 a1 \2 l
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
( E$ g: p: a" ?7 z; G  `. fCompareFileTime 对比两个文件的时间 * M& `  f0 ~- H
CopyFile 复制文件 5 ?. F. B7 x  i$ w$ s5 @* W& c
CreateDirectory 创建一个新目录 * ^  u8 F& Z' f  J, K& X! R1 t
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 ) @1 w+ o4 H  g' e) ?! }: d
CreateFileMapping 创建一个新的文件映射对象 . y' {8 U% f3 Q$ R2 _* @
DeleteFile 删除指定文件 ' [. O3 p! X- E& p
DeviceIoControl 对设备执行指定的操作 + J) p: }  v2 N3 c- \2 c2 a
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 5 z/ S! _! f( l
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
  u! e' h5 M$ r0 j; a# i: U" OFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 9 ]" y$ ~( d! B8 g( D
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 ( j- q0 z( r% d0 E: t- _
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
* l* E  {+ {& }4 b7 a$ H  q% MFindFirstFile 根据文件名查找文件 ; g, }  Y6 Q0 m$ b' `& E4 H' H1 R
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
. b+ _! K7 c; PFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 * Y$ g7 w$ Y$ d4 O: j. {
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 : q' M, ~' {" \4 w( A
GetBinaryType 判断文件是否可以执行
' p4 J% f1 A+ K* TGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 ) l6 L3 g5 _; q# n8 w' Q2 @2 d$ j
GetCurrentDirectory 在一个缓冲区中装载当前目录
% p/ w" l& g6 P9 W  k2 PDWORD GetCurrentDirectory(3 l5 X2 a7 v6 h
    DWORD nBufferLength,    //缓冲区大小
$ i. z! {8 I9 x5 Y" ~' G& c  ~! m0 q    LPSTR lpBuffer          //缓冲区的首地址" B% r/ h+ H  ^9 u, j- }5 S5 E- i3 O
    );9 U" [! C3 b' n1 {2 E4 }; k
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 9 f6 u7 L3 w0 E  x
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 3 e* n; N& o  ~& h' p' N& M+ X# \
GetDriveType 判断一个磁盘驱动器的类型 / W, n; {4 O5 z6 u; @
GetExpandedName 取得一个压缩文件的全名 . P' ]& o: m" J$ E; c6 B
GetFileAttributes 判断指定文件的属性 , m) v! w. F- p* ?: |1 u# H
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
, g1 c" f7 K3 UGetFileSize 判断文件长度
' Y* v7 W6 }, L& FGetFileTime 取得指定文件的时间信息
4 Q/ X& N9 [7 _GetFileType 在给出文件句柄的前提下,判断文件类型 0 V. v* s+ q, i/ n
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 6 t9 Y! Y6 o6 L; |# E0 p
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 5 f6 W* {7 k- i; R" B0 \3 t
GetFullPathName 获取指定文件的完整路径名
  C* i, p* p( D+ u6 E8 xGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 , \  x% _4 l' I# Y2 n
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
7 B, T# V: ?9 W  P" qGetOverlappedResult 判断一个重叠操作当前的状态 5 @* e5 ~2 g9 ^) a% O8 G
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 ) @- A0 @# x9 ]
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 # i( v  K+ N( }! _5 L8 J
GetPrivateProfileString 为初始化文件中指定的条目取得字串
: C3 Z0 u5 c7 iGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
6 M4 f7 \% ]& K+ [, xGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
" Y4 R4 K" W3 y( K8 C% A/ \/ QGetProfileString 为win.ini初始化文件中指定的条目取得字串 ( _) `& t' M( n( b+ t9 Z2 o9 t& g
GetShortPathName 获取指定文件的短路径名 1 ]7 n9 _: E7 E' F
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 7 z3 w+ l* O& e2 \" A
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
. N3 z* b; [/ wGetTempPath 获取为临时文件指定的路径
, k. g5 L4 W1 d' C) P/ XGetVolumeInformation 获取与一个磁盘卷有关的信息
+ U4 }4 c; R( e6 M! t) IGetWindowsDirectory 获取Windows目录的完整路径名 $ r- o* S8 q8 p( W2 G! ~, Q  _
hread 参考lread
# A3 S; r7 \, y; j3 G+ ^5 ehwrite 参考lwrite函数 ! H* K9 A+ p4 u( u7 |6 P" A. N8 O
lclose 关闭指定的文件
8 C) `* P1 _8 T( L. P' u  plcreat 创建一个文件
) X" y' Y7 g4 D+ e6 M6 U0 ollseek 设置文件中进行读写的当前位置
# q; U1 [' `+ O0 m- eLockFile 锁定文件的某一部分,使其不与其他应用程序共享 8 c0 z& u6 d' \: N' `9 _
LockFileEx 与LockFile相似,只是它提供了更多的功能
9 G8 f; w4 s& ~( d1 f3 k! `lopen 以二进制模式打开指定的文件 ' g& e/ X+ K6 l6 B
lread 将文件中的数据读入内存缓冲区 6 g  h# `' j/ O8 Y, [- m8 }+ ?" M8 c
lwrite 将数据从内存缓冲区写入一个文件
# U5 q/ B) D# H" q1 H& k4 U1 z) B7 OLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件   o8 q' l7 F9 }  c2 T+ z
LZCopy 复制一个文件 ! N6 N/ `" ^$ k/ T
LZInit 这个函数用于初始化内部缓冲区 3 G  I0 P. ]6 X0 U( O1 t0 S
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
8 Z5 g0 P% m5 T3 X/ fLZRead 将数据从文件读入内存缓冲区 4 \- Y5 ~8 X+ g& p9 R. }
LZSeek 设置一个文件中进行读写的当前位置
% S. S% V5 h: a% Q4 fMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 3 p, ^) j8 @  |* L( y3 z) U
MoveFile 移动文件 & z$ y( c' v, Z2 U1 g7 z/ C
OpenFile 这个函数能执行大量不同的文件操作 * L6 Z: q2 ~/ u0 N: N+ Q
OpenFileMapping 打开一个现成的文件映射对象
/ v* A: a4 w$ k% A9 m* R' H. GQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 3 ^* X0 }& o% o
ReadFile 从文件中读出数据 2 ?% v8 ?; S- U/ C% s: D1 y7 v# p
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 8 E2 j2 f) m4 N# n" g
RegCloseKey 关闭系统注册表中的一个项(或键)
7 v+ C( g, g" q( N+ V* QRegConnectRegistry 访问远程系统的部分注册表 6 ~: c% S( \6 ]4 d, N, P- F6 Z
RegCreateKey 在指定的项下创建或打开一个项
) I9 V4 h! o* C+ H. q% xRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
. P1 r6 m. T) J8 J1 xRegDeleteKey 删除现有项下方一个指定的子项 ' \6 b. s, \& ]/ g' y
RegDeleteValue 删除指定项下方的一个值
7 [0 M) N5 G0 Y. q, JRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
8 n' Z1 K4 Q7 N" b, u+ O1 xRegEnumKeyEx 枚举指定项下方的子项
6 `6 E( }4 M6 o) B5 h: p2 H. cRegEnumValue 枚举指定项的值 - ~: B; G, X" z7 N$ J
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 , H* E8 v' b  Q' r% q4 @
RegGetKeySecurity 获取与一个注册表项有关的安全信息
  u+ p% }) L0 N2 TRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 + W. W% q* `  ?) M' c
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 7 I1 h- w2 V9 o. P
RegOpenKey 打开一个现有的注册表项
. u; C  p! d6 i6 K5 yRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 - D/ i# d. ~$ R+ N0 U" F
RegQueryInfoKey 获取与一个项有关的信息 * ^  D- p: R% Q4 p
RegQueryValue 取得指定项或子项的默认(未命名)值
: P: N" |: P1 D/ ERegQueryValueEx 获取一个项的设置值 8 [% A3 s. F3 m6 O$ z+ a7 |" B
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
4 N* g1 i6 {. p# C! zRegRestoreKey 从一个磁盘文件恢复注册表信息
1 f8 D* K7 W; F4 D4 L  u+ jRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
9 g- q- E- x9 L# {RegSetKeySecurity 设置指定项的安全特性 * a! N% Q; R' v& x: N
RegSetValue 设置指定项或子项的默认值
4 Z0 Q9 t5 m7 L. \9 j- WRegSetValueEx 设置指定项的值
7 n. N3 C8 x9 ]8 ~RegUnLoadKey 卸载指定的项以及它的所有子项
8 P$ S+ u' n! e8 x: X% t. _RemoveDirectory 删除指定目录
9 I% G- u; ^1 I& @SearchPath 查找指定文件
& _0 R/ U2 u( i0 m/ ~$ fSetCurrentDirectory 设置当前目录 2 ~3 w3 t+ r4 ?" Z( ]
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 / v2 G0 c; _0 b  T# e4 c
SetFileAttributes 设置文件属性
& j  `7 |+ r  @1 q) RSetFilePointer 在一个文件中设置当前的读写位置 3 n! ?( J1 U* Q
SetFileTime 设置文件的创建、访问及上次修改时间 ( n+ c) d1 n. x9 I3 x: t3 o1 T# w
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 0 q' B( }- b7 A% P
SetVolumeLabel 设置一个磁盘的卷标(Label)
+ s& B+ `* i7 l9 ^: rSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
+ u: d" m1 G9 m$ W6 \* _UnlockFile 解除对一个文件的锁定 " F8 |2 C  `3 B0 V, u: y* T5 U
UnlockFileEx 解除对一个文件的锁定
' t0 w6 ]6 ^* }6 W+ mUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 4 Y( T0 z! g: ]; Q8 q
VerFindFile 用这个函数决定一个文件应安装到哪里
" f0 h  ]/ \! @& V  N/ ?VerInstallFile 用这个函数安装一个文件
5 H: l) f9 n/ r$ g/ _VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
3 `$ m+ _0 v& q, [2 j, O1 P+ YVerQueryValue 这个函数用于从版本资源中获取信息 & L7 y! B3 e7 w6 E8 b/ g8 f
WriteFile 将数据写入一个文件
- E. D. W9 _" C5 u4 WWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 - f. [" t0 h" ^! [4 D. i' i2 F
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
8 ~; P7 E5 r3 n, KWritePrivateProfileString 在初始化文件指定小节内设置一个字串
! _# `# H" b8 `$ V; l' ~+ k0 TWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 & ~, N& Z/ A, d) |$ F: y: B, T
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 + M" w# J5 f! ~6 G4 ^) V  j2 s7 `
4. API之打印函数
5 G: |6 B3 [- x$ Q* r( \AbortDoc 取消一份文档的打印 ' V( E6 M9 Q/ p- j4 O
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
! Q" L7 i, m4 r; C4 VAddForm 为打印机的表单列表添加一个新表单
* {: O% G- x5 Z7 G; ^) gAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 , T# a; h, X5 f- C; ?
AddMonitor 为系统添加一个打印机监视器
: R0 f# K2 q5 n8 q: W+ }1 ]+ ~AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
- W0 R; i- [" M, h+ NAddPrinter 在系统中添加一台新打印机
+ c/ C( I# S/ ]5 ZAddPrinterConnection 连接指定的打印机 7 K' B8 e. f, B. ?
AddPrinterDriver 为指定的系统添加一个打印驱动程序 1 l! ~; P4 y  ?' F% K5 U* L9 K
AddPrintProcessor 为指定的系统添加一个打印处理器
. Y* \7 b! S' Y1 C4 z& u6 P2 X" _6 uAddPrintProvidor 为系统添加一个打印供应商 ! Z" V% D6 |; k: S7 Y, M
AdvancedDocumentProperties 启动打印机文档设置对话框
. ]' v6 t% m5 S6 s; aClosePrinter 关闭一个打开的打印机对象
3 O$ @7 j- D- g4 \4 W7 {ConfigurePort 针对指定的端口,启动一个端口配置对话框 3 ]) L4 [3 A9 v$ \* R% q8 u9 I  U
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 6 p. O& P3 y4 [- L
DeleteForm 从打印机可用表单列表中删除一个表单
7 j* y8 ]2 ?) s" kDeleteMonitor 删除指定的打印监视器 . h; r" s1 \, ^% W
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 $ ?7 o' k6 T6 z$ E) o1 ]; ~$ f' v
DeletePrinter 将指定的打印机标志为从系统中删除
8 A. E1 ^# H- Y. W) J6 i) I! g& \DeletePrinterConnection 删除与指定打印机的连接 ; ?) c/ \9 x5 X' |, c0 i8 V
DeletePrinterDriver 从系统删除一个打印机驱动程序   y3 N, v3 I/ X8 `- j' _. [$ m1 }
DeletePrintProcessor 从指定系统删除一个打印处理器 ' t/ h1 c3 _) }" b) I$ W, j
DeletePrintProvidor 从系统中删除一个打印供应商
! X# l$ ^( U1 Q. w5 HDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 ' U1 {$ f. F. y3 X' c. c9 C5 Y* E
DocumentProperties 打印机配置控制函数
+ W5 U0 X: \8 G% L1 NEndDocAPI 结束一个成功的打印作业 ) _7 h. Z+ T  ^9 d. G8 B6 q% d
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 $ }) f% D1 c2 Z* h  l
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 2 \; H5 ]2 y6 b/ N) b
EndPagePrinter 指定一个页在打印作业中的结尾
; j/ x3 K2 U% {EnumForms 枚举一台打印机可用的表单
& U4 ~0 E: A( z4 _) H% BEnumJobs 枚举打印队列中的作业 3 D- }/ z6 U3 L% m. o2 H
EnumMonitors 枚举可用的打印监视器
) ^; z5 Q% ~( [/ KEnumPorts 枚举一个系统可用的端口 , P2 z; ]+ g" m3 e
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
) m2 P" \: m" f7 `  m6 jEnumPrinters 枚举系统中安装的打印机
0 J  ]! G) Y3 h- j* VEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 : y# p+ p" M, P' U' P' a$ |
EnumPrintProcessors 枚举系统中可用的打印处理器
" @' x5 M7 Y  v2 h  TEscape 设备控制函数 : c; H% [5 @4 U: Y. T
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象   k/ e: M' {* X6 S
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 . Y2 z/ z/ b4 V, M4 B
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
: t8 ^0 }# M& x& Q9 F2 @, ]FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
1 Y) o& I  q" U6 a& G$ zGetForm 取得与指定表单有关的信息
8 W3 I) c/ I& J7 O  H/ AGetJob 获取与指定作业有关的信息
1 H. \( @# @5 ^  i1 c6 CGetPrinter 取得与指定打印机有关的信息 # H( S6 i5 s, [. q" ~
GetPrinterData 为打印机设置注册表配置信息
3 X3 }) Y; r. A1 b) \; `( r& C. O; H1 TGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 ( ]! e4 n+ a4 b; r& l0 i
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
0 I! ]1 F! \8 w8 ?. F; j" h2 E% w7 RGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
- f, a6 M# s! y) D: X0 B  Q  TOpenPrinter 打开指定的打印机,并获取打印机的句柄
5 X5 Y- c! [: ^9 a2 Q! w: t6 jPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
- H& l* L/ H3 _* [PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
! d1 d1 h) A$ h& ?' {ReadPrinter 从打印机读入数据
+ |3 e* v1 c- J- H$ `ResetDC 重设一个设备场景 2 \9 [+ y( ]- v  T# L
ResetPrinter 改变指定打印机的默认数据类型及文档设置
/ S& o$ ?; T4 r# a( i' I: |: G* dScheduleJob 提交一个要打印的作业
  ~% h) V! ?2 Q1 n; Q! ^) D3 g( MSetAbortProc 为Windows指定取消函数的地址
; o/ {8 Q9 G5 r. O& XSetForm 为指定的表单设置信息 5 _/ N  L2 H: K5 N/ a" m: m
SetJob 对一个打印作业的状态进行控制 - u; U7 x' p' f% W  z! g
SetPrinter 对一台打印机的状态进行控制
+ x, t6 C+ @, {SetPrinterData 设置打印机的注册表配置信息 ! |: v( k; Z" x6 ^, ]
StartDoc 开始一个打印作业 7 x9 t: _) h  i
StartDocPrinter 在后台打印的级别启动一个新文档
" a% M4 _5 [: V0 n, {5 _StartPage 打印一个新页前要先调用这个函数
/ h, f( H) f( A2 |* ]8 r: q  kStartPagePrinter 在打印作业中指定一个新页的开始
  Y- D" G* U6 p4 fWritePrinter 将发送目录中的数据写入打印机 & T2 M7 D/ Y5 E3 `
5. API之文本和字体函数 ' |, y- `& Z4 ?- {: v( ~
AddFontResource 在Windows系统中添加一种字体资源
1 P: Q9 K" r2 [2 i* KCreateFont 用指定的属性创建一种逻辑字体 3 `$ R$ I) B1 }6 n# U2 X
CreateFontIndirect 用指定的属性创建一种逻辑字体
; m9 J# f/ ?% z/ y. w* a  N! {CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 3 T/ Q8 h" Z' \; B" A) S
DrawText 将文本描绘到指定的矩形中 ( q& b; s7 C, W4 U4 X
DrawTextEx 与DrawText相似,只是加入了更多的功能 / F! w) i1 |7 q% h& W6 @" ^
EnumFontFamilies 列举指定设备可用的字体
$ X6 l1 ~  G2 l' n- [+ yEnumFontFamiliesEx 列举指定设备可用的字体
* V3 H* R, c6 fEnumFonts 列举指定设备可用的字体   @2 B% ?1 {$ y  T$ r3 W
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 ! [) X1 G( _7 m$ U: V& j
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
, n. S9 }6 o% [6 {2 XGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 & r/ h1 `) n$ r1 }$ G
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
2 ~9 ?5 ?) s2 `" ?2 S" hGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 & X$ Z6 b; _2 p4 I9 U% r
GetCharWidth 调查字体中一个或多个字符的宽度 8 e+ B  C6 _1 Z. X. ]
GetFontData 接收一种可缩放字体文件的数据 # ~1 L- d# y: t5 L9 f
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
; H; \! S' r/ s- `8 uGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 # A# h  A4 o9 h' V% w5 X
GetKerningPairs 取得指定字体的字距信息
0 `  u6 t7 C( T$ M! P. f' s. N; G  BGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 $ p/ x# A% P5 O. |+ i
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
+ L% ^# q  p; D2 I( wGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 & t1 v! F7 F+ a' {0 C
GetTextAlign 接收一个设备场景当前的文本对齐标志 + s$ @# k: Z/ Y1 y
GetTextCharacterExtra 判断额外字符间距的当前值 , r# P( N! y- A) Q
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
0 w$ p) o% s' M( Q; L2 ?( _8 PGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 + L: V6 X" }! R$ h
GetTextColor 判断当前字体颜色。通常也称为"前景色"
" i( \0 ?/ {& X, t# SGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
' J7 ~5 t5 H$ cGetTextExtentPoint 判断一个字串的大小(范围) * q9 I, V+ e1 ?
GetTextFace 获取一种字体的字样名 # v/ z# m7 f" y* v4 i3 [
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 4 z8 a) D8 t, a5 k& U
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 ! U5 U- A4 u& H8 `, Y* J
PolyTextOut 描绘一系列字串 9 g" Y+ {  M( A% @8 T' k& q
RemoveFontResource 从Windows系统中删除一种字体资源 ' j4 `. E5 T  C2 @" t
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 9 k. l$ i* C* ~3 u9 e8 L
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 : @% q: c# a5 i# p& v, e
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 6 A$ z! M% c) H" C% D& J- k
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" : G& Q% k& t9 m7 W7 P- m' X
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
/ w) {! h: V+ c$ b' p( cTabbedTextOut 支持制表站的一个文本描绘函数
3 E# q1 ?3 ~3 O1 C% W  wTextOut 文本绘图函数 . E% ~  Z  U3 M6 N: Z
WINGDIAPI BOOL  WINAPI TextOut(. n0 m* b6 W" S) i
HDC,     //输出设备2 b3 w" y6 G4 L4 z& S7 ~2 o  O
int,     //输出的横坐标9 f; r; D( `  ?4 X* m
int,     //纵坐标
# H" l* r1 a' v/ s4 |& U! ZLPCSTR, //输出的文本str0 _/ ~1 G/ C$ y: S! u
int);    //文本的长度:lstrlen(str)
) f% K" y* d  N* @# q6. API之菜单函数 / k2 S4 G& L3 l( z4 P
AppendMenu 在指定的菜单里添加一个菜单项 6 p5 m6 u0 I4 n4 p9 B; F
CheckMenuItem 复选或撤消复选指定的菜单条目
7 I  K# f4 A) z5 M" ^6 ECheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 / w  b- a5 f) n& S/ |! y' }
CreateMenu 创建新菜单
* C8 \3 T7 O  I5 f3 GCreatePopupMenu 创建一个空的弹出式菜单
  r" s% F) g2 j1 E1 RDeleteMenu 删除指定的菜单条目
8 P; s2 ]- i* q" V5 v4 B: @6 J* X& ^DestroyMenu 删除指定的菜单
# g4 j9 a" d2 i; q) S: EDrawMenuBar 为指定的窗口重画菜单
5 S$ D& W. K; J9 |# z  I) {! sEnableMenuItem 允许或禁止指定的菜单条目
9 K$ P! `) |3 l* _, N8 M8 gGetMenu 取得窗口中一个菜单的句柄
: {* ^, @& B1 a1 sGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 " z7 U7 r  \0 @+ R3 }' ?2 `; S
GetMenuContextHelpId 取得一个菜单的帮助场景ID
8 |' j) _  j9 o  w: ]GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 2 C9 v5 L7 m6 ~1 @% p
GetMenuItemCount 返回菜单中条目(菜单项)的数量
& W9 o9 J/ y7 J& b! F- S/ BGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
2 m' q, O7 \) D& u* |% ~GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 + t- i$ @- B4 Q
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 ) C1 e& d1 ~: I0 a6 B/ e* B
GetMenuState 取得与指定菜单条目状态有关的信息
# }( Q8 R7 `8 t: S- MGetMenuString 取得指定菜单条目的字串 4 c9 }# P- \3 f2 I
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 + w8 k  J. |; f* l* l- E; i
GetSystemMenu 取得指定窗口的系统菜单的句柄
: m7 @8 ~4 w" A9 K# WHiliteMenuItem 控制顶级菜单条目的加亮显示状态 - _6 O! C3 T$ O# \% \- K$ v
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
0 F" B% Y# I1 s  Q$ p/ @InsertMenuItem 插入一个新菜单条目 4 d8 O: S1 F* p7 X
IsMenu 判断指定的句柄是否为一个菜单的句柄 + d0 E# }) G( m. ?! c& H
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
1 b  @: q$ q* Q9 mLoadMenuIndirect 载入一个菜单
( I+ y. ]( Q1 k4 G! @0 f, d) O7 ~MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 1 a8 J" I  C8 e/ m
ModifyMenu 改变菜单条目
2 N& X/ a- x* N0 L# _2 @! pRemoveMenu 删除指定的菜单条目
7 u* l6 q8 B- s, G: g" zSetMenu 设置窗口菜单 + f, |6 |7 Q7 J
SetMenuContextHelpId 设置一个菜单的帮助场景ID / O1 A% R' ^2 h7 f
SetMenuDefaultItem 将一个菜单条目设为默认条目
. {# c* v7 k3 b$ Y( rSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) 7 }4 i  l" }. l8 `. j7 z& _9 n
SetMenuItemInfo 为一个菜单条目设置指定的信息
$ U% [& \  }) R2 H7 |9 \TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
, o# u# B7 `0 y' K4 WTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
9 o, d. v/ \" |8 v* X7. API之位图、图标和光栅运算函数
1 p# P7 R0 v3 K' RBitBlt 将一幅位图从一个设备场景复制到另一个
3 z1 F& Z/ {$ x5 |# a5 f     WINGDIAPI BOOL  WINAPI BitBlt(6 R8 g( @7 |; C- h! Q0 z# e" o
HDC,     //目标HDC
* M3 @( w  B5 Y9 Q4 W! G7 jint,     //X13 |  R( D0 G4 F
int,     //Y1
8 U. Y: f: _4 t6 s: aint,     //width
' _5 |$ a- H0 z; c2 b' @8 `int,     //height
* \) x$ F4 R  R9 L- N$ S2 t% {1 [HDC,     //源HDC3 R7 {2 I& Y# `8 b4 q) X
int,     //右边的距离9 z  N' M: f, }/ [8 I, Y* q
int,     //??
( X; i/ X% s; f- N* Y7 j: l0 R1 jDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
/ y0 y! r! N- i% _/ o+ U; yPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS* B7 S: U  O* E) ~. _( a$ |9 N
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
2 P* }+ j/ K5 ZCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
3 L2 q8 E. E$ R6 {CreateBitmap 按照规定的格式创建一幅与设备有关位图
; s- a. D/ {. G9 e. h; B$ @CreateBitmapIndirect 创建一幅与设备有关位图
0 a0 |) Y% k- b% ECreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
: a0 N) i. ], n# g& ]% A& DCreateCursor 创建一个鼠标指针
& v2 a( F# z+ f" b& j6 n5 xCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
. `0 M" ?% V6 e0 kCreateDIBSection 创建一个DIBSection 7 g" {+ S! C; ]2 z4 c
CreateIcon 创建一个图标
2 @  u# Y$ L7 h6 hCreateIconIndirect 创建一个图标
& q' X; q$ r$ r* L# [7 XDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 5 _7 c' e$ l6 S# ~. q6 f
DestroyIcon 清除图标 $ C& Q" [; d8 _2 p2 p: A5 N
DrawIcon 在指定的位置画一个图标
. w) X$ E4 }7 {; M6 ?9 w3 pDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 0 L' e+ j! S7 Q* b, g
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 ) f$ Z1 T6 u: a1 F
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 4 m) w+ h1 j2 a3 ^( t
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
' v4 L' K$ C. D& `  \( oGetBitmapDimensionEx 取得一幅位图的宽度和高度 / S. W% a/ N8 w: u: I5 \$ G% U
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 # @. w3 O: l. O- ?
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
) G. u  L8 L, V1 cGetIconInfo 取得与图标有关的信息
7 \( I" `' Q% \$ N2 U8 e# jGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
- A3 ^2 P: M9 |/ l3 Q$ _# hLoadBitmap 从指定的模块或应用程序实例中载入一幅位图 . I3 k$ n, `$ O( v' z1 }6 u
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 : W; M2 T; U: W  X' a; c2 ^3 l
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 3 I( E* [4 E2 h( i
LoadIcon 从指定的模块或应用程序实例中载入一个图标
/ A2 D; c- L, T& MLoadImage 载入一个位图、图标或指针
) \+ _) `; I5 uHANDLE LoadImageA(
6 I! m. q4 P  h4 Y  S0 OHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle(). Z% ^0 f2 w* Z9 |8 y
    LPCSTR,               //资源所在的目录:c:\help.bmp+ Y+ R, v' b, i
    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE" c; }' [' ~/ j) q+ |: x5 k  d: H8 l
    int,                  //3 N9 q' K6 k$ R! _( C* s/ [; S
    int,                  //
% r( ]4 a5 q$ d; ^" y. @UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|) K1 u* c$ f% [1 e2 c
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|* R( g. O. `! I9 d8 V
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
, o8 i1 R& f/ g6 _" |MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
3 T, J! B% b8 M; sPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 # E6 [2 w. {' I' f4 e
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
: D; @2 j2 u8 \/ `2 aSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 ; \- }+ Z% I6 j) C+ o
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 , Q3 D0 N% X  h' ]( S* X$ y0 d
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
$ \: Q; A" D* z$ v% `; kSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
- q  q5 j1 g% h. |( Y5 QSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 0 b7 R3 V3 v" _/ b. P" Y0 ~' {) k
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
5 r. c& i; r/ T" D! C# VStretchBlt 将一幅位图从一个设备场景复制到另一个 " m, O4 a! q# i4 Y
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
+ V' x3 l( [  z4 X8. API之绘图函数
" ]) v1 l/ G* L/ |3 e3 s  YAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
$ E# e* q. {* x9 Q& bAngleArc 用一个连接弧画一条线 3 `# ?2 D  {( a, x) T
Arc 画一个圆弧 5 ~6 n* u, x& B0 P. g+ l
BeginPath 启动一个路径分支 $ s3 L$ \  N; j( F
CancelDC 取消另一个线程里的长时间绘图操作 6 ~$ \0 T9 ^+ o9 C. v' f% X
Chord 画一个弦
/ w4 U+ S8 L8 n* G  F8 G6 S. T: DCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 " G9 m: z% J  G) x, D3 }
CloseFigure 描绘到一个路径时,关闭当前打开的图形
) W- X% Z+ o/ s( `4 iCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
( }' v5 d4 t& ?0 DCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) 9 m7 v' V6 }, y
CopyMetaFile 制作指定(标准)图元文件的一个副本 3 P, G* {% |1 t- D
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 ) E9 n( ?! T) L) x
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
: }& i6 C# W' Z' q2 iCreateEnhMetaFile 创建一个增强型的图元文件设备场景
9 h' i5 F3 x8 }/ _CreateHatchBrush 创建带有阴影图案的一个刷子
2 G# V3 V; X1 @! f$ D& a* lCreateMetaFile 创建一个图元文件设备场景 2 n) ~0 Y& Z& w, Q/ B
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
+ s: _$ w2 G3 d" U' hCreatePen 用指定的样式、宽度和颜色创建一个画笔
6 {' V8 Y. v( D! H1 A; pCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 " k8 m  O+ @' c- w8 Z
CreateSolidBrush 用纯色创建一个刷子 4 N% _) _; n/ r0 [' ]
DeleteEnhMetaFile 删除指定的增强型图元文件
9 b, O3 N& O3 C9 d& x  ^& EDeleteMetaFile 删除指定的图元文件
! u0 X8 j' u. ~6 r9 B6 @WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
) r8 h3 P) O) A! rDrawEdge 用指定的样式描绘一个矩形的边框
8 I; N- o" B- p2 [( |DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
* k9 w& k, V& K' b% T& w3 ~, o  W! x! NDrawFocusRect 画一个焦点矩形
1 h' b/ y8 h0 s8 iDrawFrameControl 描绘一个标准控件 ' {1 N! }# z8 Q
DrawState 为一幅图象或绘图操作应用各式各样的效果
) X& m; W. d' i. r0 v5 f0 d- `( TEllipse 描绘一个椭圆,由指定的矩形围绕
) V& `, w( N, G, k2 v9 IEndPath 停止定义一个路径
" L+ J3 |! m1 D: p: h, s/ mEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 9 q3 E% h1 @0 P  I1 Y! s' A
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 ( j, d9 E& Q+ G1 v, `
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 5 ?1 E& `% X2 E, \* q' U  i0 A& n, ?5 C1 p
ExtCreatePen 创建一个扩展画笔(装饰或几何) # G' x! I8 K6 Q( q: r0 i
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
' M! V. a9 J0 x& q5 @1 ~FillPath 关闭路径中任何打开的图形,并用当前刷子填充
5 W5 P  ~7 d  Z. ^* T6 _, _FillRect 用指定的刷子填充一个矩形
( V4 Y/ r" B8 f2 k5 Y+ MFlattenPath 将一个路径中的所有曲线都转换成线段 4 `% P: W' D/ n
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
) C3 Y) e5 i- J) x- UFrameRect 用指定的刷子围绕一个矩形画一个边框 * v) h* X5 p3 ^0 |" U
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 4 L1 ?4 S0 C: c9 u! c
GdiFlush 执行任何未决的绘图操作 ; h; c& p. F( k$ |, E0 a+ q
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
5 p2 _9 F7 g( I3 sGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
" O% ]5 O; y9 }. v! s: lGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
7 s& R( u$ v6 Y4 MGetBkColor 取得指定设备场景当前的背景颜色
8 {4 J: e% d, @* U4 M* gGetBkMode 针对指定的设备场景,取得当前的背景填充模式
$ E! y( z5 T, n, G* mGetBrushOrgEx 判断指定设备场景中当前选定刷子起点 5 N- T# E. G! B, |1 U: m
GetCurrentObject 获得指定类型的当前选定对象 3 |" Y. x' U0 D* I4 P
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 1 }9 U+ D0 J: e* S2 q% c
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
: l& H& z6 P" u0 h# G# s/ DGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 ' \( j/ x. l- B" E5 b- Y6 Q
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
) |9 K' `& O" E* ^GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 1 d. B6 ]! M( r6 P( O: z
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 # R" b! u  g" _# o. ^, {
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
% H* L0 B  i/ o6 T2 pGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 1 w' J; I' K5 J# `/ I% y
GetMiterLimit 取得设备场景的斜率限制(Miter)设置 . {- a9 P% y% e
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 . u9 x0 Z( [. d8 P" x; Z
GetObjectAPI 取得对指定对象进行说明的一个结构 5 C# i# ^* j5 w  I% S
GetObjectType 判断由指定句柄引用的GDI对象的类型
, H6 y( @: O* g' Q6 v- NGetPath 取得对当前路径进行定义的一系列数据 ( z. r1 h2 S! z4 w" T2 M4 n# C
GetPixel 在指定的设备场景中取得一个像素的RGB值 / N1 ], u) a7 V& a
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 . ^3 \$ W* t3 m& {; a, E) y
GetROP2 针对指定的设备场景,取得当前的绘图模式 ' w$ j- R( Y. K. Z% ]
GetStockObject 取得一个固有对象(Stock) 4 k2 g$ x$ M8 U; ~3 s0 ]; D: i- b
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
1 z: L$ Y( z4 {4 b& m/ D, sGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
" h9 O* J! E$ z* p  W! z. QInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 ! H" R  `5 \; W: R: t
LineDDA 枚举指定线段中的所有点
+ @0 h( S) Y3 L4 g: r/ JLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
. ^. G5 G4 ^2 l. ?* M$ N; y- Z( uMoveToEx 为指定的设备场景指定一个新的当前画笔位置
8 j/ N7 Q( L, v0 GPaintDesk 在指定的设备场景中描绘桌面墙纸图案
* j7 q' l9 o& L; I  t, bPathToRegion 将当前选定的路径转换到一个区域里
) c# r+ J" c* v( zPie 画一个饼图 9 U7 Z4 f$ n. `/ n( E) U
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 : o. e) a9 M1 G
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
3 n# l; Z# Q6 ?- }# h8 q% i( y7 g( ]PlayMetaFile 在指定的设备场景中回放一个图元文件 ' u! Z( \" L; R4 X# Z
PlayMetaFileRecord 回放来自图元文件的单条记录
, h/ b  Q" ]6 PPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 6 l4 K" g: i- b
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 9 _* R$ N+ }" v. |
Polygon 描绘一个多边形 ' t/ D+ [) |$ a; s  E! m
Polyline 用当前画笔描绘一系列线段 + ^: X; e3 Z3 M9 j
PolyPolygon 用当前选定画笔描绘两个或多个多边形 4 V! _; }) p0 [" D6 i$ \$ ~
PolyPolyline 用当前选定画笔描绘两个或多个多边形
$ \% M4 F1 K) _! ~/ l/ URectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 8 j1 [# A* G- u. x
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
& a# C% U4 ?% Y# mSelectClipPath 将设备场景当前的路径合并到剪切区域里
; F7 Z$ ^0 p4 V6 t8 V0 OSelectObject 为当前设备场景选择图形对象 * V! V0 I9 j# J- r
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
0 H1 s; \; j2 b  L) R+ XSetArcDirection 设置圆弧的描绘方向
5 U+ L7 c5 ^5 w. S0 I7 GSetBkColor 为指定的设备场景设置背景颜色
! t) W" S. s( o5 WSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
! h* H! M0 Y" x+ QSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 0 l: r8 D3 O- k
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
1 ?7 [7 ^# q1 `; O5 |SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
2 R6 w# W$ D1 Y  t. CSetMiterLimit 设置设备场景当前的斜率限制 : V' q$ W$ @, E9 [
SetPixel 在指定的设备场景中设置一个像素的RGB值 $ N* _7 {% o) b& E) e/ R6 p
SetPixelV 在指定的设备场景中设置一个像素的RGB值
; A6 W! d) E+ u, M. W: t8 KSetPolyFillMode 设置多边形的填充模式 6 Z, x, c! ^/ k' {+ s! ~8 c
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
- `& F. v) Z( g' D5 |2 YSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
! t5 x- x5 {- x# G1 m* s* SStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 * ?% U* Q2 ]( K( Y. i. c
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
; K  O1 x% Q4 RUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 & R/ b) Z$ r0 P
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
5 I! ]; G' G6 V6 w9. API之设备场景函数 * h0 M" T+ D9 r, w
CombineRgn 将两个区域组合为一个新区域
  H/ ]; [/ M/ E" E" y+ LCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 : x% J! r! I( H" n
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
9 W1 J# |+ K) O% r" d5 F1 E' b+ HCreateDC 为专门设备创建设备场景 , E, \0 S# c" G0 Y! \$ A4 A! f- b
CreateEllipticRgn 创建一个椭圆
& R7 Z4 G0 p1 b$ s! C  b# {CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 , ~' h4 K' Q0 {$ }* A3 y
CreateIC 为专用设备创建一个信息场景 4 y3 X  s# C9 R8 U: \  i+ I
CreatePolygonRgn 创建一个由一系列点围成的区域
3 N% m9 h; w; E  cCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 1 E7 H& c# U& |0 @9 g2 ]0 L& t
CreateRectRgn 创建一个矩形区域 1 Y1 H0 U. s: q1 a; y5 p
CreateRectRgnIndirect 创建一个矩形区域
5 S, x# J8 Q" ]" N# [; K0 m) NCreateRoundRectRgn 创建一个圆角矩形
: J6 x8 J+ t2 N* b5 KDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 6 y# L3 Z4 L0 \) U* j# I
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 ' X7 ~2 c0 [2 l, |& P$ M
EqualRgn 确定两个区域是否相等
0 p- A1 `. {. O' U1 x0 ZExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
! I3 E9 H- F, K$ g' F6 _% @ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 7 `0 y4 C- v' B% @* [
ExtCreateRegion 根据世界转换修改区域
( N+ R- h: A" H* q0 wExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
/ \% |  b1 Z6 ]" Y, Y, s; H2 EFillRgn 用指定刷子填充指定区域
" W9 u/ {* l5 z& e% uFrameRgn 用指定刷子围绕指定区域画一个外框 + N$ @8 |7 z( D8 B* B2 F
GetBoundsRect 获取指定设备场景的边界矩形
( Y' |6 M* I# g$ o, H3 K1 [1 [' WGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 3 i0 B' E. n* P: F
GetClipRgn 获取设备场景当前剪裁区
& Z# a8 Y+ H2 |% }+ X5 |. h! y  {" TGetDC 获取指定窗口的设备场景 7 n) ^* Y' n6 @" d
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 6 Z; x: m6 y# T' B0 x4 \) ~
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
+ r# o0 P0 w7 t6 Q1 ZGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 2 u9 S* D  e7 N% Q
GetGraphicsMode 确定是否允许增强图形模式(世界转换) 9 r! j" h; {$ S" w! z: z
GetMapMode 为特定设备场景调入映象模式
1 w# g# J8 B& W, g- u% W0 SGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
, a8 B( Q5 e/ p  {$ dGetRgnBox 获取完全包含指定区域的最小矩形 - @2 ^; u0 F+ J+ p
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 # k; p# Y' h  [) b. }2 q5 b
GetViewportExtEx 获取设备场景视口(viewport)范围
" E! W7 O7 [! c% v2 J0 [+ IGetViewportOrgEx 获取设备场景视口起点 5 z8 M7 U8 r1 j1 d& b4 k, e" ?& r
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 7 ~2 l6 [' V8 i- F& @& o/ z9 |9 k9 h6 U
GetWindowExtEx 获取指定设备场景的窗口范围
. F( i6 N! o& W9 X6 H) ?) Q0 x& D6 zGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
* G* g" X5 }# h2 c$ s) n2 XGetWindowRgn 获取窗口区域 . f, D6 L; |' j
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 ! l" Q9 B0 w/ P  [
IntersectClipRect 为指定设备定义一个新的剪裁区 ) t- a% Q$ g& x+ U  O& D* k
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 8 H. A8 \4 _; `3 Y
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 , K# [" P& _* k# g/ b
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 * M, M, |( ^; {% A* z: y4 Q- u
ModifyWorldTransform 根据指定的模式修改世界转换 * \2 o: m0 V" p% F% X& I
OffsetClipRgn 按指定量平移设备场景剪裁区 ' c1 _) b, j  y% Y; i7 w/ o
OffsetRgn 按指定偏移量平移指定区域 % B9 [) Z( K5 Q1 S
OffsetViewportOrgEx 平移设备场景视口区域
+ u( a* Y* q! ~; o) L2 k% ?6 yOffsetWindowOrgEx 平移指定设备场景窗口起点 6 P% ^$ W* ^3 f2 v  _0 N9 q
PaintRgn 用当前刷子背景色填充指定区域 * }  T( U6 n, f8 O6 l2 N
PtInRegion 确定点是否在指定区域内
9 \* v3 d( ~7 F  h' XPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
: l3 g4 t6 d0 O$ f! z; DRectInRegion 确定矩形是否有部分在指定区域内
6 ~: @+ h9 I: Q: q/ f9 TRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
$ B+ w2 f  Q  M2 \ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 7 r/ I8 y+ X" e5 d% P
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 1 S8 m. |6 u' S6 F2 V9 m0 a0 ~8 E" n
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
# }# k4 r5 d+ Z: @/ Y" \* DScaleViewportExtEx 缩放设备场景视口的范围
4 I" s7 V/ d6 n6 Y' nScaleWindowExtEx 缩放指定设备场景窗口范围 % o, K4 T/ d7 Q/ q( ^: ]
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形   E! E! o  c/ j0 A
SelectClipRgn 为指定设备场景选择新的剪裁区
( ]9 g5 K% Z9 J5 s9 s! R- J: BSetBoundsRect 设置指定设备场景的边界矩形
; r, \0 L2 ]0 {SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
; s$ g- _5 W+ }7 O0 Z5 L9 I  uSetMapMode 设置指定设备场景的映射模式
( \* X& b+ y' K$ VSetRectRgn 设置区域为指定的矩形
' g3 o' q, U+ Z, h5 @SetViewportExtEx 设置设备场景视口范围
8 m$ l, B3 E" fSetViewportOrgEx 设置设备场景视口起点
1 {9 {0 y1 ?5 \) k7 |% P: R7 oSetWindowExtEx 设置指定设备场景窗口范围
4 s7 g" \2 x9 c( }. {SetWindowOrgEx 设置指定设备场景窗口起点 " N8 E  }3 z2 Z7 X) r
SetWindowRgn 设置窗口区域 7 \5 V# A$ R7 O
SetWorldTransform 设置世界转换
9 T  |. o* P8 y$ D  a# V3 G0 g0 ]' cValidateRgn 激活窗口中指定区域,把它从刷新区移走 $ R) [5 s- D! F5 J+ _9 @6 k
WindowFromDC 取回与某一设备场景相关的窗口的句柄 . B) [- C/ y4 _: s6 {8 h8 J* A
10. API之硬件与系统函数
- S- O1 G' A( q! G3 ?' |ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 ( O- m+ ^4 V- m) ?; u
Beep 用于生成简单的声音
4 L8 E* b8 u) G) HCharToOem 将一个字串从ANSI字符集转换到OEM字符集
  u# P! F2 X  X( v  fClipCursor 将指针限制到指定区域 7 x$ }; g* {& A* [8 I, q
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID % a7 s6 {5 D/ E$ e
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 6 B) ]2 U+ }. d+ z, D7 i- @
DestroyCaret 清除(破坏)一个插入符
- c( W5 v: y! J* i/ LEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
  ]" y, f& I' |. L: Q. kEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 ! z. C9 J& `  r: O/ k9 @
EnumSystemCodePages 枚举系统中已安装或支持的代码页
& L4 O  @9 c" a3 W# u! Y( @EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 . [" n5 P/ C: y  P
EnumTimeFormats 枚举一个指定的地方适用的时间格式 . t5 A" [, C6 e/ p9 G# J
ExitWindowsEx 退出windows,并用特定的选项重新启动 1 c+ \* F% f6 g# J1 C
     WINUSERAPI BOOL WINAPI ExitWindowsEx(
" m/ L8 D8 J  P* P6 z4 RUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG  Y% \2 d1 u- y
     DWORD dwReserved); //03 z" H; Q. T* w( D. v' W; a* I) C
ExpandEnvironmentStrings 扩充环境字串
/ D8 Q1 w; B) ]0 i& ~; ~/ J5 [FreeEnvironmentStrings 翻译指定的环境字串块
# B" W4 o$ i# PGetACP 判断目前正在生效的ANSI代码页
3 Y6 \0 N$ a& H/ Y% \+ l: W( d  gGetAsyncKeyState 判断函数调用时指定虚拟键的状态
9 e8 ^9 S0 s1 J3 W( `GetCaretBlinkTime 判断插入符光标的闪烁频率 $ p* W/ u+ y4 H  v7 j
GetCaretPos 判断插入符的当前位置 , s  b* \( L+ o& x
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
! r9 _& L, h. K2 FGetCommandLine 获得指向当前命令行缓冲区的一个指针
+ U3 k, ?" s  g- r& S0 ^" b6 IGetComputerName 取得这台计算机的名称 7 K5 Q, B# f/ L5 d
GetCPInfo 取得与指定代码页有关的信息
4 _6 F+ j  I# [. b( A7 i7 V' ZGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
& c3 f* L( Z/ vGetCursor 获取目前选择的鼠标指针的句柄
& c! @% N7 J, s+ G7 JGetCursorPos 获取鼠标指针的当前位置
1 e- i, V8 ^3 C- Y9 `1 XGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
/ v  n/ a* {6 z- vGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 & w0 ^: J) W0 T
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 0 U2 g# a  Y1 o( e" K8 t
GetEnvironmentVariable 取得一个环境变量的值 1 v- B) e( h& k$ u
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件   r2 p% p; U* n! x& b
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
* z1 n* x0 g3 f5 _* VGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 6 ?) O5 a( R& m+ t  M
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 # b7 K7 s) F7 g: c; M5 I4 [
GetKeyboardLayoutName 取得当前活动键盘布局的名称
: C& o0 P* h! T+ l1 DGetKeyboardState 取得键盘上每个虚拟键当前的状态
. h0 l1 T! E8 J: GGetKeyboardType 了解与正在使用的键盘有关的信息
% t- }8 j5 l5 k6 RGetKeyNameText 在给出扫描码的前提下,判断键名 9 I3 e8 c* e- v3 ~* n6 x
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 , \) S+ h7 M/ {
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 / f# e' t  `. @) S4 V0 C
GetLocaleInfo 取得与指定"地方"有关的信息
: \0 b* W: ~( }( n) eGetLocalTime 取得本地日期和时间
( T9 v# A8 J1 J, @GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 " \- s0 Q* n1 R+ d# i% P
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
: u& ?! t; m- M$ x  Q2 O" {GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
+ F- j5 Y/ k: T4 BGetSysColor 判断指定windows显示对象的颜色 # b! G. t$ d6 {
GetSystemDefaultLangID 取得系统的默认语言ID + \6 {' I0 h6 p1 E1 f
GetSystemDefaultLCID 取得当前的默认系统"地方"
" }$ H% K. j8 r/ F$ Q7 ^9 `/ _GetSystemInfo 取得与底层硬件平台有关的信息 9 u; n+ k1 \* C" a
GetSystemMetrics 返回与windows环境有关的信息
, l/ A3 r+ z. y; M6 W+ |GetSystemPowerStatus 获得与当前系统电源状态有关的信息 ! ~% l' T5 y8 l  z1 x+ G$ ]
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 8 D: M& u  M. k) }8 G9 G
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 - ^  b4 _) M8 _5 L4 J. x% o, k+ b
GetThreadLocale 取得当前线程的地方ID 9 d- \% V- i5 a; `( o
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
9 d/ e: L3 M, {/ t+ B; W7 ?GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 ! e9 d( e  g  S1 ]  U8 @
GetTimeZoneInformation 取得与系统时区设置有关的信息 ! q8 ^7 p* \5 C. B
GetUserDefaultLangID 为当前用户取得默认语言ID 3 Z2 B+ d8 S1 p  b. W- {6 I! Z7 H3 }
GetUserDefaultLCID 取得当前用户的默认"地方"设置 . @- o4 k6 v$ M$ a% F
GetUserName 取得当前用户的名字
! l9 D" F" U; a: O; zGetVersion 判断当前运行的Windows和DOS版本 . H: U6 u# ]1 |6 F% J0 y2 l
GetVersionEx 取得与平台和操作系统有关的版本信息 / U7 z' N2 f( N5 |* R3 u/ \0 H
HideCaret 在指定的窗口隐藏插入符(光标) " e- }, A4 o/ }  c) r
IsValidCodePage 判断一个代码页是否有效
! R' ~, f9 C. D" g/ Y( Q4 WIsValidLocale 判断地方标识符是否有效 3 j3 f& P- W0 J( d
keybd_event 这个函数模拟了键盘行动
: k, R  a, J0 Z" l8 F8 T  {LoadKeyboardLayout 载入一个键盘布局
7 @' V3 S: e* v, P* SMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 ' B+ l8 t# B- C8 E  N: ]* L3 d
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换   M8 Q; F  e  y8 {. t7 \
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
  P% P0 q. o  Vmouse_event 模拟一次鼠标事件
2 p& T* t6 l+ g. y- @# r. M8 ]" M2 gOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
, i6 d" K/ |7 X3 dOemToChar 将OEM字符集的一个字串转换到ANSI字符集
9 ]; g1 l% @% r$ j. r, E3 ISetCaretBlinkTime 指定插入符(光标)的闪烁频率 , i4 b7 D! R8 Z7 Z/ `3 w4 u
SetCaretPos 指定插入符的位置
) n9 g3 d7 _4 {3 G: Q  x$ GSetComputerName 设置新的计算机名
7 x6 C$ d8 o" i" U9 {SetCursor 将指定的鼠标指针设为当前指针 : E' j) w& J, @$ F6 B
SetCursorPos 设置指针的位置
! J! p2 b5 _$ dSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 7 {9 L: G5 h1 e  L
SetEnvironmentVariable 将一个环境变量设为指定的值 " D$ e2 x& w0 O, {8 z+ d
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 " J7 |8 Z' k1 i  E, v* E  l5 f# s4 K
SetLocaleInfo 改变用户"地方"设置信息 % Q" j0 E! e1 b! r
SetLocalTime 设置当前地方时间
) k* q- A5 G4 `6 H( ?# ~SetSysColors 设置指定窗口显示对象的颜色
- {; N! z( O& S8 a  zSetSystemCursor 改变任何一个标准系统指针 6 |! k; A" }6 O9 ~# L/ B" v3 Q: p
SetSystemTime 设置当前系统时间 % s) n) ?; {0 \% W
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 6 h  L. j$ P1 U( V, O2 m  I
SetThreadLocale 为当前线程设置地方
: I7 [! J6 a2 A7 aSetTimeZoneInformation 设置系统时区信息
- k; E& V! g$ e4 ~* n  W2 Q" b8 oShowCaret 在指定的窗口里显示插入符(光标) ; L! y% {! A8 j5 l2 k% S& B4 @7 S
ShowCursor 控制鼠标指针的可视性 9 c$ M+ T: T+ V
SwapMouseButton 决定是否互换鼠标左右键的功能 ! V5 t1 q5 V( G* _: ?8 D& y
SystemParametersInfo 获取和设置数量众多的windows系统参数
+ z4 J  e8 Z9 z+ h; j9 J5 p: A9 B* Z7 bSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 0 u/ Z8 `3 E8 a% F7 H+ t
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
3 j6 k. V0 l1 A# BToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
$ x) V# b3 v) mUnloadKeyboardLayout 卸载指定的键盘布局
- M( k( |) W- D4 NVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
) S# b% H6 u# j5 O' I' l: M" ?0 P11. API之进程和线程函数
% }  a7 h. p2 H8 r$ k' |- q4 fCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
! T4 p  ?% p$ ^% s5 @% {' [' |, q) B0 lCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
( H7 l7 y: p5 {5 E# J6 z5 j. z" AConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
6 o+ n) d$ H5 p7 LCreateEvent 创建一个事件对象
. |' V6 o) b: A( Q8 G0 wCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
* K2 y+ ]! Z& @* I1 |  A4 p$ _CreateMutex 创建一个互斥体(MUTEX) 2 V4 C. d0 _0 x: {* w3 h" Q8 K" F
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 4 }7 w* w" b4 _) H
CreatePipe 创建一个匿名管道
- s; h) ?/ |$ W# H* eCreateProcess 创建一个新进程(比如执行一个程序)
) e: X0 R- D0 N& X& p. P: Q$ QCreateSemaphore 创建一个新的信号机
1 s. p- X4 T! }6 L; ^) X6 |# hCreateWaitableTimer 创建一个可等待的计时器对象
+ R- C9 U0 j' x- k" zDisconnectNamedPipe 断开一个客户与一个命名管道的连接 " q8 J$ [+ ?- Q  E; j1 T
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 0 e) W) I! \, c" j2 p+ |+ Q9 w5 Z
ExitProcess 中止一个进程
. C: e! y! o9 f0 g3 K* ?! `# DFindCloseChangeNotification 关闭一个改动通知对象
) a+ l& o7 |( v! M8 J' A' |1 yFindExecutable 查找与一个指定文件关联在一起的程序的文件名
# V/ F7 u$ a/ @  o6 v, c6 QFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 1 o) G9 i  g/ H( ?; I# b
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
; M1 R! U! O. n  ]FreeLibrary 释放指定的动态链接库
/ ?( j; U9 \2 s5 IGetCurrentProcess 获取当前进程的一个伪句柄 * V. F0 }' X5 H( m
GetCurrentProcessId 获取当前进程一个唯一的标识符 , [' K. Y" x: u, G" }
GetCurrentThread 获取当前线程的一个伪句柄 ! t5 \# w2 y; u* W+ F
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
2 G9 A, |, S! Q7 ]/ m; R( {GetExitCodeProces 获取一个已中断进程的退出代码 ' I. \* o% q3 k
GetExitCodeThread 获取一个已中止线程的退出代码
0 |/ F/ t# A/ ?0 w$ WGetHandleInformation 获取与一个系统对象句柄有关的信息 % j1 {+ h& }4 @
GetMailslotInfo 获取与一个邮路有关的信息 6 Y: n1 @" R  i% u. d  \7 l4 G' a
GetModuleFileName 获取一个已装载模板的完整路径名称   d) {+ z) ?6 s1 L
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 ; P: M" @- s- M$ ]" {' S
     GetModuleHandleA(LPCSTR lpModuleName);% p) U  R$ M7 j' q0 j
GetPriorityClass 获取特定进程的优先级别 # m8 {* X3 c$ _7 L- D" N
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 ' Z8 Q& k' o+ T% B8 t: |9 u* W" m
GetProcessTimes 获取与一个进程的经过时间有关的信息 6 t5 p0 K  t; a- C$ d- k+ _$ N
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
: y3 J9 ]( @' y/ \GetSartupInfo 获取一个进程的启动信息
0 \, [+ u3 C' c' i3 IGetThreadPriority 获取特定线程的优先级别 # b0 ^  a& l* I' P8 h
GetTheardTimes 获取与一个线程的经过时间有关的信息
; V' ~+ x. c4 S& x$ u9 j1 iGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
. Z% @9 G1 ~& R  `" zLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 ( q* @: w( g4 c4 K/ @8 [1 P' ]6 [
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
  E( W% v: Y: O6 YLoadModule 载入一个Windows应用程序,并在指定的环境中运行
: J3 B* n; W1 @4 _( j" z6 u( LMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 : l5 R! y  c- j$ j
SetPriorityClass 设置一个进程的优先级别
, |$ M. F) c- Z7 Q- r4 `8 ~SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
$ }: \& D* J5 f, i% {- M! x' ?SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 , E! N5 f5 _) R5 o
SetThreadPriority 设定线程的优先级别
& c! F* X4 O( GShellExecute 查找与指定文件关联在一起的程序的文件名
- Y3 K' K/ i2 m: i' ?, q7 WTerminateProcess 结束一个进程
- [0 w' C) p" I  _1 w( DWinExec 运行指定的程序 ! N9 W5 T, v8 R7 b. z; s' O) ~
12. API之控件与消息函数
0 W" H% n! M, F; O+ ~* ZAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
2 t+ s1 `: _9 _) n! ~* \" {0 xAnyPopup 判断屏幕上是否存在任何弹出式窗口 / H/ d- Y( Z. A- }- a3 f
ArrangeIconicWindows 排列一个父窗口的最小化子窗口 6 t  Z9 Q# h7 ?5 @  ^& t
AttachThreadInput 连接线程输入函数
/ U0 p- P- t0 X- o4 EBeginDeferWindowPos 启动构建一系列新窗口位置的过程   j0 b5 }) j5 \, w2 @: C
BringWindowToTop 将指定的窗口带至窗口列表顶部 + P# b8 C: F) q$ \) C% R" P$ y# S
CascadeWindows 以层叠方式排列窗口
& Q- R+ g$ K. c" E% K/ `+ gChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 ( w$ w# b/ R' j/ t6 [! s4 D
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
3 J* h9 }; Y3 J" i$ ]3 }CloseWindow 最小化指定的窗口
8 V2 h: R& O5 u7 e0 _8 `CopyRect 矩形内容复制 : z2 \# E" W' v" ?# r; ]: N
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
) e) ?2 |* F* ^DestroyWindow 清除指定的窗口以及它的所有子窗口 % [5 R( t5 D! {; `9 }. ?
DrawAnimatedRects 描绘一系列动态矩形
! {1 Y' b0 D9 x4 Z4 k! p; rEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
( s. y! l( X' E4 ^EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
( P( z8 o/ }5 }EnumChildWindows 为指定的父窗口枚举子窗口 7 c4 F1 E' p8 e1 P- v
EnumThreadWindows 枚举与指定任务相关的窗口
/ c/ U1 E4 S0 A. j1 m. XEnumWindows 枚举窗口列表中的所有父窗口 7 u: M  p( H2 n9 d/ [( d
EqualRect 判断两个矩形结构是否相同 4 l/ l) l. L" ?. q, T8 H& w
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 4 W* w/ Y! K( y/ r  S0 K0 c
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
' P9 v" r9 s/ J: [- K4 FFlashWindow 闪烁显示指定窗口 . |& P. B" j  o# W) w; g
GetActiveWindow 获得活动窗口的句柄 ! B5 y2 l) z0 w) r& }
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
. F7 ?; `+ R/ t* D2 h9 qGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
* x- K; m4 D8 F1 L- xGetClassLong 取得窗口类的一个Long变量条目
4 T( x# D! b8 H, p4 eGetClassName 为指定的窗口取得类名
# v7 j  h, @* ZGetClassWord 为窗口类取得一个整数变量
5 e, m# U6 K# I- C- FGetClientRect 返回指定窗口客户区矩形的大小 6 |8 N0 x1 l; u; z: q! j
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
* Q. [+ n8 a& DGetFocus 获得拥有输入焦点的窗口的句柄
) \4 \# k8 k& y, f/ d  @/ OGetForegroundWindow 获得前台窗口的句柄 $ C3 C- V' Z; t& }0 Q$ @
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 + x3 K: R. W  X3 B9 l$ t* D$ ^
GetParent 判断指定窗口的父窗口
/ y" ~6 K  K2 m1 X' QGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 2 l, g1 }5 t( J. O; }, _! s
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
/ z. n8 n. W* y! m! W$ gGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 2 Y- [# d9 T2 B& Q4 j
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID - U- W# p1 y) p% }! h8 w6 k  S7 {
GetWindowLong 从指定窗口的结构中取得信息
8 D6 ^. L0 Q! p/ B: H2 |GetWindowPlacement 获得指定窗口的状态及位置信息 & u2 N* U* X9 n$ a0 m' j& ~0 R( l
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 5 w" B/ ^- ?# d( s' `
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
. R4 Q( P9 N( S; |GetWindowTextLength 调查窗口标题文字或控件内容的长短
& O" Z6 Z  F1 U# l( _% q, xGetWindowWord 获得指定窗口结构的信息 9 v+ R: P7 r5 H9 z: s
InflateRect 增大或减小一个矩形的大小
( j- b# Q; C$ B" k  k( [% IIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
& e9 P: N2 G" {1 X" |InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
# n' t( y% \8 A/ E) A2 i! ~# p  wIsChild 判断一个窗口是否为另一窗口的子或隶属窗口
( A6 y/ n2 t( h+ BIsIconic 判断窗口是否已最小化
3 q8 N% u, x, ~IsRectEmpty 判断一个矩形是否为空
" P5 d: `% I3 H) C* T" A4 ^IsWindow 判断一个窗口句柄是否有效 # }4 p4 ^; p' f: C# }
IsWindowEnabled 判断窗口是否处于活动状态
6 B2 c+ U% [, |. ^IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 - Q& k7 b( e6 [
IsWindowVisible 判断窗口是否可见
2 u; {) ]! l' S$ f! lIsZoomed 判断窗口是否最大化 4 o  L4 x8 p3 o4 i- C
LockWindowUpdate 锁定指定窗口,禁止它更新
) p! Y& S4 o+ zMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 - u; [5 H7 k& u% R% U  {5 ~0 z6 B
MoveWindow 改变指定窗口的位置和大小
+ E6 s) b! ~7 C2 Z1 p5 vOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
; h/ \- n" ?- C( [& ~4 AOpenIcon 恢复一个最小化的程序,并将其激活
7 i$ B: u& }7 U2 R2 d  cPtInRect 判断指定的点是否位于矩形内部 ( e7 R/ L7 Y9 t2 T1 R
RedrawWindow 重画全部或部分窗口
/ j( P2 k2 [' u" E$ E! WReleaseCapture 为当前的应用程序释放鼠标捕获 ; w/ Q4 Y* V% K* ~4 H; I
ScreenToClient 判断屏幕上一个指定点的客户区坐标
4 R  M  ^( `4 U+ {, ~5 MScrollWindow 滚动窗口客户区的全部或一部分
& @8 q- P0 B2 E; d; gScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
5 D9 C+ w* L  t9 H, e) M% n" LSetActiveWindow 激活指定的窗口 ! }# S4 z# P/ ?
SetCapture 将鼠标捕获设置到指定的窗口
! W" `' N& R. L2 {" pSetClassLong 为窗口类设置一个Long变量条目
# N/ _! H, w2 Z' {SetClassWord 为窗口类设置一个条目 8 F+ e  ^5 {* f6 I" R. T. f) j
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
' m. F* E2 `  e- T0 @SetForegroundWindow 将窗口设为系统的前台窗口
5 a# M8 G/ p. D# r8 ~SetParent 指定一个窗口的新父 3 F) f: w. l6 @$ B; O+ b) Q) R" |
SetRect 设置指定矩形的内容
/ y9 e0 y9 v$ H9 vSetRectEmpty 将矩形设为一个空矩形
; q4 k: ?$ V% L2 \7 uSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID ! [- u( ?7 o7 z; m* g! m
SetWindowLong 在窗口结构中为指定的窗口设置信息 # V- A! U; x/ {- L! q
SetWindowPlacement 设置窗口状态和位置信息 " k0 D8 d' e( a4 @- S: Z& E
SetWindowPos 为窗口指定一个新位置和状态 : h0 Z8 I/ @0 _
SetWindowText 设置窗口的标题文字或控件的内容 6 a+ c' U) V& C! [& X7 \+ @4 P
SetWindowWord 在窗口结构中为指定的窗口设置信息 % u( f- F! R4 f0 K! w: S
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
7 V" ^" t% d2 D% t* GShowWindow 控制窗口的可见性
4 f& A( @4 b0 ]0 T: ?+ \1 hShowWindowAsync 与ShowWindow相似
3 V) R0 V: V1 t/ D; bSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
1 Q% j4 R, }9 z* K- D. i' n! FTileWindows 以平铺顺序排列窗口
0 A" h3 ~" y0 y9 ~" v, U& BUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
! c% L, a( K) l) ]% U# u1 lUpdateWindow 强制立即更新窗口 # @+ y! I, ~" P5 A
ValidateRect 校验窗口的全部或部分客户区
8 _9 m) q0 I8 Q$ o) @) M+ z8 U; jWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口' o' f+ X/ w, E4 J; M7 H
高级音频函数—参看《VC++ 编程指南.chm》11.61 c. U! n2 s/ _) C, C1 ]1 p
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。; s8 Y5 ]' ?2 g: O- }1 A
     BOOL MessageBeep(UINT uType);
+ g4 b: k( }) q" o4 r; g该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。9 b' p7 T9 {" h/ T  W7 {
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
# [& g- i  e1 Q  M9 C% t5 ^  x2 E
级别 0 Y' s& g) K6 u# q  ^
描述 ' n! g  k! y! D/ r4 w" A8 ?0 L) X
-1 ) g& S8 ~# C1 J' m* K
从机器的扬声器中发出蜂鸣声。 ( [0 s, X, l; v
MB_ICONASTERISK
: ~. l! u% _0 O
播放由SystemAsterisk定义的声音。
* e9 ^# \% d0 B
MB_ICONEXCLAMATION
, B" l7 U( N- ~, C& m
播放由SystemExclamation定义的声音。 * }; u. n$ d8 W% C. G
MB_ICONHAND
: `/ L6 g1 I& H2 K
播放由SystemHand定义的声音。
& m( T9 G/ W- A* N% m1 Y7 w
MB_ICONQUESTION
. A6 b5 a! _" b9 B0 j
播放由SystemQuestion定义的声音。
3 u! D( q; r& U. ]
MB_OK 7 W! d3 y4 @& j7 t7 N
播放由SystemDefault定义的声音 ' g6 q, ?( ?' ?5 {- a. S
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);2 N5 p& W1 R2 D! o$ @
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
; C; q7 |" H0 l* V( F参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
, k+ |4 O' v8 H% ]3 k参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。" {, C7 U0 `  r3 p, M
标志 ' i$ n* h- x' L5 ~
含义 " I; n) G: V) ?5 {* L
SND_APPLICATION   e0 u6 C0 W& E/ [/ L8 X% w6 d; |
用应用程序指定的关联来播放声音。
- J7 E0 E5 ?4 B1 \, B* [6 |' ~
SND_ALIAS : h9 N8 }5 D8 r6 v/ v8 C
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
- P/ ?$ |$ }6 x1 _
SND_ALIAS_ID
: d' ]& y! l+ k/ f; f8 t
pszSound参数指定了预定义的声音标识符。 1 M+ U) @+ R; |: ~7 B
SND_ASYNC
: H3 T: F/ y3 n& z7 g& X
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
2 U; t3 e& F7 b
SND_FILENAME 0 d4 E  y' {+ S7 U& u9 I+ D' e
pszSound参数指定了WAVE文件名。 6 R4 ^) F. \6 h' o4 F
SND_LOOP
) S0 W/ q2 S1 o8 S
重复播放声音,必须与SND_ASYNC标志一块使用。 3 Z7 E) Q( X* y5 C
SND_MEMORY
* R- J3 k; k. t- c% g, s: J
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
' c# _6 W* ^6 x  ]; \, W) S
SND_NODEFAULT 9 D, l9 n. W& ]4 _
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
( }* f% L; L1 E" y* W
SND_NOSTOP ' O. e7 x) \0 R+ ^, s' _3 ?% j
PlaySound不打断原来的声音播出并立即返回FALSE。 & @9 `0 g: y9 a! @2 |' a- u
SND_NOWAIT
! A6 M2 R9 z" M  ?% y0 Z6 K" u* I
如果驱动程序正忙则函数就不播放声音并立即返回。 $ p3 }1 {0 \" z( L. J$ q1 f
SND_PURGE
. J8 w% \- X/ s% u& H' w
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 9 |: g* x* j9 X% w
SND_RESOURCE
0 X2 O% f, s: m  N9 c" I1 v
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
+ ]  {2 I+ a& `- f$ D, ~, v5 d
SND_SYNC
. {; l- J% Y' X
同步播放声音,在播放完后PlaySound函数才返回。
$ h& g6 a  V6 M' o. d7 `$ V
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);' j4 Q8 \; N* R! r6 _
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。8 v. C+ ]6 p2 _1 o- p+ P" p
MCI播放
* L3 t2 h  {6 W4 z# e+ n5 s/ U! o& K1 N所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
5 s* f1 G& f  X& ~: ]& o4 {  BMCIERROR mciSendString(
( ?+ O1 \9 E) d$ h9 ^9 GLPCTSTR lpszCommand, //MCI命令字符串8 T0 q, v, i2 P. u  J
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
6 h1 g( B( ?- x8 T# H% bUINT cchReturn, //缓冲区的长度9 q' V, [( e; a* `$ F, W
HANDLE hwndCallback //回调窗口的句柄,一般为NULL4 H, I3 Y+ h, K$ K
); //若成功则返回0,否则返回错误码。
/ c+ e  A. F* q该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:- i4 n% ~1 M' Q0 r) ^; l) @* A( }
BOOL mciGetErrorString(7 [( e5 G: r) R& z. n4 E
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码4 [! r' h6 P2 H# ]1 u6 Z: w% f- b
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
9 [0 T: c/ A( U* G7 M6 E/ q5 t' VUINT cchErrorText //缓冲区的长度
/ [7 s: A0 e' p8 b0 P2 |' Z1 F);
- i6 w+ F# k' u6 I! L/ O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-15 01:41 , Processed in 0.036476 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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