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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
; N1 U& m; q) P0 l1. API之网络函数 5 h3 b' C4 S. v0 ?
WNetAddConnection 创建同一个网络资源的永久性连接 + [; `$ M; D9 }) s3 R, q
WNetAddConnection2 创建同一个网络资源的连接
9 A+ k. a! A$ k1 U, uWNetAddConnection3 创建同一个网络资源的连接 ( Z; u; p# t) q; W
WNetCancelConnection 结束一个网络连接
0 O/ q+ ^. N: R- ?& R: P6 q2 |WNetCancelConnection2 结束一个网络连接
0 F' o8 ^; }" P) a  E" v: d: pWNetCloseEnum 结束一次枚举操作 3 E7 P: Q, U: K& T0 Z& z5 j0 b2 b
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
9 A3 U* e+ k$ c( J& _  ^) tWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 ( ?: X& M8 W) h
WNetEnumResource 枚举网络资源 8 G' b6 }% V$ o, D" o& S% J0 e0 ~
WNetGetConnection 获取本地或已连接的一个资源的网络名称
. ~, [" h) H, a6 o* ~$ bWNetGetLastError 获取网络错误的扩展错误信息
; ]8 `$ b7 i& S+ n6 l! I  zWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
6 o! h: I# b9 K' e9 ]  a/ l2 p3 ZWNetGetUser 获取一个网络资源用以连接的名字
6 g, Z9 ?$ }; [9 uWNetOpenEnum 启动对网络资源进行枚举的过程 5 o+ Z8 z& C$ l( d2 G0 ~
2. API之消息函数
7 J1 w/ o, ]5 m- L7 yBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
; h) d- S* H: [/ y2 g) c0 S# o0 t, cGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 ; d% p; t) q1 M! i. z
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 1 j1 F# \  I: S1 E1 X
PostMessage 将一条消息投递到指定窗口的消息队列 % P1 J# F: j: n) f/ r5 d
PostThreadMessage 将一条消息投递给应用程序
' Q# P7 U8 C) a: ~/ @9 CRegisterWindowMessage 获取分配给一个字串标识符的消息编号
0 o+ b" o) J: G% wReplyMessage 答复一个消息 $ r+ P  k; x% R5 R; y
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口   J0 e% J  M6 a9 z  u' M
SendMessageCallback 将一条消息发给窗口 4 m" r; _, g) y' c
SendMessageTimeout 向窗口发送一条消息
1 }' m+ ~% ~  v8 ~- G# RSendNotifyMessage 向窗口发送一条消息
8 \0 a( M2 K3 X* i+ y$ f3. API之文件处理函数 & A4 M4 n* U5 A9 ^+ W
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 % F9 L+ _/ [. r/ a7 `3 ?. f
CompareFileTime 对比两个文件的时间 " I  z( o& N2 C0 ?# A# s
CopyFile 复制文件 . {- q0 `; Q) m0 {0 K8 \! }* Z
CreateDirectory 创建一个新目录
6 H* E9 f2 _9 O* G% f% t  h, iCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 7 V3 T/ r0 @# u
CreateFileMapping 创建一个新的文件映射对象 & P$ m  z  {) D5 Y4 ]9 o- V
DeleteFile 删除指定文件
1 e2 ~) m0 w. e- ?DeviceIoControl 对设备执行指定的操作
0 q; _0 B, c) q5 JDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
: W) j9 o% Y4 [5 L9 eFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 ' h% f1 A. [/ l  H+ f) P9 n
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
+ _6 V5 K! E% u5 K  r* b9 HFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
, ?# L. D6 s& h9 |; l4 W  {FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 ) L- i- |- B$ l( [& n% o$ g+ h
FindFirstFile 根据文件名查找文件 3 x5 k$ e- D9 B, W
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
; i  X6 S1 S. A/ C0 @4 nFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
3 d$ S9 {4 N8 G& wFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 ; q* ^( X# S: N' i# F5 L0 Y
GetBinaryType 判断文件是否可以执行 9 j- \& x. o! ~. L! w
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
# L/ \# J6 _  @2 o0 BGetCurrentDirectory 在一个缓冲区中装载当前目录
9 h( Y$ P6 T& ^# e) ZDWORD GetCurrentDirectory(* A  {6 w4 j! {9 e4 \
    DWORD nBufferLength,    //缓冲区大小
: I7 J0 Z% y7 T    LPSTR lpBuffer          //缓冲区的首地址7 u* ^7 a5 h5 u4 J
    );( O- n4 ], V; I' F- U
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 ( ^+ P( p" K, p: q" F
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息   G3 [: u4 O0 s2 E/ W8 l; K. L
GetDriveType 判断一个磁盘驱动器的类型
0 ?; i% }$ j0 G/ k& J5 f0 IGetExpandedName 取得一个压缩文件的全名 + E5 b' O8 D( B( D! n/ u6 i9 W
GetFileAttributes 判断指定文件的属性
% V9 M- o% g; s, ], `; oGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 1 \' f! A" Y0 u' R/ j% t: K
GetFileSize 判断文件长度 - n- `: X3 w# R/ Y* s4 t/ A' K  ]( c1 x$ ?
GetFileTime 取得指定文件的时间信息 7 _* D) u# m1 r: c6 L" r% T2 M
GetFileType 在给出文件句柄的前提下,判断文件类型 - s: w9 l! e- i2 ~7 l5 ^. y
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 . X% h# a  I! ?% A7 G
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
' B( `7 ]* |' T& e9 _# cGetFullPathName 获取指定文件的完整路径名 $ }" `* C) {% e) H3 ^
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
/ a/ `# u4 A8 A; ~GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
! d' z9 O) ?, yGetOverlappedResult 判断一个重叠操作当前的状态 0 w2 _8 F$ h6 X1 @/ r! A* R1 D
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
- H% K1 [3 p- t2 `, o. q7 w8 dGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 ; I% n/ P: [. [! j
GetPrivateProfileString 为初始化文件中指定的条目取得字串 2 n) N1 h- O9 g; r! D
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 & Y+ a+ O7 {, Y% i
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 ) F- B- w' U& J1 D" X' s
GetProfileString 为win.ini初始化文件中指定的条目取得字串 9 p; w8 Q% z$ c  ^6 g$ g% C
GetShortPathName 获取指定文件的短路径名 . u0 }5 K3 S( G- ?" y! h
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 ( X" }' q; {; r1 Q
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
' }$ c' N  A' J$ Z7 ]& j+ rGetTempPath 获取为临时文件指定的路径 , T4 J  r. ]$ H
GetVolumeInformation 获取与一个磁盘卷有关的信息 / B  F4 N( {( {  `
GetWindowsDirectory 获取Windows目录的完整路径名 ( `; A8 P4 l( T
hread 参考lread
+ `" h$ ~' x  m( E8 e5 |hwrite 参考lwrite函数 ; v% O$ w# Y! E# O. G
lclose 关闭指定的文件 4 J/ _; C8 P' e$ U0 S
lcreat 创建一个文件
. T& G4 ^. e+ c! }1 n. t( }llseek 设置文件中进行读写的当前位置 $ u! e; [: p; D6 N% X0 `
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 4 X6 B" y# K! l! l
LockFileEx 与LockFile相似,只是它提供了更多的功能
1 u" d8 c$ `3 `) xlopen 以二进制模式打开指定的文件
+ _6 m. Y0 ~: M+ x% A* \- llread 将文件中的数据读入内存缓冲区
& {& P% F1 K$ k' p1 P, Flwrite 将数据从内存缓冲区写入一个文件 ' B% F! P/ m- f. Y8 t
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
, v0 u0 Z, I3 }/ E8 rLZCopy 复制一个文件 # S2 _/ n( E. _, _1 K; X1 [8 h/ L
LZInit 这个函数用于初始化内部缓冲区 5 s) F8 H" u; k1 G1 {5 m
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
8 x7 H) H" @5 }0 B2 PLZRead 将数据从文件读入内存缓冲区 2 {7 P- M1 {$ e: `' X$ b* Q! m7 n! B! i
LZSeek 设置一个文件中进行读写的当前位置 8 ]3 ^. K) K' t
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 . A5 T0 b, s6 C0 z4 A% X" y/ b
MoveFile 移动文件
% C$ S$ L- n7 a4 M9 `. `OpenFile 这个函数能执行大量不同的文件操作 ' i& D2 v+ Y" ~2 V6 w
OpenFileMapping 打开一个现成的文件映射对象
! ]% r5 J+ Y* GQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
/ Y6 z5 B0 }! q* `6 s# s  dReadFile 从文件中读出数据 0 e2 }1 n- s8 A4 z) c& S) {
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 . ?9 J2 ]4 c4 X: r
RegCloseKey 关闭系统注册表中的一个项(或键) . z3 Y$ e, D9 [& F5 B6 {; f
RegConnectRegistry 访问远程系统的部分注册表
  u, ?7 M6 t' r* v  aRegCreateKey 在指定的项下创建或打开一个项 . F9 W& n! S6 p
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 , G2 ?  d- t2 F3 W. B2 ^# |
RegDeleteKey 删除现有项下方一个指定的子项
& ~/ J8 }7 s$ k. f6 F- B# CRegDeleteValue 删除指定项下方的一个值
* P$ K) L$ }3 r; s. x8 fRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx 8 m+ n  z5 e$ j& c% r
RegEnumKeyEx 枚举指定项下方的子项
" c3 }# y( }! F) W; W. |$ cRegEnumValue 枚举指定项的值 4 _3 ^2 j0 g$ b3 |" y
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 ! c1 k! {' p& L$ n4 C' |. ]1 A
RegGetKeySecurity 获取与一个注册表项有关的安全信息
. l9 b" P# C3 H; _RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 3 X3 R+ l+ Z- }% R/ u' H
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 . `+ p: t; R- {6 p! t4 h! w
RegOpenKey 打开一个现有的注册表项 $ o$ q' ?* ~/ c$ ]4 I7 ^* q2 H3 p$ t
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
( z1 t7 K, j( e0 Y% L8 ZRegQueryInfoKey 获取与一个项有关的信息 % ]( w! t: W4 K% O9 q, _& _: ^- x
RegQueryValue 取得指定项或子项的默认(未命名)值
  ~, h9 @) S. Q/ \( g' f$ [9 uRegQueryValueEx 获取一个项的设置值
& ^% f) e! L/ U, F, N# z( eRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 / G; f1 x$ A5 ]% `/ y4 D3 b. S
RegRestoreKey 从一个磁盘文件恢复注册表信息
! M+ D0 |  f0 w7 JRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
5 j+ ?) N9 F1 x  X, z- O" D; ]2 DRegSetKeySecurity 设置指定项的安全特性
+ g- X" }" f( B* W8 O# L3 c" LRegSetValue 设置指定项或子项的默认值
' l0 P& @0 ~1 @3 p& O& JRegSetValueEx 设置指定项的值
5 l/ }7 O" C1 q( pRegUnLoadKey 卸载指定的项以及它的所有子项 4 W& `# u) S4 D
RemoveDirectory 删除指定目录
0 D% X, w# S  W. a9 j* f3 |SearchPath 查找指定文件 9 L, D# I  g# X
SetCurrentDirectory 设置当前目录 / G7 F9 ?2 ?9 M5 F" e
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾   N4 ?7 [, W% S1 I7 ~( [# ~2 L
SetFileAttributes 设置文件属性
! B& P* p' L* d7 ISetFilePointer 在一个文件中设置当前的读写位置 3 n' N2 P) w& k/ u5 j
SetFileTime 设置文件的创建、访问及上次修改时间
$ _6 ]4 Q6 L( b* k& O* o# `( p$ }SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 % ]" `$ \( f" v7 A5 c8 d
SetVolumeLabel 设置一个磁盘的卷标(Label)
- U& t* j( _5 R, A' Y8 kSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 / r9 K; R% B6 M9 O4 R& p
UnlockFile 解除对一个文件的锁定
  V& r$ Q' ~1 D. Q3 HUnlockFileEx 解除对一个文件的锁定 2 J, |$ a% a/ L, u
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
/ U& P7 v6 `/ c0 [VerFindFile 用这个函数决定一个文件应安装到哪里
: S+ T& |+ @+ L% wVerInstallFile 用这个函数安装一个文件   e1 q; ^5 m( S# X6 S% \5 v
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
6 q& ~$ l6 P! M2 ~: Y2 e0 fVerQueryValue 这个函数用于从版本资源中获取信息 ' ^5 s6 y* B& L6 I+ e6 K6 ?
WriteFile 将数据写入一个文件 * `# S  T3 `* Z
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
$ ]; e  g* M3 g. a& gWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 ; I: U6 K- C# H: \( W5 {0 F
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
( S# W: A6 d9 a9 O( qWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值   j% g3 `6 ^. o) I
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
  F0 W! L, b; P* T0 C4. API之打印函数
' ?0 l& t" ?0 d! S" ~! }AbortDoc 取消一份文档的打印 9 q# ]( ~2 i- ~2 l6 F+ F- S# v
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
& H7 c( Q! {& s* Z* v2 qAddForm 为打印机的表单列表添加一个新表单
6 `# Q$ z$ A: ?( e* \: L) S: LAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
4 x+ R" m) Y4 i6 }6 ~( |AddMonitor 为系统添加一个打印机监视器 . l* c1 S  E4 v9 u* i8 @/ u# D
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
: K+ j, F2 y) t$ n8 _* l: w" E) |AddPrinter 在系统中添加一台新打印机 8 }% O, B7 ]& P2 z/ i
AddPrinterConnection 连接指定的打印机
, C! z1 f6 ~( B* t' oAddPrinterDriver 为指定的系统添加一个打印驱动程序
0 C" ^4 V" W7 Q6 {1 t0 ~AddPrintProcessor 为指定的系统添加一个打印处理器 1 u  N/ K8 e# E8 a
AddPrintProvidor 为系统添加一个打印供应商 ) b0 Z1 r* q; m; P% Q
AdvancedDocumentProperties 启动打印机文档设置对话框
& K9 y& J$ x* S( F0 KClosePrinter 关闭一个打开的打印机对象
- D  x. k/ k0 \* L4 y: r, `7 GConfigurePort 针对指定的端口,启动一个端口配置对话框 ) {4 K; ~8 R# h6 U0 L, A0 x' Z
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接   r  K: C+ B3 I
DeleteForm 从打印机可用表单列表中删除一个表单
/ Y# E" b! y6 k/ x2 H( N; jDeleteMonitor 删除指定的打印监视器 9 U; C' {3 f) e6 e$ ~
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
" O: O  F) d$ U; U; a0 z7 zDeletePrinter 将指定的打印机标志为从系统中删除
2 r$ J# w! X, m; w2 wDeletePrinterConnection 删除与指定打印机的连接 ; u. n, S* j! |/ s* L
DeletePrinterDriver 从系统删除一个打印机驱动程序 ; ]% h" Z& S6 v; Z. D* s) A
DeletePrintProcessor 从指定系统删除一个打印处理器 0 |9 c& y7 n; m) O9 {
DeletePrintProvidor 从系统中删除一个打印供应商
- S4 Z- T% @+ |DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
5 f) ^3 c; u( X0 O' S2 N* c) YDocumentProperties 打印机配置控制函数
9 v% `% n1 c# }$ x, cEndDocAPI 结束一个成功的打印作业
+ j4 o( z7 l2 d2 UEndDocPrinter 在后台打印程序的级别指定一个文档的结束 & g! N! W8 M" Q) G
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
' S; ~, |  J* C5 m# \. vEndPagePrinter 指定一个页在打印作业中的结尾
$ \0 k  F- h" ~4 A7 s9 E3 o+ EEnumForms 枚举一台打印机可用的表单 ) ?2 k$ `7 X) L  @. ?+ A, g) O
EnumJobs 枚举打印队列中的作业 ' n* B9 Q) ]0 A6 e0 i+ S
EnumMonitors 枚举可用的打印监视器 & f  p4 N5 f" z& f0 a
EnumPorts 枚举一个系统可用的端口
9 c% Y4 g% q7 ]( l5 G6 zEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 ; _& L; c3 [* O$ a/ q) K6 p: |
EnumPrinters 枚举系统中安装的打印机 - c* Z3 Z9 _0 T1 D
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 * v( @; L# F' I( _' S  N5 ]# |
EnumPrintProcessors 枚举系统中可用的打印处理器
4 r. E, a, U  ^" ^; j& qEscape 设备控制函数 * G7 E, r2 f, K, o# n
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 * e1 s. m1 u, `: R! x! e2 T
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 - Z. R' s" |/ s: [$ q( o+ T& [8 ^/ O! J
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
( G' F/ _6 G- |* q! v7 AFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 $ n; E" b4 D1 v  [8 N
GetForm 取得与指定表单有关的信息
6 E/ K0 b5 T7 q# z$ G, zGetJob 获取与指定作业有关的信息 " H6 ?8 E% _9 f2 z2 e2 k
GetPrinter 取得与指定打印机有关的信息 " m' G2 f0 V1 n2 _! D  n
GetPrinterData 为打印机设置注册表配置信息 " ]/ J  x+ K+ @" W3 x7 _0 i. h9 S
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 4 V' c9 ]$ ^( W) x" x/ y
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
6 D' l4 f% D/ |( H8 c0 r3 q. U, yGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录   U( p8 k& l/ H. s3 ?; A8 D' `
OpenPrinter 打开指定的打印机,并获取打印机的句柄 - m' ^- |) o! r% V! p! u
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
  j/ B& x3 m: P8 _# YPrinterProperties 启动打印机属性对话框,以便对打印机进行配置
" [  Y  ^6 v- x. a6 M6 AReadPrinter 从打印机读入数据 , K/ s8 T9 s+ j9 r0 P$ ?) c, N
ResetDC 重设一个设备场景
. o' F+ o4 v3 F+ K6 ^. YResetPrinter 改变指定打印机的默认数据类型及文档设置
: p- c! |9 m0 MScheduleJob 提交一个要打印的作业 5 ~& R1 D. u" c3 z' Z. _
SetAbortProc 为Windows指定取消函数的地址
! Y) ^* v+ i/ g  p) x+ _SetForm 为指定的表单设置信息
: o. K/ l1 n: W. i4 X5 _) M+ `SetJob 对一个打印作业的状态进行控制
3 F) J' e, i) |* @9 p8 W; k6 i+ F0 YSetPrinter 对一台打印机的状态进行控制
% ]. m  V+ J# y) f& ]SetPrinterData 设置打印机的注册表配置信息
' b# i0 R* J6 m  i; q0 E# ~8 MStartDoc 开始一个打印作业
% |# x* i; s  l" G* cStartDocPrinter 在后台打印的级别启动一个新文档 2 t$ T) a3 O/ \
StartPage 打印一个新页前要先调用这个函数 6 j# x% @3 D( x, K1 k" S9 }
StartPagePrinter 在打印作业中指定一个新页的开始
% \" B  ?  v6 R5 v' ]WritePrinter 将发送目录中的数据写入打印机 1 t* J1 Q5 G1 B7 t% W
5. API之文本和字体函数 ( M% i5 @  B5 z& a- m; }
AddFontResource 在Windows系统中添加一种字体资源
% _* D& G; e$ u1 d" S; l  fCreateFont 用指定的属性创建一种逻辑字体
* `- {6 O4 O0 E4 ZCreateFontIndirect 用指定的属性创建一种逻辑字体 # f! L* n- g6 i, M( V8 h  A
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 2 G0 `% w- E8 U
DrawText 将文本描绘到指定的矩形中
& g1 g2 T! h' uDrawTextEx 与DrawText相似,只是加入了更多的功能 ; t2 D. f+ C# O/ b& z
EnumFontFamilies 列举指定设备可用的字体
" i; z# K( G: `' e- EEnumFontFamiliesEx 列举指定设备可用的字体
' Z; @$ u8 R/ h0 I) M  y  \EnumFonts 列举指定设备可用的字体 ; L9 C3 ^+ @* p* n' l+ l
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
" |! l# n7 B8 X8 j# @( d: XGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
' u& w% L  j* e4 m' eGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 4 Z4 k' q( D! x6 U+ V, J2 K+ r, @
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 * p* V) l- B( m0 Z
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
( B' R8 s9 C9 A6 {8 {; `6 nGetCharWidth 调查字体中一个或多个字符的宽度 $ b6 S8 t" z& z& d3 S2 S/ T
GetFontData 接收一种可缩放字体文件的数据 , [/ B1 k( c4 h! |
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
) U- I+ }$ }- h& w) oGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 ( K! M* I2 }7 ]0 ?) Q
GetKerningPairs 取得指定字体的字距信息 ! [! _2 ~4 E9 O4 }4 m" p$ e; S7 B0 [
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
8 v3 S: e2 C, W+ `% _GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 6 U, l4 N$ x2 y; B- P( Y! h, o4 R. e
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
2 n, C( ?- L1 T  f4 r* ^GetTextAlign 接收一个设备场景当前的文本对齐标志
  S# g' q) j/ DGetTextCharacterExtra 判断额外字符间距的当前值 . o+ k5 s/ A1 C) E6 D
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
2 E# A: a! V9 O$ N0 }* P! U( CGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 6 d( `  X0 @6 ?1 ?
GetTextColor 判断当前字体颜色。通常也称为"前景色"
! p+ f! [1 v7 S# ^$ ?7 ~7 uGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
& U- J& T, ~/ h% F! eGetTextExtentPoint 判断一个字串的大小(范围)
0 @  O" L, W4 O7 `% n4 g$ XGetTextFace 获取一种字体的字样名
# _$ W( c# \  J/ Z5 I8 E- q1 sGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
: z9 r3 i& P% ]GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 . c8 X; w' }3 f' n& k$ V+ Z
PolyTextOut 描绘一系列字串
5 H, ^% A+ X4 o$ ]2 S7 D  r' hRemoveFontResource 从Windows系统中删除一种字体资源
8 q: r' H6 u# V5 ?& `& S5 ^SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 . ?  y' @* M/ D7 r
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 7 |) B1 v& A8 ]* z, o- k8 S
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 " m0 W- X. z5 L* p2 X
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" 1 s0 u9 `7 d: q. H) l4 a! H& o
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
' P  F- }( v1 r5 I4 n& \" ]8 u) {$ lTabbedTextOut 支持制表站的一个文本描绘函数 0 H) y1 y% A$ _  J( `# v( J
TextOut 文本绘图函数
. k$ i. h' O) {9 |( e: TWINGDIAPI BOOL  WINAPI TextOut(. k7 R8 h9 b+ `! |9 h
HDC,     //输出设备, e; I- H" U5 _7 ]2 Q+ |
int,     //输出的横坐标; U4 G! ?5 X. j6 r9 H: [6 r1 z, l: U
int,     //纵坐标
% m/ [. i% N1 ?1 YLPCSTR, //输出的文本str
5 Q9 b' a$ K: g+ D5 m+ s: d. hint);    //文本的长度:lstrlen(str)
' l" T, t$ W% w1 X4 N* ]/ c6. API之菜单函数
/ n/ E) E5 z+ K+ L9 B1 GAppendMenu 在指定的菜单里添加一个菜单项 ) y' t& E# }- D( k) [0 O! p" p$ D
CheckMenuItem 复选或撤消复选指定的菜单条目
2 ]+ J+ D5 A$ h9 c/ C+ uCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 9 }3 _4 s, j/ N) a+ J7 g
CreateMenu 创建新菜单
% e. _' E( P2 O; ]CreatePopupMenu 创建一个空的弹出式菜单 3 u; Z) u% q' O* e: E5 a  R" ~8 K
DeleteMenu 删除指定的菜单条目
; D' }% j5 k' h: C0 RDestroyMenu 删除指定的菜单 7 r. z9 s7 G/ U- `
DrawMenuBar 为指定的窗口重画菜单 7 r. W% k; L6 N" v. F
EnableMenuItem 允许或禁止指定的菜单条目
9 Z# B$ |( K+ e9 ^# ~1 ^GetMenu 取得窗口中一个菜单的句柄 ' t+ i! |. B( a' @& j2 ~9 `( S; \1 Q# ^6 R$ u
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 . a! \  {3 @, l/ ?( I
GetMenuContextHelpId 取得一个菜单的帮助场景ID * l1 V. R! l/ X* Z
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 : T$ h# \. p9 j
GetMenuItemCount 返回菜单中条目(菜单项)的数量 , [4 F6 G0 o0 n# ~  |6 v$ ^
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
9 J2 H" x+ v& v( H  SGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 9 x3 j2 T' y4 Q& z4 X
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 ' _: ^! ?% H7 B  v, V: n9 c
GetMenuState 取得与指定菜单条目状态有关的信息 9 W0 q( H% |* d9 c
GetMenuString 取得指定菜单条目的字串 " O, r" X  Z4 k. ?/ [  E( A
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
; Z& T2 L' n7 A& rGetSystemMenu 取得指定窗口的系统菜单的句柄 " U9 j- I2 ?( b( u2 z
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
7 c( K1 [  P: l, u. Y& DInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 6 V! @6 L) M! D
InsertMenuItem 插入一个新菜单条目 ) \6 Q2 w. n% G# [8 O& N
IsMenu 判断指定的句柄是否为一个菜单的句柄 , M- D( R1 ?; ~+ v8 @# A0 j
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
0 `) b( D3 ^! C, q' V" ULoadMenuIndirect 载入一个菜单
% u4 w9 D9 u8 }" vMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点   U. l: T+ U" X) V5 K; x$ d7 b
ModifyMenu 改变菜单条目
/ m3 v# O/ V) I& b) JRemoveMenu 删除指定的菜单条目
* v$ e! Y3 V  [5 m8 k; E# X$ S+ _SetMenu 设置窗口菜单 6 ?7 G. E: T% }+ a& A8 P
SetMenuContextHelpId 设置一个菜单的帮助场景ID
6 n' v8 B3 p* f4 a  rSetMenuDefaultItem 将一个菜单条目设为默认条目
# e7 F0 H5 J* u/ Z1 |' Q8 s' USetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
( I7 b0 }  D& o5 E& ]& s4 BSetMenuItemInfo 为一个菜单条目设置指定的信息 - i2 I2 R* p6 f# }
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 2 d+ l+ @) b+ X4 _+ b
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 9 B/ s% {' {' f* O
7. API之位图、图标和光栅运算函数 - C$ E: {5 P$ p: z3 r; \  Z
BitBlt 将一幅位图从一个设备场景复制到另一个( S+ _5 ]( i7 ]5 H  k+ ^
     WINGDIAPI BOOL  WINAPI BitBlt(3 i2 [4 B4 L) i  N
HDC,     //目标HDC1 z' a7 j+ p9 ^: x& l- e
int,     //X1
! C- s' g8 w3 H4 V/ e, U0 sint,     //Y1. B; C2 P/ m) \& f$ Y( v1 f' H3 r
int,     //width) \" e0 Z$ o, ]! U
int,     //height' G5 ?+ X8 T. M- |- ?
HDC,     //源HDC( K* }& V1 M6 h( m( {! L4 E* n7 h
int,     //右边的距离
: V' {2 D  }1 s- {4 g# e; j; hint,     //??
% I" W9 Z0 Y- c; U2 {5 JDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
( d' I% c3 r& C: w, P9 N- JPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS3 x2 V( E+ S8 |% Q2 r; Y
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
, |- U# p  d# n# g( KCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 , ^, H  q+ [- r7 o( [, l
CreateBitmap 按照规定的格式创建一幅与设备有关位图
, p5 x5 u6 g, fCreateBitmapIndirect 创建一幅与设备有关位图   X0 S1 x; G9 ~; C
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
& j  s2 Z+ Y' o2 v+ dCreateCursor 创建一个鼠标指针 0 j( B  h! d/ X4 r. ~) ^; d5 U
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 2 L& x" k3 Q: e0 ?8 M& E
CreateDIBSection 创建一个DIBSection ' L2 _" g2 J9 Z% x
CreateIcon 创建一个图标 ) Z& }9 K' g5 {- H
CreateIconIndirect 创建一个图标
2 g+ d$ b* ?$ t- b, X5 O- @, E2 T0 kDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 5 k# o" P6 ?8 j# I. g* N/ c
DestroyIcon 清除图标
# k+ O8 V2 V! i5 I; bDrawIcon 在指定的位置画一个图标 3 H+ W2 d6 `+ Q% M
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 $ F0 P/ p5 Q' L8 q! G8 u  _
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 ; F; i$ Y; j/ p4 I* N! }4 a; H. N% `
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 3 h% M2 J( V% U. e; b, E/ x) z0 ]
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 . t  }* {3 c- j; T! M
GetBitmapDimensionEx 取得一幅位图的宽度和高度 4 z2 h: t9 v* i! e+ a4 C
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
/ c. B9 ^' ^$ {# j5 n; Q# j5 vGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 5 ?1 [' l0 s. o3 E- t( ]
GetIconInfo 取得与图标有关的信息
; h9 s/ V! B! c0 j8 fGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
' i3 j3 T5 A$ W9 P2 c6 }: S9 cLoadBitmap 从指定的模块或应用程序实例中载入一幅位图
- N6 z! e& J. e: N; nLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
' C+ |; @* }) E8 G  qLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
* d1 ^, Q  ]( ]: [LoadIcon 从指定的模块或应用程序实例中载入一个图标
2 [+ j5 l4 I# v4 n$ Y; ALoadImage 载入一个位图、图标或指针 . a9 L0 b0 l! h, `. f/ Z9 h
HANDLE LoadImageA(% o, m! I/ `, B" ^
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
4 d8 R* S+ X$ x' j    LPCSTR,               //资源所在的目录:c:\help.bmp
  {# |' s0 H! b9 ~0 b" p2 d    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE9 U) _! j5 {% R+ b: J' o% D* b
    int,                  //
: \3 C; u- T3 N' \7 Q' k3 t, x    int,                  //" w- W7 ~4 R* T  g
UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
' g# ~% O4 r. h( H6 ?5 b6 W1 ~R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
1 A" v( Z/ H; s2 b) ^. I5 n* tLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
2 |4 p" D1 W. m6 a4 KMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
, k/ e5 Y4 W1 u# e4 [+ v/ l1 _) YPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 / W, h$ z5 U% j1 a$ \
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
/ N+ d' q; E/ j* z% b$ VSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
3 U  q) ~( n6 ~& h3 z0 SSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 ' C$ Y5 @2 N9 b1 x/ \2 k* n
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 8 H. |1 |; H  e
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 ! ^. |+ o  o* \* m! i4 f1 Y
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
9 L2 i0 P. o' A) u8 `SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
, t( h* j* K# f7 RStretchBlt 将一幅位图从一个设备场景复制到另一个 # _0 j: |5 m1 w* P' s7 g5 b9 Y, n$ y
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
2 |* w0 c, h( }0 x8. API之绘图函数 / W7 |0 ^- a0 O: s  p+ @. |, C
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 0 @! q3 J$ W0 u6 D; J' c' s0 {
AngleArc 用一个连接弧画一条线
/ y8 v* z7 G: N; i0 x) p9 UArc 画一个圆弧
; H, L. P+ ~. }% m* h8 k2 x% \# m. JBeginPath 启动一个路径分支 " a9 K% }+ G( O
CancelDC 取消另一个线程里的长时间绘图操作 6 m, K5 w" c3 E
Chord 画一个弦
+ E* g4 q4 g- t5 i8 p+ tCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 ( t! Z) N! `1 |% i: c
CloseFigure 描绘到一个路径时,关闭当前打开的图形
; q: M% [2 K8 }4 v" T6 oCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 : H, w/ [7 W  ]; Q$ S# o0 b$ d
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
( F$ m; e' x  D8 Z, j! S1 NCopyMetaFile 制作指定(标准)图元文件的一个副本
8 V9 q) g. o+ ?( x$ f- }CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
2 m' E6 y) }* U8 Z; gCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
; e. U- C# f, A7 a4 b  WCreateEnhMetaFile 创建一个增强型的图元文件设备场景
* q- |: `  S2 |! u4 \CreateHatchBrush 创建带有阴影图案的一个刷子 2 V' }" t* N+ r6 S6 ~+ y
CreateMetaFile 创建一个图元文件设备场景 " V# t* n! r% u4 [* W- h
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 ! C/ w. E: v. T, t
CreatePen 用指定的样式、宽度和颜色创建一个画笔
; W' K$ J3 E6 ]9 o5 H3 \* ACreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
7 N/ S- V4 B: s7 T  GCreateSolidBrush 用纯色创建一个刷子
& r2 T& H* Y- Q1 JDeleteEnhMetaFile 删除指定的增强型图元文件 ; J' s  }' }  Y# D: }# n
DeleteMetaFile 删除指定的图元文件 ; o+ B" d8 n, x# j8 ]3 p* S
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
3 I6 b# _# A8 b5 d" G# vDrawEdge 用指定的样式描绘一个矩形的边框 5 R% \! G' @3 T5 F- o
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
* O9 L; r' L+ T/ J  }3 u* xDrawFocusRect 画一个焦点矩形 8 Y" {1 M" x9 G
DrawFrameControl 描绘一个标准控件 & u$ u9 a$ u, s, E; p. ^9 _
DrawState 为一幅图象或绘图操作应用各式各样的效果 6 c! N# |( u' h3 l
Ellipse 描绘一个椭圆,由指定的矩形围绕
( v6 F9 q" K9 `  P$ k2 REndPath 停止定义一个路径 4 c2 [, A- x- s5 V" g
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
& G. f( i3 l: v5 n$ wEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
0 \5 _$ G) |' ?6 T  DEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 . p2 [1 C2 G5 j- I# q7 v( F- k
ExtCreatePen 创建一个扩展画笔(装饰或几何)
0 D* V( m5 M% a9 }/ Z+ U& _) BExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
1 `0 F: G1 X0 E  s2 X& _/ hFillPath 关闭路径中任何打开的图形,并用当前刷子填充 5 P2 n3 R4 e2 m. p/ @: q$ M" m' B
FillRect 用指定的刷子填充一个矩形 $ z: R* y; S, s) p7 Q; f
FlattenPath 将一个路径中的所有曲线都转换成线段 9 a  m% l" N6 G8 r' U( U2 R
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
7 A6 Y, M* x* p9 D3 q6 BFrameRect 用指定的刷子围绕一个矩形画一个边框 ! Q8 R3 \1 M0 U  S* s
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 8 ?0 M+ X" v  |- C( W
GdiFlush 执行任何未决的绘图操作
  M% o2 O+ y* \GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 1 L2 d2 y. i- h+ d6 W2 O/ x
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 # Y: \8 ^2 O9 x) P/ J( X
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 ; Q0 n' p  N, c: Q6 o/ ~' m1 d
GetBkColor 取得指定设备场景当前的背景颜色
  Z5 B- Z+ G% k1 V& eGetBkMode 针对指定的设备场景,取得当前的背景填充模式
$ Q5 L; M) U2 ?* i9 y: S9 t6 ZGetBrushOrgEx 判断指定设备场景中当前选定刷子起点
9 K* U+ \6 K1 N7 RGetCurrentObject 获得指定类型的当前选定对象
! r) H+ m6 |, A1 HGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
" \6 [$ r+ l5 D2 C& g8 W( n9 y0 H4 rGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
- h* B1 o7 y' y7 P! eGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
& T0 P4 E+ U2 C; Y# h, m) K1 i9 c2 bGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
' Z8 {/ q. f. e- Z5 VGetEnhMetaFileHeader 取得增强型图元文件的图元文件头
( s* C; N0 x' t& X& V) |  DGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 1 ?1 a# ?9 W# u$ R  }  x0 t
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
! X/ j5 b' M, @  R) o- {GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
* r  p" L5 ]) ^- m' WGetMiterLimit 取得设备场景的斜率限制(Miter)设置
  V& ]; \) ^2 K% v- Y5 GGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 " U8 d( U+ `  \6 i- D  h) Z
GetObjectAPI 取得对指定对象进行说明的一个结构 5 Z+ L8 W/ @3 q, W; f. C6 O
GetObjectType 判断由指定句柄引用的GDI对象的类型 1 x' e# y' @  P4 U* A
GetPath 取得对当前路径进行定义的一系列数据 3 d8 a9 L0 d1 {
GetPixel 在指定的设备场景中取得一个像素的RGB值
2 y* m& l% @; u. k; QGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
3 K# o1 t) V. l: K5 \7 a; YGetROP2 针对指定的设备场景,取得当前的绘图模式 9 {/ l6 X2 ^# o( }
GetStockObject 取得一个固有对象(Stock)
4 y4 p% p: R% h0 I1 {GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
3 T6 e) ^5 ?5 qGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
  O, T" D; E5 c/ @. ZInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 9 p* P# }) Y6 \
LineDDA 枚举指定线段中的所有点
/ u1 s) ?5 E& H$ f5 gLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
7 _5 w2 _2 D  iMoveToEx 为指定的设备场景指定一个新的当前画笔位置
: l9 D2 {0 D9 g0 SPaintDesk 在指定的设备场景中描绘桌面墙纸图案 " ~  t& q0 D) i2 D4 R8 p) _# a
PathToRegion 将当前选定的路径转换到一个区域里
5 K0 D: f6 \  I5 Q. X; `7 QPie 画一个饼图
6 j3 z6 r! Q/ I% _% r0 J6 {PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 / b( [8 ?$ [2 U6 U
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
, x5 p( w7 W" b8 N; n. @+ }PlayMetaFile 在指定的设备场景中回放一个图元文件 & Q- B9 q8 D% m& o8 f+ |) u
PlayMetaFileRecord 回放来自图元文件的单条记录 5 t$ H- B  V* V
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
- O$ x/ r  |# bPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 * P( z0 O8 h6 _$ o8 c: t. q1 H2 U
Polygon 描绘一个多边形
( t$ J+ H, M: {* ]Polyline 用当前画笔描绘一系列线段
' h! F4 m# m) r+ V! yPolyPolygon 用当前选定画笔描绘两个或多个多边形
- @7 f+ D/ \0 |/ [6 pPolyPolyline 用当前选定画笔描绘两个或多个多边形
) R( B9 p7 K- w5 N6 ]6 ~9 K) pRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
: g1 z4 S- O( P6 }+ q5 oRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
7 ]" J" u+ F* s1 _  a" RSelectClipPath 将设备场景当前的路径合并到剪切区域里 - p5 o% Z7 Z% H5 |
SelectObject 为当前设备场景选择图形对象
; N2 B$ D) T5 P6 A8 y     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
# U% Y; g4 n* I9 J: v7 W4 ^SetArcDirection 设置圆弧的描绘方向 2 b5 K( B( M3 ~4 j" r% Y% T( a" f
SetBkColor 为指定的设备场景设置背景颜色
0 G' u0 M* S4 Q6 E* K( NSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
8 X  N7 m" q+ k' tSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 . ^9 r  J, R/ l7 }9 m$ w3 b
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
, t! i7 w; G$ N% [& b" ~SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
! i9 @" @' @5 O: KSetMiterLimit 设置设备场景当前的斜率限制
; c  W9 j1 V3 q  R: iSetPixel 在指定的设备场景中设置一个像素的RGB值 # n( L) [1 R' I7 ^
SetPixelV 在指定的设备场景中设置一个像素的RGB值
2 x% r" U2 R: R7 Q8 i- xSetPolyFillMode 设置多边形的填充模式
2 x  X( M6 I3 x; o; vSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 : f7 V" g# ?" N+ k. s# w1 m7 ~) @
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 7 Y6 v% Y5 J, u* ^- \! R0 p2 z
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
! x3 Z9 l' p3 n/ d* n2 O% l2 bStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
  x+ [, P5 x; w" s& l5 WUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
/ \! h8 V7 }$ p  g( RWidenPath 根据选定画笔的宽度,重新定义当前选定的路径 $ {" a6 D7 E* {  _! c6 v: [
9. API之设备场景函数
$ w# \) o& m! `: KCombineRgn 将两个区域组合为一个新区域
. H6 U3 r6 b9 r0 W: Q% W2 r5 vCombineTransform 驱动世界转换。它相当于依顺序进行两次转换
( I8 b/ l. D, S- |) S9 C: ZCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 6 G+ O, A/ N: Q, J& D3 m
CreateDC 为专门设备创建设备场景 + Q8 k+ ]8 v- O) Z/ E3 w; M
CreateEllipticRgn 创建一个椭圆
/ F% ]; P$ K2 k4 pCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
! A8 M% [) g8 wCreateIC 为专用设备创建一个信息场景
" L! u5 Z* Z3 `- p6 C& YCreatePolygonRgn 创建一个由一系列点围成的区域 1 w+ S2 s& N, m- o# d7 Z6 L. S
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
9 F* @; Q9 T8 m  [- ~CreateRectRgn 创建一个矩形区域
( O0 U0 V/ Z" j. ~6 gCreateRectRgnIndirect 创建一个矩形区域 $ J, I9 S8 M2 w1 e- m2 C4 {, h- Q
CreateRoundRectRgn 创建一个圆角矩形
8 n' k; T2 V8 c: kDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
8 C3 G' o! r5 B7 N1 LDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 * E& m- w" A* s/ J# S. j) n
EqualRgn 确定两个区域是否相等
: H9 ~9 p' T2 l3 K1 SExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
2 y& m" f8 T( m9 IExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 # [$ E0 D6 W+ E/ V; o; j) v: a$ o
ExtCreateRegion 根据世界转换修改区域 : D  f$ E4 _$ {5 @/ {  Y& |
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 # R( z- B+ z0 ?
FillRgn 用指定刷子填充指定区域 + X$ G; G( R8 v0 p5 A
FrameRgn 用指定刷子围绕指定区域画一个外框 * B; v$ z/ l6 ?% t' y, C3 m
GetBoundsRect 获取指定设备场景的边界矩形 9 y% |; Y$ y% A9 ?/ s# O0 N9 c
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
. Q/ Q* [6 f" S6 i& k! C7 JGetClipRgn 获取设备场景当前剪裁区 " C* g4 K/ t4 U1 V
GetDC 获取指定窗口的设备场景
5 i1 A3 M0 T! d5 |; j- Z& KGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
: c; B) f8 C$ @9 TGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) ! \% t* Y# w% y# \1 _$ Y
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 $ h4 e" W8 B0 X  \. r( M
GetGraphicsMode 确定是否允许增强图形模式(世界转换) * R( k: V+ A' o* `8 k; D& U  Q2 o
GetMapMode 为特定设备场景调入映象模式 ! u: Y! f. m/ I% g
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
* J; @9 I/ n7 NGetRgnBox 获取完全包含指定区域的最小矩形 9 \/ j! f2 O. `4 e# B) ]
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 . H9 q/ J6 R6 R4 O& c8 @& F0 M9 d
GetViewportExtEx 获取设备场景视口(viewport)范围
: a& r4 Q) l& [& f6 h' g! A' pGetViewportOrgEx 获取设备场景视口起点
' k6 V6 D& A% G& T) zGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
. b" G' a8 r) E/ gGetWindowExtEx 获取指定设备场景的窗口范围 8 m" O  W: f- I/ b  e
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 $ U8 V: s- N) o7 m/ m, e8 n! j
GetWindowRgn 获取窗口区域
2 u5 B: Y% y6 o2 E$ t/ a9 VGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 ; ^9 ^& \) o4 r+ M- @, w8 I9 k- w
IntersectClipRect 为指定设备定义一个新的剪裁区 " w6 b( `" i' p
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 - ^8 n; L9 K4 v+ N4 S7 ]
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
  h% e* ]+ I4 H& N8 J/ nLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 . n& u! ]) l0 _* k0 F
ModifyWorldTransform 根据指定的模式修改世界转换
% I* ^( M7 l! e2 Y) q. OOffsetClipRgn 按指定量平移设备场景剪裁区
5 e- r% j0 w/ ]0 s/ pOffsetRgn 按指定偏移量平移指定区域
+ v- |/ K9 k7 q. r; nOffsetViewportOrgEx 平移设备场景视口区域
4 ~, ~8 U9 g" N. s7 k! l' WOffsetWindowOrgEx 平移指定设备场景窗口起点
3 @4 R5 A" C- W) G3 E9 w, H6 n+ L; y# dPaintRgn 用当前刷子背景色填充指定区域 ! J, ^0 r. k( B
PtInRegion 确定点是否在指定区域内 " ~7 h2 I, u- v
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
8 p2 T/ Y& X/ N3 B6 ERectInRegion 确定矩形是否有部分在指定区域内
* f( [, N5 q  `6 E! XRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) 2 W; h2 V+ X( q5 o" S2 u5 n
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 # P: {' u6 J5 {( H# L% }& e3 L
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
: |, G) m5 d2 X6 FSaveDC 将指定设备场景状态保存到Windows设备场景堆栈
9 \: n4 A3 _) G' [ScaleViewportExtEx 缩放设备场景视口的范围
# y' U4 M0 p3 d4 o9 b3 \% K6 kScaleWindowExtEx 缩放指定设备场景窗口范围 ! h3 T8 X. g- z/ P7 T6 _
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 8 h% H( O7 ~1 [9 j
SelectClipRgn 为指定设备场景选择新的剪裁区
; ]/ C0 u0 Z% T' i8 \3 B$ M/ {SetBoundsRect 设置指定设备场景的边界矩形
* b* J( u  Q0 d3 r) \& dSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)   ~& I* k2 y4 C5 Y
SetMapMode 设置指定设备场景的映射模式 ! C$ p& X; A/ z
SetRectRgn 设置区域为指定的矩形
0 F% M0 Q" j+ b' cSetViewportExtEx 设置设备场景视口范围
( {! v* _  s! }! R4 U4 g0 VSetViewportOrgEx 设置设备场景视口起点
$ Q! d+ g, M% a0 `SetWindowExtEx 设置指定设备场景窗口范围 1 @( K& Q) c; H, u, E1 ^+ j
SetWindowOrgEx 设置指定设备场景窗口起点 + z: R  O. Y- z# G
SetWindowRgn 设置窗口区域 % B6 l" v" a! _2 L: o0 r
SetWorldTransform 设置世界转换
& r) F& w, _9 `2 zValidateRgn 激活窗口中指定区域,把它从刷新区移走
/ @6 o: N% x5 @5 n7 V0 B& A( x1 a5 \) wWindowFromDC 取回与某一设备场景相关的窗口的句柄
1 M  u* [: |, |9 [10. API之硬件与系统函数
5 W+ _% M3 D6 G  V4 V1 y; QActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 $ n7 Z6 ~% t) P
Beep 用于生成简单的声音
) \$ i" B) u6 H4 n* VCharToOem 将一个字串从ANSI字符集转换到OEM字符集
2 [0 N- j/ B# ]  z0 x2 U! vClipCursor 将指针限制到指定区域
+ T5 c: Y: h$ H. IConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
8 P* x# J* k: K7 O8 W9 P+ r$ JCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
8 {0 h' q# c% CDestroyCaret 清除(破坏)一个插入符
8 r: V$ N, }! u# r7 \, S$ EEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
! x5 b. W& j( c0 Q, g3 EEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
3 j8 r/ m* x8 z2 C3 z. }EnumSystemCodePages 枚举系统中已安装或支持的代码页
% `8 c; w1 n( D) c9 q+ mEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
5 ]4 T, J, J9 E9 X7 S% C5 w' G3 lEnumTimeFormats 枚举一个指定的地方适用的时间格式
+ }2 T  }' a) s& J" BExitWindowsEx 退出windows,并用特定的选项重新启动
) g7 k# |3 z% Q     WINUSERAPI BOOL WINAPI ExitWindowsEx(- i. _' [0 d& }4 ?7 z$ ]3 Q# D
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
5 z' z% W# |: {0 K  A     DWORD dwReserved); //0
# ]- S/ I4 l# `; U9 T2 V) W) QExpandEnvironmentStrings 扩充环境字串
7 b( n; ~' p/ H3 }$ K7 J3 [# @( w- vFreeEnvironmentStrings 翻译指定的环境字串块
( J/ B, M5 W3 h0 t4 u! AGetACP 判断目前正在生效的ANSI代码页
5 p& p2 |/ N; ?/ N8 P$ H* E+ LGetAsyncKeyState 判断函数调用时指定虚拟键的状态 4 A0 d& ^$ o/ x# `2 D3 V2 t
GetCaretBlinkTime 判断插入符光标的闪烁频率 ' [/ X/ O( h! y( J) q, B
GetCaretPos 判断插入符的当前位置
' V: W7 I7 X* s% t8 ^GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
  E8 V0 {; S1 y4 dGetCommandLine 获得指向当前命令行缓冲区的一个指针
6 Z2 L* n) e, VGetComputerName 取得这台计算机的名称 : R) T! G! ~% h! q8 ?7 j6 l- ]: L7 _
GetCPInfo 取得与指定代码页有关的信息 . D' |- ]' E$ P( l( V! ~% c! q
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
, n2 N9 A* y- Z% Z9 k, i( ^  FGetCursor 获取目前选择的鼠标指针的句柄
8 P2 W' J  O, z: ]# s6 VGetCursorPos 获取鼠标指针的当前位置 9 Q' S2 G) R  f  d
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 * V: _) @1 \% }1 Q
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
' A* a4 q! q6 F  ~( P* K! TGetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
$ C0 [! t8 \; pGetEnvironmentVariable 取得一个环境变量的值 : W/ v: u- p6 G, f/ R5 r& k! J
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
7 V5 W' Q3 b6 S9 Y5 DGetKBCodePage 由GetOEMCP取代,两者功能完全相同 ! Y* G0 b- ]3 r. G
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 3 H/ \2 G0 L$ ^3 U! u4 z" U
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
2 u7 n6 U  A, I# q8 c2 FGetKeyboardLayoutName 取得当前活动键盘布局的名称
3 E3 T/ M: c3 |+ }  {" xGetKeyboardState 取得键盘上每个虚拟键当前的状态
* K( y* P1 E  H7 {8 g, kGetKeyboardType 了解与正在使用的键盘有关的信息 % O# W) z3 W' t& d6 P3 m! u
GetKeyNameText 在给出扫描码的前提下,判断键名 5 Y7 h& O# D: J( v9 R
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 7 I6 r2 W% ?( H
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
/ L( Q4 O- P* gGetLocaleInfo 取得与指定"地方"有关的信息 ! O3 m( _; R. _  z( ~  f
GetLocalTime 取得本地日期和时间
2 O8 Z( Q" C0 P. v; WGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 0 k. j0 I: O/ W5 z3 t. f) r
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页   f. J$ `1 K: ?7 |0 y( y6 J
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 + v8 S  U# G+ {5 A- i$ B
GetSysColor 判断指定windows显示对象的颜色 . D; ?9 _/ B, s) F0 e. N
GetSystemDefaultLangID 取得系统的默认语言ID 0 k- q: g) z. D/ Q2 x6 d
GetSystemDefaultLCID 取得当前的默认系统"地方"
6 s) l( _7 K! KGetSystemInfo 取得与底层硬件平台有关的信息
, ^9 v' |- |, Z6 j5 ?GetSystemMetrics 返回与windows环境有关的信息
) R3 N; ^. ]2 m& c8 \GetSystemPowerStatus 获得与当前系统电源状态有关的信息 4 y6 H0 h# J( c+ O+ ~8 l
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
5 u0 j( ?. o6 s/ {' V& tGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
4 w3 G$ A; B, w2 ^9 D$ K  L, T) f' _GetThreadLocale 取得当前线程的地方ID & k3 K/ i" N$ F6 g/ H
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
9 p- _% o9 J( j7 `* PGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 & M8 f- H2 |, ~0 N  E  S0 i
GetTimeZoneInformation 取得与系统时区设置有关的信息
+ ^8 Q. D# E) C* x: A3 D0 w' K5 r/ UGetUserDefaultLangID 为当前用户取得默认语言ID
, n8 J, }8 h* a2 S. jGetUserDefaultLCID 取得当前用户的默认"地方"设置 5 l& D; s1 {" H" D& \6 V
GetUserName 取得当前用户的名字
* x/ I+ n' U1 e2 [5 M/ ^GetVersion 判断当前运行的Windows和DOS版本 5 J' R* k6 }) @
GetVersionEx 取得与平台和操作系统有关的版本信息
6 P, d" M9 E, gHideCaret 在指定的窗口隐藏插入符(光标)
; C5 `- M0 L% H0 NIsValidCodePage 判断一个代码页是否有效   V- s4 i. P' @& J8 h
IsValidLocale 判断地方标识符是否有效
. i, _& H, k+ X3 {4 E7 okeybd_event 这个函数模拟了键盘行动
2 Q% U+ R8 s' `3 L) L  YLoadKeyboardLayout 载入一个键盘布局
7 b( `2 r  k9 rMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 * k- C' w2 d. o4 L, x
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 . m* P3 \3 r& }# ^+ |
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
8 F: H0 c; |4 Omouse_event 模拟一次鼠标事件 - r: Z5 ^$ G4 |/ M9 z0 H9 d
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 ( |( M1 }+ @, @
OemToChar 将OEM字符集的一个字串转换到ANSI字符集   O% M6 o- d" s
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
6 |+ K6 d' m" Y7 S% m3 M! ESetCaretPos 指定插入符的位置
$ I  ~0 c- f9 k2 C5 ^SetComputerName 设置新的计算机名
# ]: V6 M0 ^  o& b' h/ I* mSetCursor 将指定的鼠标指针设为当前指针
% q4 X  }8 N7 I/ b' j9 N. YSetCursorPos 设置指针的位置 . m& ]+ F' R. R1 }
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
3 `8 a! F7 z3 q! ^' L0 ZSetEnvironmentVariable 将一个环境变量设为指定的值
1 B- J- }  d' i+ F2 z* dSetKeyboardState 设置每个虚拟键当前在键盘上的状态
/ @5 A% E" @) |' y0 Z1 oSetLocaleInfo 改变用户"地方"设置信息
9 x6 V. J! @% ^4 \& n4 R9 iSetLocalTime 设置当前地方时间
) u1 ?) n, @: uSetSysColors 设置指定窗口显示对象的颜色 " j+ k  H) Z& @; X4 }
SetSystemCursor 改变任何一个标准系统指针 : W: X( z6 M/ _8 m# d# U
SetSystemTime 设置当前系统时间
% x/ C( v& w( h/ C8 A% O. xSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 ! R: h. |7 N& U% D
SetThreadLocale 为当前线程设置地方 4 N, I* o( i5 o+ Q9 m8 p2 B9 K! u
SetTimeZoneInformation 设置系统时区信息
  G  `% ]2 y1 p, MShowCaret 在指定的窗口里显示插入符(光标)
. k+ [9 P1 ?; c; ?# f+ {( ]) V% xShowCursor 控制鼠标指针的可视性 & `% R) a5 \9 H8 ]6 ]/ f7 U- l
SwapMouseButton 决定是否互换鼠标左右键的功能
2 W0 b* u& x$ Y6 D4 @" r6 O: nSystemParametersInfo 获取和设置数量众多的windows系统参数
$ B; `3 @0 S9 d7 Y' K- A$ P- r3 _/ hSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 1 `( O# x% [  z6 {
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 9 I1 u+ |0 V& q% h6 K' `" W2 B
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
4 ^# U' S) u4 _' q5 c# vUnloadKeyboardLayout 卸载指定的键盘布局
0 D; [1 H- W3 e1 w: }. iVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
4 G7 m* s' {' a6 f- G+ S8 @11. API之进程和线程函数
5 ^3 J9 M  K8 |6 z8 o% NCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 , M+ D4 y; ~2 }( q
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
' |& m4 p9 u& ?! _, dConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 : @' X# \# ]( U- C
CreateEvent 创建一个事件对象
# P; z# }$ K( i' L7 v- {1 C' X7 uCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) 8 k& n- N) q% j3 M) b, S
CreateMutex 创建一个互斥体(MUTEX)
& x9 Q* N* V$ `& d2 n8 L  fCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
2 G; D) s5 b! J2 b% _( ]CreatePipe 创建一个匿名管道
1 E: J$ Z% Z* R) j* C" x3 j6 Y% @" gCreateProcess 创建一个新进程(比如执行一个程序) . W8 G2 W+ Y: ?( S( V
CreateSemaphore 创建一个新的信号机 : X& C) j) q& w, r6 ~5 O
CreateWaitableTimer 创建一个可等待的计时器对象 ( p0 T! B5 u3 p7 q; `) O/ x
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 " v- g. H! n$ B& ?
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
9 B  D7 K- o# k+ TExitProcess 中止一个进程
- v. g' ~  Z" J! U0 V, B5 ~' v; pFindCloseChangeNotification 关闭一个改动通知对象 5 g) _# ]+ s, D, q
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 : R0 V" I% h9 z! v
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
2 U  ]7 C: U# l+ J" ]% _FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
. Z( C/ ~8 t) c2 IFreeLibrary 释放指定的动态链接库 ; j4 \  A: Q" R: e& u. l
GetCurrentProcess 获取当前进程的一个伪句柄 / ^* j' Z0 C, o
GetCurrentProcessId 获取当前进程一个唯一的标识符 ! ^' W+ P- I( i6 X
GetCurrentThread 获取当前线程的一个伪句柄
- E" H8 q' T$ j7 f* |, LGetCurrentThreadId 获取当前线程一个唯一的线程标识符
; l, b/ C  }! xGetExitCodeProces 获取一个已中断进程的退出代码
: l% M, A3 h$ kGetExitCodeThread 获取一个已中止线程的退出代码
1 T* ~  `8 Y7 V: G$ v8 O  eGetHandleInformation 获取与一个系统对象句柄有关的信息 : W8 m; R6 f& s% {
GetMailslotInfo 获取与一个邮路有关的信息 : S. u( U4 P4 a- s+ U, F
GetModuleFileName 获取一个已装载模板的完整路径名称
# g0 I. t3 [' T3 F. R  K' CGetModuleHandle 获取一个应用程序或动态链接库的模块句柄
) j  o( \' [! o; t4 q/ F4 {1 ?     GetModuleHandleA(LPCSTR lpModuleName);
+ H2 r" A2 x: D$ ]0 Q# \GetPriorityClass 获取特定进程的优先级别
* j8 r1 {( I: V, Y3 s- b6 W4 FGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
8 j! V. ~" A5 s$ P9 d& GGetProcessTimes 获取与一个进程的经过时间有关的信息
4 u) O% h: e3 P' _- X5 bGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 ; q) D5 j+ e9 x, W. U
GetSartupInfo 获取一个进程的启动信息
' @# \5 i5 E& M: {. }GetThreadPriority 获取特定线程的优先级别
: L' T7 X. I/ G6 S) g9 O$ eGetTheardTimes 获取与一个线程的经过时间有关的信息 1 ~+ C2 a! p: F. [
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
3 w2 V5 M* M; x+ B1 l, `* ~LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 % y, c8 z; L# W- A* y/ x: D! W
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 # P2 ?# l$ c; s' h
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 + o% U% }* o& p6 x) b
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
  m) f" \+ d+ a2 U, a1 LSetPriorityClass 设置一个进程的优先级别
