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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
1 M) t" g; }1 n/ A3 @! R( p1. API之网络函数
3 z+ I/ d0 ~. G* V1 i0 I  fWNetAddConnection 创建同一个网络资源的永久性连接 ' ^: |  u! [6 f
WNetAddConnection2 创建同一个网络资源的连接 / e9 ^, p, t; e( \+ ~8 g2 {
WNetAddConnection3 创建同一个网络资源的连接
& v2 Y6 k3 f; [3 Q9 }WNetCancelConnection 结束一个网络连接
: V& p8 p4 B; U- ]1 GWNetCancelConnection2 结束一个网络连接
3 v9 D9 n6 u2 H0 u, A7 f, rWNetCloseEnum 结束一次枚举操作 0 d( {4 o! t5 ?5 t  A( }
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 - V* F1 ^# n: H& V4 j7 f3 v, Q
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 3 w4 L7 G6 i, q( c$ D/ b6 P& Y: \: E
WNetEnumResource 枚举网络资源 # y) ~  z5 J; I8 T5 `2 ~0 Z( U$ l
WNetGetConnection 获取本地或已连接的一个资源的网络名称
5 D( z* ?9 q2 @" [8 }WNetGetLastError 获取网络错误的扩展错误信息 6 M" C! n4 S7 U! g9 {& O+ [% M
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 2 p. m  {/ o4 B! E, n" P% E
WNetGetUser 获取一个网络资源用以连接的名字 3 @3 ?8 V' u' x5 K* Y8 P% F" y) y
WNetOpenEnum 启动对网络资源进行枚举的过程 ; |; Z& x8 G: n. G5 }( k3 F0 }0 V, V
2. API之消息函数
9 }. L. ~9 K# S6 R/ cBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口   f5 H0 g( C4 l5 i9 ?  ~0 d6 K
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
5 v* Y5 t8 Q6 o( C1 |" Z* ^0 _$ R! FGetMessageTime 取得消息队列中上一条消息处理完毕时的时间 # U: n. c; Q; \' Y; H! C
PostMessage 将一条消息投递到指定窗口的消息队列
: e& Y2 |) N$ t" d3 yPostThreadMessage 将一条消息投递给应用程序 : J+ K  |9 o! f, w' n' g
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
- ~' C! ?7 Z( o- o2 I* b$ ?) ]! a4 JReplyMessage 答复一个消息 # d! v$ ~. X* V
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 " P' c  L5 F2 |% t( \
SendMessageCallback 将一条消息发给窗口 / {' A5 {' b9 L) F
SendMessageTimeout 向窗口发送一条消息
+ h+ z2 N$ S7 I& r( {% [. jSendNotifyMessage 向窗口发送一条消息 $ g1 X7 g2 c$ a5 d0 f+ K' h: P
3. API之文件处理函数
( O* L/ J( E: C, QCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
# }- d- a3 N, g1 C9 h* h; lCompareFileTime 对比两个文件的时间 ! |+ t/ ?% H$ q- n' B8 n
CopyFile 复制文件 - P9 W. ~7 `- N1 E2 Y. ~/ n2 W
CreateDirectory 创建一个新目录 2 [% k: S" r$ B7 u% `* P/ O/ H
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 : W2 c, h! A; `) |3 ?* B# O0 z
CreateFileMapping 创建一个新的文件映射对象
, b+ p- X7 b: S: N$ j% {DeleteFile 删除指定文件 * l: T5 H! k1 V  N* E. u6 j1 ^
DeviceIoControl 对设备执行指定的操作 0 r+ B' L# ?3 N% P6 e: O$ w! u, m
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
( j: E3 @4 w" j3 n9 ?2 R% |FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
/ s% t5 \/ f' J& U- |2 MFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
; p3 @' \* C. |2 }6 aFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
; M# D7 h1 q7 b% N# v2 b- ZFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 # L  d2 c* t6 x' x
FindFirstFile 根据文件名查找文件 ( F: M7 k3 o/ m* J- W0 C
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件   g3 P  [# C4 _" z1 A
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 8 o+ J8 V/ r0 p. r8 l  N6 b
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 * L6 P2 h! E0 O) Z+ C
GetBinaryType 判断文件是否可以执行 : u, ]/ d/ G# h( |
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
- w: `: T# P( V( Q- z0 g/ FGetCurrentDirectory 在一个缓冲区中装载当前目录 $ C1 C4 }$ l0 C- w) r
DWORD GetCurrentDirectory(
; E+ g5 z1 ^. X9 s. J    DWORD nBufferLength,    //缓冲区大小
7 [6 B5 d# T, A" f/ s: A    LPSTR lpBuffer          //缓冲区的首地址% u# d- E3 T  J4 b
    );: t! O* e% j4 E! {
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 1 K( h% j8 Q  G! Q3 W5 b
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
6 A3 j4 {% k" R* ^# m9 YGetDriveType 判断一个磁盘驱动器的类型 " V+ |  x7 l) P$ o
GetExpandedName 取得一个压缩文件的全名
  l- k+ X. A; s  q4 z5 T: n  X6 GGetFileAttributes 判断指定文件的属性 0 q" t4 w/ Y8 `  C+ T: ]/ D. v
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
: @: `) [( l  FGetFileSize 判断文件长度 0 B: R, M9 G# L3 m4 z6 O) W4 `
GetFileTime 取得指定文件的时间信息
( Q( a5 n* u7 x  I! pGetFileType 在给出文件句柄的前提下,判断文件类型 7 `; w5 D0 @/ O: Y% E, E; V
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 " g5 y5 n' f; ^$ _( r7 \3 w/ N
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 ' y6 m8 e: Z! A7 Z; [; A7 X# g4 E
GetFullPathName 获取指定文件的完整路径名 , j9 \  @% ]: G! A8 H3 d: D
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
4 _& {& L3 n* A. I3 ?. y" u, I% |1 bGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
" r( `* a5 u3 Z9 H0 U" PGetOverlappedResult 判断一个重叠操作当前的状态 7 \5 P6 B/ D, k
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
; W6 O( s  F) S  x" MGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 # O  q2 A! p' k( `# K0 k8 Q7 }* w
GetPrivateProfileString 为初始化文件中指定的条目取得字串
# C7 P. G4 m( n% y  S3 O8 s1 V; fGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
3 u$ I% i* }, J) u+ qGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
( O! b! r: R& r6 w1 D4 CGetProfileString 为win.ini初始化文件中指定的条目取得字串
& U5 h2 G; N+ a6 d/ sGetShortPathName 获取指定文件的短路径名 ) J) E5 P+ j1 N/ p: e7 {  F
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 1 K& ~7 j2 n/ ]
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
$ d# X- c; i2 m$ ~GetTempPath 获取为临时文件指定的路径
8 L$ K" {; e1 }& uGetVolumeInformation 获取与一个磁盘卷有关的信息
& t* k! m4 W' C; A2 TGetWindowsDirectory 获取Windows目录的完整路径名 8 w0 f# C1 I0 A  j
hread 参考lread 6 Q3 z7 W" E) H9 L
hwrite 参考lwrite函数 / q: A7 Z. d" d# @3 u9 I
lclose 关闭指定的文件 # f, v8 z) x) z# ~; o) l6 q
lcreat 创建一个文件
; I! K. U4 Z- I( @llseek 设置文件中进行读写的当前位置 7 f. I5 H, U" M1 |- [- f  _
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 & C  j, O$ k; T2 k) G+ j8 q4 U
LockFileEx 与LockFile相似,只是它提供了更多的功能
4 H. q/ o7 J4 W# a# Q( Vlopen 以二进制模式打开指定的文件
* k1 ?& G0 \2 h- S8 x$ h2 Plread 将文件中的数据读入内存缓冲区
8 n2 {- H& C* M* F! S; c) Z( l% q6 xlwrite 将数据从内存缓冲区写入一个文件
7 a+ V  c! R' l3 FLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
4 s/ I- A3 l* t! d6 }LZCopy 复制一个文件 0 u: y# j1 @: F0 v
LZInit 这个函数用于初始化内部缓冲区
2 S' X! y7 l4 z2 Q) K- K! KLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
5 U' T' n' F$ oLZRead 将数据从文件读入内存缓冲区 * P  n. E1 d/ H' c
LZSeek 设置一个文件中进行读写的当前位置
& j, @; F: Z4 d& \( d) oMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
+ ?9 V6 F7 F; E0 mMoveFile 移动文件
6 I6 F2 I. o3 j% d, aOpenFile 这个函数能执行大量不同的文件操作 9 z4 R; F3 |. M, r0 w% r
OpenFileMapping 打开一个现成的文件映射对象
2 o  ^) Q  G7 V. {" W6 A, v) U  Y  RQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
' l1 m% H- ^/ [. `; D2 z8 MReadFile 从文件中读出数据
# O& }8 E! Z( g' Q  j" ]4 H# WReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
1 h9 A3 a- m* I& kRegCloseKey 关闭系统注册表中的一个项(或键) " ^+ f6 ^( [0 F$ |; y. i
RegConnectRegistry 访问远程系统的部分注册表
7 n; [* q" _/ ~0 Q7 bRegCreateKey 在指定的项下创建或打开一个项
9 ]9 s- i( f- Q! z& ?* t; g% fRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
! U6 @6 H# E9 H- M* |RegDeleteKey 删除现有项下方一个指定的子项 ! j5 b, {; z: j% q* M* T  c
RegDeleteValue 删除指定项下方的一个值 5 a; g7 A7 |4 ?4 s6 n& Q' i) d. ~
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
8 y8 U/ d4 L0 c6 c2 D' j7 u9 ~RegEnumKeyEx 枚举指定项下方的子项 ) S' v2 X# Q0 q/ H  K' [
RegEnumValue 枚举指定项的值 8 c" C, F1 x- y$ M( s4 ]
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
9 q( R: x  a2 J" L. I1 ]* jRegGetKeySecurity 获取与一个注册表项有关的安全信息
& I* W2 P% A2 I% j3 n4 dRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
( L7 G4 T+ {+ ^: D( dRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 ( `% \+ J" K0 o. k4 K
RegOpenKey 打开一个现有的注册表项
& @3 l. u& F( C1 s$ B9 qRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
/ c! o4 {4 n7 k0 G9 W2 xRegQueryInfoKey 获取与一个项有关的信息 ; d0 g7 T: q6 y- K* x7 _( Q/ N
RegQueryValue 取得指定项或子项的默认(未命名)值 0 W0 K, ~6 _9 @
RegQueryValueEx 获取一个项的设置值 0 r; O& s9 x: R$ }9 V0 N( Q
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
0 W( e* S, S0 X3 QRegRestoreKey 从一个磁盘文件恢复注册表信息
$ m, |. q5 \( Q6 H6 KRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件   @. R1 j4 l: ]1 K
RegSetKeySecurity 设置指定项的安全特性
7 K. n8 P/ _+ XRegSetValue 设置指定项或子项的默认值
' o0 k% i0 K# vRegSetValueEx 设置指定项的值 5 V8 O2 K$ ~2 u
RegUnLoadKey 卸载指定的项以及它的所有子项 4 r& Q# {: g% j0 M. K: P6 l
RemoveDirectory 删除指定目录 : a. k; @& a5 z
SearchPath 查找指定文件
( Z: I  |9 R/ @' `SetCurrentDirectory 设置当前目录
8 A5 }1 U0 _- K6 p7 x# XSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
) t: _, f# ~; wSetFileAttributes 设置文件属性
4 C6 \6 n/ N. zSetFilePointer 在一个文件中设置当前的读写位置 ' L4 w& o5 g% I1 X& u4 @
SetFileTime 设置文件的创建、访问及上次修改时间
: E/ b! ]9 g! ?2 \% d6 L; Y( r* _SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 & S+ E: A& h* z: s; p
SetVolumeLabel 设置一个磁盘的卷标(Label)
9 n3 I8 q1 y* ?7 _& wSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
1 Q9 V2 R+ O- r" ^( e/ E+ a7 N- M# \UnlockFile 解除对一个文件的锁定
, F7 a: ?; F+ Y0 A+ d, DUnlockFileEx 解除对一个文件的锁定
- N! g( h/ X2 C' ~1 AUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
& z. U$ w. }( |VerFindFile 用这个函数决定一个文件应安装到哪里
! l7 ^# |- @! R# C; H4 i- ~/ qVerInstallFile 用这个函数安装一个文件
' A8 n& o- X1 n5 bVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
/ m- V6 P7 Z+ s5 c" ?9 y7 s! tVerQueryValue 这个函数用于从版本资源中获取信息
& d$ {- @5 s/ Q' lWriteFile 将数据写入一个文件   P, z3 w6 i: g& I
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
+ o+ Q* S1 q6 fWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
  t" O0 S5 y" UWritePrivateProfileString 在初始化文件指定小节内设置一个字串
9 h/ m- `7 M) q# x3 c7 b( f/ w- gWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 8 g; h5 q5 Z+ ~0 p; @
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
+ g. N" {: p* l4. API之打印函数
. @9 E4 a. Y% X" @: L# L+ Z, k* NAbortDoc 取消一份文档的打印
/ R1 N) y# d% S/ f6 X5 rAbortPrinter 删除与一台打印机关联在一起的缓冲文件 / P0 N% M. o0 L
AddForm 为打印机的表单列表添加一个新表单
5 g, w" x+ [' x, zAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号   l* ]8 R: h8 f8 v
AddMonitor 为系统添加一个打印机监视器 ) b$ {8 _1 U8 W& u: U
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 5 R/ W+ ?& i1 i( t1 q
AddPrinter 在系统中添加一台新打印机   y) J1 W' q# }& ^+ V
AddPrinterConnection 连接指定的打印机
- S8 Y4 T1 [" v$ wAddPrinterDriver 为指定的系统添加一个打印驱动程序 0 [, G( E2 x/ F) R
AddPrintProcessor 为指定的系统添加一个打印处理器 9 J6 i4 u" c6 V- I. j9 a
AddPrintProvidor 为系统添加一个打印供应商
, t% G2 h7 l- G2 f1 @AdvancedDocumentProperties 启动打印机文档设置对话框 ' Y& ^" v1 f7 M4 c
ClosePrinter 关闭一个打开的打印机对象
( m5 W  p$ k* cConfigurePort 针对指定的端口,启动一个端口配置对话框 4 e1 D+ r) O3 h% o" x0 t/ B7 T& w
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
# N8 C9 t. Z( s9 l! _6 w3 j" ^6 mDeleteForm 从打印机可用表单列表中删除一个表单
% k! i0 s: q5 p$ E- IDeleteMonitor 删除指定的打印监视器
1 U' S- J& r  Y: c1 z2 W6 D4 @DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
# H2 E+ ?) {# W6 u9 g2 t% pDeletePrinter 将指定的打印机标志为从系统中删除
+ |  T# l! b- @4 H4 K9 m9 U' ZDeletePrinterConnection 删除与指定打印机的连接 " N8 I5 p0 L3 m
DeletePrinterDriver 从系统删除一个打印机驱动程序 9 K* L. P- G" c
DeletePrintProcessor 从指定系统删除一个打印处理器
: @. s7 H* N0 w9 i, [5 Y9 C2 uDeletePrintProvidor 从系统中删除一个打印供应商 0 |4 j" l" n2 K% j( W4 ]
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 * P" d2 {( i4 X( n2 l" A$ K
DocumentProperties 打印机配置控制函数 3 h0 @! d( l' w1 D1 ^; |
EndDocAPI 结束一个成功的打印作业
3 [& a2 b9 ?9 f3 n# E7 l9 TEndDocPrinter 在后台打印程序的级别指定一个文档的结束 ! U! Y4 \2 X- D6 [8 @/ E  ?) a/ v) @
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
2 P$ Z8 p7 j; e6 sEndPagePrinter 指定一个页在打印作业中的结尾 1 C" ~. F: |, @7 Q# |2 X4 s% m0 {
EnumForms 枚举一台打印机可用的表单
, T6 ~0 R5 ^8 j+ e9 m6 z6 \EnumJobs 枚举打印队列中的作业
3 I  E' I% Z# D, y' k& N, P1 U2 F9 ^EnumMonitors 枚举可用的打印监视器
# H8 n) J& T% C: r1 k3 `EnumPorts 枚举一个系统可用的端口 " [; s, ^1 r) j+ q( B8 ?
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
: H/ b' {" V; [EnumPrinters 枚举系统中安装的打印机 ; i, `: O* w" i5 {0 ~7 Z3 D
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
: u. D. L3 w. d0 ~" j; w5 cEnumPrintProcessors 枚举系统中可用的打印处理器 ! i+ g: |2 u( ]- C, ^- l
Escape 设备控制函数 1 J  _0 N; M$ e+ {- p
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
+ j; ~9 g$ P" ?3 _: M" @FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
2 ]: \2 i9 x, \* I, D- oFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
2 A, f! d/ f. z6 DFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
" C. W) \; A1 i/ }" m3 _7 cGetForm 取得与指定表单有关的信息 1 u% v% C8 A( o4 a, ^$ G% L6 O% [1 H
GetJob 获取与指定作业有关的信息
% I$ Z- R, w; x/ ^$ P! u+ XGetPrinter 取得与指定打印机有关的信息
& p' G+ B& F& u6 iGetPrinterData 为打印机设置注册表配置信息
; Q& S  d6 t$ J# d6 W3 m% eGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 - M0 ?# G6 E% F4 t' u( N8 \, [
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
$ |$ Q# L. x+ g" }1 \GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
2 p6 H7 M% H+ P% Q9 S" \0 W! X% JOpenPrinter 打开指定的打印机,并获取打印机的句柄   ]8 f  ^" B* n1 A5 Q1 e" D5 r
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 ! X: x- `8 o- ?5 O: w7 U; J
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
# A8 I/ Y4 \& f8 ZReadPrinter 从打印机读入数据
& ~/ @  X, `3 E' r* r, ?ResetDC 重设一个设备场景
2 m7 S# l; F6 X& S6 ]8 q; AResetPrinter 改变指定打印机的默认数据类型及文档设置
2 ^" h. c! ]5 Y- G( Z$ h/ X! [ScheduleJob 提交一个要打印的作业 / q# A$ ]- n$ s
SetAbortProc 为Windows指定取消函数的地址 5 t6 E6 e4 O$ h$ T. y& G5 m
SetForm 为指定的表单设置信息
+ @' C" L! W0 M& tSetJob 对一个打印作业的状态进行控制 0 u5 c; C/ q/ y5 K+ \% m
SetPrinter 对一台打印机的状态进行控制 ) K# N1 ]3 [8 M: `  W9 s
SetPrinterData 设置打印机的注册表配置信息 3 s7 q' W3 J" v2 L! `& b) [8 S- w$ e
StartDoc 开始一个打印作业 8 z! ^4 @, q$ [8 U6 a8 b
StartDocPrinter 在后台打印的级别启动一个新文档
0 D$ p! k2 B- v- o' n) ]/ nStartPage 打印一个新页前要先调用这个函数 ( F1 a% r/ _5 S: b, M0 t, N6 V, B
StartPagePrinter 在打印作业中指定一个新页的开始 & `/ ^+ I, B+ b3 n* t
WritePrinter 将发送目录中的数据写入打印机 % V' f# m/ u) n3 X
5. API之文本和字体函数
6 N* r3 P1 r, g# g2 yAddFontResource 在Windows系统中添加一种字体资源
' O2 K5 m1 j# k: ^, UCreateFont 用指定的属性创建一种逻辑字体 - e/ i# g# [% ^4 \+ a2 j) o# k
CreateFontIndirect 用指定的属性创建一种逻辑字体 . x- _) z6 F7 B1 C- u
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 ( u2 M  d. l' b& L4 I* \1 u  z
DrawText 将文本描绘到指定的矩形中 2 {$ Q; t5 g' u. C
DrawTextEx 与DrawText相似,只是加入了更多的功能 * P4 g+ Q2 X9 ]8 P9 `
EnumFontFamilies 列举指定设备可用的字体
: {# t- ?- D4 v. D# o' ~EnumFontFamiliesEx 列举指定设备可用的字体 9 A& @1 ?5 ~% m
EnumFonts 列举指定设备可用的字体 , _6 I7 a6 ?9 }4 A4 T) R
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
& H6 V3 |; z' v- WGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 ( K/ h# j. k6 o$ I. @) S& n" Z" d8 J
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
3 ~9 t& H* [$ H4 K9 PGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
% r) D% U  J: O! ~& w  N% e  q5 XGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 9 j6 x7 S5 z/ T% _
GetCharWidth 调查字体中一个或多个字符的宽度
( t7 ^3 k, t' KGetFontData 接收一种可缩放字体文件的数据 % O1 }; e+ ]; U  P
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
, B2 b2 S+ @4 K6 SGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
. Y- P$ l2 @$ v& T8 wGetKerningPairs 取得指定字体的字距信息 1 d# T  z& N$ q6 d
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
- o: }, o/ z2 B) t$ p- G& \GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 % H& H$ x) c% d* Z! d: v
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 ' n3 ?$ k# M5 I, r3 t) @1 R
GetTextAlign 接收一个设备场景当前的文本对齐标志
) j0 C5 Y4 z. l) TGetTextCharacterExtra 判断额外字符间距的当前值
4 y5 M7 j4 w/ q6 e9 X8 nGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 " R& K0 D+ x9 o, a2 c' p5 x3 B) N
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
* y6 K( s. V+ o( R$ |GetTextColor 判断当前字体颜色。通常也称为"前景色" 5 L  M$ H* [1 T9 p$ t$ P( k3 ?
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
5 \3 l) A! u2 h8 sGetTextExtentPoint 判断一个字串的大小(范围) 0 }. z0 `1 K7 ^5 \. Q# w* v
GetTextFace 获取一种字体的字样名
8 |. _5 C7 D/ F  i; ~9 tGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
9 r2 [7 R2 q/ j0 k! l9 U4 h$ x* y/ ZGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
3 @5 i) P5 S$ c* K3 vPolyTextOut 描绘一系列字串
' D0 T* U" o) U/ W2 d2 Y/ R6 ERemoveFontResource 从Windows系统中删除一种字体资源
1 z" [) U4 S& iSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
! y# B% u, Y' mSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 6 L/ y: `7 ^0 G0 I
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
* o, Y0 ?$ W) X; Q5 nSetTextColor 设置当前文本颜色。这种颜色也称为"前景色" & k( a$ f* h3 V% Q. ~, h; Z
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
; c* u# t; w$ j4 ]5 d0 I6 mTabbedTextOut 支持制表站的一个文本描绘函数
3 x" W6 T) O7 H8 qTextOut 文本绘图函数
2 D( q1 v0 [* l, oWINGDIAPI BOOL  WINAPI TextOut(
# m  L' S' Z& ~( e+ [" t* k- vHDC,     //输出设备
# T7 O4 \: f3 K+ ]- H4 B/ Y) {int,     //输出的横坐标1 L" Z% k3 p4 l4 D
int,     //纵坐标! I( H* D6 |9 n7 U
LPCSTR, //输出的文本str
, a) m* y9 o1 M2 `% \; Jint);    //文本的长度:lstrlen(str)
& \/ U# e0 ^2 e! `; j6. API之菜单函数
! l; m$ N! p3 h$ I) h$ l* B% |AppendMenu 在指定的菜单里添加一个菜单项 3 T6 {* x! d1 |. V! Z. W
CheckMenuItem 复选或撤消复选指定的菜单条目 ' i( X' f; j$ }. u6 n6 F
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
# A; w: c" K/ yCreateMenu 创建新菜单
  m, F: o$ c( B& v8 o; r  jCreatePopupMenu 创建一个空的弹出式菜单 ; }8 p4 U9 v8 q& E9 P
DeleteMenu 删除指定的菜单条目 . E! x5 W/ ]' c) j! n! J' E6 ~
DestroyMenu 删除指定的菜单
9 @5 h5 u, Q: L! X, v, ODrawMenuBar 为指定的窗口重画菜单
! s2 o  k  \/ v6 r# kEnableMenuItem 允许或禁止指定的菜单条目
; ^& T1 \, H# D* b$ K/ i0 RGetMenu 取得窗口中一个菜单的句柄 " \+ Y3 [% t* ~
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 7 p  r) x: G  f+ Z: Q0 |2 V. H$ I
GetMenuContextHelpId 取得一个菜单的帮助场景ID 9 N8 ~, v6 l+ O( W* W/ o
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 , n8 Y# ^3 ^& J0 |8 y2 C
GetMenuItemCount 返回菜单中条目(菜单项)的数量
1 o0 t; f5 E) d: j4 Z. b8 i$ l, z+ _GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
. `" Y0 w1 x7 @1 w# q0 U3 U3 O& {GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
' }, G7 r3 G1 z; O3 c! q. hGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
9 {. w. q8 [' U" T  ]% WGetMenuState 取得与指定菜单条目状态有关的信息
9 g( L# {% {' J3 Z* JGetMenuString 取得指定菜单条目的字串
/ H4 G! R. W" }GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
$ V: ]" h2 P4 C. e6 q, p/ iGetSystemMenu 取得指定窗口的系统菜单的句柄 & G, ?* r. x: P8 S
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 " u6 B" d) W/ E# U% H
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
- r: b+ Y1 W) T# ]8 ZInsertMenuItem 插入一个新菜单条目
# {' b4 W2 L5 AIsMenu 判断指定的句柄是否为一个菜单的句柄 ; s5 F2 e: P2 i2 ^% o+ {
LoadMenu 从指定的模块或应用程序实例中载入一个菜单 8 p$ ~) q# q  D6 c) S4 a
LoadMenuIndirect 载入一个菜单 % u3 q: H$ o' Q0 y
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
5 K* a8 F3 r& g3 k) dModifyMenu 改变菜单条目 & m  x1 @9 a& K, g" v9 j' M
RemoveMenu 删除指定的菜单条目
! n9 [0 U- D. B& |$ oSetMenu 设置窗口菜单 ! [6 N+ F( ]$ S8 x$ `
SetMenuContextHelpId 设置一个菜单的帮助场景ID # W% G2 G0 ?9 U' P9 v, V: _: V
SetMenuDefaultItem 将一个菜单条目设为默认条目
5 A" a; t+ p9 Y3 FSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) ! h% x3 R! b' e( e/ O% h
SetMenuItemInfo 为一个菜单条目设置指定的信息 . j6 v7 ^( ^5 g8 i. B1 [
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 % L5 \2 [  d" e  C: d% P
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 ! R* W5 }: ~! d! F# W
7. API之位图、图标和光栅运算函数 6 q8 ^) Q7 v6 e* n' }/ Y3 n
BitBlt 将一幅位图从一个设备场景复制到另一个
! \/ h  x4 m. _     WINGDIAPI BOOL  WINAPI BitBlt(
) B7 i/ P: A- V( m5 v0 R' HHDC,     //目标HDC% y% `& H% o  H+ a2 m3 E& i
int,     //X1
3 u9 q' \4 s) i1 D9 Q' I# oint,     //Y1' z" m/ \4 `& V5 d9 M
int,     //width( L2 q" t) _% S8 u% X2 c
int,     //height
. D! ]% h; D% G: ^# SHDC,     //源HDC
: i+ g" [- g# {! Aint,     //右边的距离
8 b7 o4 k7 h4 A: yint,     //??
! q! O$ Z0 U+ ?5 o  s/ M( K4 RDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
3 d7 g% E( s0 ~0 y/ t% j& A' t" P8 M! oPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS# D. \; T% y6 p5 u# l) ~
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
7 M7 ?/ H& O8 w% m2 X$ W7 ECopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 % A+ ?; R4 n* K" T3 h
CreateBitmap 按照规定的格式创建一幅与设备有关位图
2 N+ r, D( b9 _! |CreateBitmapIndirect 创建一幅与设备有关位图
) P# Q( O5 O2 |& BCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
. T4 X$ M8 T( t( \7 _; mCreateCursor 创建一个鼠标指针
0 P/ Q$ a+ u4 y8 v; p. Z- k& }CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
, K" K6 f* r& ^- tCreateDIBSection 创建一个DIBSection
! a5 W) X3 W0 k2 d& dCreateIcon 创建一个图标 * l& n. X8 r# K9 U6 q6 b7 t
CreateIconIndirect 创建一个图标 " G6 R! o& k# R* E% }$ O
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 . R5 f$ q% l* ?, E9 Z1 N3 X
DestroyIcon 清除图标
! ]. d- r! r' E, [' RDrawIcon 在指定的位置画一个图标
/ g, w& n- o0 C6 ?5 x4 i$ H/ SDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
& V& E, K5 c( f5 R- DExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
8 V: O7 c+ Z1 h; u& k3 h% B2 j  UExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 * r7 e3 I( F+ S7 l0 T
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
+ j0 m4 ?' S" @GetBitmapDimensionEx 取得一幅位图的宽度和高度 + H) X' Y3 z2 P2 a) L6 C9 |5 b
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
$ \- ^* M6 j7 O/ H; y4 X. K# A' m: gGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
2 u" [- c' d- T* r. DGetIconInfo 取得与图标有关的信息
( s+ v* U, p3 Z  U  P4 JGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
3 S% `& N2 S' P  TLoadBitmap 从指定的模块或应用程序实例中载入一幅位图
' K/ v9 T' Q* `5 V& A5 HLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 # K. c' l" Z$ f( T- J7 ~
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 ' h/ [) B$ m* g$ c* ^; b
LoadIcon 从指定的模块或应用程序实例中载入一个图标 ) }; n9 ~7 @8 ^- s4 R: S# q  B) H
LoadImage 载入一个位图、图标或指针
1 H0 h5 L: D/ ?0 OHANDLE LoadImageA($ {, h; ^- ^) c
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
* K( n# t, ~. ~; F, W1 t    LPCSTR,               //资源所在的目录:c:\help.bmp3 a; y% c: g( P% ]$ n
    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
5 g3 n2 v5 c2 h& S$ O    int,                  //4 v2 w) R! l- y1 v3 }+ ^, F5 k
    int,                  //
1 k8 X, u$ R3 {. yUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|- d( e1 A6 N" d+ C
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|% _% w" U/ ]# A8 M0 ~5 Y
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
" `$ N) K+ O) Y  Q4 QMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 ' H, K7 H2 @9 k( B' M- S
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 - R8 ~; e; L( U2 C' b% G% ?4 Z" {
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
* l6 a& s1 q/ _! `  hSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
' M' m. E6 |+ e2 k2 N0 x3 o- H  y& }SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
4 a& k7 j# j9 v/ eSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
7 D- h9 {2 A' WSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 . t8 n) i9 |7 J- |4 O# U. }0 ?# L
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 + F" [  O5 L+ f) W0 {$ m1 M
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 $ R0 ]6 y) N: H1 `. G
StretchBlt 将一幅位图从一个设备场景复制到另一个   B7 W  J5 c. _# y2 q; ~
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
: D8 ?% X- ^+ v8. API之绘图函数 . n1 @3 p  [6 ], z( F+ r6 w! `
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 9 D4 e" K7 m/ l2 o) r
AngleArc 用一个连接弧画一条线 ! \% Z- Y/ p4 e0 ^
Arc 画一个圆弧 ' |; u8 J! q8 C' R9 `
BeginPath 启动一个路径分支 8 B0 Z8 p& y" V2 `3 N  Z! S6 _( T
CancelDC 取消另一个线程里的长时间绘图操作 9 g' g( F7 A# a# L
Chord 画一个弦
+ t: n9 U1 o$ M) ]* Z& L; SCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
$ @2 {7 `  \6 Q* rCloseFigure 描绘到一个路径时,关闭当前打开的图形 9 u. j' ?; {! g. f" \) g
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 & Q4 O8 Q$ ~: C' k- c) U
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) ) J4 u: w7 Z7 M, W) v7 f3 ^6 U: x
CopyMetaFile 制作指定(标准)图元文件的一个副本
% K# f5 t$ O0 Z9 j# d9 B! r& H/ QCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
/ T* @& U5 h" d8 x0 sCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) " L! Z- m% ^* d: w  H- @- z: |
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 ) L8 G: |  V4 o/ v, ?$ C& F( T
CreateHatchBrush 创建带有阴影图案的一个刷子 8 u' t* d1 H8 [
CreateMetaFile 创建一个图元文件设备场景 2 z8 x" x* }( `! p: I" ]
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
8 |+ j3 y4 g9 f+ S1 u, z0 |$ rCreatePen 用指定的样式、宽度和颜色创建一个画笔
+ l# q/ L9 {) B  Q" w, jCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
* B' V7 X6 u. M& `CreateSolidBrush 用纯色创建一个刷子
- t( f& M4 d; F4 uDeleteEnhMetaFile 删除指定的增强型图元文件 ; Q7 u2 v# z: f3 b% D
DeleteMetaFile 删除指定的图元文件 7 m* o7 `, Z1 Z
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
/ `0 w9 i. W( j  JDrawEdge 用指定的样式描绘一个矩形的边框
! s5 }7 @' I1 N* X, o$ J6 sDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
# [4 S" T( [, Y$ ^DrawFocusRect 画一个焦点矩形
* w, R7 ^- Z/ j6 CDrawFrameControl 描绘一个标准控件
+ i- `: F$ G( F8 I4 _6 a) F: V( N# \' UDrawState 为一幅图象或绘图操作应用各式各样的效果
- Q% Q& H. g0 CEllipse 描绘一个椭圆,由指定的矩形围绕 . O+ W2 x0 X' P
EndPath 停止定义一个路径 , C9 d: z0 a) l0 f5 E3 s/ M
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
" `$ v$ k. g( v* d4 y' y; tEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
3 p* x" w- F8 w5 B& g, S  w) {EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
- g2 h& l6 J. QExtCreatePen 创建一个扩展画笔(装饰或几何) 9 c: F# l; w( W$ m
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 & \) u5 y1 C6 s8 N1 D
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 5 ]: |- a, c% z/ n5 x% y/ [0 U9 e
FillRect 用指定的刷子填充一个矩形 4 @5 L/ V( ?1 B2 `9 [8 v& e( Y
FlattenPath 将一个路径中的所有曲线都转换成线段 4 s3 e" q+ x- N  Z5 W/ Z
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 ! [' G$ h! {( u: v. x
FrameRect 用指定的刷子围绕一个矩形画一个边框
) }$ f! E4 T) y* fGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 , S( o2 a  H% m: n
GdiFlush 执行任何未决的绘图操作 ' }5 ~7 p3 K- Z* _: W. J9 N4 E: u8 D
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
, S$ O4 x7 G  ^8 `# e9 s6 O  SGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 , i4 T9 k! y! O% ~! A1 q
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 + _) T+ `% V* e* {. b- ~- T
GetBkColor 取得指定设备场景当前的背景颜色 ; X* O$ S) n$ M1 \( t$ b
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
+ ~1 J4 {+ I' Z8 f. }/ u. BGetBrushOrgEx 判断指定设备场景中当前选定刷子起点 2 F1 r- t- I; m
GetCurrentObject 获得指定类型的当前选定对象
) P0 g/ p. t4 a; i% M: ~6 o$ rGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
: e: R5 w( P/ F4 OGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
9 E) L( W* W5 ~+ [% O' O* cGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 5 ^( x  x) ]  r
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 # `- A2 W% g% d( P& v6 e' y
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
% @4 S9 j- c5 C3 @1 Y8 e% pGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
8 O& T0 X  D, g/ Z% i6 m9 fGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 + I/ A4 X* H2 S: l* W/ L
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 4 F8 G0 D* M2 X9 K/ O0 t
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
8 v6 c+ D0 o: `5 V1 N( kGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
( V$ P- r4 x/ n& R8 QGetObjectAPI 取得对指定对象进行说明的一个结构
. v. p* g. ^& [8 r5 WGetObjectType 判断由指定句柄引用的GDI对象的类型 - n+ z3 u" _1 ?: v
GetPath 取得对当前路径进行定义的一系列数据 " h2 U+ z! B6 _9 y( F5 I- G
GetPixel 在指定的设备场景中取得一个像素的RGB值 4 d- @" y$ w( Q) ?9 V
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
: V3 y5 W  ?- o# \GetROP2 针对指定的设备场景,取得当前的绘图模式
" q9 Z1 Z+ R6 k8 W' u( l$ rGetStockObject 取得一个固有对象(Stock)
: V7 t4 {6 h! CGetSysColorBrush 为任何一种标准系统颜色取得一个刷子 , p) W4 e1 f& L- I
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
3 `) Q# ~$ \$ p. ^9 b' d6 K$ V4 m$ EInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 : y+ [  x. s9 X9 x
LineDDA 枚举指定线段中的所有点
; M4 f& V0 a1 g: F6 F4 G8 pLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
5 M' ?6 S1 B( q1 I% j- YMoveToEx 为指定的设备场景指定一个新的当前画笔位置 ( [; h9 M0 B2 d2 y5 Y) W1 s8 p( U
PaintDesk 在指定的设备场景中描绘桌面墙纸图案 ; O' y. T4 g; C% T8 e
PathToRegion 将当前选定的路径转换到一个区域里
5 n/ U5 K+ q% \Pie 画一个饼图 / f4 o8 `% H% w$ |; z
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
) }6 d# ?% s. h% `8 PPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 8 [; Q+ x. r0 @
PlayMetaFile 在指定的设备场景中回放一个图元文件
1 i( H) \7 J  }* d1 D3 ?. K/ \PlayMetaFileRecord 回放来自图元文件的单条记录
; A, B8 X( h0 z% h; R: DPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
0 ~) [3 k+ ^" f9 D1 K( oPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
! M+ B9 y; t* Z0 u) s9 U9 qPolygon 描绘一个多边形
% o8 b3 i2 _4 K& s3 dPolyline 用当前画笔描绘一系列线段 ; q. T# l, o/ n( ]# R
PolyPolygon 用当前选定画笔描绘两个或多个多边形
* _6 k2 c' b; e- a8 U4 d" f0 E* _PolyPolyline 用当前选定画笔描绘两个或多个多边形
% s6 E+ H4 a0 b- J3 X: F! ZRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
; V  f& _# q3 p* I% T" {RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
* U! Y  V+ D$ ?* {* e0 [& iSelectClipPath 将设备场景当前的路径合并到剪切区域里 4 b( N$ E4 q' Q& m
SelectObject 为当前设备场景选择图形对象
  U$ j; }8 Y* A0 t1 u     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);6 ?+ j1 ~4 f% \' `# o+ H3 ~
SetArcDirection 设置圆弧的描绘方向
6 ]( g+ p& j# Q7 C/ KSetBkColor 为指定的设备场景设置背景颜色
7 H  T& ?+ T2 aSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 2 F, ~# G. w% x8 r3 @8 G: b  A# _
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
7 \" f1 W, Q& S, K. m% u& TSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 ! N. P5 s& z' k+ n
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 . @0 c# e+ O$ {
SetMiterLimit 设置设备场景当前的斜率限制
2 b: ^* e( [! z- i5 CSetPixel 在指定的设备场景中设置一个像素的RGB值   T( b2 P6 B( _2 f4 H
SetPixelV 在指定的设备场景中设置一个像素的RGB值 % J  z  x0 k& b- |1 a# D* t$ W7 F
SetPolyFillMode 设置多边形的填充模式
  P) J0 Z" C! h' ?! T4 W$ ~; HSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 8 V2 D0 z) [1 c$ t3 l
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
% }( e) z5 A- OStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 - f! J( b6 a; ?5 p8 |# @) O
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 ' ^5 U: P: f" z/ B* L
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
; Z0 h# Q, S4 q; g0 t1 BWidenPath 根据选定画笔的宽度,重新定义当前选定的路径
' a. l4 U( t5 j* ?& F4 C1 }9. API之设备场景函数 + x4 W& o* }4 e1 k9 Z7 q
CombineRgn 将两个区域组合为一个新区域
) M$ }0 ~5 ^  XCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 1 P. g+ n; J! D" R1 g
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 & m4 x4 F1 v8 P6 b$ t
CreateDC 为专门设备创建设备场景 3 L5 f5 E' c0 r4 b3 B5 S
CreateEllipticRgn 创建一个椭圆
  w1 v; F; Y8 L* r3 |9 OCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
% o4 ?0 t) _9 g$ `CreateIC 为专用设备创建一个信息场景
2 R/ x- s. m# ~  A; L7 c% RCreatePolygonRgn 创建一个由一系列点围成的区域
/ Q- P; q. I/ w: Q  ~  QCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 5 }9 C0 H1 s2 q( h
CreateRectRgn 创建一个矩形区域 0 l+ Q$ H! H$ K5 q; ^) ^
CreateRectRgnIndirect 创建一个矩形区域 0 R' W- u$ \' O, M& @8 I' O  P
CreateRoundRectRgn 创建一个圆角矩形 7 x1 b# {( c; v3 Z& Z
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
3 ~3 f! g. j( o! z( _/ m% aDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 # z8 ^  S$ N/ Z$ d" P4 ?
EqualRgn 确定两个区域是否相等
& E4 n* `/ B$ \: M6 fExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 / x/ D" L$ V# Y2 G$ H: \
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 . d0 W! D' V: b0 Y
ExtCreateRegion 根据世界转换修改区域   K7 k3 }0 r8 Q4 v6 K
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
+ W" {; V/ @# f2 g3 xFillRgn 用指定刷子填充指定区域 % j6 B5 h9 _( _9 v. f1 r
FrameRgn 用指定刷子围绕指定区域画一个外框 5 u- t' t( u& r' C, l5 V
GetBoundsRect 获取指定设备场景的边界矩形 " P' B9 H8 k5 m
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
! H/ T  y0 F* Y% V! ?- U9 R9 T3 wGetClipRgn 获取设备场景当前剪裁区 9 C$ C- c) @6 e# _% ], _
GetDC 获取指定窗口的设备场景
- P4 d. f* }; ^% ^GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 1 i  @$ W+ f! N" `" i6 `  ?9 _
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) 3 Y  \" U0 n4 w/ q
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 3 @: x0 L" Y) M4 E" j$ A7 o: X; f
GetGraphicsMode 确定是否允许增强图形模式(世界转换)
' W. M/ i! E7 x+ gGetMapMode 为特定设备场景调入映象模式
" l6 Z  K  x7 l- @. H/ SGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
8 [; V) V% E& R$ ]5 k$ }# SGetRgnBox 获取完全包含指定区域的最小矩形 ; V) w6 B4 D. q! h7 E% d! c
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
8 V* A4 F; ~, EGetViewportExtEx 获取设备场景视口(viewport)范围
9 z  ]& Z. P& T' ^& `9 r1 CGetViewportOrgEx 获取设备场景视口起点
" p' G! a; T; ?  r( f( E9 QGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
) O3 s5 S' T& u: K. I( a% v& f' rGetWindowExtEx 获取指定设备场景的窗口范围 + U  x* ^, b: c/ T& r' y
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
/ k1 i. a0 J2 G, R& SGetWindowRgn 获取窗口区域 / B3 j+ ^, S5 {) t4 ^
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 - {: V$ w1 Q- \" ?
IntersectClipRect 为指定设备定义一个新的剪裁区   V# m0 M  o4 F3 t
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 0 v) N+ X4 q" D4 w
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
& u% `6 ]' f2 z: O, S4 r' ZLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 1 K. P6 L; R0 l, M
ModifyWorldTransform 根据指定的模式修改世界转换 ; B# v1 Y/ w7 Q4 f
OffsetClipRgn 按指定量平移设备场景剪裁区 $ I8 K% C3 V# V8 {; e
OffsetRgn 按指定偏移量平移指定区域
, S6 }% A/ E) r5 W, e; KOffsetViewportOrgEx 平移设备场景视口区域 ( O& Y  s. ^& a1 x0 y: z
OffsetWindowOrgEx 平移指定设备场景窗口起点 ( U" p8 {. {0 \8 ]4 i0 ]
PaintRgn 用当前刷子背景色填充指定区域 ) h* _0 H0 x* h7 Z& ?
PtInRegion 确定点是否在指定区域内 1 Y& k6 G3 n5 ]0 \, b0 l! ]6 }
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 4 K; W. ]4 _, M8 R: Z0 @) L8 N
RectInRegion 确定矩形是否有部分在指定区域内 - I. u; h7 M/ d  Y; m* o6 r
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) ! o, Y' b) H& q2 q
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
9 b& |1 W8 k0 f) }% c/ w) ]* zRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
- ]7 [6 t: n  n, o/ NSaveDC 将指定设备场景状态保存到Windows设备场景堆栈
& [# \' r8 S7 Z) P9 ~4 |2 v1 N) ^- j) YScaleViewportExtEx 缩放设备场景视口的范围 5 e0 t& r3 [. E# e
ScaleWindowExtEx 缩放指定设备场景窗口范围 ( G# b) _6 C! C: j
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 / c% s3 M4 B4 @
SelectClipRgn 为指定设备场景选择新的剪裁区 , }9 q& {( Q: A1 R; u% O
SetBoundsRect 设置指定设备场景的边界矩形   R" o* H' z" @+ T" e2 Q! `
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
1 G9 |/ O; r% m0 pSetMapMode 设置指定设备场景的映射模式 ! A) [9 d% a$ e' m3 Z/ g, `
SetRectRgn 设置区域为指定的矩形 0 @' F, [% X, s! E% B
SetViewportExtEx 设置设备场景视口范围 8 I( @3 d1 r+ Y* N- Y0 I1 u; I
SetViewportOrgEx 设置设备场景视口起点
$ Z5 z! @; t, g  g5 V5 [. e" KSetWindowExtEx 设置指定设备场景窗口范围 - x! V- E( f! B$ z+ _; [
SetWindowOrgEx 设置指定设备场景窗口起点
; x* F& B+ `( q; E/ x6 W( JSetWindowRgn 设置窗口区域 ! b% K2 M$ O6 g. |7 ]4 k* Z$ @
SetWorldTransform 设置世界转换 3 o1 Y# \( m8 r& @$ p, p2 K2 n* u
ValidateRgn 激活窗口中指定区域,把它从刷新区移走
0 }3 P6 t# V8 y! H0 i1 NWindowFromDC 取回与某一设备场景相关的窗口的句柄
# d% h- C# \$ a* b% \9 x8 @10. API之硬件与系统函数 5 w2 b6 h) r( R) X. q. R% G9 a
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 % H$ g3 ?0 E% m
Beep 用于生成简单的声音
( w" v/ E/ A1 \; f2 ~/ QCharToOem 将一个字串从ANSI字符集转换到OEM字符集 $ Z' S! M: ?& D# J$ x
ClipCursor 将指针限制到指定区域
: M. m  h2 m; o- k5 H" pConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
; _) b* u% u* y: L5 [# _CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 8 j( ^1 W; M! [& ~" L
DestroyCaret 清除(破坏)一个插入符
5 @; O  r1 ^, [( O' h2 S4 rEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 # s! y- A! F8 l3 R  J
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 # `% K! o1 d* I& G) N5 b$ _
EnumSystemCodePages 枚举系统中已安装或支持的代码页
: I% b* g- o: A1 [6 ^6 TEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
6 X8 g* P, e5 A. R6 F. kEnumTimeFormats 枚举一个指定的地方适用的时间格式
* J- H$ B6 _/ [2 \& FExitWindowsEx 退出windows,并用特定的选项重新启动 0 q: K# r- D3 G0 B% ~$ A
     WINUSERAPI BOOL WINAPI ExitWindowsEx(6 S$ V) ^  q: P& K9 C- x0 x$ w6 @, D: ^
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
& N2 d, C% s- ^, M: Q  i) q1 b     DWORD dwReserved); //0
3 b/ G5 d% A$ ^6 _ExpandEnvironmentStrings 扩充环境字串 ! o' z% U/ c; M: i, e6 j5 O
FreeEnvironmentStrings 翻译指定的环境字串块 5 N5 n- K% H5 C1 q3 @
GetACP 判断目前正在生效的ANSI代码页 ' Y6 ]# r' _$ T; P" L" H
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
- k" |4 U* D; B# R# c6 f/ ]GetCaretBlinkTime 判断插入符光标的闪烁频率
" y4 g* a4 D& ]( H% {( uGetCaretPos 判断插入符的当前位置
6 P4 c6 \8 p3 A! N2 c" c: SGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
. h/ P: |/ U* d1 eGetCommandLine 获得指向当前命令行缓冲区的一个指针
0 ?# y/ r3 h% e" |' f& I9 \  i9 T$ nGetComputerName 取得这台计算机的名称
" f6 C4 H8 ]3 ?2 D* G  l8 x& [GetCPInfo 取得与指定代码页有关的信息
0 C# ?' n+ }) [* iGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
# T% a- E4 [: m1 s  k" QGetCursor 获取目前选择的鼠标指针的句柄 ! R* d7 g0 y; {( K/ {
GetCursorPos 获取鼠标指针的当前位置 ) t: v, s6 r+ r
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 ' E2 M& p6 J. M
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 8 H$ `" t! ^) K
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
$ g6 O5 i, f: J. WGetEnvironmentVariable 取得一个环境变量的值
( o+ E$ Q# _& ^( T" UGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 ) i: y3 M( g. R8 E- S) W
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
  x, W2 t) Q2 H4 e$ b" B+ CGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
* |8 N- v1 i* W4 w* K: hGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
$ l! c# ?! j' U0 nGetKeyboardLayoutName 取得当前活动键盘布局的名称
/ T! A. E" [3 T% OGetKeyboardState 取得键盘上每个虚拟键当前的状态
) U* v; M/ I) mGetKeyboardType 了解与正在使用的键盘有关的信息
7 I" ~' X& |5 k8 f  I0 T9 _GetKeyNameText 在给出扫描码的前提下,判断键名
5 k% U: t+ d7 @2 }, CGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 # ]. F9 l# r# V* m7 S3 e7 Y
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
) |" P( G, S. {GetLocaleInfo 取得与指定"地方"有关的信息
4 y! P& N1 K; U8 o. t1 J: f& zGetLocalTime 取得本地日期和时间 : ]; }# V- Q+ n- W7 O$ C
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 0 v. A0 @& R) X( o2 \0 }
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页   w/ y; D7 \$ C7 d
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 , B$ S9 W$ r7 }" o
GetSysColor 判断指定windows显示对象的颜色
' j9 Z: N8 [4 eGetSystemDefaultLangID 取得系统的默认语言ID
( [. R: I* `) eGetSystemDefaultLCID 取得当前的默认系统"地方"
- y. [" \( t7 p0 l/ mGetSystemInfo 取得与底层硬件平台有关的信息 1 a) |- o/ t% ^3 {
GetSystemMetrics 返回与windows环境有关的信息
2 P+ W4 O. p& f* Y( H; Y! Q, ~GetSystemPowerStatus 获得与当前系统电源状态有关的信息 % W1 w% R1 X. t5 [  G2 Z; @- g$ @
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
4 S/ i; `9 J9 w, l8 S* yGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 7 F9 E) w; N8 K
GetThreadLocale 取得当前线程的地方ID
, |4 j' l) ?# a# t3 h# \GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
, k# b. v+ o1 R  `$ T$ dGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
* Q7 Q+ O$ u7 H# P; j* T' X' sGetTimeZoneInformation 取得与系统时区设置有关的信息 % _# o) @) X0 _7 p$ N9 Y& t- U
GetUserDefaultLangID 为当前用户取得默认语言ID 6 @1 y" z1 ~9 b& r7 K1 a. ^, N
GetUserDefaultLCID 取得当前用户的默认"地方"设置
7 ~$ g* l7 Q& C( O0 {6 b: U; w: ~8 uGetUserName 取得当前用户的名字
$ Y% h) F4 x; q/ t: ]GetVersion 判断当前运行的Windows和DOS版本
0 I2 v9 _) W  O; \8 L- [! Y5 |GetVersionEx 取得与平台和操作系统有关的版本信息
8 M8 B0 b3 G, uHideCaret 在指定的窗口隐藏插入符(光标) , c' x8 o) k( J0 h' _( u
IsValidCodePage 判断一个代码页是否有效 * {& `+ I8 G' s0 |5 Y3 f8 F( S9 ]
IsValidLocale 判断地方标识符是否有效
; m9 U7 P, r2 Ckeybd_event 这个函数模拟了键盘行动 , [6 ?" z% z5 Y! e
LoadKeyboardLayout 载入一个键盘布局
1 Z8 i& y3 F& k3 RMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 8 X, I# J* Y! F: [: v3 ]/ T
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
5 H2 J# \& J6 ~* Y; ]7 D8 t$ TMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 / g7 K& ~; E- s( B6 q
mouse_event 模拟一次鼠标事件 3 i2 z4 s0 u4 D% O
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
! G& \. k; }4 T8 R1 J6 F, OOemToChar 将OEM字符集的一个字串转换到ANSI字符集 , k2 I3 P2 j$ d. d
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 5 {2 j3 h! a, h' ]! N( d9 m# a
SetCaretPos 指定插入符的位置
% F/ \& X' @7 g1 uSetComputerName 设置新的计算机名 ) X3 n5 i9 t, X' b& c3 `8 Y
SetCursor 将指定的鼠标指针设为当前指针 1 I4 W- W$ Q; P/ a
SetCursorPos 设置指针的位置 8 h6 r! p; Q' U6 T# u
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
2 h0 G/ e& o, wSetEnvironmentVariable 将一个环境变量设为指定的值 $ p. H! o, g3 `
SetKeyboardState 设置每个虚拟键当前在键盘上的状态
* v- j( J, P/ T; E3 v  u0 SSetLocaleInfo 改变用户"地方"设置信息
; }  e- k! U8 \  n  ?. GSetLocalTime 设置当前地方时间
* W7 r0 z8 S7 s( I( wSetSysColors 设置指定窗口显示对象的颜色 # K" k, z  o' U
SetSystemCursor 改变任何一个标准系统指针 1 F; Q! I" K3 w$ s1 Q# A
SetSystemTime 设置当前系统时间 , V/ ]/ B3 b3 m# @* d
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
9 r2 B6 E9 E9 Q( q. u) HSetThreadLocale 为当前线程设置地方 + _7 Y* o2 Y1 K2 ]& I% A; [2 m
SetTimeZoneInformation 设置系统时区信息
( k, x/ r0 V1 m. W* p" EShowCaret 在指定的窗口里显示插入符(光标) 5 T9 R$ F+ `2 V
ShowCursor 控制鼠标指针的可视性 5 r7 P) P% P- N: B, O" V# T7 `
SwapMouseButton 决定是否互换鼠标左右键的功能
" s  e) P: M5 ]& K1 CSystemParametersInfo 获取和设置数量众多的windows系统参数
; I3 H  {8 U5 s# i+ k) ISystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 7 e7 R$ s" m( X1 S0 h0 q
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
* m1 s$ j* j. T% K! d: PToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
9 f8 Z4 `, b" i3 ~& Y1 nUnloadKeyboardLayout 卸载指定的键盘布局 0 S: \; J) H" d' p
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
3 {2 t% J# A2 z2 C7 e' D6 F11. API之进程和线程函数 5 H/ M- q1 k( H1 R& K. d5 j! T
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
* ~3 e9 \6 J. y) ^, b; N5 D" `8 i1 xCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
' I3 _9 P) m. `ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 3 E. B4 ]1 ?& D8 q2 l9 r
CreateEvent 创建一个事件对象 6 D% r. i/ \9 X& C* A( x* |
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
' r0 |1 A4 N5 a  [( }" f  ]( FCreateMutex 创建一个互斥体(MUTEX) 7 H. |( @4 i; s, ?) x
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 6 m- v" q5 _& k
CreatePipe 创建一个匿名管道 6 @8 u1 `: G# a  k
CreateProcess 创建一个新进程(比如执行一个程序)
- p. O- o) U6 |CreateSemaphore 创建一个新的信号机 ( H- d' o3 b) ^% E& ^
CreateWaitableTimer 创建一个可等待的计时器对象
- {( o: G' T6 yDisconnectNamedPipe 断开一个客户与一个命名管道的连接   O+ L6 I8 t+ G* l/ v0 ^2 r) n
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
- `; B/ J) |$ o; L" {% PExitProcess 中止一个进程
1 I; W# r0 S3 _FindCloseChangeNotification 关闭一个改动通知对象 & r5 w1 K$ U. M2 S( `' _& C. A7 u
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 8 k* j$ `2 D! R. ^8 i6 ]4 y) B
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
  ]9 ]8 N- }0 Y# v& u$ c8 C# G3 Q, tFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
" ~/ t# q* p7 @! r" qFreeLibrary 释放指定的动态链接库
$ I$ l' S6 p6 Q! _. R, bGetCurrentProcess 获取当前进程的一个伪句柄
- n8 D4 \# l) ^# |/ }GetCurrentProcessId 获取当前进程一个唯一的标识符 % Y  @; X9 H7 v- O8 \+ ?, Q$ x% z3 ?
GetCurrentThread 获取当前线程的一个伪句柄
* k0 s, X5 `) s/ T. R8 Z5 z+ f8 D! NGetCurrentThreadId 获取当前线程一个唯一的线程标识符
+ q5 n0 h8 [  ^- f1 Y* V' SGetExitCodeProces 获取一个已中断进程的退出代码 ( m# C( V4 z4 u1 K" j
GetExitCodeThread 获取一个已中止线程的退出代码
0 `' w1 m* T/ b' `7 \+ LGetHandleInformation 获取与一个系统对象句柄有关的信息 # J( S: C  a1 j
GetMailslotInfo 获取与一个邮路有关的信息 , I# l; W5 n/ T; }7 P$ K* u" V. j
GetModuleFileName 获取一个已装载模板的完整路径名称 & p$ T" p' U+ G; Z; x8 }: N
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
* L, p3 q% C. _2 _+ u- U     GetModuleHandleA(LPCSTR lpModuleName);, i2 j) S% t2 O( h: o
GetPriorityClass 获取特定进程的优先级别 " V4 a5 i2 `: g* E4 \' {  F6 X
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 % }6 F& B0 t! D# p$ i$ r
GetProcessTimes 获取与一个进程的经过时间有关的信息
. {5 ?* T+ L# h. O8 o, c! ]& ~; X, VGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
9 s+ |/ |" d7 `6 `% B! ?# @" ^' lGetSartupInfo 获取一个进程的启动信息 " Z: a" D. Z9 b8 `: u! x9 q
GetThreadPriority 获取特定线程的优先级别
9 K/ C. g. W& m7 PGetTheardTimes 获取与一个线程的经过时间有关的信息
0 e: Z* s7 @: {. h5 {: K  CGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
9 I. l3 n  c/ U3 @9 u  ULoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
; t5 U$ ]& B: {3 l9 VLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
) b& T6 M9 |1 o: iLoadModule 载入一个Windows应用程序,并在指定的环境中运行
- a7 Z1 N% ~7 h% Y/ d& lMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 , b7 E7 @' V9 F+ F( u
SetPriorityClass 设置一个进程的优先级别 ) s) v, |) r6 L4 E: L8 b( L
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
, ^9 g! Y8 b: H! c  d5 Q6 ySetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 " v5 c" j5 |1 B$ q/ h: {& I: r. X+ w) a! I
SetThreadPriority 设定线程的优先级别 4 T$ U& L! _( m' X  M8 Y0 c' c
ShellExecute 查找与指定文件关联在一起的程序的文件名 9 G: S& z) _4 J9 ]
TerminateProcess 结束一个进程
( V+ D, U- q. k' a: {5 IWinExec 运行指定的程序
1 x0 s  E2 `6 b& X12. API之控件与消息函数 ' W1 K* {8 H$ ?' a6 ?. R- w
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 0 X8 ^( H7 F( l+ o$ M4 _6 i$ N' I
AnyPopup 判断屏幕上是否存在任何弹出式窗口 2 q, l7 T: ]+ y; u" h$ Q& W8 h% v
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
" P' O& [6 b0 Q  H1 ZAttachThreadInput 连接线程输入函数 7 g; g) i4 x9 G7 Q9 ]' A
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 . o+ j) ^9 T+ V3 A. U! T: n
BringWindowToTop 将指定的窗口带至窗口列表顶部 ; S3 \& e7 H3 ~
CascadeWindows 以层叠方式排列窗口 3 P0 ?' d. _# k# F9 a+ u! N% s8 Z
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
2 M6 g  u0 \3 y- C9 r/ SClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
( _9 W! n  d% nCloseWindow 最小化指定的窗口
7 G  O' k. f! x: w3 W2 l/ qCopyRect 矩形内容复制 $ @! @# c" ~1 J
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 / A" {8 T8 P* f: L
DestroyWindow 清除指定的窗口以及它的所有子窗口 / K9 _7 _) q. E8 X
DrawAnimatedRects 描绘一系列动态矩形
, B: N0 w. X4 f7 yEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
) ?8 I$ x7 i; F% mEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
* Z9 [4 U. v5 y) E2 _% qEnumChildWindows 为指定的父窗口枚举子窗口 ! g: g6 ]; k3 D8 [# \
EnumThreadWindows 枚举与指定任务相关的窗口 . y+ o' u0 W9 D" X
EnumWindows 枚举窗口列表中的所有父窗口 ) _0 O! ~: h8 N2 \
EqualRect 判断两个矩形结构是否相同 7 a' B* k( {$ t- E
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 $ i9 C! r1 J/ u) Q. v! Y
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 2 j' @  D4 W7 R5 ?
FlashWindow 闪烁显示指定窗口
" f, T: R. r2 \GetActiveWindow 获得活动窗口的句柄 - I* C7 B* w8 h& `
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) + x9 g6 h: e, l/ I/ D7 |2 y
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 ( R/ g% b% h: B9 ^7 r
GetClassLong 取得窗口类的一个Long变量条目
. C2 P' K/ n4 B4 _+ E0 R# y, GGetClassName 为指定的窗口取得类名 : O$ b5 v$ Q' b0 m
GetClassWord 为窗口类取得一个整数变量
  z9 Q: O) C% \GetClientRect 返回指定窗口客户区矩形的大小
7 E7 B+ y# }/ r7 cGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 ! |, g, q; z2 }  n$ _$ M
GetFocus 获得拥有输入焦点的窗口的句柄
. k2 m1 ]* \5 d7 a1 l, cGetForegroundWindow 获得前台窗口的句柄 ' I% u+ l. y" P8 q* h  B; t0 {
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 : }$ J* V9 u: a- Y6 D* e
GetParent 判断指定窗口的父窗口
' L; j' M) B) [2 }" M) UGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
+ H3 p4 X0 W9 H2 G' s. ?" {. HGetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
( p5 T0 T8 z8 @- LGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 4 Q: w# V6 w! H1 L3 ?2 c5 o
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
* A4 v3 Q) E" }' W4 i+ \1 @7 oGetWindowLong 从指定窗口的结构中取得信息 , _# b: \) x- Y5 k! u# }' o
GetWindowPlacement 获得指定窗口的状态及位置信息 5 d/ e2 @" O5 S( ^; M
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
4 {2 k& B* Y8 V- ?# [& aGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 1 j% y& h7 ]2 o% d8 H. x
GetWindowTextLength 调查窗口标题文字或控件内容的长短 6 i& s! i2 u/ W; b6 f" @3 e. v
GetWindowWord 获得指定窗口结构的信息 ' m( l. i$ q% Z; B8 ~% i
InflateRect 增大或减小一个矩形的大小
% {/ `9 q& [0 Y" U) ^) S: ]& H2 l- fIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 2 K  O' X9 I0 g  ^
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
& x+ v. D) x2 b5 z! `# QIsChild 判断一个窗口是否为另一窗口的子或隶属窗口 9 x; S8 Q8 n7 v% m  _' z
IsIconic 判断窗口是否已最小化
+ h6 ^# Y- h2 `5 z1 c4 H) ^IsRectEmpty 判断一个矩形是否为空 + C4 B% k3 y- b4 [
IsWindow 判断一个窗口句柄是否有效 7 k- G& S' o5 H& Z- P; W
IsWindowEnabled 判断窗口是否处于活动状态
3 Y) W* V- K/ p: w$ a: y6 ^IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 3 S# `8 B& o5 Y
IsWindowVisible 判断窗口是否可见
4 k6 y, ^+ f) X) K( xIsZoomed 判断窗口是否最大化
2 C' e6 @1 e' r* ]( o' B3 tLockWindowUpdate 锁定指定窗口,禁止它更新 & L- s& b5 ?8 X# x, u1 t
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
) f6 `! I* S) p- e! G" j4 ^2 ]MoveWindow 改变指定窗口的位置和大小
" N6 X! S& [: M" a0 m4 y3 f+ TOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
8 q  j" ]7 N3 VOpenIcon 恢复一个最小化的程序,并将其激活
: \0 K& p( G) F; Q2 UPtInRect 判断指定的点是否位于矩形内部 " t: A' {# I1 k3 v; I& W! b
RedrawWindow 重画全部或部分窗口
( I! y) }  W: P; o# x& b" a+ T5 ?4 C/ aReleaseCapture 为当前的应用程序释放鼠标捕获 " G" y% Y7 b4 l. N% K
ScreenToClient 判断屏幕上一个指定点的客户区坐标
1 P( x9 G' F3 G( _* Z, ~ScrollWindow 滚动窗口客户区的全部或一部分 ( ]& T7 ^  M. U+ J7 ~9 l& n$ O9 g
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
& R7 k9 Y2 _2 o/ e9 {SetActiveWindow 激活指定的窗口 ) y4 C) R. j6 \. D7 I
SetCapture 将鼠标捕获设置到指定的窗口 0 Q- v5 u8 P0 S" s
SetClassLong 为窗口类设置一个Long变量条目 # {+ `* m, x( s2 Z6 _. |4 [
SetClassWord 为窗口类设置一个条目 : Z# ~9 ~9 `4 r4 w
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 & ?* e& h) x3 U& v& a/ U
SetForegroundWindow 将窗口设为系统的前台窗口 $ W1 P4 U1 v3 G9 g& {
SetParent 指定一个窗口的新父
. l- f( N8 O$ M2 I/ [+ tSetRect 设置指定矩形的内容 / O1 z0 N3 j# o7 p; g5 L
SetRectEmpty 将矩形设为一个空矩形 ! d. k0 J! h& V: J* H- R+ y+ y
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID # ?- n" Z) T' M$ P4 B- D/ S
SetWindowLong 在窗口结构中为指定的窗口设置信息
7 k. ?5 P* Z: z' y) ySetWindowPlacement 设置窗口状态和位置信息
8 l6 |( K+ Z4 P5 qSetWindowPos 为窗口指定一个新位置和状态
8 [' h1 o% Z4 ^. X3 e( v5 [! nSetWindowText 设置窗口的标题文字或控件的内容 0 G! [, g. H+ P) }
SetWindowWord 在窗口结构中为指定的窗口设置信息
5 M6 |) A2 t. g2 \6 S# tShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 # O* e1 Z, h" d3 Z
ShowWindow 控制窗口的可见性
0 _$ R) e& C$ v6 i5 y" P4 u- l2 FShowWindowAsync 与ShowWindow相似
( V3 f8 H% }; c- n+ N/ J4 DSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
, f) Z) Q* _9 g. g2 l' w' H0 F7 JTileWindows 以平铺顺序排列窗口
6 D0 H8 [" s  k: ?UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 . e0 f  G" K2 H. \! c/ ?
UpdateWindow 强制立即更新窗口
0 i2 T; d, @2 \( v1 U3 eValidateRect 校验窗口的全部或部分客户区
. x9 D) p3 \* L! o% i# a! f+ z) jWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口+ c3 `. m: X7 s4 r. v$ L6 ?6 R
高级音频函数—参看《VC++ 编程指南.chm》11.6( y- u5 l3 _! R% P
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。0 M- J) J3 z; ], }6 W
     BOOL MessageBeep(UINT uType);
; Y5 |, u/ ^0 t: G3 m该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
; O* o/ u* u( z0 `参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。  N- @2 ?2 n8 l. E" W
级别
7 D; V5 {9 `' @' m$ Y, T+ o) n+ O
描述 0 K2 _1 W5 {5 ?% d7 P% v
-1 , L4 P1 }+ M. q- h# V
从机器的扬声器中发出蜂鸣声。
# ?: q  F4 u( U7 n3 |% I
MB_ICONASTERISK 5 ]6 p8 S9 M# u/ P( q
播放由SystemAsterisk定义的声音。 $ @+ y1 i, Y. B( U- U) V
MB_ICONEXCLAMATION 5 a1 L" }. i; O( l* r
播放由SystemExclamation定义的声音。
( M! C0 }- t0 M( X
MB_ICONHAND
6 q2 _# t2 s; @; i
播放由SystemHand定义的声音。
3 h" L9 Y: `7 D! t
MB_ICONQUESTION ; R. _! }; S, {* y) z8 E6 J
播放由SystemQuestion定义的声音。
$ l1 V; Q0 [. ?' k
MB_OK
" C# P' t* \7 P! u; R. b
播放由SystemDefault定义的声音 3 O3 Z( Z6 a2 R- M9 u4 |$ [  e
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);
! S, f. R0 C% q5 L3 R0 ~参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
" \3 A4 U' u) C( [( ?参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
5 Q7 i# d* A1 |参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。- x. b  v+ n& B, T& F0 B& P
标志
: I  }2 S; U/ V0 B% B
含义
- d, ~; Z2 I' X& _8 `. w1 T
SND_APPLICATION
& Z; A- e4 g. Q* O
用应用程序指定的关联来播放声音。 ; [% V$ S7 m% M9 T- K" M+ R; W. `" Y
SND_ALIAS 0 C& o/ E$ m1 F) z
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
' t1 j$ y( u) h6 u  h( _9 K1 V7 c
SND_ALIAS_ID ! |8 ^$ `. _2 B7 p  N" S
pszSound参数指定了预定义的声音标识符。
- Z' i- e2 k) P0 k/ P
SND_ASYNC
1 o, g& ]$ `$ n+ M1 ?1 D$ v
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
& ~9 h5 s+ L* Y, [; @4 \9 q9 D
SND_FILENAME * u. k* k) \9 P* }5 u- z
pszSound参数指定了WAVE文件名。 . v- d8 P, s6 D  C
SND_LOOP   H$ V# I1 |9 U% o
重复播放声音,必须与SND_ASYNC标志一块使用。 4 M5 c$ E. w0 Y
SND_MEMORY
6 s6 g+ l/ ?" c8 z
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 $ L# w  |- P, Q2 i1 n+ |- Q# ?3 p
SND_NODEFAULT
. X# D$ e/ `# R- U
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
- L& a) b$ j9 L- D7 x3 d2 O1 p
SND_NOSTOP ( c* P! B5 M* i, h$ b
PlaySound不打断原来的声音播出并立即返回FALSE。
* U& a% Y+ j9 G  N: B
SND_NOWAIT 0 U# |2 ^, I( i& u# f$ {6 S
如果驱动程序正忙则函数就不播放声音并立即返回。 6 d& a5 {3 q4 A! I- Z; b
SND_PURGE 0 }7 U" a0 N2 G) |/ B4 H
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 / K  |5 C8 ~/ @- D1 i  L
SND_RESOURCE
; T* V5 @: z7 C
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
3 f2 Z1 X4 P6 a# @- m! u: {
SND_SYNC
8 g1 m& ^0 M' K6 X
同步播放声音,在播放完后PlaySound函数才返回。
7 d0 S: f1 W% A. W: y, l
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);; U& t1 H0 [6 h) {$ ^
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
$ T( {7 U  e" h3 IMCI播放6 i$ ]/ F! e3 d: D7 k
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:7 Z/ u4 j2 g$ E, N. [
MCIERROR mciSendString(
" b- p2 E7 t6 s* b6 ^LPCTSTR lpszCommand, //MCI命令字符串' X0 m3 l& k  B. b9 D4 p7 N* f
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
9 X( e$ o- x. ?- xUINT cchReturn, //缓冲区的长度6 z/ F' t4 O1 h9 j
HANDLE hwndCallback //回调窗口的句柄,一般为NULL
3 Z: t+ w2 Y! d% x: A/ ~); //若成功则返回0,否则返回错误码。
3 p" S2 T! r/ @$ G2 R2 a1 c6 W9 {该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:: A  S2 T4 J# S2 T$ ], r" y
BOOL mciGetErrorString() P7 r' Q! Q4 U/ z
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
" ^& t2 n6 K/ g' DLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
3 @- p0 o( m, z1 U. N) f$ p+ z( }UINT cchErrorText //缓冲区的长度
. m# {2 U1 {$ ~0 Y/ `* d);3 U6 C) k& @0 q1 T
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-27 17:44 , Processed in 0.025656 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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