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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
1 G% K+ g, a3 A* X. U4 c7 I, ^7 I1. API之网络函数
3 j# M5 v& H+ n; vWNetAddConnection 创建同一个网络资源的永久性连接
' `2 x, `; ^8 v. ?( uWNetAddConnection2 创建同一个网络资源的连接 , L4 ^8 z" n- {! v$ f: h8 c+ {
WNetAddConnection3 创建同一个网络资源的连接 ' _6 h+ a  l( ^4 c* ^4 G
WNetCancelConnection 结束一个网络连接
% X# }- o2 \  O3 h. g: x  N4 q5 @9 oWNetCancelConnection2 结束一个网络连接
: s0 [5 h- }# _+ x. l- C. \WNetCloseEnum 结束一次枚举操作
* x: ~# n8 h$ z5 X  h; ]9 k6 J$ |WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接   D7 ^7 K3 p0 z
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
" M- Q% h2 ^0 N7 H$ C. EWNetEnumResource 枚举网络资源 & n1 k' t* w! P: @+ T- p
WNetGetConnection 获取本地或已连接的一个资源的网络名称
( A* l2 {6 A* `! C  D# eWNetGetLastError 获取网络错误的扩展错误信息 # t& t) I/ i) W" k
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 # ?# f. \8 z; h; i) p9 k! M
WNetGetUser 获取一个网络资源用以连接的名字 & X3 [! `3 ]7 D
WNetOpenEnum 启动对网络资源进行枚举的过程
* d! Q+ l4 a' _3 u  P8 Y  s2. API之消息函数
2 b, B7 d  U; C" XBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
2 i* h. K' m4 @2 r1 wGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 , l1 d0 i/ `5 s5 D  R4 ]  W8 X
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
) J6 f7 {4 {7 h0 k# F, d! r/ OPostMessage 将一条消息投递到指定窗口的消息队列
" R# C* [2 o- A% o7 D' gPostThreadMessage 将一条消息投递给应用程序 7 w& t# |& Q) b9 F. f
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
9 O1 _' s6 [# ^$ M. g  [% A7 RReplyMessage 答复一个消息 ) G! C" c) q1 e, A3 m) _
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
5 o$ Q* N3 Y; w; \, w3 b7 jSendMessageCallback 将一条消息发给窗口   g4 P/ Y3 y9 q
SendMessageTimeout 向窗口发送一条消息
3 c: ?2 ]" g- X& o. d8 jSendNotifyMessage 向窗口发送一条消息 ! `) f. }, A5 f
3. API之文件处理函数
/ f0 x0 u, T* x, N0 p, d9 y" x; lCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
" W3 M' A# o4 g# `" _8 rCompareFileTime 对比两个文件的时间 5 Z' q1 B9 i& c5 S6 ^7 g+ M
CopyFile 复制文件 , N! j- l# U% @5 a- B
CreateDirectory 创建一个新目录
9 D3 Y7 F3 U7 L9 HCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
% k9 |; P' @$ u$ P& v5 \) CCreateFileMapping 创建一个新的文件映射对象
- o: v" T# P2 }0 X' C* f( qDeleteFile 删除指定文件 # U; t5 ^% _6 E
DeviceIoControl 对设备执行指定的操作 $ H- N( @6 @. |
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
* `7 Q3 S: L, R2 \FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
/ B- M# n( J4 h2 f( f( ?FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
( S) t4 w" |- l0 Z+ {, OFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
" |! }0 b0 H! W2 y- O& R2 |+ \# o% x1 hFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 # _( r+ Q2 k. f1 Z+ D
FindFirstFile 根据文件名查找文件 # T& ?5 w0 g" j; [1 m! U
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 2 i) f# A3 P8 W' {
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
" R8 M, m' t& `FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 6 {8 @  P4 |' S% z0 H! c( z
GetBinaryType 判断文件是否可以执行 6 i, v6 L9 p; L: K' x
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 , y9 d: K/ W; L* K9 M: Q' a; R
GetCurrentDirectory 在一个缓冲区中装载当前目录
5 F: L* ^4 @/ G8 r4 o1 M6 DDWORD GetCurrentDirectory(
; Y+ U6 D6 d. ~  @! l! R    DWORD nBufferLength,    //缓冲区大小
, C# k+ J! j* Z3 R    LPSTR lpBuffer          //缓冲区的首地址( `% B8 q$ `( _: \- Q
    );& j  G6 @1 ^  h8 P; k( P, K
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 6 Q* X3 f1 C- y
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
9 X# P, C/ l9 P$ x2 H+ hGetDriveType 判断一个磁盘驱动器的类型
2 `* y1 p) W' j& EGetExpandedName 取得一个压缩文件的全名
& s9 _& u  P& YGetFileAttributes 判断指定文件的属性 0 ?+ W$ K6 D( y3 J; S9 Y3 `8 T
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 1 E! Z5 _8 g9 x9 L& @1 K: O
GetFileSize 判断文件长度
+ I5 f5 Z; r1 i4 _GetFileTime 取得指定文件的时间信息 1 |/ [) Z; @& ]8 _
GetFileType 在给出文件句柄的前提下,判断文件类型
) f2 Q! b1 ]6 @0 WGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
0 Y& J* [/ G  g% F% O: Q" J2 dGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 ) T+ I( A3 E# l6 D( D- i. F4 P
GetFullPathName 获取指定文件的完整路径名
' m: c$ ?. ~# nGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母   A( g( V% Q5 f, }, x
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
* b# s2 E: F5 u; V# v# xGetOverlappedResult 判断一个重叠操作当前的状态
  y/ }" K0 \9 h% B' r) }GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 , R2 g1 G  `: m' O
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 : n# y. |# ^" \3 @4 z
GetPrivateProfileString 为初始化文件中指定的条目取得字串 " p8 ?/ N$ j& W8 V
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
2 S4 Y0 J- {2 @GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
) y2 i" G8 y# V/ ~7 @GetProfileString 为win.ini初始化文件中指定的条目取得字串 + C" c8 ~/ u4 f' I5 j
GetShortPathName 获取指定文件的短路径名
+ I! E, M3 ~6 q" KGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
; Q$ C8 h" `( R' A$ n8 ]  hGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 6 {9 ?6 S9 _3 C6 B: z" r5 e  ~
GetTempPath 获取为临时文件指定的路径
4 t: N5 I0 v" vGetVolumeInformation 获取与一个磁盘卷有关的信息 ) w" p3 M' ~5 a' H: T
GetWindowsDirectory 获取Windows目录的完整路径名
7 S7 m! T6 S* H" w3 mhread 参考lread 0 P4 p+ l  I# h8 u# @& V: g" C4 x
hwrite 参考lwrite函数 5 P8 f" ^+ R% M0 @! j4 r# y
lclose 关闭指定的文件
  B+ v) s% m4 y8 \2 K$ I  p8 qlcreat 创建一个文件
/ L2 u* E' o0 Nllseek 设置文件中进行读写的当前位置 6 o" O2 P3 r2 K6 f( ?* d
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
; f! l0 N* k8 I$ e# a/ JLockFileEx 与LockFile相似,只是它提供了更多的功能
. M+ G) q- L7 i) S9 g- V8 {: a$ ylopen 以二进制模式打开指定的文件
  d, y5 F7 t$ a# Q+ ~lread 将文件中的数据读入内存缓冲区 & u% G% Y  J  w: R( d$ S
lwrite 将数据从内存缓冲区写入一个文件
! Y4 @1 Q( w7 k8 DLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
$ M# e  f$ _8 y; a5 I! F/ o8 ~LZCopy 复制一个文件
' U) @$ S1 y7 q" j& E2 zLZInit 这个函数用于初始化内部缓冲区 ' f4 L! q5 k5 U1 ~
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件   A. Z8 W+ \* T' a) F( ?, o$ K1 w
LZRead 将数据从文件读入内存缓冲区
5 [! |/ }, Z) {3 J- jLZSeek 设置一个文件中进行读写的当前位置
0 ^# ?$ [& w$ i0 }1 j; Z3 H: sMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 ; p, f0 b% U: q* i4 m9 u2 s
MoveFile 移动文件 1 s/ ?6 u# \4 B* [
OpenFile 这个函数能执行大量不同的文件操作 1 s& f  J1 J% y1 F: k% X
OpenFileMapping 打开一个现成的文件映射对象 : l5 J# Y; R; b* m8 N5 ?
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
2 D' r  c# n) N, Q; A! }ReadFile 从文件中读出数据
# Q7 C$ ?  T3 v: f: w. zReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
# u+ f- O/ w- `, m: V+ A; HRegCloseKey 关闭系统注册表中的一个项(或键)
; k$ l5 _( a3 Q8 ]; o3 wRegConnectRegistry 访问远程系统的部分注册表 + z# v( e2 c1 ?0 t- j* X8 J9 E
RegCreateKey 在指定的项下创建或打开一个项
+ W' N4 D: [' j; Z1 F$ l3 ~RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
/ Y+ G# O) b' j) Y; }* ?* ]& Q! i, tRegDeleteKey 删除现有项下方一个指定的子项
% a  y& \- o: V* MRegDeleteValue 删除指定项下方的一个值
4 ?& u4 ]1 ?+ i+ zRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
# n, S2 a; f' t: I% Z7 URegEnumKeyEx 枚举指定项下方的子项 9 R: l4 C% d1 ?, I: f
RegEnumValue 枚举指定项的值
/ Y$ F, ~* [; S8 L4 }/ pRegFlushKey 将对项和它的子项作出的改动实际写入磁盘
; r3 f( A' R% B. I/ l: k: `RegGetKeySecurity 获取与一个注册表项有关的安全信息 , C- r0 Z( x1 s, ?1 D  {
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
2 a& b* T1 _- f- z/ i" nRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
, t1 i) k, {/ `" v2 b7 W3 x: n& VRegOpenKey 打开一个现有的注册表项 * E& S  ]3 N, _9 ~4 Q3 [
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
' f  G* h7 m) c3 @: }RegQueryInfoKey 获取与一个项有关的信息
! f2 n# K+ o$ W4 ?) mRegQueryValue 取得指定项或子项的默认(未命名)值
1 j/ Q+ J/ T: PRegQueryValueEx 获取一个项的设置值
; j( \2 G, s' Z  `) D7 hRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 4 @3 m' ?0 z* p; F1 E) X$ w9 G
RegRestoreKey 从一个磁盘文件恢复注册表信息
* A7 I) L3 e# }3 QRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
( T1 ?$ o, p# D' e" ZRegSetKeySecurity 设置指定项的安全特性 * r# l5 Z! a8 O% ^9 m5 W' }" K
RegSetValue 设置指定项或子项的默认值 3 x* P: s- b4 k, b6 k/ W8 M; Q
RegSetValueEx 设置指定项的值 0 D2 X1 s/ h8 O( }
RegUnLoadKey 卸载指定的项以及它的所有子项 ; B5 E1 D1 _* m) D
RemoveDirectory 删除指定目录 0 Y8 J& J+ M9 G& R; |4 v
SearchPath 查找指定文件 9 x( D9 V# j8 ~9 D! y
SetCurrentDirectory 设置当前目录
5 g7 p# d% x/ [$ ^9 JSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 & t5 H8 ~9 t( N# j4 G6 _4 R
SetFileAttributes 设置文件属性   H2 D% S4 b* K
SetFilePointer 在一个文件中设置当前的读写位置
  T% A* _- T9 B) VSetFileTime 设置文件的创建、访问及上次修改时间