$ s, w- c3 P& _$ XSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
+ L+ z; Y" M4 vSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
$ d( \$ J: K7 B' k$ eSetThreadPriority 设定线程的优先级别 8 D  v& ?) o+ F% N6 p, C
ShellExecute 查找与指定文件关联在一起的程序的文件名 % @- ]) X, e: e1 `. @9 V, {  u
TerminateProcess 结束一个进程 " y& v: P8 x- K8 b
WinExec 运行指定的程序 3 }- e# [* c$ |0 A6 ^& `$ y
12. API之控件与消息函数 " k0 O( P. `* F+ n$ K
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 9 ~2 x% g! _6 `7 \/ t
AnyPopup 判断屏幕上是否存在任何弹出式窗口 2 X' `* J* f+ t( ^" M6 U
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
5 a1 ~  {, F% EAttachThreadInput 连接线程输入函数
' Q1 d: D& ]. w  xBeginDeferWindowPos 启动构建一系列新窗口位置的过程
, T9 Q. [  ^9 J# KBringWindowToTop 将指定的窗口带至窗口列表顶部 $ [% F  _, i/ b# ]) }
CascadeWindows 以层叠方式排列窗口
8 b7 u* ?$ U( Z' LChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
0 u5 a2 U  S; f5 A7 ~8 W1 IClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 0 z- F) D2 v/ ~. F
CloseWindow 最小化指定的窗口
  f) v; G5 J) N7 F' v, z! {CopyRect 矩形内容复制 " s8 q# M- q, r. M  l3 K/ j" Y, m
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置   M( r/ ^7 G9 i
DestroyWindow 清除指定的窗口以及它的所有子窗口
; O  m# K8 h% {' \4 l) w) hDrawAnimatedRects 描绘一系列动态矩形 " W; Z7 q% \  \6 J  O! y8 Z& ~% h
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 3 v  o" g- z& L( R. Z
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 2 [: j' o# I4 M+ s: v4 Y
EnumChildWindows 为指定的父窗口枚举子窗口
$ X, j7 s" l7 s$ O. sEnumThreadWindows 枚举与指定任务相关的窗口 # N: \: X& }2 X' E+ g7 \- C8 _0 o' n
EnumWindows 枚举窗口列表中的所有父窗口 ) _, f7 K2 R( B1 K, K
EqualRect 判断两个矩形结构是否相同 / `" h. M' k+ R* h
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 7 H4 q9 Z6 W& o  {' R
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
' L: `, G5 s1 g% ~FlashWindow 闪烁显示指定窗口 . c- o/ U3 c4 l8 z) C
GetActiveWindow 获得活动窗口的句柄 , d6 c4 M1 Q5 g7 e# F
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
8 ~4 V% n) }) n* R* L3 A% ZGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 * \4 S" i( o& V6 ^' [2 N
GetClassLong 取得窗口类的一个Long变量条目 . b' O. z. j  V* A+ _& |- {
GetClassName 为指定的窗口取得类名 . n" Z8 L6 g. p) L
GetClassWord 为窗口类取得一个整数变量 ( [4 C+ D0 V% _/ c2 b
GetClientRect 返回指定窗口客户区矩形的大小
) `' d- N  ~* o3 XGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 + C) Y5 h9 e7 ?; L: |9 R
GetFocus 获得拥有输入焦点的窗口的句柄
: q1 ^" l4 c( v, I8 }GetForegroundWindow 获得前台窗口的句柄 ( {5 W, {3 l. q+ L6 N5 @/ U
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
/ r$ T1 p5 l. r7 KGetParent 判断指定窗口的父窗口
5 ]4 F/ G/ D; o0 v$ SGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
; C4 ^4 U- q4 w# G. |% N, @+ TGetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 # E5 v. O/ I. g5 Z) @
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 7 Y) @( A; g7 {5 \
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
" D" x; R& d! AGetWindowLong 从指定窗口的结构中取得信息
3 b( X! R9 N. F% P7 H7 TGetWindowPlacement 获得指定窗口的状态及位置信息
4 v$ i7 v) Y2 M% u* F  QGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
+ X1 V: C% H9 @, D& fGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 - t. }( ~! Q0 K' K
GetWindowTextLength 调查窗口标题文字或控件内容的长短 5 Y, v7 B. z# s
GetWindowWord 获得指定窗口结构的信息 2 e, Q: T: T3 ]; [% X% Q# w% |
InflateRect 增大或减小一个矩形的大小 . v+ c/ h8 L# [3 P6 V
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
, R- P  E- S5 J1 R# F* aInvalidateRect 屏蔽一个窗口客户区的全部或部分区域
/ L2 {& w3 U; }9 _* dIsChild 判断一个窗口是否为另一窗口的子或隶属窗口
7 k9 C: A4 D4 @6 l, I3 qIsIconic 判断窗口是否已最小化
& }0 i4 y/ t0 i& w9 h0 E- RIsRectEmpty 判断一个矩形是否为空 + C* X% ~# F- D# t$ H1 y+ z
IsWindow 判断一个窗口句柄是否有效
# M/ Y# B; y9 h4 w5 {+ Y6 yIsWindowEnabled 判断窗口是否处于活动状态
, v3 a+ M7 N/ o/ yIsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 & T; @7 e/ S( [3 \
IsWindowVisible 判断窗口是否可见
7 C2 z  l5 K. v! eIsZoomed 判断窗口是否最大化 / E4 ~0 M, T+ D
LockWindowUpdate 锁定指定窗口,禁止它更新 ' D" O+ F) n1 g" K
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
% r4 v5 S- w! {MoveWindow 改变指定窗口的位置和大小 - Y2 \$ _: p9 j! b5 w7 `& Z
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
* C; J8 a2 H0 hOpenIcon 恢复一个最小化的程序,并将其激活
" U6 [' l8 n! OPtInRect 判断指定的点是否位于矩形内部
3 r$ i: @! f1 o( E! U% r8 ZRedrawWindow 重画全部或部分窗口 1 s' J7 F0 O3 ?
ReleaseCapture 为当前的应用程序释放鼠标捕获
* _9 e, m( \6 I8 x1 s" g( EScreenToClient 判断屏幕上一个指定点的客户区坐标 1 Z, H6 |0 `9 R
ScrollWindow 滚动窗口客户区的全部或一部分
8 t/ Z2 O7 \9 |6 A/ _- dScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 $ W: _/ D% T# c. N& \5 O
SetActiveWindow 激活指定的窗口
. Z$ q2 \0 a' y' e) A' ]. PSetCapture 将鼠标捕获设置到指定的窗口 8 J+ e$ D8 b- ^/ u1 s- [
SetClassLong 为窗口类设置一个Long变量条目 6 j7 M$ Z4 [5 E( L& v% S
SetClassWord 为窗口类设置一个条目 ! I8 }3 I2 `: F6 o) k- q
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口   Z4 @. w9 Z( V
SetForegroundWindow 将窗口设为系统的前台窗口 6 |8 ^( D& P8 T- P
SetParent 指定一个窗口的新父 # n" V; D0 q- m. y) N" G5 X
SetRect 设置指定矩形的内容 & I6 i% N! A3 p# l/ S: ^
SetRectEmpty 将矩形设为一个空矩形
: m# b) ^9 {8 r; ]& b( oSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
1 x/ t( o) S* D: w! o$ F! t! PSetWindowLong 在窗口结构中为指定的窗口设置信息 % [& B9 [2 t( c8 g0 e
SetWindowPlacement 设置窗口状态和位置信息 ! S) m& x) c" [4 t* f
SetWindowPos 为窗口指定一个新位置和状态 4 _! H0 f+ `6 a7 l
SetWindowText 设置窗口的标题文字或控件的内容
2 E/ X- S3 x* ESetWindowWord 在窗口结构中为指定的窗口设置信息 : u; }( J" q3 n
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 7 Y$ g9 G* j* V) Z* X7 V! h3 V9 [: o
ShowWindow 控制窗口的可见性
9 ?' R( w7 e3 s; N0 `$ w' O; i2 IShowWindowAsync 与ShowWindow相似
$ h. w2 c$ U8 v" Y6 V* \+ V9 u9 GSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
. C- [' u9 M- Q; w" DTileWindows 以平铺顺序排列窗口
% v7 I$ x: K% d3 J% L* |UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 3 `" h% g2 @1 R  c3 C
UpdateWindow 强制立即更新窗口
. a0 k7 P# f4 W# D7 _2 M* _- NValidateRect 校验窗口的全部或部分客户区
# y$ l) L* B& b: d& E9 y2 \WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口+ ?$ a# P7 S; f
高级音频函数—参看《VC++ 编程指南.chm》11.6
/ v$ j7 h' ^0 g     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
* w  P' b2 Z0 v: P! h$ X     BOOL MessageBeep(UINT uType);
; A0 v: \+ D! V2 _该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
$ O0 P* r; r4 h/ U# c  v参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。( F: E0 U( ?; U; _4 K% H
级别 3 H/ J4 i, w: h! C- s; j
描述 - ?7 i1 D4 ^0 p6 \# y
-1
, R8 \; f! u3 G
从机器的扬声器中发出蜂鸣声。
. ], G0 g  y8 L, U4 F5 l5 z  k: v  ~
MB_ICONASTERISK
* {$ L9 m, H: r
播放由SystemAsterisk定义的声音。 / `) D$ ?2 \3 |" u' N
MB_ICONEXCLAMATION . |9 T& |- ]8 b4 `; n
播放由SystemExclamation定义的声音。 ' _! y* g; s. c* M) U3 }& ^+ C
MB_ICONHAND
% C7 i2 o2 a# M, H( s/ r
播放由SystemHand定义的声音。
! u5 C& y6 ^* E2 Z2 R% |! `2 S) u7 b# {
MB_ICONQUESTION ' ]: W' t$ x% `9 T9 t/ L
播放由SystemQuestion定义的声音。
4 X0 f7 k: [' ~
MB_OK ! g" s% z1 Y, X. ~8 _
播放由SystemDefault定义的声音
1 k+ Q0 z; L9 Y( H3 x" `
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);7 a& M2 `0 L" ?9 U4 l# Q
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。7 Z  K; d  ?% R4 z8 g, _' h( q
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。2 t7 S6 P& G) K) Q- a+ |! o& u
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
- N: a5 q2 j; \
标志
1 n+ X5 u) ?/ T- f; M( j7 G# H- a
含义 # `9 [; n5 G" ~' o% g
SND_APPLICATION
& ?/ m7 t' c8 g) A
用应用程序指定的关联来播放声音。
: x: ]9 F) Y2 X: E
SND_ALIAS ' \. f3 N# }8 C2 ]+ o3 D
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
: A/ D$ m" C8 V9 e6 Z& o
SND_ALIAS_ID & E: `- {6 j6 F7 e4 f4 i/ q/ P
pszSound参数指定了预定义的声音标识符。
7 s: I( z% G/ o" D# }+ L" c- ~6 C
SND_ASYNC 6 c  u" P+ o; y4 Q8 U
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
  z/ I) U, l& O. G9 v+ }0 u
SND_FILENAME
( {$ i. N+ ^/ w% ^# }
pszSound参数指定了WAVE文件名。 6 u& D# R/ T' x' ?! d6 h; M
SND_LOOP
+ X4 q9 q1 C7 `2 ]9 {% U) h
重复播放声音,必须与SND_ASYNC标志一块使用。
3 h9 j+ U  L( V  D& ]
SND_MEMORY 2 Q0 {$ l' G  w: I5 P4 H# `, A0 `
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 + T0 |* G& E( B7 Z3 }
SND_NODEFAULT
# o' K1 x2 J3 D, j5 X
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 0 O/ {3 {% H0 M' s( D  q& O
SND_NOSTOP
7 d4 P+ b# `; \
PlaySound不打断原来的声音播出并立即返回FALSE。
# r6 \5 h( W* C1 d% Z
SND_NOWAIT " c. k4 b8 ~) ^: H3 b
如果驱动程序正忙则函数就不播放声音并立即返回。 ( `" q/ m% N, x8 I8 p4 \
SND_PURGE
7 v/ V, F1 N+ M
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
- ^8 G7 w$ O5 G
SND_RESOURCE 4 X# M' s  U6 R. p0 p
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
) a, o! s( x7 }4 C" j% s8 g& P. p
SND_SYNC 9 Y& s# ^8 H) k" G6 n
同步播放声音,在播放完后PlaySound函数才返回。 8 F7 a$ \- B: V( `% B' J5 @
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);) s9 r& Y8 T, B, a+ L
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。) P0 C3 N( [3 Z1 f, H
MCI播放
6 d; V" F* P+ ?: D3 q! C所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:, @4 _, s5 d) P( q
MCIERROR mciSendString(
5 x' E% A7 L$ ILPCTSTR lpszCommand, //MCI命令字符串) h  F0 X" L+ c  A7 n
LPTSTR lpszReturnString, //存放反馈信息的缓冲区* l$ B2 d5 ]4 w" m1 B3 R2 w; T0 {# K
UINT cchReturn, //缓冲区的长度- R0 `- o+ w- ~0 n
HANDLE hwndCallback //回调窗口的句柄,一般为NULL
4 S0 z6 E- Y% Q6 F8 v( O2 L); //若成功则返回0,否则返回错误码。
% _5 X) p! G/ i. J( g2 n$ N# m该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:6 \' @# M0 z; p: l) [/ O$ i2 U
BOOL mciGetErrorString(
% g& }- C2 M; _2 A6 cDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
" f- G* q8 Z9 e- I6 @9 b* lLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
6 M( @4 ^$ m0 d+ ^# CUINT cchErrorText //缓冲区的长度  b% ]1 B$ v9 \  v- X: g; B
);
, k2 ~, {- ~( S2 l8 q# L. f) p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-30 10:41 , Processed in 0.039691 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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