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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
, N: J+ x& P* ^7 a+ C0 Q1. API之网络函数 ) a7 Z6 Z9 {# t5 z9 _( f) I4 l
WNetAddConnection 创建同一个网络资源的永久性连接 3 c  p" H9 k& M* H8 A
WNetAddConnection2 创建同一个网络资源的连接
% v% S) `2 g( pWNetAddConnection3 创建同一个网络资源的连接 ; ]- h( T$ [4 |# X8 [8 G& Z4 c
WNetCancelConnection 结束一个网络连接
( p2 m/ Y! a! ?" v( DWNetCancelConnection2 结束一个网络连接
( V9 Y0 j* i1 u: u  D! GWNetCloseEnum 结束一次枚举操作
+ K& j; o" z7 }, }1 YWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
$ F% n, x7 D$ QWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
0 o2 Z7 h1 ~. w5 v  g8 ~WNetEnumResource 枚举网络资源
/ M& I/ V* H0 c- n2 ?WNetGetConnection 获取本地或已连接的一个资源的网络名称 + t6 K* z- c! V* P3 m( a, q' l
WNetGetLastError 获取网络错误的扩展错误信息 - {0 [2 g9 Y+ _2 \
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 ) N7 I* ~5 h# c2 }1 y9 y2 a, r/ w5 I
WNetGetUser 获取一个网络资源用以连接的名字 ( e7 ^1 e8 G9 z! U' W$ f7 b3 ?+ `
WNetOpenEnum 启动对网络资源进行枚举的过程
7 s/ S; o8 ]: ?0 j. [2. API之消息函数
, J2 @9 C3 S! RBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
! q$ Y/ V7 k) m  O7 \/ o* d9 _GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 % [* C$ a, ?# E2 L1 G5 Y
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 ; X4 x( Y' ^! B8 x, h
PostMessage 将一条消息投递到指定窗口的消息队列 ' V: G$ Y; V; n% }
PostThreadMessage 将一条消息投递给应用程序
* b( T( |0 J6 t8 H  SRegisterWindowMessage 获取分配给一个字串标识符的消息编号
3 X# r$ J+ ~' Z3 b% Z3 y! AReplyMessage 答复一个消息 " M4 I! `, n( l4 \) S7 Q
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 4 p! i& w& ?7 |& M) `) U8 t
SendMessageCallback 将一条消息发给窗口 + d) A' n! W5 H& d
SendMessageTimeout 向窗口发送一条消息 6 B* @  Y' s8 ^9 ^4 d4 m. X
SendNotifyMessage 向窗口发送一条消息 3 Y: B3 G7 L0 D7 T. `8 o. l
3. API之文件处理函数
4 f8 S5 s8 o  @* F  ZCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
8 c1 q/ {- f3 \- p& W3 JCompareFileTime 对比两个文件的时间 3 W- L# {8 a# d
CopyFile 复制文件
' d% u9 ^  d8 bCreateDirectory 创建一个新目录 2 d; I* L9 J% ^! ]* [
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
7 I& T1 r3 c4 N8 m% m# Y+ ^3 g' lCreateFileMapping 创建一个新的文件映射对象 ; N" ^  h* L6 G  w8 q0 [
DeleteFile 删除指定文件 * I4 B- ?- m* M$ l- v+ h: N
DeviceIoControl 对设备执行指定的操作 / S: a  v  _9 ]) m
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 ' o3 I: m) }- h# Q( O
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 0 B/ |6 m0 o) ?* G  s5 {6 g( G
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
& ^2 f3 u; ^* e4 D4 N& u7 LFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
' b, a# V. o% u1 R: q- V3 AFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 2 T2 u3 I8 R9 c) W( }+ \% z
FindFirstFile 根据文件名查找文件
. [  a, G" q  K9 d, I5 F0 E1 aFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 & ?% o% G/ W; [" G6 e) w
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
, F, U2 D5 U' I0 M' u) qFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
% N, X5 S9 L4 U% }4 ^) d  s$ _2 |GetBinaryType 判断文件是否可以执行 & Q- r4 a/ [& j( t
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
5 \! y0 ^$ W& E, ~+ w4 {- w' t* v9 rGetCurrentDirectory 在一个缓冲区中装载当前目录
  ]1 R5 K- }! D1 p7 D# r* RDWORD GetCurrentDirectory(
. u, K* |2 \: h+ J; B5 j  O    DWORD nBufferLength,    //缓冲区大小
8 Y, k9 p( t' w7 o( ~! N3 C    LPSTR lpBuffer          //缓冲区的首地址
: ]* h0 B! a2 u4 i    );2 g* m* ~# H$ X4 e/ k% Q
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
* c) h8 P: f' C' K2 @/ _GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 6 k% o6 |* o$ W+ m: Z. W/ r
GetDriveType 判断一个磁盘驱动器的类型
: M1 Z$ Y% p* T+ ]4 AGetExpandedName 取得一个压缩文件的全名
0 N# D3 z& a' [  F# ], I6 F- w- }GetFileAttributes 判断指定文件的属性
% S* `/ U- J! Z  u5 ?- eGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
! w! U4 w4 G" R# a" dGetFileSize 判断文件长度 , x4 q4 {2 c- k/ i8 a. {9 P
GetFileTime 取得指定文件的时间信息   t+ V1 I( P3 T
GetFileType 在给出文件句柄的前提下,判断文件类型 ( S% D' `. S/ \' t% ]5 G
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 ! i6 I) K$ g7 K) o2 I
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
7 w! b% S5 U, LGetFullPathName 获取指定文件的完整路径名 " O; [6 ^. @, O! [* q( N% d7 e' _
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
3 J) [9 a5 b- P; Z$ TGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
: L$ ?- e! U: [; z8 Z" iGetOverlappedResult 判断一个重叠操作当前的状态
* m+ L5 z8 o. D$ |8 w) @. @7 }GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 + a' e- I, x' I. {  t! u
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
9 y1 q7 `4 i: [' O' M6 D% oGetPrivateProfileString 为初始化文件中指定的条目取得字串
; f& J9 Q- u( J9 s! MGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
6 o! W9 [1 Z' ?; P+ MGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
' ^  q& v3 e: }) h/ d2 GGetProfileString 为win.ini初始化文件中指定的条目取得字串
& _- @, O1 b1 l7 f0 R8 K% gGetShortPathName 获取指定文件的短路径名
: z9 ~1 f/ Q% \+ ^/ nGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
) T- z0 W2 I9 o, c% {GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 & W, U4 C: Z( D4 A
GetTempPath 获取为临时文件指定的路径 # _4 j- ?' d. U. M# }# I8 v, D
GetVolumeInformation 获取与一个磁盘卷有关的信息 3 o, ~; e& q+ ~9 T0 v: Z: Q6 x
GetWindowsDirectory 获取Windows目录的完整路径名 2 F. q! i& \$ z# N* M5 Q5 d
hread 参考lread 4 h9 x9 [3 Q, S+ C4 @3 l/ f
hwrite 参考lwrite函数 3 k. |' M# h! Y7 d
lclose 关闭指定的文件
, `" Q; F: |2 ^' s6 Klcreat 创建一个文件 7 P" g# R5 z4 p* d+ W9 ?# D
llseek 设置文件中进行读写的当前位置 ) C- O2 Q2 [7 i+ Y
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
% m" G7 {# j' P$ [LockFileEx 与LockFile相似,只是它提供了更多的功能 ; I- H1 E0 W/ @3 c
lopen 以二进制模式打开指定的文件   P: Y, D& h' z
lread 将文件中的数据读入内存缓冲区
! r# W. R9 M% z( N! m- V! i1 p# i4 flwrite 将数据从内存缓冲区写入一个文件
. F% @! r. [, p, }LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
/ W$ i; I" k7 n/ SLZCopy 复制一个文件
9 H7 A8 o. ~% W3 q9 X' D  BLZInit 这个函数用于初始化内部缓冲区 8 d, W9 P1 \0 C
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
1 J8 X! B- z8 _: E5 ]% f8 o' h! yLZRead 将数据从文件读入内存缓冲区 + _7 M: }$ `5 n& E6 Y% h
LZSeek 设置一个文件中进行读写的当前位置
0 q* J0 k' q- a+ N9 p2 N; B) NMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
# h% N: T. }- ]( o* BMoveFile 移动文件 9 K$ c0 ?# t5 q1 B2 a' m
OpenFile 这个函数能执行大量不同的文件操作
7 _& S) b( v$ @& m1 FOpenFileMapping 打开一个现成的文件映射对象 $ ?8 w0 A5 K; c) a( ~; d
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
) Z' `8 i2 X! x, l0 X' ?$ r& TReadFile 从文件中读出数据 9 n0 ^5 ~/ t# t6 ~
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
1 O/ E9 i1 w$ ^9 Y& d; cRegCloseKey 关闭系统注册表中的一个项(或键)
" f# G; U; r( e0 Y% qRegConnectRegistry 访问远程系统的部分注册表
& `1 ~  p/ z  w4 |* R4 U6 |. u9 [RegCreateKey 在指定的项下创建或打开一个项
5 t% V  t! D. M0 V  t5 vRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 " N- G9 S, v. c) Z" _) n
RegDeleteKey 删除现有项下方一个指定的子项 " Y- P+ z" L9 b- h9 l5 {1 q" S
RegDeleteValue 删除指定项下方的一个值 - I8 m2 C8 ?+ m
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
' z% m$ ~& {8 j* M2 f3 eRegEnumKeyEx 枚举指定项下方的子项
2 Y( w0 a0 K2 C8 O# D4 |RegEnumValue 枚举指定项的值
$ z2 O8 l5 C3 ^RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
3 ^/ i. r  `  R: [: KRegGetKeySecurity 获取与一个注册表项有关的安全信息 , s! n& w# V% K: U2 D
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 4 M0 ?5 k- l6 t2 w6 b: _- u
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 9 g1 J2 S& k+ v1 z% `2 F5 Z7 o5 Y
RegOpenKey 打开一个现有的注册表项 $ A6 ]9 }# C/ I4 F# M
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 + J  E+ M2 V" x0 ?
RegQueryInfoKey 获取与一个项有关的信息 " W- ]; A& f' Q& ~  D
RegQueryValue 取得指定项或子项的默认(未命名)值
: R1 E, _1 k  B3 H1 `5 i- ERegQueryValueEx 获取一个项的设置值
% Q/ v1 n9 z) l4 ?RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
" x+ O0 r9 K/ [8 N% ~' yRegRestoreKey 从一个磁盘文件恢复注册表信息
1 G  c6 _* ~" M4 LRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
% }. q* A& ?& IRegSetKeySecurity 设置指定项的安全特性 9 @. h) o, c; \$ \! N
RegSetValue 设置指定项或子项的默认值 ' [+ J* k0 X' k4 E5 e5 [
RegSetValueEx 设置指定项的值
$ I4 P  O* r  P% d& H# {( |' I9 LRegUnLoadKey 卸载指定的项以及它的所有子项 * [4 b3 `# S9 X+ H: @9 f' n
RemoveDirectory 删除指定目录
$ r* Z, [: M6 K% f/ U. d) mSearchPath 查找指定文件
; M( |  H9 p( y; t. H. s( U% }( vSetCurrentDirectory 设置当前目录 % ?! D& A) z* e5 E7 o
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 6 t( x0 o: i" v4 U, C3 Y7 w9 y
SetFileAttributes 设置文件属性 4 ^4 U  b1 p! R4 D( c
SetFilePointer 在一个文件中设置当前的读写位置
$ {. C' r) L! X/ q$ ~SetFileTime 设置文件的创建、访问及上次修改时间 2 T: |+ y6 @3 g$ @# C. \" a: H
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
- j, b; V2 y$ b0 i% C/ uSetVolumeLabel 设置一个磁盘的卷标(Label)
  T1 G3 y1 w0 A/ BSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 : }" L3 S; j6 p  D) V: K" v2 E: E
UnlockFile 解除对一个文件的锁定
7 E; @4 O/ f* R; h9 [+ wUnlockFileEx 解除对一个文件的锁定 ' Y: g* ~& h; ?9 ]/ s- H$ Q' Z
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
/ K3 J; X9 N' O1 eVerFindFile 用这个函数决定一个文件应安装到哪里 : s& g$ H9 l5 U; h
VerInstallFile 用这个函数安装一个文件 : n8 E$ x3 l3 o; \1 L; Q* n9 p
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
% }5 _, j) p6 @0 G7 P) c. UVerQueryValue 这个函数用于从版本资源中获取信息 3 o% l1 v, h; `- u
WriteFile 将数据写入一个文件
6 L3 `, O$ r+ R1 s" ^6 GWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
; h' H5 w7 [/ \1 J0 E. d, ?WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 4 I) L0 G% T: ~; L5 R2 m
WritePrivateProfileString 在初始化文件指定小节内设置一个字串 0 t! ~( s  ]" B+ n/ D% E
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 - |4 d0 y( v5 i% W+ K
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 & V, i7 m& m8 Z5 @
4. API之打印函数
! V7 b* T4 O" d+ ]+ N- pAbortDoc 取消一份文档的打印
9 w; B) j* w. r7 B5 I  X2 h  VAbortPrinter 删除与一台打印机关联在一起的缓冲文件
0 d. Z# |* w3 w* yAddForm 为打印机的表单列表添加一个新表单
0 w" M8 F2 c7 ~AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
7 V6 ?  @. L$ b" X( b' G: `3 i( EAddMonitor 为系统添加一个打印机监视器 ) w$ J' g, L7 }; f5 `' C
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 : @2 `! u; c0 Y% a
AddPrinter 在系统中添加一台新打印机 1 T& `. x' V* Y4 J3 I  d1 b  M
AddPrinterConnection 连接指定的打印机 # R3 S* ]* ^# h6 y; j8 a; m
AddPrinterDriver 为指定的系统添加一个打印驱动程序
. T3 i2 s+ \: W* m  Z7 sAddPrintProcessor 为指定的系统添加一个打印处理器
* i. I9 t  T7 hAddPrintProvidor 为系统添加一个打印供应商 , D/ _1 M& u0 R5 _2 Q- S: W$ u
AdvancedDocumentProperties 启动打印机文档设置对话框 & N, j) y* N* q) Y$ o- D- K
ClosePrinter 关闭一个打开的打印机对象
( {7 k6 J7 q% R/ l; ~6 k( u* SConfigurePort 针对指定的端口,启动一个端口配置对话框
8 O8 |$ j2 ]/ ]8 F/ DConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 $ ?6 N, b" D3 }% T. P$ J6 H. p
DeleteForm 从打印机可用表单列表中删除一个表单   f0 T( s( v9 v
DeleteMonitor 删除指定的打印监视器 - B+ q& N8 X$ M; `
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
7 v% P0 Q. v/ I! h! TDeletePrinter 将指定的打印机标志为从系统中删除
0 z8 X3 c( p/ _* LDeletePrinterConnection 删除与指定打印机的连接 3 z$ H8 P! v+ Y4 o0 m
DeletePrinterDriver 从系统删除一个打印机驱动程序
( e/ V2 [+ p* G! G6 N2 T9 f4 pDeletePrintProcessor 从指定系统删除一个打印处理器
+ I; F8 D8 x2 }9 ~1 F/ D5 nDeletePrintProvidor 从系统中删除一个打印供应商
8 v  {5 z$ @* EDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 8 }0 j3 v# S+ ~9 r' f7 @9 ]
DocumentProperties 打印机配置控制函数
% q- V/ M) _* [3 S* Z4 KEndDocAPI 结束一个成功的打印作业 6 E- _4 ]- u: I
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
( k. [0 W4 U$ [, O5 q3 UEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 . l& F9 m& F2 h3 z; }; Z. H
EndPagePrinter 指定一个页在打印作业中的结尾 / n- e, T  Q/ N" Q" j% a. c" U
EnumForms 枚举一台打印机可用的表单
3 t% w" \" J2 e4 z7 w% Q3 wEnumJobs 枚举打印队列中的作业 0 d+ L2 S& B0 g& ^1 C7 }9 F6 n
EnumMonitors 枚举可用的打印监视器
/ A$ _$ j. Y6 e1 t  [EnumPorts 枚举一个系统可用的端口 + L; e! w( u( f
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 & l% u8 y- n$ H* ~# ?9 F+ K: m
EnumPrinters 枚举系统中安装的打印机 + \. D' R2 S+ @: d" H5 z  r$ w
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
$ Z! K8 C4 o  |6 wEnumPrintProcessors 枚举系统中可用的打印处理器 " \4 `4 b- O# s# U2 n- p' c( l4 \0 y
Escape 设备控制函数
7 \7 x5 d& W" N9 V- k3 _6 r- QFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
; r; @% ?, w4 ]6 D2 [) x; L" ~/ u7 rFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 3 L; Y9 t$ q) \8 m0 t3 |% L6 m4 g2 _
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
! K4 u: \$ u# \- {3 t0 ]) `FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 * B* b8 K1 T' T! S
GetForm 取得与指定表单有关的信息
5 h% P0 ~/ y0 d& B, \6 vGetJob 获取与指定作业有关的信息 ( O3 {5 ]0 q6 j) s4 x( E. U
GetPrinter 取得与指定打印机有关的信息 " g  s. `4 Y3 a% o
GetPrinterData 为打印机设置注册表配置信息 & `( Z) s" p, G# Y$ u" j. @2 b
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 & s9 S9 U4 X. f5 ^  C3 f. m
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 8 T% N7 m! ^: k, {& v/ [
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
3 J, p4 o$ {5 eOpenPrinter 打开指定的打印机,并获取打印机的句柄
  r" s( I4 r; {! Z& L% }PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 # z2 X7 i" s$ V2 k5 ^& |
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 7 n, ^8 d- X8 O5 V
ReadPrinter 从打印机读入数据
3 K* r+ Y( s8 ]1 B6 \3 F( z' cResetDC 重设一个设备场景 # O0 p' z* y: i8 s' W+ a
ResetPrinter 改变指定打印机的默认数据类型及文档设置
2 {* t0 H* q$ H% H% a3 J+ v2 N. W: lScheduleJob 提交一个要打印的作业
' o" D" J3 W, M$ ASetAbortProc 为Windows指定取消函数的地址
) W4 }5 E6 a+ z* S' u! rSetForm 为指定的表单设置信息
% d6 o1 X2 J& ~3 H' f7 ?SetJob 对一个打印作业的状态进行控制 9 q3 _/ C# @, f; y6 B
SetPrinter 对一台打印机的状态进行控制 # g! _2 m+ y3 [- e2 n
SetPrinterData 设置打印机的注册表配置信息
0 |6 I0 u+ X6 a! o6 ?& tStartDoc 开始一个打印作业 * O8 e' y3 d' o1 @* K" V$ l
StartDocPrinter 在后台打印的级别启动一个新文档
& O/ J9 |- m! L- ~4 a$ ?1 LStartPage 打印一个新页前要先调用这个函数
. u: M$ v3 G6 k6 l& Q" m) O1 k; X; @StartPagePrinter 在打印作业中指定一个新页的开始
( e$ O1 R3 s0 G& t' ?WritePrinter 将发送目录中的数据写入打印机 $ v; s0 X7 i$ y( x- X$ n! H
5. API之文本和字体函数
6 [4 _6 ?% D# l; o$ L' UAddFontResource 在Windows系统中添加一种字体资源 9 v/ J! C7 t2 n+ y3 E
CreateFont 用指定的属性创建一种逻辑字体 : B* F7 M$ d" z/ l
CreateFontIndirect 用指定的属性创建一种逻辑字体
$ _7 o4 ]9 r) J1 Q6 Y- r% vCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
8 ]) m5 q3 R  E& M7 r3 bDrawText 将文本描绘到指定的矩形中 ) l  L6 f- c' g+ i. C. C# j0 P3 V
DrawTextEx 与DrawText相似,只是加入了更多的功能
; m6 K8 K5 e% k0 ?* ?' IEnumFontFamilies 列举指定设备可用的字体
1 B0 k5 ~5 l2 X) L& ]EnumFontFamiliesEx 列举指定设备可用的字体   y! I$ n3 k/ V$ z0 A# {6 n; \6 g
EnumFonts 列举指定设备可用的字体
4 _% A, D3 d. F6 J$ J7 O& cExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 & Z" T$ N* E: Q+ j% Q
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
7 Q1 I4 q$ s. Y* v5 mGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 8 R3 N( ^& i' I5 j! i6 l) g
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 . z  M9 E% Z( m% `, U9 t9 W  b
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 . U' R6 @% p) P7 m
GetCharWidth 调查字体中一个或多个字符的宽度
: p5 _  m$ z  T: R: c& M5 ?+ O2 rGetFontData 接收一种可缩放字体文件的数据 ' m% H/ h1 ]- d$ a
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 # A* v  q% r) g( K
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
3 X; x3 e0 _- i6 y9 z2 M* ?5 ~3 f4 g9 YGetKerningPairs 取得指定字体的字距信息 # g' p+ C% j" {- H  }/ Z3 V
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
( h& i0 d4 K$ w0 e, R4 nGetRasterizerCaps 了解系统是否有能力支持可缩放的字体 * j# y2 J+ K& `% W! H/ [& @4 J
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 ) ~) J' d2 ^/ a/ v6 s
GetTextAlign 接收一个设备场景当前的文本对齐标志 - o7 z! t4 g- C% c4 q9 `0 o% h6 k
GetTextCharacterExtra 判断额外字符间距的当前值
& H- L2 E6 n9 ]) a  VGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 # n4 E( V/ `: e
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
9 q9 C& V2 [- |' t: g6 XGetTextColor 判断当前字体颜色。通常也称为"前景色" - z- u$ m5 B* R+ y( v7 t. `& y
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
$ }7 {( c- D/ ~% |6 {. C' \( kGetTextExtentPoint 判断一个字串的大小(范围) 2 V& R9 ]8 D6 I( l8 `+ c! P  E
GetTextFace 获取一种字体的字样名 , }: J1 n# N( P5 k
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
* L, G. y. v5 n8 U8 B4 y  m$ dGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 6 U# Z4 w: ^" F
PolyTextOut 描绘一系列字串
* h2 n! H, p8 m  u$ j) E' s) rRemoveFontResource 从Windows系统中删除一种字体资源
. k3 [# {+ d4 qSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
. y: r9 L- t  T% t3 V# Y" q$ X+ }3 DSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
. k6 `" C' B4 t/ u4 }' C+ pSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 4 B% B2 X* C9 z( E3 q- C' o
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" 0 e. M2 y0 Y. a  \
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 6 ~* @8 q7 m/ g! O* o8 ^1 _
TabbedTextOut 支持制表站的一个文本描绘函数 ' B. w9 x) }0 B& b" Y
TextOut 文本绘图函数 ( G$ ?: z* z  k  ]5 Y% p( \
WINGDIAPI BOOL  WINAPI TextOut(
7 R' |/ d& ?2 WHDC,     //输出设备( ]# ]* K3 i8 Y/ c
int,     //输出的横坐标+ Z& t  g: H  G
int,     //纵坐标6 g' N! y7 M/ _7 M. U: o
LPCSTR, //输出的文本str
& [4 D% h+ L: Wint);    //文本的长度:lstrlen(str)/ v3 N7 }. ?# q5 b5 p/ }2 B5 u
6. API之菜单函数 7 j  _8 ?, Z& y* J8 r8 `& o9 `
AppendMenu 在指定的菜单里添加一个菜单项
) W  q0 T) E. @: V  vCheckMenuItem 复选或撤消复选指定的菜单条目 7 [! D( N4 ]( m. ^9 @# z! B
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 % n! h/ P! i  [) S2 `% Y
CreateMenu 创建新菜单
6 I! z+ y5 [/ }CreatePopupMenu 创建一个空的弹出式菜单
/ K( G2 x" S- L& P8 S) F6 I/ F3 ~" ADeleteMenu 删除指定的菜单条目 ' O; C9 {2 j! L* h- k
DestroyMenu 删除指定的菜单 $ U) R: }0 M8 j& e% G4 l) }
DrawMenuBar 为指定的窗口重画菜单   b" G& k2 |% a, ]6 `3 W
EnableMenuItem 允许或禁止指定的菜单条目
- y% K! w; p, U3 GGetMenu 取得窗口中一个菜单的句柄 - e6 ?7 M9 l, J4 G" B* v
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
5 p! e6 l2 [% ^# n$ z7 O! O( @GetMenuContextHelpId 取得一个菜单的帮助场景ID
0 Q& y; H% R8 d& _; |GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 $ Z7 h3 ?2 h2 M# x- }
GetMenuItemCount 返回菜单中条目(菜单项)的数量
* v$ v0 O/ ^3 F2 O0 j% @0 |GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 4 o* K. k  `; U* _
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 * B5 h' p4 }# [! P
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
3 w1 S; E- x# n# v$ T1 M* X! LGetMenuState 取得与指定菜单条目状态有关的信息 ; j4 N+ n, j+ k; w' m; ?: j
GetMenuString 取得指定菜单条目的字串
' H! i4 d! O+ W  BGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
# H! X) f% M$ p! u# F0 g, YGetSystemMenu 取得指定窗口的系统菜单的句柄 7 L% C. n4 y+ G: ^, l
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
. H1 d3 Z0 F. k/ y) O8 ?' OInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
- B0 p1 ]4 W9 v4 y0 HInsertMenuItem 插入一个新菜单条目 ( R; h( \& a9 ~; y! \* F
IsMenu 判断指定的句柄是否为一个菜单的句柄
3 E  Q  i/ g; n$ DLoadMenu 从指定的模块或应用程序实例中载入一个菜单 + @6 v. J3 R! L
LoadMenuIndirect 载入一个菜单 3 h  y! N) q' N  }+ P6 x# i* q$ k
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ' w$ `9 U) E4 X4 U( n: X9 q9 d/ o
ModifyMenu 改变菜单条目 ; ?# N- a* z6 m7 K) }/ f; ^5 P8 ?1 Y
RemoveMenu 删除指定的菜单条目
/ X8 S  p7 v- G' u7 r% b6 @SetMenu 设置窗口菜单
; B: x2 i% B7 G% \: `' @5 Y) O' CSetMenuContextHelpId 设置一个菜单的帮助场景ID
' B9 @1 V$ ]1 h" s1 O8 _SetMenuDefaultItem 将一个菜单条目设为默认条目
5 Q' u) t9 n, C/ N$ eSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) / o1 S! _( B# G5 q: i. }; V- R/ l
SetMenuItemInfo 为一个菜单条目设置指定的信息
4 V* v& n$ Y4 b1 r5 G$ E, yTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
  B6 E! e( T, aTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
3 V) l. V. O" I- {0 R+ O/ Q7. API之位图、图标和光栅运算函数
9 l5 y9 h8 Y& e" {( F$ c3 tBitBlt 将一幅位图从一个设备场景复制到另一个; d5 O, r1 F4 m1 ?6 ~$ Y: ]; H
     WINGDIAPI BOOL  WINAPI BitBlt(
+ n& ~8 H' j1 v' i$ hHDC,     //目标HDC
- T. G: z$ n  \2 B- Iint,     //X1* Z& v+ l+ [5 Z  U5 V" c
int,     //Y1
# r/ l; s( c" t$ Zint,     //width, E. W% P3 }' {
int,     //height
. t$ B1 [0 X! L3 CHDC,     //源HDC8 Y* ~) V( d- r: v1 {& B
int,     //右边的距离, R% I, r( L* Q6 ]1 H" s8 U* H
int,     //??: i$ o) \8 P) l8 d$ P9 J, i! T! Q
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|/ k7 r, u7 \) E/ I2 \: ^) S7 O
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
' H- u+ I7 z' rCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
7 \* f5 ~1 b8 C' i. bCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
" V& y6 J( V( C/ h5 h$ SCreateBitmap 按照规定的格式创建一幅与设备有关位图
5 n, Q0 [$ C8 y5 a2 ZCreateBitmapIndirect 创建一幅与设备有关位图
  ?. x: x4 _5 i6 `" E4 D' \+ S3 ^( ECreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容   P/ t# r; g$ K& v0 q
CreateCursor 创建一个鼠标指针 1 Z! p$ W5 n2 v6 s% `- A/ ?" v8 U1 x
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
/ |: U& G/ f8 |  `( hCreateDIBSection 创建一个DIBSection 0 m2 Q, X. W& V3 O5 I+ n' q- Y& P4 C7 u
CreateIcon 创建一个图标
" E2 L( o3 r: T- T8 oCreateIconIndirect 创建一个图标
+ Y! F* G/ T3 \6 \+ \' WDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
; J/ G9 w" x) E& N4 l7 kDestroyIcon 清除图标 * e' y3 H. F. U5 J+ V7 E1 O
DrawIcon 在指定的位置画一个图标
* Q" i) r( F3 nDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
4 D; b# X* h. o; mExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
8 P6 R0 W% Q: H+ i- j1 P1 @ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
0 I  ]* b6 F+ b& l" FGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 9 l9 s# y& J! A0 |- A- |. _
GetBitmapDimensionEx 取得一幅位图的宽度和高度 * n0 U( y9 T: g
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
% r5 f7 n, e2 _: c. kGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 + b2 k) T  J$ a8 s
GetIconInfo 取得与图标有关的信息
/ t! R, e* e3 t& p+ CGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
# o( c4 Y1 P, e6 L$ C  Y( J, ^8 uLoadBitmap 从指定的模块或应用程序实例中载入一幅位图
. z5 y6 y1 F4 fLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
2 m1 f$ z9 x+ }( Q0 Z7 s) M4 V: qLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
" X0 ~6 a/ A* U2 M+ I* h$ KLoadIcon 从指定的模块或应用程序实例中载入一个图标 8 F2 D! f1 m) [9 Q+ z! T. v
LoadImage 载入一个位图、图标或指针
3 B* W4 c5 G( @( ?4 RHANDLE LoadImageA(9 u# L0 K: x, r# Q
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()4 \( i# S- H* V, l4 v8 t1 m
    LPCSTR,               //资源所在的目录:c:\help.bmp! B# _' O; s% J; \. V. q; ?
    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE9 I2 E# ~% i( b, m
    int,                  //
0 S, X! F) ~) B2 l  y8 }2 n2 N    int,                  //
( l5 f1 `5 v9 `" a. `! x# j: fUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|. @9 X) t, C" l
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|6 Z% J+ |$ q1 Y, W+ G# w3 q  h
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED# j; d$ M: ~- N' w+ P) k
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
" \& v8 y+ h. @0 v! E; qPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 8 ^5 R2 L1 y5 r1 p2 x( n3 n
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 $ d9 W. w8 u; L& t- O0 ^5 V5 @8 u% u4 Q0 V
SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 ! Z) @  M: G9 R$ p
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 ' o4 k- E6 n( L+ a
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 ! w/ X( L! W3 w8 N6 b% }
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
8 ]4 u9 y* k* G. n/ `SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
, L8 Z" c& U. ^0 ~# p  B# FSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
! S) P* I( h6 n6 `StretchBlt 将一幅位图从一个设备场景复制到另一个 : A% T8 z2 W8 {% h
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
% N- C5 \) m& p7 n: ]8. API之绘图函数
! Q+ X7 e2 _6 K$ x# a5 Y- ?AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
3 R& F$ E' L3 K7 {5 B$ }AngleArc 用一个连接弧画一条线
1 O0 d5 [3 d7 A1 S$ f. GArc 画一个圆弧
; L* b9 m. }8 U" C! E; d3 M+ q9 p5 u2 iBeginPath 启动一个路径分支 8 D& q( e1 s$ V5 n3 u, i% W
CancelDC 取消另一个线程里的长时间绘图操作
3 s8 s  r9 b  V3 A7 s) b1 U4 XChord 画一个弦
" j* x9 d1 v2 _CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 $ V% S* v$ q, v6 _- X) \
CloseFigure 描绘到一个路径时,关闭当前打开的图形
# n% x# z* l8 W' {9 I# pCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
- R9 y8 o- n. T: M& k' tCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
2 B$ `+ v$ @! CCopyMetaFile 制作指定(标准)图元文件的一个副本 ' B! G: L2 M& K( h; L
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 $ V- `3 `$ E8 i" }" r+ ?
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
" i' E$ g$ C( m+ J4 O! dCreateEnhMetaFile 创建一个增强型的图元文件设备场景
* F, F  x* \& [9 {+ _CreateHatchBrush 创建带有阴影图案的一个刷子
2 a5 r; }, ]! G  \8 S1 \; ICreateMetaFile 创建一个图元文件设备场景
; D: ^, O; c/ G- g6 h- |: fCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 " B+ S8 _& X* q
CreatePen 用指定的样式、宽度和颜色创建一个画笔
4 ~1 Z: M" C- aCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
9 M$ e) s* X: A8 hCreateSolidBrush 用纯色创建一个刷子
& e5 U5 x) n0 KDeleteEnhMetaFile 删除指定的增强型图元文件 , W' s# |. X4 W% Z
DeleteMetaFile 删除指定的图元文件 % q/ v( D/ {$ x6 n1 Y" x
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放# f4 k  S( P+ ^
DrawEdge 用指定的样式描绘一个矩形的边框
, H0 f- ]) s: r5 v  |DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
; z; f* j8 A* `9 T2 Y# ?+ {DrawFocusRect 画一个焦点矩形
$ M* \& [: z- [: m3 a$ nDrawFrameControl 描绘一个标准控件
9 M; e9 G( k" p! gDrawState 为一幅图象或绘图操作应用各式各样的效果
: C5 [  ^% C2 IEllipse 描绘一个椭圆,由指定的矩形围绕 : Z! w# ]5 T& |% L; p$ D$ E
EndPath 停止定义一个路径
) q* e( L0 f$ K# S  h/ @% f" k* W" ]EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 + _% j9 ?0 q/ j# ^( h6 k! K1 }
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 8 H4 C8 f: |1 _$ @  \2 y' p
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 4 A! K/ o  C8 d: q: g
ExtCreatePen 创建一个扩展画笔(装饰或几何)
% r, _; U8 m6 L. x" XExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 , p; B3 i) E* w% l7 D& G
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 - W4 I) l+ c- E8 H# W5 b
FillRect 用指定的刷子填充一个矩形 $ p+ Y% o: \: |2 y
FlattenPath 将一个路径中的所有曲线都转换成线段
# f, T! W6 \8 M. h, jFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
- p3 A% l" e4 i" r: }0 vFrameRect 用指定的刷子围绕一个矩形画一个边框
; s, p  G8 l/ u; K" ?GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 - ~, Q3 E5 @; e  g1 O
GdiFlush 执行任何未决的绘图操作 2 s8 R" u/ y2 E
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
3 b. {8 @, G' B- S3 qGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
5 W) g$ F- @. H# x$ j, kGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
9 P2 k; a$ J+ n5 a5 p( C( ?GetBkColor 取得指定设备场景当前的背景颜色 ( s/ ]: o3 U: \8 ?8 `/ e7 p
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 5 G4 t0 T' r- ?* t3 u- A) |
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
% X: T8 {$ c6 y8 ~GetCurrentObject 获得指定类型的当前选定对象
4 f8 m" R3 l7 K5 {) ^" m5 hGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
3 a: c1 m1 x. q  UGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 5 W7 P4 h( S/ Q0 H
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
. x+ Q2 c1 u/ N" H0 ?* cGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
' M; J$ ^4 h2 {* M" OGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 + k0 f+ O+ b, y! z$ B
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 . r" Q. A9 b8 i; \, {
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 ) |3 F5 b7 P+ \9 F$ G
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
4 B0 W2 Z2 }0 X3 G1 Q0 L, NGetMiterLimit 取得设备场景的斜率限制(Miter)设置
3 Q! ?9 ?/ D0 s" C4 e0 _  P7 `GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
" x& R2 c! ]0 s) _+ m4 S2 jGetObjectAPI 取得对指定对象进行说明的一个结构
- m2 L- F7 Q8 U- O5 |GetObjectType 判断由指定句柄引用的GDI对象的类型 7 r- [1 a8 v: i9 _( V' v4 l
GetPath 取得对当前路径进行定义的一系列数据 3 ^! ?' h5 v1 v' W5 M
GetPixel 在指定的设备场景中取得一个像素的RGB值
. C. j9 @/ z, ?0 J9 A8 m# pGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
0 t4 ^! p' ?, r8 J' |GetROP2 针对指定的设备场景,取得当前的绘图模式 ; K6 @4 x3 C" |8 f  Q* R/ L
GetStockObject 取得一个固有对象(Stock)
; n/ Z& E$ |! d$ }( Q% iGetSysColorBrush 为任何一种标准系统颜色取得一个刷子 " e# ~9 R8 g0 G5 s
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 ; I" Y! K' f+ i6 Q
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
9 v/ S' s1 \/ C$ o+ mLineDDA 枚举指定线段中的所有点 ) t/ P% j  @- v% q- T5 m
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
4 @* G$ `( _5 W: zMoveToEx 为指定的设备场景指定一个新的当前画笔位置
, S0 p# h/ a+ jPaintDesk 在指定的设备场景中描绘桌面墙纸图案
% H  d& l) x1 `PathToRegion 将当前选定的路径转换到一个区域里 + M4 f) f% Y% c
Pie 画一个饼图
9 v( j7 \! [4 _PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
* j5 W4 }' {6 t- d7 [4 MPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 - P5 [) Y7 n( T- E
PlayMetaFile 在指定的设备场景中回放一个图元文件 2 S5 o6 ^9 \& v0 a. A$ d- e1 D3 C/ v  A: p
PlayMetaFileRecord 回放来自图元文件的单条记录 5 ^- s: O6 Z* D1 E8 c
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
# N! B5 ~/ o# P/ e3 N9 _PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 * F* @( q: Q" q- |% |4 l2 y. |
Polygon 描绘一个多边形 ) [' O: T( _- Y
Polyline 用当前画笔描绘一系列线段 & `7 r% t7 Q9 k5 p, X! i
PolyPolygon 用当前选定画笔描绘两个或多个多边形 0 d$ O0 G1 C2 D# y" Y: p
PolyPolyline 用当前选定画笔描绘两个或多个多边形
/ F! S, u* h6 D6 n4 ^3 d. NRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
; C: L' B1 ?( D; ^" Q. S+ wRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 " a1 j# a" Q" u4 Y1 G
SelectClipPath 将设备场景当前的路径合并到剪切区域里 5 e" n& @) ?. g
SelectObject 为当前设备场景选择图形对象
3 @2 z0 i# f$ A3 h# N     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
( {' U6 \* _  e: u1 sSetArcDirection 设置圆弧的描绘方向
) |4 D+ ]8 ]3 d& Y) rSetBkColor 为指定的设备场景设置背景颜色
: d  r* v6 b, A7 o/ {1 fSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
. L) Y  {4 f# ]SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
4 D, c: [" ?$ J5 y- qSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 5 W. X; n5 a9 n( P( r) {
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 - \" Q8 [0 O7 H  J# a4 O
SetMiterLimit 设置设备场景当前的斜率限制 + g' l+ N* `4 [( l* l
SetPixel 在指定的设备场景中设置一个像素的RGB值 3 K4 G: }/ e" C  R+ j
SetPixelV 在指定的设备场景中设置一个像素的RGB值
7 o6 c: c+ S( ~( [7 [7 t- D8 m6 h, ?SetPolyFillMode 设置多边形的填充模式 & p! K) |- D( ]/ X; B" d
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 : P' r5 M. T$ ^
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 2 `: @4 d( W: q4 C) z0 u
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
7 R0 q# ?2 v. wStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭   r/ P4 i& C& I& l
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 4 W1 x4 {' z, T( l* D4 ?9 k3 |
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
8 S: N- |( z+ ?& Y/ w& z$ M, o9. API之设备场景函数 - v' Q5 e1 c5 I# B$ a1 E' Q5 Z
CombineRgn 将两个区域组合为一个新区域
8 S0 [& I5 R7 u9 o8 tCombineTransform 驱动世界转换。它相当于依顺序进行两次转换
& @# H1 }$ s; `2 C  H& LCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
- v6 }& x& }0 D& j  @) pCreateDC 为专门设备创建设备场景 / W6 U, K! v/ {- l2 ]7 v
CreateEllipticRgn 创建一个椭圆
  a0 {. @* j) m% ^) b6 u8 y/ yCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
4 X( k' S0 z. [/ hCreateIC 为专用设备创建一个信息场景 ! z. P- V, q, u5 t% J7 O4 n. r1 s
CreatePolygonRgn 创建一个由一系列点围成的区域 3 Q! n: V) O) k8 P' T
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 4 n2 O6 g; @+ [% M, \
CreateRectRgn 创建一个矩形区域
/ y$ z; N# @! B! o1 b2 yCreateRectRgnIndirect 创建一个矩形区域
5 Y# p5 C* O! q1 }% ^; J3 u0 m  gCreateRoundRectRgn 创建一个圆角矩形 ! K: J. b9 Z+ f" B" {: T4 ~
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 - W9 s0 K, r$ u* ^  R
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 ' w  j% |; `4 S' t. w5 _- t! {5 P
EqualRgn 确定两个区域是否相等
1 Q/ M8 O' u5 C% m. j; i3 D! S: p- c4 VExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 ) E( s+ x. e" \' x& H& D. _
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
& b( a6 k1 v. Y0 w- l+ n) BExtCreateRegion 根据世界转换修改区域
7 e+ \0 d5 j7 o4 t* Z; aExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 - j' z( E4 \4 P
FillRgn 用指定刷子填充指定区域 6 Y$ c$ B& D5 D# H3 O
FrameRgn 用指定刷子围绕指定区域画一个外框 $ W& \) e: q$ W( f% X% b9 K
GetBoundsRect 获取指定设备场景的边界矩形
0 B" d$ z  i/ D4 u, e6 E2 H0 eGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 % J* B) H" ]3 n7 ^, l# l
GetClipRgn 获取设备场景当前剪裁区 9 L6 j: Y( K8 ?# h" g& y7 W
GetDC 获取指定窗口的设备场景
$ R' h0 a5 y. ?" N: tGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
' q: E0 W) k% c( B- K- kGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
% v: l& h+ M% j, H& c) O" ^& {GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
& a- R* K6 h' R2 h0 l1 ~% VGetGraphicsMode 确定是否允许增强图形模式(世界转换)
+ _( K5 M* V1 S3 P/ NGetMapMode 为特定设备场景调入映象模式
: c! H1 g" K; z6 q9 gGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 . S  j2 C( t. q$ w% [
GetRgnBox 获取完全包含指定区域的最小矩形
7 |6 l3 [/ O- CGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
+ B( i! A! z- J7 S6 DGetViewportExtEx 获取设备场景视口(viewport)范围 / E- W& w# h; r
GetViewportOrgEx 获取设备场景视口起点   {/ s; E- J3 f$ t
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
6 q" R7 w) E) k% ZGetWindowExtEx 获取指定设备场景的窗口范围 # j# u, Z7 t( z2 l# p
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
& v5 y. J3 J( C, q1 N! ZGetWindowRgn 获取窗口区域
+ {4 b) W- C, F9 Y- gGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 - z+ l0 M- J; g- ]: Y& h
IntersectClipRect 为指定设备定义一个新的剪裁区
6 K/ Y0 [5 T5 A% `2 x4 J; QInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 . N9 |* F; y  j6 P$ ?9 x% t
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 5 R" {$ F, N" I
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 : S$ L/ B9 z( B. u
ModifyWorldTransform 根据指定的模式修改世界转换
1 m; V  b# E( M, R) ?, g' kOffsetClipRgn 按指定量平移设备场景剪裁区 & S- t& k  K5 f& }* z0 I2 _
OffsetRgn 按指定偏移量平移指定区域
2 T! I6 ^: ?, n/ s* }OffsetViewportOrgEx 平移设备场景视口区域 3 E. s: C7 E  w2 H
OffsetWindowOrgEx 平移指定设备场景窗口起点 4 z* |6 X6 V4 U- c4 R& k
PaintRgn 用当前刷子背景色填充指定区域 # [7 D- u& u6 C. p1 e  i  i& K4 ^! X' ]
PtInRegion 确定点是否在指定区域内
  F+ _" X" g4 g3 XPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
' o& H: u4 i& I" Y0 F' QRectInRegion 确定矩形是否有部分在指定区域内
  h+ G0 m& x; Z- m  cRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
5 @$ z' R6 c$ }* mReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
. K3 U, w1 e2 ?) q& x- KRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 # F: h* K  M2 L+ [
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 * E# y5 n, E2 S
ScaleViewportExtEx 缩放设备场景视口的范围 ; m) p( A) z: R
ScaleWindowExtEx 缩放指定设备场景窗口范围
) p; v% Z4 k. Y( [* JScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
7 V3 |- C) a( d/ d. ASelectClipRgn 为指定设备场景选择新的剪裁区 + I; V; L2 O/ u' r
SetBoundsRect 设置指定设备场景的边界矩形 ' R9 a: ~/ z( u4 F# a
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
" r2 o& c5 J' |' NSetMapMode 设置指定设备场景的映射模式
3 ]7 u+ Q; F7 L% Z1 O; |3 X" u* n2 R% `6 mSetRectRgn 设置区域为指定的矩形
' L! m& e# U; f& K- `. M# _SetViewportExtEx 设置设备场景视口范围 . N9 @+ z4 q. F- ]4 I
SetViewportOrgEx 设置设备场景视口起点 - l& q0 J( h7 o# |+ ^5 x7 e
SetWindowExtEx 设置指定设备场景窗口范围 8 O& W. x! [8 U3 R( W' L
SetWindowOrgEx 设置指定设备场景窗口起点
4 I8 R7 s7 _4 o. x5 M0 Z. tSetWindowRgn 设置窗口区域 9 L. W( [4 c7 R) c. Y( {: e
SetWorldTransform 设置世界转换 8 m* L$ e4 i- Q
ValidateRgn 激活窗口中指定区域,把它从刷新区移走 $ [; }) q7 n$ Q  V( N
WindowFromDC 取回与某一设备场景相关的窗口的句柄
3 g+ K. C0 h- y/ {. ?" U10. API之硬件与系统函数
7 w" U4 b8 ^8 [  n& s& W: I& L' @ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 ' O, x  A6 e4 b1 U
Beep 用于生成简单的声音 * l9 i! u$ {/ T6 Q# Y; }
CharToOem 将一个字串从ANSI字符集转换到OEM字符集 ) ^" h8 r7 ~& z3 P8 K/ E
ClipCursor 将指针限制到指定区域 ) T, \$ i% w# I. K. ?0 S
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
0 o! e( ]4 F) z3 v3 Q2 K5 _CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 0 o6 {- y7 w/ R5 o
DestroyCaret 清除(破坏)一个插入符
4 V$ M) g: `/ `# A/ AEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
0 }) X& T5 Q, A3 `! ZEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
+ Y$ W9 `; U) q  y$ NEnumSystemCodePages 枚举系统中已安装或支持的代码页 0 b1 f9 [* Y* K- n- W) e" O/ ?
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 6 N* ?" B0 f2 U& R; @7 M
EnumTimeFormats 枚举一个指定的地方适用的时间格式 ( D! h' f6 @7 r2 a% M; U; m' B
ExitWindowsEx 退出windows,并用特定的选项重新启动
% \* y- p4 Q3 m( f+ ~     WINUSERAPI BOOL WINAPI ExitWindowsEx(
& i* U, x& t. ^. m& p; q8 UUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
4 o# G0 D, c" q4 s. ?- i     DWORD dwReserved); //0
% |( x2 b2 ?6 t9 IExpandEnvironmentStrings 扩充环境字串
- Q/ X0 r8 i: uFreeEnvironmentStrings 翻译指定的环境字串块
: ?) c( z. w- J0 aGetACP 判断目前正在生效的ANSI代码页 $ o: S* V3 L8 ^' B# ]
GetAsyncKeyState 判断函数调用时指定虚拟键的状态 " h5 J5 _: C3 M! O' j2 z6 w' P
GetCaretBlinkTime 判断插入符光标的闪烁频率 ! Z: u% D' a$ d& X. w" v- `, j
GetCaretPos 判断插入符的当前位置 ) O1 z6 Q: q6 U* T; D
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
1 w: G. Z$ v- z8 q7 Y; t! AGetCommandLine 获得指向当前命令行缓冲区的一个指针
; l0 Z8 _: L- ]) V5 J, `; f3 U1 @GetComputerName 取得这台计算机的名称
/ m+ x. X$ e7 l7 |GetCPInfo 取得与指定代码页有关的信息
. @- y; y8 J& O1 @8 M  ?* @- pGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 ) R, ?$ {8 K3 }- E& p
GetCursor 获取目前选择的鼠标指针的句柄
5 W2 i/ J# A$ CGetCursorPos 获取鼠标指针的当前位置 5 K% c" g' k7 s+ F5 `( q# {8 O
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 , G" P5 @" k3 P& O
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
+ }! k" H; T: @GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 7 K5 \$ A% V$ F0 v
GetEnvironmentVariable 取得一个环境变量的值 " B& J' c0 D! b1 v) i$ B+ W- a- A
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 0 i* u1 {# Y5 h" }$ r0 [6 P
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
+ ]7 o* E  f$ K! R9 a. ]# OGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 % F/ \) ]7 ~) |( J: h5 r
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 $ Y& x' z1 G. F% O, }: T
GetKeyboardLayoutName 取得当前活动键盘布局的名称 % q/ Z9 P; j$ y" B: K+ u: f
GetKeyboardState 取得键盘上每个虚拟键当前的状态 / Z* C8 d  a, N2 r8 E
GetKeyboardType 了解与正在使用的键盘有关的信息
1 I6 ~1 E" S% y% j3 ~9 y& ?GetKeyNameText 在给出扫描码的前提下,判断键名 - x+ k& L3 W' S. F9 h+ q
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 0 n9 A, l8 t, I0 V" L* T/ x, J' a
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 0 E& e. r" _* [# L6 a) `. B! H
GetLocaleInfo 取得与指定"地方"有关的信息 # F% W4 d3 k. f# i) w! |
GetLocalTime 取得本地日期和时间 2 }2 X) U/ H% v/ d0 L0 a; c
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 4 b9 a3 q" H) t- J8 y* J6 W9 M' V
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 8 `5 O* N' y: g, f
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
. ~* V% |% i% g7 sGetSysColor 判断指定windows显示对象的颜色
' D) q% a5 y7 r, y3 [GetSystemDefaultLangID 取得系统的默认语言ID
' ~& M+ q$ \  q; K! E" m% k1 s+ {GetSystemDefaultLCID 取得当前的默认系统"地方"
# S" E. n# L7 a' bGetSystemInfo 取得与底层硬件平台有关的信息 7 k$ j& B4 v0 U* b
GetSystemMetrics 返回与windows环境有关的信息 1 m3 }* `) _* D$ ?- W  M
GetSystemPowerStatus 获得与当前系统电源状态有关的信息
, M+ w  ?3 O; w1 t; R% b6 S: A' vGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 8 C( S; c5 G; T! z
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
3 u9 U: w9 H7 U) p4 _  e+ ZGetThreadLocale 取得当前线程的地方ID
: Y8 ?" x, ]5 }" C9 e! \/ `. b7 XGetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
5 Z( C( J& Q* D2 HGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 7 v+ c/ K/ R5 {! a
GetTimeZoneInformation 取得与系统时区设置有关的信息 . u& O( i4 C! Q% M- S0 @
GetUserDefaultLangID 为当前用户取得默认语言ID
9 I3 ]4 n# A' U( n% S/ n; ^* |* lGetUserDefaultLCID 取得当前用户的默认"地方"设置 5 Y3 Q0 Y1 D9 H6 X2 K
GetUserName 取得当前用户的名字
4 M1 w5 M% z* r" h, I6 }GetVersion 判断当前运行的Windows和DOS版本
/ B8 m7 t+ j' U$ R% d  eGetVersionEx 取得与平台和操作系统有关的版本信息 9 X. D9 P! f: @* Y* `0 m( Q) x
HideCaret 在指定的窗口隐藏插入符(光标)
- P* R1 n8 Z  e% `. ?, j$ V1 KIsValidCodePage 判断一个代码页是否有效 : w* J. c8 R. u, f8 q
IsValidLocale 判断地方标识符是否有效 4 z( v$ F$ J: L5 j8 I$ o
keybd_event 这个函数模拟了键盘行动
9 |+ g5 c% c( MLoadKeyboardLayout 载入一个键盘布局 ; c6 x$ A2 U% i( N5 d& [
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 ! i6 D# i' \2 r* H
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 2 D. g0 W6 ?# }/ O8 ^, x
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 1 C  N7 b# c4 R
mouse_event 模拟一次鼠标事件
/ T+ o" b' y; pOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
- h7 V; U* u' Q$ V6 OOemToChar 将OEM字符集的一个字串转换到ANSI字符集 1 Z! X' {' \/ B. V. h7 Z
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 " g. S0 |  Z0 q8 U; n; L3 W1 G* X
SetCaretPos 指定插入符的位置 - k$ a% k0 G$ E- H; b1 W) w
SetComputerName 设置新的计算机名 4 y% t  z/ M# N8 V& E4 {
SetCursor 将指定的鼠标指针设为当前指针 ) v2 `- n9 f# v* y; R7 q7 t( X
SetCursorPos 设置指针的位置 * s3 J% W+ h* J
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
6 E/ T% g/ [! ^# J; x2 [1 ?0 x5 l# fSetEnvironmentVariable 将一个环境变量设为指定的值
+ A$ Z+ F! ]% r' PSetKeyboardState 设置每个虚拟键当前在键盘上的状态 + x) z6 P* z" h
SetLocaleInfo 改变用户"地方"设置信息 / W. F5 {0 Q$ N; V2 m
SetLocalTime 设置当前地方时间 : j3 y  [% Q$ P' V) ^& j
SetSysColors 设置指定窗口显示对象的颜色
- @; I& ?6 ^% l3 C, l( y, O6 BSetSystemCursor 改变任何一个标准系统指针
' a; |3 a2 F5 g3 L9 B5 BSetSystemTime 设置当前系统时间 $ J2 G' \& [$ @/ N- y5 V' l; V5 g$ p
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
9 J. Y5 D" j0 B- z% ?8 \  QSetThreadLocale 为当前线程设置地方 5 N' m) e# F- I" n+ ^. B
SetTimeZoneInformation 设置系统时区信息
$ S! M' h6 q) s  r5 K3 CShowCaret 在指定的窗口里显示插入符(光标) # m$ f+ x% I5 j
ShowCursor 控制鼠标指针的可视性
4 N( B+ D7 E$ S+ XSwapMouseButton 决定是否互换鼠标左右键的功能
0 S+ F7 c- t2 T1 `SystemParametersInfo 获取和设置数量众多的windows系统参数
" F9 E2 B" {8 n6 U0 |9 ISystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 8 i& x$ |# s' X; H  a
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 7 u, B7 k% V, H! x0 \4 W
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
" {' a1 @; k6 [0 CUnloadKeyboardLayout 卸载指定的键盘布局
* n! T, B) I6 ^- u  W: Z. D$ jVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
. n) K$ B7 I5 y- n3 {11. API之进程和线程函数 1 a5 E+ f; t9 S
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
0 V& \& z  M! x" M" BCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 : w% |$ Z* U2 y
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 ; C, `: o! @" e8 r5 M4 i% _9 @. c: K
CreateEvent 创建一个事件对象 7 Y: b8 n3 ~' n
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
& h# Z2 S' k# L: A0 ~CreateMutex 创建一个互斥体(MUTEX)
2 T' L7 ~! A! tCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 0 t0 l" I% F3 N
CreatePipe 创建一个匿名管道 - g9 O. E( E! _1 p: ^
CreateProcess 创建一个新进程(比如执行一个程序)
- w8 M* T% c9 P2 a% v) n! yCreateSemaphore 创建一个新的信号机 , U3 y. @( t0 D5 g2 a
CreateWaitableTimer 创建一个可等待的计时器对象
9 [  m- n# k! G( Z) G3 uDisconnectNamedPipe 断开一个客户与一个命名管道的连接 % k% c- @9 P8 K! U/ _
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
9 W; K6 a# ^2 s- c5 M; cExitProcess 中止一个进程 0 V1 A, s& ?- R8 `9 {5 Q3 p$ T1 |$ |
FindCloseChangeNotification 关闭一个改动通知对象 % u# p6 I% v  o% i3 F0 v3 f, m
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 3 L+ L. P: t4 o
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 * }! T9 m8 i  w. R. I9 `
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
: G6 n1 T5 l/ O8 e# ]5 WFreeLibrary 释放指定的动态链接库
' j$ m4 X- y, i6 a2 b" xGetCurrentProcess 获取当前进程的一个伪句柄 # y' b; ?, n! a6 p, o. D/ Z
GetCurrentProcessId 获取当前进程一个唯一的标识符 % ^  D9 p" C0 W$ x
GetCurrentThread 获取当前线程的一个伪句柄 ; }% i4 _8 r' V6 }3 r, }4 F$ i
GetCurrentThreadId 获取当前线程一个唯一的线程标识符 " g6 v6 ^# K- J' t
GetExitCodeProces 获取一个已中断进程的退出代码
6 a) X2 `. g5 E8 C3 c8 W: s4 tGetExitCodeThread 获取一个已中止线程的退出代码
7 H. p9 X5 H$ ]GetHandleInformation 获取与一个系统对象句柄有关的信息 0 q6 g8 V/ z# z' Z
GetMailslotInfo 获取与一个邮路有关的信息 4 {1 B3 T. k  Q; m' E
GetModuleFileName 获取一个已装载模板的完整路径名称 ( B0 K8 \# ]5 J8 N; c" W3 L
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 ' Q7 G2 C1 S9 y/ a' I
     GetModuleHandleA(LPCSTR lpModuleName);6 x0 Q9 L% C$ R! ]/ G" B: m
GetPriorityClass 获取特定进程的优先级别 3 z6 [5 H8 }! b
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
7 @" T( y4 |" O! C" j0 f9 BGetProcessTimes 获取与一个进程的经过时间有关的信息 / w* ~" B- L7 X. g( ?# p+ X  ]
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 6 f* L" Q2 H; b6 H
GetSartupInfo 获取一个进程的启动信息
  e' L4 ]% p6 [$ U7 LGetThreadPriority 获取特定线程的优先级别
/ K' Y2 M% c+ H: d9 fGetTheardTimes 获取与一个线程的经过时间有关的信息 - M* E0 U" h+ T  _' O
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
) Z) h  M) Q! k, w* k' bLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 / a4 ?" G" _' e) a7 {. r% T  n( f
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
( N' T0 R% m' u* z+ @LoadModule 载入一个Windows应用程序,并在指定的环境中运行
6 d) ~( L7 E+ l" ?4 `  `MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
. C2 H3 o, L( J& [9 D8 e1 e+ m2 }SetPriorityClass 设置一个进程的优先级别
5 C0 f, p4 l) gSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 ; R) o  |( t( `
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 ( h& p: |5 y6 G6 B/ D/ b
SetThreadPriority 设定线程的优先级别
" v, [0 m, v) b& tShellExecute 查找与指定文件关联在一起的程序的文件名 ( ]/ c) R. T) z1 j
TerminateProcess 结束一个进程 & Q6 ?' G7 i1 q
WinExec 运行指定的程序
. V$ Y8 D' W6 k12. API之控件与消息函数
! j' J" M) w( o$ I' g/ OAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 9 j: Q- e5 e% W) {6 h/ V
AnyPopup 判断屏幕上是否存在任何弹出式窗口
+ Z) X4 J3 f0 P& O; @ArrangeIconicWindows 排列一个父窗口的最小化子窗口
4 O% p2 e, ^+ W0 N% oAttachThreadInput 连接线程输入函数
/ e" L2 ]# V% W! b6 rBeginDeferWindowPos 启动构建一系列新窗口位置的过程
% [: ~3 N8 T& \: C7 n7 ^BringWindowToTop 将指定的窗口带至窗口列表顶部 ( Q- F2 ]# h8 @: j
CascadeWindows 以层叠方式排列窗口
; h3 Y5 R/ [1 I' ?* _& yChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
: k+ @2 \+ u4 x1 |5 F3 ^ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 ; N, _) p  m/ L5 {5 Q7 L; u9 }
CloseWindow 最小化指定的窗口 6 A( A" A: ^2 \
CopyRect 矩形内容复制
. E) o4 C: N1 X5 {: O2 `5 @DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 # k7 {# b( t8 r4 V
DestroyWindow 清除指定的窗口以及它的所有子窗口 & f' e% l# i% @8 J- I  h: @
DrawAnimatedRects 描绘一系列动态矩形 " B* }1 T5 }5 _! f$ V7 q
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 3 [3 a0 G' r4 _4 G2 [
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
* \3 A- z0 d# _EnumChildWindows 为指定的父窗口枚举子窗口
3 a! R' g" ?0 D8 VEnumThreadWindows 枚举与指定任务相关的窗口 7 M7 `$ h2 I" c6 a1 E
EnumWindows 枚举窗口列表中的所有父窗口 - E! Z/ p' h$ p) G3 b
EqualRect 判断两个矩形结构是否相同
! h  l' g0 M+ v7 g: t, r* ]5 hFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 0 O, j: a6 _' i/ R! h  t
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 ! V) s6 l' Z" s) I6 T. Y/ R8 {6 X8 x
FlashWindow 闪烁显示指定窗口 5 t% K8 B/ n; S; @2 J0 [, ?; S
GetActiveWindow 获得活动窗口的句柄 $ ~4 Y& r% ~2 Z/ f- S: U
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) 2 |  r2 E& _3 i2 f
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 ! M5 l0 L; _# W6 J( {7 H7 D
GetClassLong 取得窗口类的一个Long变量条目 / k' s/ L2 ]& x0 A) ]' _
GetClassName 为指定的窗口取得类名
5 g: @. T; z6 y2 c& {) JGetClassWord 为窗口类取得一个整数变量 4 A; u: E- d5 d" E2 w
GetClientRect 返回指定窗口客户区矩形的大小
0 x6 I9 g. V0 R' v$ x2 E+ dGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
; j- l' R# i. Z0 g' |( lGetFocus 获得拥有输入焦点的窗口的句柄 8 u8 x! p6 n& {2 g
GetForegroundWindow 获得前台窗口的句柄
- b$ T; P- m+ ]GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
3 J* u/ @+ a2 w* X' V2 jGetParent 判断指定窗口的父窗口 & x4 K0 j8 i+ w: Q% N2 P) y/ E  T, J
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 7 c7 U5 G$ Z& c+ A  X
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 7 G6 g1 I" m" B: b" n
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 ' w( p  r8 c1 V5 t+ f+ K# r
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID + ~+ ~! O. K- M. \" Y/ S
GetWindowLong 从指定窗口的结构中取得信息 ; j7 i0 M/ ]0 b7 l" p! q
GetWindowPlacement 获得指定窗口的状态及位置信息
) I% R  a" Y- b5 y$ t/ v/ qGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
& q3 r9 j# L: |  o  I0 VGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
0 M; h3 B! J: D5 S8 GGetWindowTextLength 调查窗口标题文字或控件内容的长短 % A& k1 M  {' @1 O; x
GetWindowWord 获得指定窗口结构的信息 ' P9 ^0 U0 [' N& W* v/ k" I6 O
InflateRect 增大或减小一个矩形的大小 # z- q* z$ u9 u0 }0 n: v# a/ G" z/ f
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 $ x. _8 }3 |8 C' j
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 & M0 }6 D, ~6 I6 u( R
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
0 w6 @  j0 [, u$ r  j/ VIsIconic 判断窗口是否已最小化
3 K8 }8 o; k  B# G; v4 @4 nIsRectEmpty 判断一个矩形是否为空
( c0 u; h" c2 k5 ]4 _8 {7 q- }IsWindow 判断一个窗口句柄是否有效 * n" T' A2 p1 \( A8 ?* s; ?
IsWindowEnabled 判断窗口是否处于活动状态 : v) @) O! [# Q; q" a; p$ S
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 # U4 k# I6 {* G. o4 k
IsWindowVisible 判断窗口是否可见 / w% Y; i$ Y0 _) {; O; |, x/ ~
IsZoomed 判断窗口是否最大化
) G/ \( F6 K' Q& S; TLockWindowUpdate 锁定指定窗口,禁止它更新 5 M# @- t1 ?$ I7 Y$ T$ Z
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 ! a5 V4 ?. a9 y% C. A
MoveWindow 改变指定窗口的位置和大小   j& S: z  Z/ z* p: y8 k
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
8 J* O1 U3 a1 E# F* E" @, zOpenIcon 恢复一个最小化的程序,并将其激活
' R: {0 q$ t* H, a& E; |PtInRect 判断指定的点是否位于矩形内部 4 u* u  M" S' G& h! Q' \8 d
RedrawWindow 重画全部或部分窗口 / _2 ]% W3 Q4 Q8 l; ^0 G
ReleaseCapture 为当前的应用程序释放鼠标捕获 ! p* K4 S5 W* g! Q. }* `
ScreenToClient 判断屏幕上一个指定点的客户区坐标
6 q' F0 K% n) _5 ^& l# p6 r* x1 w  RScrollWindow 滚动窗口客户区的全部或一部分 ( J$ ]) M3 A8 E
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 ) w4 }7 r) n  A- m
SetActiveWindow 激活指定的窗口
7 M" s( t1 T: j: r7 F3 N' eSetCapture 将鼠标捕获设置到指定的窗口 # O! _' Z8 m0 g3 U9 _0 u
SetClassLong 为窗口类设置一个Long变量条目 ( ]! I+ C2 g7 u/ b) p, s
SetClassWord 为窗口类设置一个条目
2 i: @) J: G1 P4 s; aSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 5 S7 Z4 p! H3 G* k' z2 C
SetForegroundWindow 将窗口设为系统的前台窗口 $ ?' d4 ]. C+ |
SetParent 指定一个窗口的新父
+ m! p' {! P  tSetRect 设置指定矩形的内容 6 x2 I, m6 t4 M
SetRectEmpty 将矩形设为一个空矩形 6 }5 q! m6 m: N) C( h: `
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
/ S0 j1 r4 \3 j* FSetWindowLong 在窗口结构中为指定的窗口设置信息
4 Z" P3 P0 b; `: {4 T4 [SetWindowPlacement 设置窗口状态和位置信息
8 n7 [3 D* @# O9 y/ K1 f, CSetWindowPos 为窗口指定一个新位置和状态
$ o# l- d( N9 ^* ?' nSetWindowText 设置窗口的标题文字或控件的内容 ) L, T4 k- J/ n$ O4 T5 ?2 |* x
SetWindowWord 在窗口结构中为指定的窗口设置信息 ' L2 D" h2 F4 ?0 u; ]3 J0 C
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
" {* b, Q- z# T9 KShowWindow 控制窗口的可见性
# z& u! G$ B( P. W) v1 U% KShowWindowAsync 与ShowWindow相似 2 z3 M3 e: T$ I+ E0 [8 p( E" s
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 / G5 t7 ]& w# b  l& y8 {' N5 }' U* M
TileWindows 以平铺顺序排列窗口
8 A6 W4 B9 N8 MUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
3 U4 J- ~5 l  E  H9 R, W6 U; iUpdateWindow 强制立即更新窗口
! o8 s0 s/ `/ n- EValidateRect 校验窗口的全部或部分客户区
1 y. E0 _* |) X$ k* X' xWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
4 {  s# \0 F, l; `" n5 t7 q6 c高级音频函数—参看《VC++ 编程指南.chm》11.6( v( v9 V% j7 `
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。8 P6 M8 Q0 w0 B& Q* O" K( ~' X
     BOOL MessageBeep(UINT uType);! M- S  G4 ?1 J/ v. W6 @" w5 [0 w
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。( w$ n5 _2 u6 T* {$ z# S
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
0 g! t2 \& S) _$ y, Z
级别
: ^& u5 l+ X. B1 q2 e
描述 ) J; ?% t# P6 }# N; l* l* a
-1 % J# \( }: D: a) x" s4 u) }5 @4 _
从机器的扬声器中发出蜂鸣声。
' Y$ C4 G; L# u! R6 p7 Q
MB_ICONASTERISK - S" W! |- _; o0 F4 J+ e2 Y
播放由SystemAsterisk定义的声音。 1 K3 T9 i, E: y3 V( w& U9 N: R
MB_ICONEXCLAMATION
( _9 m2 S7 J- V0 C
播放由SystemExclamation定义的声音。
- _- V! i. |3 |
MB_ICONHAND
( L8 V1 l; W- Z# D" e$ @( _. l
播放由SystemHand定义的声音。 2 T: c" q* @+ e; g! k4 G
MB_ICONQUESTION 4 H9 p  E9 h( }& K( ~  T" m
播放由SystemQuestion定义的声音。
1 i% P! I+ x- g! J# P/ P" K
MB_OK . }& @) w$ o7 s
播放由SystemDefault定义的声音
$ b/ x) m( Q! L% h2 j2 I
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);
2 R* s" I, G- B" i; c参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
3 w' r3 {/ Y' _5 I3 ]3 o$ F参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。4 J$ @/ K& f6 O3 f( O% \/ i, B: X
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。" U! A  Z% g1 I( j7 E
标志 , w% `7 n3 k1 k1 e
含义 ! T$ S( ]- j) M* C3 z
SND_APPLICATION
! h& ]9 A0 M3 z# F
用应用程序指定的关联来播放声音。
  N$ B: J1 I8 j0 m
SND_ALIAS 4 o  o3 ^* A! \* t* [- u
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 5 S) D% \+ `7 i% ]/ V
SND_ALIAS_ID " c( ~, ^2 k6 t  z+ Q2 a
pszSound参数指定了预定义的声音标识符。 ; }6 v( ?: ]7 f6 l1 i# u& V, A
SND_ASYNC
# Q$ z1 k) w' e
用异步方式播放声音,PlaySound函数在开始播放后立即返回。   S4 f) O7 Y0 j
SND_FILENAME
: {8 e( a+ N8 D+ ?1 T3 v' p
pszSound参数指定了WAVE文件名。 . x2 v9 g: z/ \) G
SND_LOOP - U3 W* z) W. D% j- r' W9 v$ I7 ~
重复播放声音,必须与SND_ASYNC标志一块使用。 . f0 b7 a+ i- r2 E0 ?" ?/ J
SND_MEMORY 7 \- ]* D: F5 h
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 # E: `7 d4 T: r( k
SND_NODEFAULT
4 |  Q) a: u4 R6 q2 Q6 t
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 * D6 {9 h$ Z  E) [
SND_NOSTOP
0 |8 d. w, K9 @
PlaySound不打断原来的声音播出并立即返回FALSE。
3 C4 b! Y) L5 R6 {3 M% C7 w
SND_NOWAIT
8 U# R$ x; d. u* {
如果驱动程序正忙则函数就不播放声音并立即返回。 7 u5 N, f# [1 A$ f9 Y+ ~9 F
SND_PURGE
/ G% x; K" f7 y
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 7 M% u6 V1 g# v% L# c9 |( L6 r
SND_RESOURCE
4 }6 @' M+ ~7 J3 m
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
6 f7 ^( R8 h' l) D
SND_SYNC
2 V3 [# ]; Y' l1 i& i: T
同步播放声音,在播放完后PlaySound函数才返回。 ( M  T6 `" X7 V; y
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
/ U: w" h3 W5 @0 v# L& c函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
: A$ }% D- ?1 Z0 O% G! KMCI播放# o4 f6 _9 A, c' m2 n' Z4 L
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
$ @0 g1 ~) X! @6 m9 w6 LMCIERROR mciSendString() i8 C5 s& Q, `; o1 ^
LPCTSTR lpszCommand, //MCI命令字符串% B) n7 D  K5 C% g5 L" c+ Z
LPTSTR lpszReturnString, //存放反馈信息的缓冲区3 q& V, ~6 \9 K/ J: ]) c
UINT cchReturn, //缓冲区的长度, L0 X4 ~" S9 D% _
HANDLE hwndCallback //回调窗口的句柄,一般为NULL) ^2 b( D3 p5 ?. _* J
); //若成功则返回0,否则返回错误码。- I+ p& G+ i1 Z
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
4 z2 s& ?( E- o6 D  L0 TBOOL mciGetErrorString(0 Z* m, _6 b" W* |! e) I! s
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
; I; y4 O( q  O3 g& M) n3 {! XLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
  ^+ W1 l( K: LUINT cchErrorText //缓冲区的长度
$ L% N+ \) o& F1 h# w0 \% [2 p);! Y; l) ]1 L6 f  N% s5 e: n
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 08:55 , Processed in 0.023541 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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