* \6 M: ^: q  X% ZSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
* u2 K9 s  J: w/ [- vSetVolumeLabel 设置一个磁盘的卷标(Label)
- w# F9 o# R9 ?0 D, ]! ^( VSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 - ?. E3 q( X! X9 K
UnlockFile 解除对一个文件的锁定
% s1 @0 Y: I9 g* Q* G  b! x3 tUnlockFileEx 解除对一个文件的锁定
0 }, p4 f; H. \7 hUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
( c3 U8 \( F* [9 MVerFindFile 用这个函数决定一个文件应安装到哪里
! f1 B1 C% I  |( MVerInstallFile 用这个函数安装一个文件 6 _. C4 N. p" A% V, J
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 # a+ U; \! d1 N
VerQueryValue 这个函数用于从版本资源中获取信息
3 F' ~6 g9 i$ [/ b8 tWriteFile 将数据写入一个文件
; Z/ i7 d' a0 M- J! Z: P2 vWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
$ S+ w* n7 g# \7 R7 yWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 - P2 }' S  T' c- B0 D" |/ n; e. E
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
& F) K) a0 `  D3 n8 ~- s7 AWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
8 U8 `& e" ^" O" XWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
- l2 H5 c; ~/ }) c4. API之打印函数 + `* L3 a; f1 t. j. h
AbortDoc 取消一份文档的打印 " U" C9 X+ l6 M* l1 ]2 [/ ~
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 ! [8 V7 h' e5 d1 G/ f2 H" O8 d
AddForm 为打印机的表单列表添加一个新表单
1 B) U" O' d" ~7 L) T4 UAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 ( W- B7 x1 q. N+ [- ~
AddMonitor 为系统添加一个打印机监视器
+ f! O7 A* H" dAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 - L4 J8 Z1 E9 k7 F
AddPrinter 在系统中添加一台新打印机 4 R5 B0 `/ P7 X$ l: P/ b( i- F
AddPrinterConnection 连接指定的打印机 $ I# w. F9 Z( ^: v, e9 y' m( b+ P, ^
AddPrinterDriver 为指定的系统添加一个打印驱动程序
' ~/ e9 a" X8 B* [AddPrintProcessor 为指定的系统添加一个打印处理器 3 P) G! Z4 |& N% A1 D* M/ [) N
AddPrintProvidor 为系统添加一个打印供应商 5 [/ m4 d- M6 {( Q: R2 C3 \/ i  [( L
AdvancedDocumentProperties 启动打印机文档设置对话框 + M6 i5 k/ q! C8 u+ R( k$ |
ClosePrinter 关闭一个打开的打印机对象 3 G3 Y: D% L$ q; P! P3 K
ConfigurePort 针对指定的端口,启动一个端口配置对话框
% r- J& M4 Z/ |; J' Z8 P5 |ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
4 j+ ]( W" L1 y  h7 }: q8 h8 fDeleteForm 从打印机可用表单列表中删除一个表单
* E' r2 M0 r/ [$ s4 rDeleteMonitor 删除指定的打印监视器 ) ]! z8 S+ {1 j5 W& r8 ^
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
4 Y9 p3 ?) V, ]DeletePrinter 将指定的打印机标志为从系统中删除
; s; {% U: b! I, E1 J6 x" }( u( RDeletePrinterConnection 删除与指定打印机的连接 9 g9 n+ S1 M9 |' K" o6 I! j
DeletePrinterDriver 从系统删除一个打印机驱动程序 ) L: ?/ R( J" J' z" v5 ]* U. S, O
DeletePrintProcessor 从指定系统删除一个打印处理器 # M7 s* X' [. Z5 `
DeletePrintProvidor 从系统中删除一个打印供应商
& Y. j! R" C' G4 w5 W, N0 PDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 2 H; t; g. A5 x# x4 p
DocumentProperties 打印机配置控制函数 : |! W' L. ^2 [& E% e. S8 _
EndDocAPI 结束一个成功的打印作业
% Q9 t3 ^5 t' h5 \  j8 ]; gEndDocPrinter 在后台打印程序的级别指定一个文档的结束
, w' ?6 s4 x- ^! ~. @EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
  e+ z0 u& \& X( E! i* ?EndPagePrinter 指定一个页在打印作业中的结尾
3 i3 l  P5 t9 S  z8 n/ zEnumForms 枚举一台打印机可用的表单 $ w" z& w, V: Y
EnumJobs 枚举打印队列中的作业 3 I/ e6 Z# E' e" n
EnumMonitors 枚举可用的打印监视器
9 t& g9 H' I5 c$ P! FEnumPorts 枚举一个系统可用的端口
- k) w2 i% l3 J# J7 pEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 9 X3 F" B3 j+ Z3 [% L7 b& u
EnumPrinters 枚举系统中安装的打印机 ( P8 y3 E3 u( F6 w9 u) f, t
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
; Q% _5 ?2 `+ s) z( [EnumPrintProcessors 枚举系统中可用的打印处理器
4 c  m  g8 {' ]; {8 IEscape 设备控制函数 - h6 k8 @( ?" {
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 : y7 t5 o+ Y4 f/ y0 y$ h+ m
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
+ j6 z/ b( O) `6 M! xFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 $ t3 t9 H0 V( V- F/ M, v; H& B
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 . a4 q( j$ q& X! D4 y
GetForm 取得与指定表单有关的信息 , |# \1 B( O' v* r% L) Z
GetJob 获取与指定作业有关的信息 & G! ?3 L& W& T
GetPrinter 取得与指定打印机有关的信息
: u* D) }' G7 Q/ T/ C/ c8 HGetPrinterData 为打印机设置注册表配置信息
# A. {7 r% l# k/ kGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 ) P/ ^0 r3 t/ z; h! H1 W
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 ( j+ @/ W* a+ Q# ~, C; Y" s
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 ) t6 }. ?) j; Y% \6 M8 l, t
OpenPrinter 打开指定的打印机,并获取打印机的句柄 # I; Y" c' W3 C
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 & h3 w+ N& d* l' B. B! R
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
" b: C* D% F8 r; j1 [ReadPrinter 从打印机读入数据
9 U, f8 b  m4 I7 O# R( nResetDC 重设一个设备场景
) |4 ~( {  F4 a% \! v8 MResetPrinter 改变指定打印机的默认数据类型及文档设置 0 V% {- T2 ~# x3 D4 k4 ?
ScheduleJob 提交一个要打印的作业 - b2 a/ E# r$ g/ G7 Z
SetAbortProc 为Windows指定取消函数的地址 / T1 m, S2 s, Q9 c& E7 h& X
SetForm 为指定的表单设置信息
# V+ R2 c% n: L. }, CSetJob 对一个打印作业的状态进行控制 # l; T% w# Q# k: W
SetPrinter 对一台打印机的状态进行控制
! m3 I$ A$ }# t$ ^SetPrinterData 设置打印机的注册表配置信息 $ Y$ k8 f. {0 D6 x1 W+ B/ G
StartDoc 开始一个打印作业
& [" G( j" G: ?8 G+ t. dStartDocPrinter 在后台打印的级别启动一个新文档
0 H2 Z& u* q2 B1 U! {. cStartPage 打印一个新页前要先调用这个函数 ( E# g" L$ |# i7 w
StartPagePrinter 在打印作业中指定一个新页的开始
6 }" F! c+ A& m; j' Y& n# X' pWritePrinter 将发送目录中的数据写入打印机 $ W) o+ _5 I$ _- }- u2 I/ ?
5. API之文本和字体函数
% z& u, ]/ g7 sAddFontResource 在Windows系统中添加一种字体资源 5 v; J0 |" i, x
CreateFont 用指定的属性创建一种逻辑字体
- Z. E, x3 S0 U3 b0 oCreateFontIndirect 用指定的属性创建一种逻辑字体 ! G- S' Z# C  r4 R$ R8 t4 F8 f: n, `
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
* ^5 s6 H, S  @DrawText 将文本描绘到指定的矩形中
" K' F/ y+ ]2 H7 p+ s" fDrawTextEx 与DrawText相似,只是加入了更多的功能 ) k& R/ v5 s1 {" f) b: u
EnumFontFamilies 列举指定设备可用的字体 5 E. Z0 e0 q% X5 T
EnumFontFamiliesEx 列举指定设备可用的字体 & [8 ~7 y6 G% I0 q2 ]2 q
EnumFonts 列举指定设备可用的字体 2 C) U3 E+ H0 g1 s9 h  c
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
" x" s) u- Q. ?; `GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
* [4 d) Y. W. Q# e" l) tGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
3 Y' i$ p) ^- ^( E4 W9 Q8 W4 RGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
5 f% v4 y' p  L5 S; c7 h9 k1 JGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 1 f$ O+ R4 O; t0 e1 B1 e  z
GetCharWidth 调查字体中一个或多个字符的宽度
: n9 x! a# h7 ?* a% K- A! ~GetFontData 接收一种可缩放字体文件的数据 : m2 ^0 Y+ M3 J# R& T
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
2 I- @; y9 U, F3 s/ p/ R" GGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 + e2 z0 O6 o! h6 k% V7 O
GetKerningPairs 取得指定字体的字距信息
7 J9 F. p/ d' H- r2 }GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 . s. v  t4 u, i+ n" N6 e0 x
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
- c! u4 m3 z& l; L: dGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
. T5 Y7 t' c4 t1 UGetTextAlign 接收一个设备场景当前的文本对齐标志 ) e& D- }5 t& U" N0 l
GetTextCharacterExtra 判断额外字符间距的当前值
$ _; e" d) x: XGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
6 I  W3 S. J4 P' f3 \0 HGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 - ]! I4 Z3 B3 D4 h
GetTextColor 判断当前字体颜色。通常也称为"前景色"
4 U( x' f7 g0 o9 @" ?. B: pGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 " `, \0 {3 e! S4 Q' k% ^0 f3 `* @
GetTextExtentPoint 判断一个字串的大小(范围) 2 d0 ^: X( i  o# y
GetTextFace 获取一种字体的字样名 + }" o( r( Y2 i" x: D" m
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
$ w5 K: N( T7 n3 k9 W4 o4 O" lGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
# z' _& P6 D6 H9 m7 G8 \PolyTextOut 描绘一系列字串 : B/ C0 E% m7 z$ f
RemoveFontResource 从Windows系统中删除一种字体资源 # g, C0 N8 U: T0 K0 F$ O
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 9 f& k4 ?0 m$ X* n  m
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
8 h1 E; s. @3 w' q1 Z# }% uSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 $ g' W6 P- ^$ b6 G9 q% T5 R
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" % r0 R3 m8 r- X2 {
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 3 K  M; C. ?" b' W/ s
TabbedTextOut 支持制表站的一个文本描绘函数 ' Q( g& h% H& b4 u0 T1 _1 N
TextOut 文本绘图函数 6 K- F$ z  s7 E% {8 Z/ J
WINGDIAPI BOOL  WINAPI TextOut(1 A6 Q% {5 m& `* d
HDC,     //输出设备
* @' C4 I7 u% x7 Aint,     //输出的横坐标+ T' p- ]8 l& \2 h/ f
int,     //纵坐标, |) @$ N1 I1 P9 r" D
LPCSTR, //输出的文本str
& R& V: r3 L) {" Hint);    //文本的长度:lstrlen(str)
" B& A' m  X* F  \/ g6. API之菜单函数
! y0 u. x9 a: @" T9 VAppendMenu 在指定的菜单里添加一个菜单项 6 t0 {9 g7 g$ ?# N0 e$ Y8 T
CheckMenuItem 复选或撤消复选指定的菜单条目
# e* i) n9 U" H. m3 p6 jCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 8 g, @. q) K% H, m7 Q( M7 l  T
CreateMenu 创建新菜单
  [& e# B; P  HCreatePopupMenu 创建一个空的弹出式菜单
1 b, f* l/ d' G0 sDeleteMenu 删除指定的菜单条目 ; }3 L# B8 K3 a9 S# \
DestroyMenu 删除指定的菜单 ; Z; Q1 J& o; p) H3 x" T$ o
DrawMenuBar 为指定的窗口重画菜单 # S5 @/ X3 ], v- w! v- E$ v* }
EnableMenuItem 允许或禁止指定的菜单条目 - L: G1 C+ W( M  u0 E9 v2 E( d
GetMenu 取得窗口中一个菜单的句柄 % h/ }! u# `6 e
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 ; }# U5 i' z" O0 S
GetMenuContextHelpId 取得一个菜单的帮助场景ID
' M. w- @1 u5 n: t; @) a! uGetMenuDefaultItem 判断菜单中的哪个条目是默认条目 ' o0 U5 v: q- a( \
GetMenuItemCount 返回菜单中条目(菜单项)的数量
( z5 P) ^) ^6 N( s- U8 E: [0 B) lGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
+ Z, W* w7 e* g' H+ x/ n) wGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
& g" s6 Q* D( AGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
( j1 q' X& N7 W0 }, u: E% h+ K& BGetMenuState 取得与指定菜单条目状态有关的信息 7 p. r+ |7 k1 v5 a  l3 U
GetMenuString 取得指定菜单条目的字串
2 r+ w: O0 {! a2 x! E! tGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
+ _, x( |) z6 ^1 Q1 _3 o# cGetSystemMenu 取得指定窗口的系统菜单的句柄   e, P: w! {0 A* X5 \3 ^% P
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
) P/ F/ P" e! F8 H: CInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 5 {; t# m- l) v' |
InsertMenuItem 插入一个新菜单条目 # j1 T+ e( \% j" D: T
IsMenu 判断指定的句柄是否为一个菜单的句柄
6 T$ P( ~' n" x, j' l  S$ fLoadMenu 从指定的模块或应用程序实例中载入一个菜单 9 }! i0 Z( b; r2 g7 u
LoadMenuIndirect 载入一个菜单 4 T1 S# s2 L( B' d/ W
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
- \1 A3 v2 c; J7 M$ k8 |ModifyMenu 改变菜单条目   _6 i% W' f. M' G3 e4 m! a( _
RemoveMenu 删除指定的菜单条目 % E& j& c, S7 H+ N: Y) S  J
SetMenu 设置窗口菜单
" d% [! V4 Z, [+ O, sSetMenuContextHelpId 设置一个菜单的帮助场景ID
$ r5 ~- h. ?- X5 a5 l  e0 OSetMenuDefaultItem 将一个菜单条目设为默认条目 ( D; F9 x1 X, W$ |* P, g
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
0 [# b' @0 O/ ?* u; Q. v' J- ~+ _( a0 [SetMenuItemInfo 为一个菜单条目设置指定的信息
: p4 n6 E3 l9 W7 ?1 kTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 # I* w6 I' d) {. X
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
+ ?7 u( }7 r; a; \5 l7 U6 \, \2 r7. API之位图、图标和光栅运算函数
3 x- {4 X+ D$ iBitBlt 将一幅位图从一个设备场景复制到另一个& r. c% r) y% Y& Y! _/ L6 m* m
     WINGDIAPI BOOL  WINAPI BitBlt(
$ J* Y1 `" O& e8 T, o4 a/ |HDC,     //目标HDC
1 v/ R, c5 _$ \; b: A" Yint,     //X1
, F8 @0 ~  }1 A1 g/ `& bint,     //Y1) P4 w+ v2 y& e% [* F) Y. @
int,     //width
/ i6 ]) i% {* a+ j4 |# Uint,     //height
2 z8 y  ^4 u# Q1 |HDC,     //源HDC9 U! [& @( v- E
int,     //右边的距离
: M5 ^5 `) [" \' p5 hint,     //??5 u% y! D( {' L* C* P( s! ^/ N: Z
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|0 R* c# W2 \5 r& }7 W
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
( {( E' |$ [3 m  |: ~  a; O8 }CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
" b- r9 _. r( ?1 e" ?+ Y/ cCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
+ g. e3 I) u; e* e- y0 ^5 h: t7 d$ YCreateBitmap 按照规定的格式创建一幅与设备有关位图 7 J( T' ^% p9 n! T1 E+ U# E
CreateBitmapIndirect 创建一幅与设备有关位图 " A/ A% z& r: ?; W' G$ Q8 N- ?
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 # r# L. L6 B. A; V! t% n1 l
CreateCursor 创建一个鼠标指针 2 k8 [$ d+ C+ [( M4 \
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 4 Y5 D0 R7 p8 d; g# O
CreateDIBSection 创建一个DIBSection
# O& Y; A8 \! I/ M5 xCreateIcon 创建一个图标   \3 D7 @- ~$ {1 w" N9 n0 |+ l
CreateIconIndirect 创建一个图标
# ~" D2 f) d0 v+ [* bDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
( d  j6 f) E7 IDestroyIcon 清除图标
/ Y  r4 L4 y" ]8 @DrawIcon 在指定的位置画一个图标 . B8 I: F  z( [; `+ K+ J7 M
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
6 G  K. O" k" W  p, ZExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
! ?% e: X& C9 A2 q- @ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 9 A) [9 l4 }9 T7 [3 x1 Y
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 % ~# U- I/ e! ?& s/ m6 v5 m
GetBitmapDimensionEx 取得一幅位图的宽度和高度
! q7 X9 i+ ]1 r9 m# |GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 . [0 u0 O" w7 F+ J' |6 V
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 " l' u; ~+ G6 ~) v" H
GetIconInfo 取得与图标有关的信息 0 ^$ k8 [) a, G1 {1 M
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 + @, z7 f" C+ H- x4 [: t6 z
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 & R% j1 P6 V6 {  ]& u
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
. m4 ~. f- V5 O6 i+ yLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 6 J! Y+ J* a6 N$ \5 O& Q
LoadIcon 从指定的模块或应用程序实例中载入一个图标
" u& [1 k# r2 P. I& O, bLoadImage 载入一个位图、图标或指针 # e- n5 J" W5 j8 G
HANDLE LoadImageA(
) W3 j( X- J' oHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()! N1 m$ T0 b( k* T
    LPCSTR,               //资源所在的目录:c:\help.bmp' Y% N, w3 |3 U2 C: o: v
    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE2 G# n; ~$ |1 m: |# B
    int,                  /// U8 N1 Q- y/ Z+ m* H, W' u
    int,                  //! a% v/ L2 f# r% H* w
UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
( W1 r% V( G1 C( ~5 d% r6 ?/ C0 qR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
) N# Z2 k( V& V3 L9 e! X6 r4 vLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
3 R  d0 z: }1 d0 b0 H. JMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 8 u% O% H% O: A
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 ! x" e. u4 f: v; m: @8 A1 S# f& Z
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 ; h' B- P- T) K
SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 ' Q) s. g, W0 j& D( i+ X
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
  ~- f' A/ ]: R1 F' l9 P1 JSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
' Q9 Q% S! w0 a# Q' ?  a; x: ESetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 7 r1 f% N  F, ]; H) l  V! F4 z
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
( l; p$ \( o% vSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 % w' r! a/ d4 w: o6 v6 F+ p
StretchBlt 将一幅位图从一个设备场景复制到另一个 % R) s  D$ Q/ }$ J0 W" {
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 0 n9 j! T  x& p1 D8 U3 Y
8. API之绘图函数 $ o2 [) X; @' D1 J
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
6 i- _; _: U) MAngleArc 用一个连接弧画一条线 / y9 q. G, T) h' A; k) s" W! v
Arc 画一个圆弧 1 a, k: v! d7 [
BeginPath 启动一个路径分支 $ m3 `5 x  `8 v
CancelDC 取消另一个线程里的长时间绘图操作
% c* s; w" p( i( HChord 画一个弦 : U8 v: {3 Y' e# x4 X" f8 M6 K
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
! ?% F: g( L8 N7 o9 ]) F4 K3 d) qCloseFigure 描绘到一个路径时,关闭当前打开的图形 ; g- }' I: T6 j( V1 n/ F( y# Y
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 " n5 B! s( F3 g, n
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
4 y! ]5 m- C/ _2 @6 Y' s0 z2 jCopyMetaFile 制作指定(标准)图元文件的一个副本 ( y6 c* E0 u: e9 [( y- V9 B
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
3 q' E6 Q4 H9 r; fCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) % @  K' W1 Y3 I' `8 d* V, W- ]8 j
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 . `9 k# n3 I& N3 F
CreateHatchBrush 创建带有阴影图案的一个刷子 8 u+ O% k( ?' A7 p* N) S$ h8 K6 {
CreateMetaFile 创建一个图元文件设备场景 & p/ j  O' W  K  \; E$ g: a! h* C
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 1 K/ w5 ^& {7 ^% j
CreatePen 用指定的样式、宽度和颜色创建一个画笔 1 ?# E/ \( Q7 d) ?. ^' i/ b
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
5 E  k+ B/ H" R  D& N+ Q& eCreateSolidBrush 用纯色创建一个刷子 ; b  g& q; q: a0 @3 r) I
DeleteEnhMetaFile 删除指定的增强型图元文件 9 U* ~5 Z3 V3 ~
DeleteMetaFile 删除指定的图元文件 ( C- o+ g* n  N3 L  d
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
- H+ H  \& [5 g1 ^* v$ W6 a- dDrawEdge 用指定的样式描绘一个矩形的边框 * _1 G- S8 y" A0 S' ^+ V
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
3 j, D9 k; k: uDrawFocusRect 画一个焦点矩形
+ a4 B8 r( b3 [) u% ?! V- y# ]DrawFrameControl 描绘一个标准控件 . E* U- r5 g" J) J' m
DrawState 为一幅图象或绘图操作应用各式各样的效果
' n+ m, R/ b$ ^3 s) H8 HEllipse 描绘一个椭圆,由指定的矩形围绕
: f0 y1 I8 X. r  rEndPath 停止定义一个路径
( R/ h0 ~7 c1 _/ a% n) tEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 7 p9 w( B: ?3 s8 T, L- i
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
: [, i0 \2 ~! A& Z1 ?EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 ' d  z3 L+ J% R4 R% z
ExtCreatePen 创建一个扩展画笔(装饰或几何) 0 V$ p4 _5 [4 q! R
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
  d  W7 I3 N/ i# v3 m, _; r% fFillPath 关闭路径中任何打开的图形,并用当前刷子填充 ! d% M5 j  X0 g5 q8 o% \
FillRect 用指定的刷子填充一个矩形
2 m9 V! \# m- m! c: \& Q* pFlattenPath 将一个路径中的所有曲线都转换成线段 5 ~* a) o! h1 L; r- r4 s! U
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 & h* M) E+ m* a" u! ~" w) X
FrameRect 用指定的刷子围绕一个矩形画一个边框 6 `0 S3 ]: o8 D% b; t  d8 T. t
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 6 U# M5 e4 a  q
GdiFlush 执行任何未决的绘图操作
& V! v7 }- W3 u) i( [+ b* K1 H5 IGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
; W0 j" i9 w; I: n6 V1 g7 gGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 % G/ w6 w0 i" x1 \' M5 n& r
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 ) j! |5 u! h, ]$ y4 p& E$ ~- D4 e
GetBkColor 取得指定设备场景当前的背景颜色
8 W. @" j( v: ?" J1 W! x1 [% S, UGetBkMode 针对指定的设备场景,取得当前的背景填充模式 . F7 D- \; z+ t9 [% B
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
: o" a$ D4 j# [  Q3 I: T" [GetCurrentObject 获得指定类型的当前选定对象 1 g& M4 ?3 x5 d- C7 M7 d. V
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
: ^, T6 e8 Y2 j) b* hGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
7 Z% }0 Y& }  [% \$ M! n: f( [GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
* u" a. {; y- K) O# O" x  JGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
* [- F* Z! s: |+ G+ V& ^% P$ `  s/ `GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 ; O, [/ V" @$ y. S' ~) o6 I8 m
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 9 {; B2 _3 h% g+ l6 F
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
" m' v! o& r* l+ r' f  @2 wGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 % U+ f- Z2 r5 r5 }
GetMiterLimit 取得设备场景的斜率限制(Miter)设置 " k0 |6 c; o$ @( b
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
/ b0 G& L! H( j. u$ ^4 {GetObjectAPI 取得对指定对象进行说明的一个结构 $ E5 Q. @; P5 J8 G( r2 \, T# w
GetObjectType 判断由指定句柄引用的GDI对象的类型 5 C* P6 S: N: f* ~; P2 y
GetPath 取得对当前路径进行定义的一系列数据
* j- d+ d/ B6 J  _% C9 L+ v& u+ IGetPixel 在指定的设备场景中取得一个像素的RGB值 ! N* ]8 y: m& Y! v. ~2 |) E# L
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
; w+ G7 }3 j( A1 c6 YGetROP2 针对指定的设备场景,取得当前的绘图模式 $ P3 K% A- X( x' a5 m$ P  J6 n
GetStockObject 取得一个固有对象(Stock) ! z0 r, G. b0 `  u
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
* m$ j8 ~& P) f0 ~; h) EGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 : b( c5 Z6 J% A
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 $ Q; s2 X% J( V/ K
LineDDA 枚举指定线段中的所有点 " h; v4 f% ?6 ^& B* y
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
% A, X" P) `* ?- n3 O/ ]& ]! k1 b6 nMoveToEx 为指定的设备场景指定一个新的当前画笔位置
" ~/ F0 x5 T% }: x# F: Z' g% I2 XPaintDesk 在指定的设备场景中描绘桌面墙纸图案
, k. s; _! y3 F4 b7 \PathToRegion 将当前选定的路径转换到一个区域里 / B' Q2 b$ l+ F- d* H; r
Pie 画一个饼图
; o$ @9 @" T. J  K9 @PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 2 Y3 _# Y8 e8 h- A* H+ D" `
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
+ v: J$ h4 W$ s. RPlayMetaFile 在指定的设备场景中回放一个图元文件 . a: c& o+ t6 C4 k* q$ L
PlayMetaFileRecord 回放来自图元文件的单条记录 # C8 D: O7 K# `( q1 N4 s
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 7 s4 y0 B9 K+ B+ G
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
+ S5 {/ s; R* V. R3 Z' q! UPolygon 描绘一个多边形 7 r+ t7 @+ H/ A
Polyline 用当前画笔描绘一系列线段
; Z& S+ T# C7 h* E1 w# B" m, q/ ^PolyPolygon 用当前选定画笔描绘两个或多个多边形 # J: k: q2 p9 J& j7 e
PolyPolyline 用当前选定画笔描绘两个或多个多边形
. N$ D" z  F1 B4 E" U4 }, x1 aRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 % r) ^0 Q" N* b6 f6 ~( _6 w
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
  m- q0 R1 q3 L" G3 f! bSelectClipPath 将设备场景当前的路径合并到剪切区域里
/ N& s9 S3 {$ I0 p0 `SelectObject 为当前设备场景选择图形对象 $ U5 |  v0 R# T7 C
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);* ]7 g1 G! K! o/ L+ t9 C
SetArcDirection 设置圆弧的描绘方向 9 h4 t" y7 C% N& F, e
SetBkColor 为指定的设备场景设置背景颜色 * C& s- m! y' Q) Z3 l
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
. W! f/ L% w2 C; I9 P: @1 k8 ^SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
! d& O+ U! k3 Y2 s, |: gSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
" X, b- J+ w& j% ?0 XSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
0 S$ E+ {  m# F: N0 DSetMiterLimit 设置设备场景当前的斜率限制 3 F9 H; I) A. q: E$ u
SetPixel 在指定的设备场景中设置一个像素的RGB值
! D  P* w* a+ J  b4 W; USetPixelV 在指定的设备场景中设置一个像素的RGB值 ) \1 [; U3 [  U; r7 {* T/ l. ]- M
SetPolyFillMode 设置多边形的填充模式
' n, b3 \: L7 l: j: g7 r, f, ZSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 " i0 p+ b+ v( R9 q& |5 E" |
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 + l7 r3 r) X7 O* f
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
; O+ R+ K- p3 |% b/ q, d' RStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 ; J/ r. K, Z) f" h, G& ]
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 & x* I* i' q5 p6 a8 u' A
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
. `& B2 {" z1 G- b: t8 x! f9. API之设备场景函数
6 }5 g. x" r5 ?/ R% [CombineRgn 将两个区域组合为一个新区域
/ g( O8 N* ^6 A, v% pCombineTransform 驱动世界转换。它相当于依顺序进行两次转换
# ~% L6 ?  ]0 f. j0 ~) t$ KCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 % V8 s! h- _# O# i. d0 [
CreateDC 为专门设备创建设备场景 & T0 z# R# M5 Q0 T" d4 z
CreateEllipticRgn 创建一个椭圆 0 ]! i$ ], J% G* ?
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 : `7 p) l: L1 w; M6 ]0 r4 Q
CreateIC 为专用设备创建一个信息场景
: O6 o+ `; Q% m( pCreatePolygonRgn 创建一个由一系列点围成的区域
1 N$ n! H. t2 S" g' _% g' \2 B& h. pCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
2 h. F- ~. B+ nCreateRectRgn 创建一个矩形区域
# k2 w! ?8 S6 K! H: C% k6 l2 VCreateRectRgnIndirect 创建一个矩形区域
% N9 E3 N5 m0 q+ iCreateRoundRectRgn 创建一个圆角矩形 ; B. J+ _6 `4 |- w9 o" j
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源   p2 T7 ?5 K* D- b* H% R4 y. }$ Z
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标   Q, _# i+ m8 P- \3 ?
EqualRgn 确定两个区域是否相等
" ?# U! V6 I  M3 W& w- gExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 - f  l2 x% @3 I" B' K  q$ ^6 W& s
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
2 Y9 h9 x+ ]' d! H* kExtCreateRegion 根据世界转换修改区域
3 u% d! u- i) R7 PExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
  V2 h1 i! o8 I/ I8 D' ]6 l, o* MFillRgn 用指定刷子填充指定区域   o4 @/ Z. V+ U" a
FrameRgn 用指定刷子围绕指定区域画一个外框
( A" [$ c- v1 AGetBoundsRect 获取指定设备场景的边界矩形 8 R' l( p) D, S, [6 n4 u5 J- v" S
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
/ r& s) C+ p9 K0 PGetClipRgn 获取设备场景当前剪裁区
$ A3 X% T4 b4 C2 EGetDC 获取指定窗口的设备场景
+ t8 m0 S' N9 G3 Y- IGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
1 Q, m* L# Z  R, Q/ V) ]2 s& iGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) & M! A7 [( H, V+ @$ a1 I7 C0 P7 H
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 / o5 M# G1 C* w& h1 O
GetGraphicsMode 确定是否允许增强图形模式(世界转换)
& ]) k5 Q! h  w1 g+ qGetMapMode 为特定设备场景调入映象模式
% k! X4 b/ |6 p+ Q/ |) c+ nGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
! D8 ]7 B  X6 m; J4 N. O- WGetRgnBox 获取完全包含指定区域的最小矩形
" H3 G8 b% t0 n! e; w/ iGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
- ~3 m7 l. d5 w; i( QGetViewportExtEx 获取设备场景视口(viewport)范围
5 x9 k1 }3 Q- C4 eGetViewportOrgEx 获取设备场景视口起点 2 J: ]# V6 q7 ~7 F; b$ d
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 3 N0 n" L* u) L. h
GetWindowExtEx 获取指定设备场景的窗口范围
' i9 o  Q- p- T% e# OGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 , |4 ~# y* H* o- S$ H: \) b
GetWindowRgn 获取窗口区域 ) ]$ F) }1 n  V+ d" @: E, w
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 7 E! X  t# j/ X  i
IntersectClipRect 为指定设备定义一个新的剪裁区
7 S& A- T8 ?) q! X0 I2 xInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
% ]+ b. }, P0 I* v1 H+ Q9 CInvertRgn 通过颠倒每个像素值反转设备场景指定区域
4 h2 \0 j/ b0 eLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 . U9 k; a' Y( ^, [* E, u
ModifyWorldTransform 根据指定的模式修改世界转换 7 I/ I, U  G5 u* Z5 c
OffsetClipRgn 按指定量平移设备场景剪裁区 / m  @7 p1 _, N5 k) w) |2 p& s, F! W
OffsetRgn 按指定偏移量平移指定区域 6 r0 }. |! O6 R4 G1 @0 y
OffsetViewportOrgEx 平移设备场景视口区域 1 S  d5 W* Z& k: S; c
OffsetWindowOrgEx 平移指定设备场景窗口起点
, T6 o4 d) p4 w2 \/ ^0 g1 jPaintRgn 用当前刷子背景色填充指定区域   q' U5 P! C$ O' X
PtInRegion 确定点是否在指定区域内 * E& }+ Q# E5 v& t) P- q
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 1 u. Z7 d( Z. G$ |0 o+ Z5 g
RectInRegion 确定矩形是否有部分在指定区域内 0 j* T% v; Z8 K- V7 H
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) 0 ~# O6 x& ?1 ?5 ^8 g. O$ \) S
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 ( D& P) W: C8 Q9 P+ V
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 # e" f  J$ W' ~& x( L# {6 I
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 2 C* a! h  A- W7 B  }6 N
ScaleViewportExtEx 缩放设备场景视口的范围
' ~5 A* y- ]! w- R5 i" W: EScaleWindowExtEx 缩放指定设备场景窗口范围
8 z0 Y( d: K! b8 z: zScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
/ T) N9 j/ T0 w& b* T8 ]/ bSelectClipRgn 为指定设备场景选择新的剪裁区 ; ?( `! D, S3 c0 H9 ?' B, n0 I# q* `! I
SetBoundsRect 设置指定设备场景的边界矩形 4 }& w' n. G( g# w+ o' N+ K
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
* d0 ^- \/ }! g5 i7 s9 S5 L# V. M" ySetMapMode 设置指定设备场景的映射模式 1 }5 H' z. o8 Q. Y, v
SetRectRgn 设置区域为指定的矩形
2 m6 i  `! H. [SetViewportExtEx 设置设备场景视口范围 5 A* Z. R7 R) }' o& Y6 T& s
SetViewportOrgEx 设置设备场景视口起点 3 P9 K+ k* Q  B1 ?9 E
SetWindowExtEx 设置指定设备场景窗口范围
7 _$ @1 Q" Z! t: n* s3 @: U4 FSetWindowOrgEx 设置指定设备场景窗口起点
& w9 G8 x7 k  L+ @  QSetWindowRgn 设置窗口区域 4 u; N. x! Z/ I- c5 ]
SetWorldTransform 设置世界转换 ; y' l- G4 M) X& s7 `
ValidateRgn 激活窗口中指定区域,把它从刷新区移走
; K+ X/ Y6 b) w! F2 ~WindowFromDC 取回与某一设备场景相关的窗口的句柄
; D/ W0 e* A6 F# H& Z10. API之硬件与系统函数
9 M  _+ T- a% ]+ G8 f! PActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
# F0 n/ K4 F( P& f: n4 j5 J$ U" nBeep 用于生成简单的声音 8 U; F  R& J* u/ G' z/ h6 }, l
CharToOem 将一个字串从ANSI字符集转换到OEM字符集 9 Z# d# j2 T# z# b9 S
ClipCursor 将指针限制到指定区域
# J* A( G6 e: L$ D# |4 |ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID ' |; A% m: b6 d6 e& X% w
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 , w/ j7 C6 V$ Q, \5 f- S
DestroyCaret 清除(破坏)一个插入符 0 W7 b1 ]1 w$ G
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 6 r7 g: k5 L9 y! F+ \; {0 X9 s
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
- M) {+ f4 V0 K  OEnumSystemCodePages 枚举系统中已安装或支持的代码页 # P9 o' M( p$ Q, Z9 s, P, ?( U
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
0 @9 _5 p" a$ c8 R# O0 C* o: D* tEnumTimeFormats 枚举一个指定的地方适用的时间格式 ! O6 y) Z2 @7 c7 s( [
ExitWindowsEx 退出windows,并用特定的选项重新启动
# B( d- X- X8 E     WINUSERAPI BOOL WINAPI ExitWindowsEx(
! o: s, {& O. v# _! xUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
5 |9 n; L6 T" u, y5 X4 a) E7 B* J( K     DWORD dwReserved); //0
7 K0 {, v# Z+ X5 a) }7 cExpandEnvironmentStrings 扩充环境字串
7 [3 V8 y8 k1 O7 l4 b, dFreeEnvironmentStrings 翻译指定的环境字串块
7 g, s- k8 I/ J, O9 r- F5 g2 }2 BGetACP 判断目前正在生效的ANSI代码页
* K7 |: ~; j  v( c2 v2 OGetAsyncKeyState 判断函数调用时指定虚拟键的状态
3 `9 y& [! B) TGetCaretBlinkTime 判断插入符光标的闪烁频率 , v) D6 V. \& n, k+ P1 _, m) m
GetCaretPos 判断插入符的当前位置
6 R6 U, U8 ?" c$ N; r8 @5 Z4 c2 X/ v( vGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
: A7 @# _& v0 w( i6 r& \" ^' ?8 v8 a0 ?7 MGetCommandLine 获得指向当前命令行缓冲区的一个指针
8 A3 ]  o0 Y, ?  I0 }GetComputerName 取得这台计算机的名称
3 q' f4 P3 h% E5 |GetCPInfo 取得与指定代码页有关的信息
: t1 @( n% x1 C. J. G/ OGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 : x# L+ q; C, Y0 }3 y5 _
GetCursor 获取目前选择的鼠标指针的句柄
2 t. Q  _3 Z) c/ C# k+ n) \GetCursorPos 获取鼠标指针的当前位置 / K% f8 j  _% S9 T9 @# b3 ]1 S
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 : z9 {$ z, D0 I; p
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 + [: O% V5 O. c
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
+ e; j( N. D3 U  A2 Y! ?GetEnvironmentVariable 取得一个环境变量的值
# i9 H. b8 z# r0 iGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
$ \4 \  @& m6 C% c7 f+ CGetKBCodePage 由GetOEMCP取代,两者功能完全相同
8 X- W; E/ l! m2 ZGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 / i/ p2 V! ^! |; g
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
' f6 B; Y6 v+ E; ^6 pGetKeyboardLayoutName 取得当前活动键盘布局的名称 7 U6 K/ k& s& T- B
GetKeyboardState 取得键盘上每个虚拟键当前的状态
& U+ I9 |+ g' w/ EGetKeyboardType 了解与正在使用的键盘有关的信息
" ?, t6 ?5 m: V" G; uGetKeyNameText 在给出扫描码的前提下,判断键名
* y) F0 J* N5 v6 W( r2 y* {4 DGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
) L, v+ [  E4 dGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
6 W" V# k3 `& ^% d; XGetLocaleInfo 取得与指定"地方"有关的信息
' T5 x4 m! \4 i% c' E0 f# `1 \GetLocalTime 取得本地日期和时间
" P5 S* @2 C" S, mGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
" H. ?9 a, _+ P$ T6 \. {0 bGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 6 ^. Z2 K& w5 u+ w; Q
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
. ?' q  v" ]4 j! {7 PGetSysColor 判断指定windows显示对象的颜色
# r/ x/ u" {9 zGetSystemDefaultLangID 取得系统的默认语言ID ! }. i6 Z+ p" o
GetSystemDefaultLCID 取得当前的默认系统"地方" ' M3 ^, [7 q! z7 x
GetSystemInfo 取得与底层硬件平台有关的信息 + ^. y) \( G! F/ b8 S% c: @7 K
GetSystemMetrics 返回与windows环境有关的信息   \1 @0 z* v! I( f; n1 r
GetSystemPowerStatus 获得与当前系统电源状态有关的信息 0 Q; X% G% A+ A- S4 W, c
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
! h, r: N4 h7 NGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
  P7 w  C. {8 n$ tGetThreadLocale 取得当前线程的地方ID * s8 N6 b. b  g! ]; [
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
! p4 G+ |2 M6 p* e3 JGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
- A0 g( e  ~1 I1 C9 w- tGetTimeZoneInformation 取得与系统时区设置有关的信息
& v' a/ ]8 ~# B6 T" W: W7 N' x1 i3 GGetUserDefaultLangID 为当前用户取得默认语言ID ! {" q' c  w- V5 L( t  O! A
GetUserDefaultLCID 取得当前用户的默认"地方"设置 ) d' N- F8 L  R, [2 a9 S, o; q
GetUserName 取得当前用户的名字 $ R9 x" O6 H# X; O( W3 S$ Z
GetVersion 判断当前运行的Windows和DOS版本 ; v( J5 z" \- f- B
GetVersionEx 取得与平台和操作系统有关的版本信息
9 a! ]- u' o/ ~8 y+ R4 cHideCaret 在指定的窗口隐藏插入符(光标) & Y6 S# O4 G" u, h
IsValidCodePage 判断一个代码页是否有效
6 A$ U3 N5 e  ~) P8 T- hIsValidLocale 判断地方标识符是否有效 % E" y" |- {# D8 A. ^! [( K
keybd_event 这个函数模拟了键盘行动
& l0 Q, x4 ^% c: BLoadKeyboardLayout 载入一个键盘布局
/ N6 U8 }  K- {. l  NMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换   y6 q' v3 S/ e* n6 T" o
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
6 Z% E7 M5 R. ^8 H; |MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 2 d; l4 M# ?! a) V: Y' \8 A
mouse_event 模拟一次鼠标事件
7 q) _9 E% i# I4 DOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 / h% y# Z3 o, ?. V+ ?( y3 P$ f8 {
OemToChar 将OEM字符集的一个字串转换到ANSI字符集 , w) P8 l2 ]- j  Q" C2 @0 n# G5 O
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 % O' g! ?4 A+ O' [! q
SetCaretPos 指定插入符的位置
& Z8 S! Q9 Q8 @! l0 g& zSetComputerName 设置新的计算机名 6 N2 y. }! \6 L& Q5 }- Y( d0 ^- D
SetCursor 将指定的鼠标指针设为当前指针 , b+ @$ ~! x. K$ ~( `' e
SetCursorPos 设置指针的位置
+ G$ j+ r( s& ~) VSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
% F5 w& z. k, A6 QSetEnvironmentVariable 将一个环境变量设为指定的值
' X* P6 p) P0 d' n! d" ^3 lSetKeyboardState 设置每个虚拟键当前在键盘上的状态
- ~' C4 u# _: Q2 ASetLocaleInfo 改变用户"地方"设置信息 : F0 I- _" ^5 i! l! g
SetLocalTime 设置当前地方时间
8 T9 M. v& n+ |% b$ ASetSysColors 设置指定窗口显示对象的颜色
# {* h; V7 n$ I, {5 h; U/ I/ _1 bSetSystemCursor 改变任何一个标准系统指针
* B& p% Q( X. @( cSetSystemTime 设置当前系统时间
6 Y$ [! V5 E) t3 r9 |5 j9 q+ w6 ZSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 7 _0 m8 B% t% ^& d7 A
SetThreadLocale 为当前线程设置地方
7 f& t6 j0 W+ H9 }4 U1 L$ X- TSetTimeZoneInformation 设置系统时区信息 & I* l! V' \6 [8 y
ShowCaret 在指定的窗口里显示插入符(光标)
5 ~; F7 |6 b! \" P/ t7 KShowCursor 控制鼠标指针的可视性
; ], r9 p+ ^2 Q$ N. r2 K/ hSwapMouseButton 决定是否互换鼠标左右键的功能 / f7 n. y) p6 k, J
SystemParametersInfo 获取和设置数量众多的windows系统参数
* }) ]# K2 o# L$ m2 x/ n' GSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 : R" C5 W- y. o' Y
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 # ^9 N0 r/ Y. b7 T3 {1 p/ o# s
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 3 M, S" M7 y  T6 \
UnloadKeyboardLayout 卸载指定的键盘布局
6 |0 K4 b, K% P0 W0 qVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态   U0 f7 j8 ^. ^2 S+ d2 i) H  ]. h
11. API之进程和线程函数 ( C" w9 Z+ j$ r
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
, ], c, a+ \7 C9 Q- {' n5 WCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 0 v6 l0 F5 M+ C0 |/ s
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 9 i& o/ S0 C' G1 z
CreateEvent 创建一个事件对象
3 i0 W; f8 V4 j: i6 iCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) # z' u0 ?% p* L5 L9 ?* J
CreateMutex 创建一个互斥体(MUTEX)
% U+ i8 R6 @6 K# iCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 $ I; F4 \* l  u" O8 N
CreatePipe 创建一个匿名管道 " l3 @( l! r- T: n5 i+ }  H5 @
CreateProcess 创建一个新进程(比如执行一个程序) # p5 t( L  o" _
CreateSemaphore 创建一个新的信号机 6 K$ n  l4 v# N  h
CreateWaitableTimer 创建一个可等待的计时器对象 ' G  w1 T9 P, \  n. `
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 # o, G2 q1 D, b, q
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
5 B5 w, S( `# y! m/ G- }+ h7 p* L9 ^1 xExitProcess 中止一个进程
! z# u! `, j% i$ N0 F% @: @FindCloseChangeNotification 关闭一个改动通知对象
5 w# }, C; {" I1 O0 x; VFindExecutable 查找与一个指定文件关联在一起的程序的文件名
: ~( I  W5 h% ]% k8 ^. ~9 O$ }( lFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 0 Z- J5 Z: `' {0 y+ r+ t
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 , X/ G% ~) `7 [" v2 t6 a+ R( f0 {
FreeLibrary 释放指定的动态链接库 9 Q4 h! q& n) z8 Y# X
GetCurrentProcess 获取当前进程的一个伪句柄 7 m& j; @; r7 \
GetCurrentProcessId 获取当前进程一个唯一的标识符
8 j* l& v& _2 E; pGetCurrentThread 获取当前线程的一个伪句柄
, ]" m4 j4 t' ]# Z5 j: @; ^GetCurrentThreadId 获取当前线程一个唯一的线程标识符
/ ?/ P8 l6 R/ ?: r: rGetExitCodeProces 获取一个已中断进程的退出代码   ^$ X! i4 ?  M( T
GetExitCodeThread 获取一个已中止线程的退出代码 5 Z8 Z% v% G/ }, c+ p* l4 a
GetHandleInformation 获取与一个系统对象句柄有关的信息 / x; y6 T" S- O/ D5 l( w
GetMailslotInfo 获取与一个邮路有关的信息
/ E0 K: q; E; s  H6 N& pGetModuleFileName 获取一个已装载模板的完整路径名称 % ]. U$ E7 D$ J% f4 {. \& G- r& b' ]! K
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 9 I. ?; r# F& Q% ]$ P- x6 A9 D
     GetModuleHandleA(LPCSTR lpModuleName);  h2 [1 M+ ]4 ?  S4 W
GetPriorityClass 获取特定进程的优先级别 % p- X- O  S+ I* G4 _
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
1 T9 a0 g. B; Y3 I9 CGetProcessTimes 获取与一个进程的经过时间有关的信息
/ s7 s9 H$ C# }2 ~' LGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
: `( Z% R+ T- ~6 bGetSartupInfo 获取一个进程的启动信息
0 P$ i3 t! M. R2 `- {GetThreadPriority 获取特定线程的优先级别 ' H; o, i* H" N5 u
GetTheardTimes 获取与一个线程的经过时间有关的信息
% Z1 j8 r3 W" IGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 9 U% [! W* B. R' z4 ]6 Q
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 ! O) |* ^5 f" @# {* P) o7 e4 d
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
5 S- L. r& Y3 L% G, MLoadModule 载入一个Windows应用程序,并在指定的环境中运行
" @! b# ~2 h4 J. T; ~: F7 j9 c% WMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
2 c* H& [. Q0 z! oSetPriorityClass 设置一个进程的优先级别 , E! X9 z) O7 Y* C
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 & ?/ g6 h' Y9 E2 f8 M9 ~. d
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
+ c2 ^* c5 r' }, a9 d8 J3 USetThreadPriority 设定线程的优先级别 . `  s7 A( l5 \1 F
ShellExecute 查找与指定文件关联在一起的程序的文件名 3 h- j, B$ X5 @. }! F1 G6 R" x3 v5 `
TerminateProcess 结束一个进程
$ j9 w5 A3 n0 s$ jWinExec 运行指定的程序 + f* }0 h& L$ g( v5 G) z) [/ a
12. API之控件与消息函数
+ k% ]" J' ?6 @9 n% L- ^AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 % x+ `9 {& {3 T1 q; F$ p
AnyPopup 判断屏幕上是否存在任何弹出式窗口
* U- o* E) q! H: ^5 R% vArrangeIconicWindows 排列一个父窗口的最小化子窗口
% y" b5 b2 |" U5 z6 dAttachThreadInput 连接线程输入函数 ; [2 G$ X3 \5 I/ Z+ h
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 + e* \, V/ c5 l0 f: P% d
BringWindowToTop 将指定的窗口带至窗口列表顶部 9 H3 x' |6 p4 q. G8 n
CascadeWindows 以层叠方式排列窗口
% W" b- k/ r! m/ oChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 0 f: C0 {' K/ h1 ?) S
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
0 c; |6 O4 P1 h9 W2 _  T* J' P; zCloseWindow 最小化指定的窗口 ( d- K& y0 y* ^! R( o
CopyRect 矩形内容复制 5 N; }2 @" P3 d  G
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 3 c: r( a. E# Z+ V0 K# C
DestroyWindow 清除指定的窗口以及它的所有子窗口 1 U# `  y! d1 a8 ^
DrawAnimatedRects 描绘一系列动态矩形 ( M" E, R, l2 R. \. l
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 ( f2 M& `! j! ]8 f" l3 o
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
, e5 b( _4 ^* I6 A8 k/ b) P$ wEnumChildWindows 为指定的父窗口枚举子窗口
/ V5 w! O$ @4 z. }$ m7 iEnumThreadWindows 枚举与指定任务相关的窗口
% x$ m9 L4 `0 A- w5 o" g0 E$ C: F: VEnumWindows 枚举窗口列表中的所有父窗口 8 I0 r  _- X$ u1 g9 c
EqualRect 判断两个矩形结构是否相同 4 M$ r  K  y" `2 l) ]( `
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 ) E% v) e# A( t( J/ x) G
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 0 L; ?; I' I4 c' S1 \5 d/ I
FlashWindow 闪烁显示指定窗口 0 Y0 m: [& a/ U" m+ O, E
GetActiveWindow 获得活动窗口的句柄
1 c# }. ^* @" O( W5 w, p9 ]/ cGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
$ n3 ?6 y* O% P/ r1 j  FGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
7 E' W" W, j/ r1 qGetClassLong 取得窗口类的一个Long变量条目 5 D9 u8 ^! I  J2 g/ {
GetClassName 为指定的窗口取得类名 0 l4 T- _+ f6 S' i+ \( g9 ~
GetClassWord 为窗口类取得一个整数变量   ]  M, Z0 o* \0 V6 j* O  P3 S
GetClientRect 返回指定窗口客户区矩形的大小 - J9 U- @6 B  |7 a: j
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 5 X, M; b2 L0 i+ T# W. a% T0 y; w  a6 z5 k
GetFocus 获得拥有输入焦点的窗口的句柄
; U1 g: O. R/ k% l. E2 r, ^6 X3 WGetForegroundWindow 获得前台窗口的句柄 ; U8 ]" X( N- j% z# c
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 6 E: g: c2 N$ u4 J* z
GetParent 判断指定窗口的父窗口
, N, @% X- ?3 a* }GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 8 g  ?( K8 x3 _1 r7 b8 f
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 - o. S/ T- O2 o- {! R) w
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
4 h2 R# Z$ E, q) \  A+ J8 f! FGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
& ]" H" Y& T4 u7 ^3 e) \: pGetWindowLong 从指定窗口的结构中取得信息 5 H8 w' q$ }1 \/ E, U: y
GetWindowPlacement 获得指定窗口的状态及位置信息 4 e* N9 v4 X/ A# m3 {
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
0 Y. |7 S! K0 Q7 WGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
1 D" t# g7 r! R8 ^GetWindowTextLength 调查窗口标题文字或控件内容的长短
3 z0 c6 _. f( t6 ]" @8 ~) d& \GetWindowWord 获得指定窗口结构的信息
: ]. e) ~! W! R5 p: XInflateRect 增大或减小一个矩形的大小
; X7 m$ q4 ]# b3 l6 H7 v7 @IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 8 ?( J5 k: |: e) ]" B# {
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 3 F( u4 ^4 m% j0 [& ]9 H4 D. P
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
2 `9 k+ B& x( q  K$ x: NIsIconic 判断窗口是否已最小化 3 g# o9 j" Z. o: I4 x) S
IsRectEmpty 判断一个矩形是否为空
5 s' W6 v0 ?! i1 a8 `/ LIsWindow 判断一个窗口句柄是否有效
, U2 `, @, l& D' _, T* mIsWindowEnabled 判断窗口是否处于活动状态
9 w, u! F4 W7 A9 ?IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
9 U, \( T, w+ {/ y( KIsWindowVisible 判断窗口是否可见
! ~( @3 Q" R" D, sIsZoomed 判断窗口是否最大化 ! \8 P" d% G; I2 q3 M
LockWindowUpdate 锁定指定窗口,禁止它更新 4 n6 ]# F/ N/ N- y
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 * L7 u$ H( t  z2 F% S) Q: d
MoveWindow 改变指定窗口的位置和大小
; N5 x' Y$ R) F+ O3 UOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 * ]4 m9 c) t: V! a
OpenIcon 恢复一个最小化的程序,并将其激活
5 T+ U  Q! G- m- g* NPtInRect 判断指定的点是否位于矩形内部 0 ]$ ~) m* V; Q; J+ e6 S% |
RedrawWindow 重画全部或部分窗口 2 ]/ B* k3 p' Y2 G
ReleaseCapture 为当前的应用程序释放鼠标捕获 % d% Y2 T! c* K+ o+ j6 G4 H% d2 f
ScreenToClient 判断屏幕上一个指定点的客户区坐标
1 {& F, Y$ J1 S6 dScrollWindow 滚动窗口客户区的全部或一部分
, L) L* f/ H2 G; m. T+ B' J; WScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
% c* t9 s2 o4 W+ z3 L) YSetActiveWindow 激活指定的窗口
9 E- T6 m, n- ]5 GSetCapture 将鼠标捕获设置到指定的窗口
1 t+ i( E+ m+ r# t- v" V. ~SetClassLong 为窗口类设置一个Long变量条目
' C8 n0 i' S7 k: X. B0 y3 C( cSetClassWord 为窗口类设置一个条目
- T9 Q, n* D, E4 [+ L& NSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 0 T' E+ H. v4 {( B2 L
SetForegroundWindow 将窗口设为系统的前台窗口
$ N8 ^1 Z0 l3 S0 G' DSetParent 指定一个窗口的新父
5 F1 H# I+ ^6 v& zSetRect 设置指定矩形的内容 3 m; A1 a% Q/ X8 t; z
SetRectEmpty 将矩形设为一个空矩形 , {) n/ y! |$ H  V
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
( R$ C) B3 ?6 a4 S. a* G* z- SSetWindowLong 在窗口结构中为指定的窗口设置信息
0 J# q. N  \8 ?. L! a4 [) d+ zSetWindowPlacement 设置窗口状态和位置信息
8 d6 p6 ]9 s% c& fSetWindowPos 为窗口指定一个新位置和状态 % p% b* X# m2 f! w
SetWindowText 设置窗口的标题文字或控件的内容
/ `* L4 k$ ~+ o7 xSetWindowWord 在窗口结构中为指定的窗口设置信息
  [# d! {5 y- M( @  UShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 ) l' k: J% A! C1 w5 H; k
ShowWindow 控制窗口的可见性 ' N+ z: V. p4 l+ h1 ^$ s
ShowWindowAsync 与ShowWindow相似 $ k6 t5 s/ R6 S# ~
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
# v0 b; F7 {( i& d7 L3 ?* B+ STileWindows 以平铺顺序排列窗口
' P  J6 [+ S& ^UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
0 O& p3 e# x* F  ~; HUpdateWindow 强制立即更新窗口
3 I0 m) d* S2 ?5 M# o7 lValidateRect 校验窗口的全部或部分客户区
9 k+ o7 x* w; N; tWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口7 U: j0 n' [. q( T2 J
高级音频函数—参看《VC++ 编程指南.chm》11.6
$ y- g5 ?  T* H! [5 w/ C6 R3 Y1 y$ e     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。! p- w' S/ i3 }  R$ i/ U
     BOOL MessageBeep(UINT uType);
: q, R5 Q! d, S( }该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
5 }; V6 A' k, U参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
3 x% k% W2 M& K# T. x8 y$ f
级别 ! ]- e& V( r6 c% C
描述 $ N( P( w8 I. V+ u9 R9 T$ m$ W
-1 % {" ?( l, i; o; |$ T7 y0 T
从机器的扬声器中发出蜂鸣声。
& W  ]* q' C5 R8 C5 @. \; }
MB_ICONASTERISK 9 R7 S6 Y% R$ |. q+ V9 O' Y* W& z
播放由SystemAsterisk定义的声音。 * N/ n: |1 w9 d4 Q' w  v- _
MB_ICONEXCLAMATION
: l" t1 P7 @  P8 o+ f+ b
播放由SystemExclamation定义的声音。
3 D" c0 y' d3 Z+ x1 V1 A$ x
MB_ICONHAND
" B+ f$ @4 I3 X+ W7 B3 V
播放由SystemHand定义的声音。 4 S( B/ H1 ]! Z
MB_ICONQUESTION / a" V! E1 Z# v9 F! f% d/ u
播放由SystemQuestion定义的声音。 ! k* w- F4 [( R  q- m7 l% V
MB_OK - o+ o+ ]$ b3 c4 ^
播放由SystemDefault定义的声音
) y7 Q3 \5 Z  X
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);! L& X2 ]2 J# g8 n) B- o
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。+ d, @  v6 g( m$ n) I, N
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。" x: t* n0 B+ @' i$ n8 c+ |
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
1 Z! u9 m4 Z& r4 h' I# R3 l
标志 , Q1 _, a) n+ C& ?
含义
' e$ V  ?2 A6 W: ]8 W" i" e4 j
SND_APPLICATION
, \) O- F8 V. b  j
用应用程序指定的关联来播放声音。
! s/ Z$ C( H$ ^' m' K
SND_ALIAS
  A3 j, @+ v# D; L  |0 G
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
& J" j7 `1 k$ O( Y/ x: {
SND_ALIAS_ID ; {9 p% q8 `: k: Y2 j7 T8 Z
pszSound参数指定了预定义的声音标识符。
# D  K9 ~9 c* V, H) A4 B
SND_ASYNC
2 _) A$ l  w$ y' N
用异步方式播放声音,PlaySound函数在开始播放后立即返回。 : ]. ^% d( |3 E) |2 _* L* J
SND_FILENAME 3 i0 y- D" L8 D9 Z: \
pszSound参数指定了WAVE文件名。
0 [" \* M' m# {" I) J
SND_LOOP
- R+ K1 G6 J- G4 q) `
重复播放声音,必须与SND_ASYNC标志一块使用。
. v$ Z; S1 Q* S  @3 z0 b
SND_MEMORY
( y4 c' y/ T  R) X4 Z' g" n% ?
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
8 ]1 }6 I: R2 P
SND_NODEFAULT 2 ^9 E% n$ [; d: P& n
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
2 `& l/ E4 D! Z: @" w
SND_NOSTOP
) g: I6 \; h. u+ Y' _6 m4 Z
PlaySound不打断原来的声音播出并立即返回FALSE。
7 R5 B" A9 O0 V# t) e
SND_NOWAIT
0 p. U8 g; q& c$ O2 W" t& Z7 \
如果驱动程序正忙则函数就不播放声音并立即返回。 + Z1 H# I. A& [" Y; J" T2 p; F
SND_PURGE ( \" c2 l9 g9 \# T/ c
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
+ j" o2 Q% r+ N* b! b: ~5 Z
SND_RESOURCE 2 v/ M1 D+ _5 A
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 1 @% u* r/ J9 O: r" q/ V) o
SND_SYNC
3 @- B: F& q; [3 \
同步播放声音,在播放完后PlaySound函数才返回。 2 ]& Q- V# u9 d$ ]! ^, R6 G
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
  g/ Q! t: s; `; k" f函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。9 A& k8 {- j$ ?0 [( k2 i' ?
MCI播放
1 o/ t+ y7 `( `1 n7 l0 E所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
3 K3 U' T8 p' u7 Z( w7 j6 P. n2 Z( VMCIERROR mciSendString(0 @: \4 s2 P& Q
LPCTSTR lpszCommand, //MCI命令字符串8 `  {- ?% h* T& a- X7 g. ~$ c
LPTSTR lpszReturnString, //存放反馈信息的缓冲区  P4 O8 h5 v" p1 p0 v
UINT cchReturn, //缓冲区的长度& |! n0 [+ Z' q4 l- e9 ]
HANDLE hwndCallback //回调窗口的句柄,一般为NULL. V! d8 w. i5 a- _3 \! m
); //若成功则返回0,否则返回错误码。
2 A. y8 a/ m, o% ~, E3 m" P该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
8 @' x9 J" \# l& BBOOL mciGetErrorString(. r$ c" r4 r+ N3 d; [" Q' `# N3 e7 ?
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
& e% ^( B, D1 E0 W1 YLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区/ v4 X( f% D  o$ z" X, ~4 `8 e: h
UINT cchErrorText //缓冲区的长度! `7 M0 m7 y" ^3 p, s: n7 ~
);
. C7 }; F( r2 x3 _2 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-19 09:38 , Processed in 0.019005 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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