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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html% j# s% n: G% w& x7 a# Q
1. API之网络函数 ; A2 ]& O' k# f7 i, o: O
WNetAddConnection 创建同一个网络资源的永久性连接
+ N1 m, a" o4 B2 P% `. xWNetAddConnection2 创建同一个网络资源的连接 * @: U* w) a8 r# R7 Z9 \- n
WNetAddConnection3 创建同一个网络资源的连接 8 [* k% T+ q+ x5 U; Z+ h1 q+ t
WNetCancelConnection 结束一个网络连接 # ^: a4 A( s: ^3 ]' ~+ J
WNetCancelConnection2 结束一个网络连接
  |7 Z! p% y  d  \+ u+ ?/ gWNetCloseEnum 结束一次枚举操作 0 Z% J5 j. J8 |, N) A  y) v' @
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
; Z; ~8 E/ J+ M9 \$ \" l1 F5 G$ ]! wWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
3 L: F9 ~9 g) ?; [' ~# k8 ^WNetEnumResource 枚举网络资源
  H( b: W) S8 J( mWNetGetConnection 获取本地或已连接的一个资源的网络名称 5 {+ b( O. H3 v) d
WNetGetLastError 获取网络错误的扩展错误信息
1 `" t; I; n! Z4 x5 UWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 " |2 `( r* S& i- ^- {$ s
WNetGetUser 获取一个网络资源用以连接的名字
* }8 L- ^* x7 p4 e4 S6 U- w# zWNetOpenEnum 启动对网络资源进行枚举的过程 ; h, Q! }) F- u0 G8 K  S
2. API之消息函数 9 r6 h6 D* B5 b6 {
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 , D0 T8 y" K& ^# V9 u6 k
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
. n. \' K. S" r* G% `% eGetMessageTime 取得消息队列中上一条消息处理完毕时的时间
( w, W8 t9 \5 J$ W/ D9 LPostMessage 将一条消息投递到指定窗口的消息队列 1 E) \0 D( v5 Q6 i; Z/ T% F
PostThreadMessage 将一条消息投递给应用程序   d7 q) |6 [# e3 @& h' J( G
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
+ L  m1 m% v7 k$ \+ W. [+ O2 Y, Y6 i  uReplyMessage 答复一个消息
% M$ S' r# T8 X" {6 |0 ^; }$ f+ ]# P  cSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
* x6 s  `4 \5 j/ v; A% b# |. \SendMessageCallback 将一条消息发给窗口
$ x6 g+ F  ^+ T0 ]SendMessageTimeout 向窗口发送一条消息
& `% t/ s; g# S/ ]8 w6 R; fSendNotifyMessage 向窗口发送一条消息
9 ]5 R/ }0 D; f3. API之文件处理函数 7 A0 g7 D3 n3 k: o, r
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 4 @8 @& L; d( H/ o7 u
CompareFileTime 对比两个文件的时间 ' Y# T; N5 f! B  L  O! s) p
CopyFile 复制文件 4 ]4 k+ D8 X) W1 |2 _& M  w9 m
CreateDirectory 创建一个新目录 / n- T) s; L5 H. w- W4 w3 O- A
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 ! u1 Z+ z) I8 b
CreateFileMapping 创建一个新的文件映射对象
5 D% e0 A* M; |0 a9 P3 O% KDeleteFile 删除指定文件 " L( N( J! l9 e  p/ \1 u5 j, J
DeviceIoControl 对设备执行指定的操作
! `9 r0 W6 w- r# a; [9 d' t1 l! kDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
# y2 }. t! {  W8 h0 G4 i( KFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
; m/ |, E9 Y2 SFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
( h8 k- b* ^) g, mFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
4 N( ~5 \# Y5 b( T' ZFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 - p8 L- A" Y8 m/ p3 n! c
FindFirstFile 根据文件名查找文件
0 W8 S9 Z( C  Y2 [FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 , N7 X: X9 ]. u" a" b' r
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
) s" K' l/ P7 tFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
& r. o; V7 y. f! ?9 P, W  {GetBinaryType 判断文件是否可以执行
0 b" R( b$ T4 ?$ ]( ]7 S/ O9 uGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
1 e' @' k# |" i4 u( GGetCurrentDirectory 在一个缓冲区中装载当前目录
" _4 \6 y  S0 y7 ^$ F6 S$ oDWORD GetCurrentDirectory($ O& d& k5 [; j+ Y( u# T
    DWORD nBufferLength,    //缓冲区大小
6 r5 R- X0 t2 t! k9 m# A1 h    LPSTR lpBuffer          //缓冲区的首地址1 y1 \! O  U. J4 \# Y
    );
0 h3 \( y: ~9 `3 C4 R) x2 e4 Z, yGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 9 z6 S+ w7 o; n* w
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 ( Y% ?5 {3 D1 G9 H3 |3 E* L
GetDriveType 判断一个磁盘驱动器的类型
9 y; q% E! J7 t- A0 Y8 C& N7 QGetExpandedName 取得一个压缩文件的全名
- |2 C# L, S1 D$ G: C+ R7 T% E9 ZGetFileAttributes 判断指定文件的属性 3 c8 x8 S# U& t+ `- \  o* t
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 0 Q: v% \' w' w  x% K: \$ e- P* |! h
GetFileSize 判断文件长度 0 G& |6 K4 s- P$ p9 ^2 W
GetFileTime 取得指定文件的时间信息 " o9 {. k: M/ h/ d# z
GetFileType 在给出文件句柄的前提下,判断文件类型 4 B* c0 `3 W! s) A  N
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
' L& D  L7 [+ X0 c2 hGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 7 C3 m0 L# B4 T) V. U
GetFullPathName 获取指定文件的完整路径名 2 p. q, Y8 f8 G; c$ @4 p: h1 e; T
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
, o( Y; Q7 j6 Q4 hGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 0 |' K# Y, t  F/ n/ y
GetOverlappedResult 判断一个重叠操作当前的状态
; |5 r: P  m. B9 s+ d# LGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
  V+ o$ L, D7 g  m) l$ U9 j6 iGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 ; U+ a! X/ D: H9 I; ?
GetPrivateProfileString 为初始化文件中指定的条目取得字串 8 C2 }5 e7 `' r6 m
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
0 ?/ k6 B: _, ]/ |! N' U, n: H  hGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
% [8 e$ O) L  G! x' MGetProfileString 为win.ini初始化文件中指定的条目取得字串
' l7 _$ X  [; v6 t1 ^# NGetShortPathName 获取指定文件的短路径名 ) i( z  E+ K/ |$ J% J  h5 ^
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
) w; r. W9 x" A! T" J9 ]GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 % Q  e5 L4 y6 D
GetTempPath 获取为临时文件指定的路径 - n' d6 V' n* g% g' @
GetVolumeInformation 获取与一个磁盘卷有关的信息 & ~4 D: w9 A7 h- p( i4 K7 A
GetWindowsDirectory 获取Windows目录的完整路径名
6 C, N# C6 ~  w- ^" y( j# ?& M7 T' fhread 参考lread
8 O* R! x3 J! D/ J3 ]' Ahwrite 参考lwrite函数
% v- ^1 a* l3 C8 P' K1 Clclose 关闭指定的文件
0 C: C4 A# B# w& qlcreat 创建一个文件 0 q$ J- p! h- @  [- _: Q
llseek 设置文件中进行读写的当前位置 - S( {2 m6 [( a. o0 L
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 # H  i; W% ]0 Y9 Y/ ~) i
LockFileEx 与LockFile相似,只是它提供了更多的功能 & Y0 Z6 W! i9 b$ G4 W
lopen 以二进制模式打开指定的文件 ' \( t6 v1 k) U0 t$ E
lread 将文件中的数据读入内存缓冲区 , ^  i; X/ P) _! J9 c1 T& {* ~+ B/ Q
lwrite 将数据从内存缓冲区写入一个文件
( \6 s1 d9 t. F4 R/ G8 zLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 3 ~. K( {6 H# x( C4 J
LZCopy 复制一个文件
2 s& O4 B9 \& N+ o- dLZInit 这个函数用于初始化内部缓冲区 : [6 ?% @7 L; ?. A7 L& C
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
# q4 x7 A- e  i  ~6 q7 vLZRead 将数据从文件读入内存缓冲区
( k1 V, h6 v. d* z# L5 f: X9 |LZSeek 设置一个文件中进行读写的当前位置 5 A5 `4 a# T+ Z* J0 w) U3 _
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 + ~) g) i. K% ]
MoveFile 移动文件
0 T0 \4 T. R) G* m4 EOpenFile 这个函数能执行大量不同的文件操作
0 F7 I5 @/ v) }+ u/ {OpenFileMapping 打开一个现成的文件映射对象 5 j. w7 v2 T* X. T  W  ^3 ]
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 $ ~, {& k+ u% T6 D/ Q! D
ReadFile 从文件中读出数据   Q4 B$ Z5 S% x
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 : E; }8 y( Q  _$ ?& t
RegCloseKey 关闭系统注册表中的一个项(或键) ( I0 g$ R1 v7 J& A5 y. ^7 Z
RegConnectRegistry 访问远程系统的部分注册表
6 Z1 c  O& \% ], e+ u' bRegCreateKey 在指定的项下创建或打开一个项
0 M7 Z* |+ E$ b2 C) N2 WRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
3 j* j1 t+ s: t4 F" GRegDeleteKey 删除现有项下方一个指定的子项 ) S$ @) m, ?6 B" b
RegDeleteValue 删除指定项下方的一个值 9 v& C( q$ T8 R
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx 2 A- s9 A# m  `2 f6 i+ A
RegEnumKeyEx 枚举指定项下方的子项
' s& t/ y6 ?7 H. [RegEnumValue 枚举指定项的值 * z3 I6 n! P0 Y( R! f: K9 w
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 6 D2 K* n4 g7 i/ |; c! ^
RegGetKeySecurity 获取与一个注册表项有关的安全信息
: Q5 N8 Z. n" ^RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 $ e, R/ H( _4 x5 Y
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
6 O. O, f" o1 x2 |) x; O- tRegOpenKey 打开一个现有的注册表项
! R0 F# {* n+ u2 f7 X3 g  C. {# ^RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
2 }! Q6 h( X# F! i. tRegQueryInfoKey 获取与一个项有关的信息
2 }/ i- n  ^, m% F* ARegQueryValue 取得指定项或子项的默认(未命名)值
# P2 z# M' S- j, ZRegQueryValueEx 获取一个项的设置值
; l% b9 P: u2 v1 w2 ?* `4 xRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 7 n4 d3 n# k# T- `+ ^4 i; h
RegRestoreKey 从一个磁盘文件恢复注册表信息 ) v' j7 _: i8 y3 n  T
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
$ L4 \+ f- {4 q$ Z; ^6 |4 `( cRegSetKeySecurity 设置指定项的安全特性 - h5 t2 i2 ?9 J; T6 M
RegSetValue 设置指定项或子项的默认值 ; C. c; V5 A! A8 k) T% ~) |
RegSetValueEx 设置指定项的值
! Y) S6 s3 o/ b# U" }  `RegUnLoadKey 卸载指定的项以及它的所有子项
6 N9 s: e1 Z0 O2 s3 r  JRemoveDirectory 删除指定目录 0 _5 w' k8 }* A
SearchPath 查找指定文件
, V6 f4 T9 }9 sSetCurrentDirectory 设置当前目录
( ^  j" `, l# b3 D" BSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
0 d0 Q  n5 h6 R* n! USetFileAttributes 设置文件属性 8 G4 x( P  B1 S' w" e( Y; f
SetFilePointer 在一个文件中设置当前的读写位置
+ M% u/ i# N+ zSetFileTime 设置文件的创建、访问及上次修改时间 ' j( S# _( ~8 u  [" _( _5 m
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
6 s0 X$ j1 v; M: k& p/ ^* jSetVolumeLabel 设置一个磁盘的卷标(Label)
6 l' B4 i* A4 D: Z; y; V* eSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
$ ]! h$ d7 d1 I: Z! {: N" [UnlockFile 解除对一个文件的锁定 - h& @, Y; o3 h
UnlockFileEx 解除对一个文件的锁定
; {- `1 q( e2 l- t" h6 a; CUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 3 e7 W& m& ?* W. `; [5 F. C
VerFindFile 用这个函数决定一个文件应安装到哪里 + \8 M. p( B  ?
VerInstallFile 用这个函数安装一个文件 , h$ e+ c5 g3 p! S
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
: E1 ?- o5 j& E: B+ w) OVerQueryValue 这个函数用于从版本资源中获取信息 $ U# D" [" l' R1 N( b' K
WriteFile 将数据写入一个文件
- [/ b' ]3 h+ I" r- [7 Q  AWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 8 Y, r" s" ~9 j! s# S6 B3 y  X
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
! X  Z0 \* k' c0 ]; F9 T* MWritePrivateProfileString 在初始化文件指定小节内设置一个字串
% I( R( `& z$ S0 e& ?2 o) l+ H- jWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
$ S7 I/ m' \- c) U! gWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 4 W" M; n0 o3 O$ k
4. API之打印函数   R0 j. N0 ]+ H4 I( ^: `
AbortDoc 取消一份文档的打印 / e: S$ I, f/ |( L) d) b$ z5 b
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
/ p8 @; h& E7 v# L' O" KAddForm 为打印机的表单列表添加一个新表单
8 S4 T9 Q7 r2 ?9 Y7 G' S; S6 DAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
0 x5 \# x! Z7 EAddMonitor 为系统添加一个打印机监视器
6 l  _7 R( w7 Z5 GAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
0 s, c9 t6 {4 {7 g/ hAddPrinter 在系统中添加一台新打印机 * o, i* {, a& A9 b
AddPrinterConnection 连接指定的打印机
4 O- Z) D. R/ F/ w! bAddPrinterDriver 为指定的系统添加一个打印驱动程序 & r% t3 o/ M, z& Q. \( Q
AddPrintProcessor 为指定的系统添加一个打印处理器
4 A, z& i8 Q. vAddPrintProvidor 为系统添加一个打印供应商
  N% V# G8 i4 [, lAdvancedDocumentProperties 启动打印机文档设置对话框 " z6 ?  {2 B  f
ClosePrinter 关闭一个打开的打印机对象 $ O4 M* Z. R. K$ S2 q
ConfigurePort 针对指定的端口,启动一个端口配置对话框 8 r. N5 U) m( N
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
9 i" H- W8 e3 B4 _1 z8 p! h# I1 @DeleteForm 从打印机可用表单列表中删除一个表单
: Y; O; E0 ?' n7 qDeleteMonitor 删除指定的打印监视器 - p2 H# u1 z6 o2 P  o* s6 b% d0 H
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
: r" j7 ^4 V+ g- u6 F1 p& f' _DeletePrinter 将指定的打印机标志为从系统中删除
# D7 l2 p- B  X/ e, A. ?2 z0 XDeletePrinterConnection 删除与指定打印机的连接 . W8 Z* \, O5 b
DeletePrinterDriver 从系统删除一个打印机驱动程序 2 b; H+ h7 ^! G8 w% o5 x/ ]
DeletePrintProcessor 从指定系统删除一个打印处理器 ( L+ z" y* ~# D  F9 q
DeletePrintProvidor 从系统中删除一个打印供应商
& y+ ?# _' ^2 K( Y) s3 z; D9 s6 {DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 0 y$ K# ^$ S( K
DocumentProperties 打印机配置控制函数 ! t% D5 i! S* v% G- ]
EndDocAPI 结束一个成功的打印作业
. j1 {- V2 [/ X! ?' V, R' xEndDocPrinter 在后台打印程序的级别指定一个文档的结束 2 q) a( H6 Z# f$ U) Q* s; S$ f
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
6 g8 Q* P3 R. I/ j' V& \7 K! K* rEndPagePrinter 指定一个页在打印作业中的结尾
/ i6 S9 O1 f+ lEnumForms 枚举一台打印机可用的表单
) L/ k4 L! @3 BEnumJobs 枚举打印队列中的作业
" j- Z+ ^7 @, r7 ~' rEnumMonitors 枚举可用的打印监视器 & R3 }7 L) @8 }
EnumPorts 枚举一个系统可用的端口
$ k; B' h# a( q* O4 q& [EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
4 S# Q- P! e  u/ XEnumPrinters 枚举系统中安装的打印机 2 g) F$ _* r8 v/ w
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 6 z. o+ B$ D! z$ M5 X6 j7 W
EnumPrintProcessors 枚举系统中可用的打印处理器 # y3 j  J& F! ~& V% I
Escape 设备控制函数 $ T3 N. M) F1 b3 S
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
4 L" L$ C- z" CFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
; w5 ~) n- D# ^+ Y, f2 WFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
) A! |6 I1 V1 mFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
$ k- e7 T' \# a$ sGetForm 取得与指定表单有关的信息
5 j8 b6 v/ L& {4 CGetJob 获取与指定作业有关的信息 0 {- z: `, G! {" T( Q0 l& O, ?9 G2 W
GetPrinter 取得与指定打印机有关的信息 , o' f1 E: d. e0 ?6 b
GetPrinterData 为打印机设置注册表配置信息
) Y7 U! P9 i+ V6 z  ?9 u$ uGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
8 ^$ X8 ^: x* dGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 7 q9 I) C4 d0 I2 B5 Z! M
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
/ _/ O9 i% k- T9 h$ q! FOpenPrinter 打开指定的打印机,并获取打印机的句柄 # H/ N1 }( l; g' f# r* Y* N. L
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
+ |8 `- r9 s2 }! [PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 % _) y$ B# E0 Q/ T* Z
ReadPrinter 从打印机读入数据 5 M9 v  \2 G" _' A1 V, P0 D1 b4 m
ResetDC 重设一个设备场景
9 N" C$ Y$ h1 [& _0 g: A' ZResetPrinter 改变指定打印机的默认数据类型及文档设置 , g% i) N; c% t2 f/ r- l
ScheduleJob 提交一个要打印的作业
* m. X# g* Q* m$ r! CSetAbortProc 为Windows指定取消函数的地址 % B2 I; @. z& _$ X
SetForm 为指定的表单设置信息 - c( q5 }" f! |1 y
SetJob 对一个打印作业的状态进行控制 1 g! t$ C+ D2 |9 d" i+ x, v% ?
SetPrinter 对一台打印机的状态进行控制 ' N8 S- [8 W" l2 r% k1 D, t$ D
SetPrinterData 设置打印机的注册表配置信息
2 _3 v" X* |. L0 e  pStartDoc 开始一个打印作业
3 ^- g) _; I) A8 G- z1 x1 t7 `StartDocPrinter 在后台打印的级别启动一个新文档
0 b! i% w& f% t9 q0 ^. R: Z3 `/ B% j* LStartPage 打印一个新页前要先调用这个函数 2 D7 E  h: q/ ]& o0 i
StartPagePrinter 在打印作业中指定一个新页的开始
8 W5 F+ y' t6 E( zWritePrinter 将发送目录中的数据写入打印机 $ w# ^4 c# w5 A7 k0 K
5. API之文本和字体函数 " a' x: j8 O: n7 A& @. w
AddFontResource 在Windows系统中添加一种字体资源
+ V# c, g, c( R3 c6 z6 VCreateFont 用指定的属性创建一种逻辑字体
1 ]. s1 q- }& q) Z5 {" }. ]/ OCreateFontIndirect 用指定的属性创建一种逻辑字体 0 O" a  D$ R  F3 k
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
7 v  N4 w# L5 O7 q  W% ^2 {, KDrawText 将文本描绘到指定的矩形中
$ V3 v) o( p9 e+ j1 b$ wDrawTextEx 与DrawText相似,只是加入了更多的功能
: G7 \" A/ X7 k) w) {EnumFontFamilies 列举指定设备可用的字体 " {* x6 W; m; E+ u; e; t- z, i
EnumFontFamiliesEx 列举指定设备可用的字体
1 f) m' u! @9 TEnumFonts 列举指定设备可用的字体
/ ~+ Z' a: k- ?- `0 @' Z; `! ~& e; OExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
7 Y. U. |) I  fGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
! a: {; T  \; n9 S, K; @GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 8 |3 \/ c+ ]' z
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
1 b+ s& c) J1 x0 m6 AGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
4 _1 p: j! ~$ r  g6 SGetCharWidth 调查字体中一个或多个字符的宽度 5 P7 x. \# \! a( u- ~
GetFontData 接收一种可缩放字体文件的数据
2 T2 L& S! i5 m6 [GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 % b/ @# P! W- P
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 0 w- z* ]1 g; t7 U9 n& Y0 j
GetKerningPairs 取得指定字体的字距信息 % k# a+ `: v3 Z$ b# |# w8 m) \
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 : o6 h# n7 U( d/ Q8 V: X
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
# E5 |" i( ^0 f( t+ x: p4 HGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 1 C. @# w( F" i$ X  Q; [, Q
GetTextAlign 接收一个设备场景当前的文本对齐标志
  ~+ x7 L, N2 a$ h. _3 o6 eGetTextCharacterExtra 判断额外字符间距的当前值
9 P3 b' v+ a% `9 {0 |& pGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 7 ?0 h' [5 X; m/ R) c' a
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
: }1 j6 c  G4 e: s, ?+ XGetTextColor 判断当前字体颜色。通常也称为"前景色" + @- T( n% o9 \8 t/ B: y
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
- S/ ^, O6 ?$ I. B8 WGetTextExtentPoint 判断一个字串的大小(范围)
7 q! c0 V5 ^% h2 t8 iGetTextFace 获取一种字体的字样名 5 P- \0 _6 ~8 W1 T) H# x7 x
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息   f$ b, l' Q. ~& H
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
1 z! H0 \/ N% _( m, M0 PPolyTextOut 描绘一系列字串 2 Q& K* P: R, ]* a5 A9 \
RemoveFontResource 从Windows系统中删除一种字体资源
. w2 I. R: ^' `% Y/ t5 m* y2 cSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 ! x4 h) Q9 z3 s4 l* N6 A1 Z3 x; T
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 * n; z, z+ o9 X4 V: H
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
3 A3 u1 T  r- j& ?7 PSetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
. M0 k( x1 |  ^4 c4 [0 }6 QSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 . e  t. d! T$ s* P) ?2 o0 _
TabbedTextOut 支持制表站的一个文本描绘函数 $ \1 I3 T6 a& l1 `9 p* K
TextOut 文本绘图函数 ' h6 v3 {7 _. b9 h9 R" `3 `
WINGDIAPI BOOL  WINAPI TextOut(: X* ^6 C3 L5 ]/ ^' r% h
HDC,     //输出设备3 t5 G' |- r) @. Z
int,     //输出的横坐标
) }& p$ m4 F# F/ \int,     //纵坐标
4 ?; a0 K" g) v# MLPCSTR, //输出的文本str
8 {' ]$ G, _6 O$ U7 j* ?2 _int);    //文本的长度:lstrlen(str)
0 R8 C# w3 t; y( a6. API之菜单函数 ) O4 E, e1 D- v. S; I/ p
AppendMenu 在指定的菜单里添加一个菜单项
: e6 e; x( w/ ~/ y  a0 l  fCheckMenuItem 复选或撤消复选指定的菜单条目
0 q& M& o# _, B5 J3 tCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 6 c- j! I* i  e! P! S8 C, d
CreateMenu 创建新菜单 " f* G( H/ K6 w3 J% F" ]
CreatePopupMenu 创建一个空的弹出式菜单
+ s; e6 O1 p7 \5 x% J- f. YDeleteMenu 删除指定的菜单条目   x1 I1 R5 f" u
DestroyMenu 删除指定的菜单
/ h$ V& c2 H3 Z, T' |/ ZDrawMenuBar 为指定的窗口重画菜单 ) c% n8 {/ X# G$ A( q6 R, q
EnableMenuItem 允许或禁止指定的菜单条目 7 ?1 T/ A4 d3 w3 M& t
GetMenu 取得窗口中一个菜单的句柄
3 H7 q( z3 U# j9 R$ FGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 ! ^# k$ p$ ?5 F" s* ?
GetMenuContextHelpId 取得一个菜单的帮助场景ID 8 A/ X! p4 u* U) @! Q
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 $ S- h+ J: k. ]( N- r5 H
GetMenuItemCount 返回菜单中条目(菜单项)的数量 + C0 B! s* Q4 J; o6 }6 t4 R
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID ; f, F2 j. d/ r+ ^! Z6 c7 r
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
% e6 S  A1 T+ a. TGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 + M( E, o  ?2 W4 A% ?
GetMenuState 取得与指定菜单条目状态有关的信息
% x" ~: R& B0 {* PGetMenuString 取得指定菜单条目的字串
: S3 Z- L6 [7 n/ f  Z- f/ {# fGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
3 i6 O, @/ n$ Z& eGetSystemMenu 取得指定窗口的系统菜单的句柄
; d% x( q+ G" V) y1 Z  B, `- l- FHiliteMenuItem 控制顶级菜单条目的加亮显示状态 1 r% V' L# |! H! u
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
. R4 Y: E4 l0 m* r0 W& QInsertMenuItem 插入一个新菜单条目
: s( d6 A& `$ ?2 A9 ~- M) iIsMenu 判断指定的句柄是否为一个菜单的句柄
2 j/ w! o$ t  N: MLoadMenu 从指定的模块或应用程序实例中载入一个菜单
! j6 Z9 o; \. b; O' U$ C% I  u0 |9 NLoadMenuIndirect 载入一个菜单 + p. c  G% J, k* t# Y: k
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
% h: U, U: A6 n2 h) e7 ~ModifyMenu 改变菜单条目 0 G  R+ H7 d. S* S  C
RemoveMenu 删除指定的菜单条目 1 i1 W$ f) u  K
SetMenu 设置窗口菜单   I! Y1 S0 j& n0 D$ q1 M7 q4 p
SetMenuContextHelpId 设置一个菜单的帮助场景ID
3 @% l* d& l% L1 b# G: s" dSetMenuDefaultItem 将一个菜单条目设为默认条目
3 K% L: Y4 y. |0 h2 @) o* f! ?SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
9 e; k- ]- c5 y: ASetMenuItemInfo 为一个菜单条目设置指定的信息
' [" P% L1 }: X* C$ c" i8 fTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
- S  M/ Q7 `$ _- [$ sTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 % k5 m9 V# w; S- l  U) N
7. API之位图、图标和光栅运算函数 ; @2 l2 @( D+ B5 L4 `
BitBlt 将一幅位图从一个设备场景复制到另一个& e' q7 e' F8 v
     WINGDIAPI BOOL  WINAPI BitBlt(
5 n' I# S5 D( r1 _7 d" _HDC,     //目标HDC
/ L  w* a+ h% O2 s* C% i) Vint,     //X1
6 l* Y) b; G" Y' O/ w. r9 sint,     //Y1+ P/ @, J" [+ f$ F) V
int,     //width7 E* N8 L5 ~) i
int,     //height$ ?" o  p0 h; I! g
HDC,     //源HDC% q- E3 j- s2 {
int,     //右边的距离3 b# ^9 H, ~) w5 i
int,     //??* s* e7 m" f) r  Q% E& S
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|4 L, ~+ d! ^" A3 R1 R
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS* ~/ K1 K2 }5 U2 Q+ X
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
% A1 x: ^/ D% k% [, X% Y* O" A% eCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 0 Q) c$ ~  I) Q9 b
CreateBitmap 按照规定的格式创建一幅与设备有关位图 ; e9 u2 {5 W0 c
CreateBitmapIndirect 创建一幅与设备有关位图 ( C- M1 S. A4 A0 J; `
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 ) ], T) U( `0 A# u( R
CreateCursor 创建一个鼠标指针 " ]% k. t: T2 D: P& W
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图   z* G7 X5 H; t8 R2 d) J
CreateDIBSection 创建一个DIBSection : l6 R5 C, g" z. T
CreateIcon 创建一个图标 ( A8 C5 q( Y, v7 e% m
CreateIconIndirect 创建一个图标 $ _& u$ d; T1 K/ U9 ]+ o! W" f8 d
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 1 j& o9 p3 m0 g' m. B4 ^' f  D, C6 R
DestroyIcon 清除图标
( G8 y( @3 y/ S3 T" Z; K5 XDrawIcon 在指定的位置画一个图标
( Z2 U5 ?$ }7 C3 t% Z8 cDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 5 `! w8 w9 I5 w' w% \& H
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
' W- S- i" k0 _7 G+ x; p8 |3 SExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 4 _- L. q* k! d
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 % j) L, l& |8 r: G- c0 m& O& N- Q
GetBitmapDimensionEx 取得一幅位图的宽度和高度 ) t7 v% n+ `6 s1 Z0 T4 d
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 " E8 G4 j. U1 P( W! ]. H+ U
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
# P/ F3 d1 B5 B' tGetIconInfo 取得与图标有关的信息 + I; ~% C! E  q$ W
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 ( s) F  z4 ~2 K+ t
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 8 E, w+ g# P* r* n2 G' G
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
$ c7 D3 Q: ]7 wLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
: P3 b$ ]( z2 _: aLoadIcon 从指定的模块或应用程序实例中载入一个图标 % {8 \  l% O# Y3 g& P% M
LoadImage 载入一个位图、图标或指针 % W2 K) X' }) _/ A4 f# h) I, \
HANDLE LoadImageA(
; l- w' u5 c1 l3 ^+ v8 e/ l: {HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
, a3 O6 B) H% z  i, k& b    LPCSTR,               //资源所在的目录:c:\help.bmp
1 N+ v1 O5 i$ k% Z* {    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
8 F/ O' ^! \' G2 y    int,                  //
3 g9 D/ g1 i  A! H. O: o6 k( {    int,                  //  o7 C! V: E: V% l0 q
UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|) K7 C( q; u. G, ?/ T
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|/ E6 ^2 l" X  s* ~0 B0 E. |  f
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
5 m$ [4 o, ^( _' F1 M; |MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
6 {. R+ ]& X  P5 NPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
7 B9 d- i/ z7 x8 b( `3 {( N! dPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
( ?: s6 U9 `5 G1 WSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
; ^& \- @" n, x$ \, @, r9 ]) ?SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
0 U9 B3 r0 [( t0 J6 [SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
7 J# d+ ?6 _+ a1 _! q- X" W* wSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
& B% A; ^- p2 C8 GSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
0 p4 p9 g% `  l9 tSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
! H- i- b: D" y: g; f" EStretchBlt 将一幅位图从一个设备场景复制到另一个
7 M& N7 H6 h( Y$ g$ vStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
; W* j' D8 ^4 x# f! M8. API之绘图函数 $ T, g/ q2 z6 B  D1 ~9 G
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 ' L) A( o; n/ k6 C6 G
AngleArc 用一个连接弧画一条线 6 z1 F, J  T' y/ u& M& N6 }! G
Arc 画一个圆弧 % ~8 L8 |, @( o+ |2 h) x
BeginPath 启动一个路径分支 * h* [0 S0 K! {
CancelDC 取消另一个线程里的长时间绘图操作
, D- e" k# F6 q; q) jChord 画一个弦
& j5 [$ \7 P0 O2 I( M- E$ ?CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 2 k! k- N. ^9 ^
CloseFigure 描绘到一个路径时,关闭当前打开的图形
3 z9 B7 F* f4 T* Q- `7 Z6 Y( N3 zCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 / j' O& v' V; B, K& m
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
2 U% G% G* z- j1 m+ R  }CopyMetaFile 制作指定(标准)图元文件的一个副本
. o4 S: l, q/ m/ a5 QCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
: T- j  @  l  o( k! w1 zCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) " l3 S( T. O3 V
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
' w, D& T# W+ ?CreateHatchBrush 创建带有阴影图案的一个刷子 - k5 e5 U7 n4 n4 Q0 r/ v/ r. @6 z
CreateMetaFile 创建一个图元文件设备场景
* e/ [& v+ U( D4 N" {2 iCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
" C+ O" U, B0 Q$ KCreatePen 用指定的样式、宽度和颜色创建一个画笔 4 I( O$ ]" L. f% a2 f+ W# f
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
: V8 |" y, e2 e& xCreateSolidBrush 用纯色创建一个刷子
* t. S' ]. F1 h! M0 J2 S; H" GDeleteEnhMetaFile 删除指定的增强型图元文件
9 q- `. w0 `3 E% N6 Z4 r( `/ p8 XDeleteMetaFile 删除指定的图元文件 & k6 v& P; O. u% u3 z, H6 X3 z: T
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
7 O% ~" ~  Y8 T' d7 vDrawEdge 用指定的样式描绘一个矩形的边框
2 N4 S5 d$ h% FDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
7 ?, b! T% E( kDrawFocusRect 画一个焦点矩形
! C9 j5 v, e. O0 v; a4 SDrawFrameControl 描绘一个标准控件
9 E. s! j& O; {3 Y' j5 v/ RDrawState 为一幅图象或绘图操作应用各式各样的效果 0 \) e% ]/ L4 \- i1 \# a1 Z4 p7 v
Ellipse 描绘一个椭圆,由指定的矩形围绕
! S( Q9 ]5 Y0 |! r! hEndPath 停止定义一个路径 5 r% r0 w: a/ Z0 F: U
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
& M9 m5 x: }9 U2 kEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 8 `2 f: q; y0 Q* M
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
% X8 F7 D0 b% s) h( M' O% U) G9 JExtCreatePen 创建一个扩展画笔(装饰或几何) / x, k9 c* W% y& S' z
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 4 @4 n/ N- `7 R
FillPath 关闭路径中任何打开的图形,并用当前刷子填充
8 B( P5 _2 y  q% h+ w) IFillRect 用指定的刷子填充一个矩形 # f4 r0 u* L+ g5 d) y8 n
FlattenPath 将一个路径中的所有曲线都转换成线段 # ]9 B/ _6 B: v
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
% A5 X0 m2 P; V8 R- |- EFrameRect 用指定的刷子围绕一个矩形画一个边框
6 B" ^- S) f: Z% lGdiComment 为指定的增强型图元文件设备场景添加一条注释信息
  r1 K1 R6 E7 X# YGdiFlush 执行任何未决的绘图操作
0 P+ U5 a1 X  i& o1 O8 GGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 # k& N3 z6 u& n% x
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
  |3 A% C5 j  g* L6 r$ yGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
% \3 t  _. x6 SGetBkColor 取得指定设备场景当前的背景颜色 6 \- ^; h* T3 [) j( |" }1 J
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
3 z0 l% H" S% c0 T* w' H- HGetBrushOrgEx 判断指定设备场景中当前选定刷子起点 7 j/ j9 l& D  X; |
GetCurrentObject 获得指定类型的当前选定对象
( y+ U& S( B% m2 `" eGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
. a7 o" n) x0 K, l9 F- E* ^$ D5 KGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 * ?& B! R- K! I
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 $ U/ N9 b: Z1 ^- v
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 # Q: x$ M( U; W5 M
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
# \' ^& D  g% L5 R7 p* P5 m; z8 xGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 + `- E0 K, ]4 V  e
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
6 M* e* r/ ^5 t* |; c" IGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
$ G  e: w2 J) D. [GetMiterLimit 取得设备场景的斜率限制(Miter)设置
, u6 T6 }. w7 o! Z$ cGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 8 A6 z9 M& ^6 ~' |) N- k# ]
GetObjectAPI 取得对指定对象进行说明的一个结构
/ w6 z6 K" @: b, [9 cGetObjectType 判断由指定句柄引用的GDI对象的类型 # D- I# H  Z  J$ N
GetPath 取得对当前路径进行定义的一系列数据
2 O" {3 l: L" i3 W: I+ u- lGetPixel 在指定的设备场景中取得一个像素的RGB值 ; [  a! l! [/ Q* j4 r
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
# J! ^% ^* n. `0 |6 F! e8 j% t5 a0 VGetROP2 针对指定的设备场景,取得当前的绘图模式
6 F9 B1 O* v% g- b; H! x1 XGetStockObject 取得一个固有对象(Stock) 8 K: a, h8 ?7 k9 e
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 / \& d1 D. G- v9 b
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
% I: u! h$ F: r3 f' \: \; m6 mInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 $ S0 ~+ w! N9 N7 H
LineDDA 枚举指定线段中的所有点 * M% m# i, I( k, \  b8 {$ o0 Y# D
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
" H- Q/ {! }/ VMoveToEx 为指定的设备场景指定一个新的当前画笔位置
- r. y+ x7 R. W9 x) G1 TPaintDesk 在指定的设备场景中描绘桌面墙纸图案
: R* q6 V" N; }5 R& QPathToRegion 将当前选定的路径转换到一个区域里 " s9 i6 t: C4 m. X
Pie 画一个饼图
  D% e6 s& R% V; M- B$ tPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
" K$ s, a" z- Y6 w( APlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 + F* ~9 N2 n' S) a% ~
PlayMetaFile 在指定的设备场景中回放一个图元文件
' t( v5 Z  B6 s+ ?& u5 DPlayMetaFileRecord 回放来自图元文件的单条记录
& J5 N  u1 Q) p6 ^PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 $ L8 c1 ?: W" k7 @0 Q9 o7 ~3 q
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
3 b! S) k( r0 z# n- nPolygon 描绘一个多边形
$ z  A% E( e3 o- r! LPolyline 用当前画笔描绘一系列线段 ! \: y7 Y0 u- V4 U6 q% F! L& g* C
PolyPolygon 用当前选定画笔描绘两个或多个多边形
, h: g0 _8 q! T1 z/ F2 u$ fPolyPolyline 用当前选定画笔描绘两个或多个多边形 * i/ S" f( R# w4 v5 b
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充   \- o* Z! R1 `9 E+ o) _
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 8 g2 M3 S, \# m5 F. E0 y5 }( s
SelectClipPath 将设备场景当前的路径合并到剪切区域里
! |7 \- M/ A0 J  r# P9 j8 ^& H4 sSelectObject 为当前设备场景选择图形对象   H9 v6 N: P5 d+ x9 r+ T
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
: [# A' k% J0 BSetArcDirection 设置圆弧的描绘方向
6 P7 D9 P6 w' ^SetBkColor 为指定的设备场景设置背景颜色
4 J$ ~3 v+ t" c9 VSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 & r/ G1 Q( N  r7 y' i5 h3 d' {- v% r
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 " N' y% N* L0 q  c3 x+ \8 C
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
8 t2 R  L& L- i0 M0 ]8 LSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 % d# a4 s& X" m4 u* `  o% V6 k2 W
SetMiterLimit 设置设备场景当前的斜率限制
/ J- U$ z/ o7 w2 i& c( |  S# ySetPixel 在指定的设备场景中设置一个像素的RGB值 4 P% T6 y) q# h" M/ w+ D
SetPixelV 在指定的设备场景中设置一个像素的RGB值
' i4 S" ]! W& J! ?2 pSetPolyFillMode 设置多边形的填充模式 2 G  @  Q$ l6 L3 J# Y  _2 z/ X
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
+ v* Y2 b: P7 s5 u5 }; Z8 O5 Y) zSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 ' h( n; U- N* T+ p
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 $ ~- w+ O/ X6 r
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 + J- P( y! U' O; W0 E0 Q
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 ) _9 h8 Q' J; J# p! i0 z3 v/ `1 b
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 . a% h0 z, a9 a% ~5 n2 `. s4 {' }
9. API之设备场景函数 ; G+ E& l  \1 X- T
CombineRgn 将两个区域组合为一个新区域
! H8 \7 G- \1 T9 [8 E$ Y% Y, xCombineTransform 驱动世界转换。它相当于依顺序进行两次转换
6 o) Q" q1 G$ j, V, J! c& a$ VCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
1 k4 A0 e- ?6 A6 i% L. rCreateDC 为专门设备创建设备场景
; f- J4 G& E* {3 ?CreateEllipticRgn 创建一个椭圆 7 m% V1 r3 i; `8 C, P! v7 y( g# ~
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
0 H3 e. k% M/ [) `) {9 R" l7 GCreateIC 为专用设备创建一个信息场景
7 |' c3 [/ s1 H9 I1 W" O- cCreatePolygonRgn 创建一个由一系列点围成的区域
! S4 E. i3 J) q# l5 a  I7 v4 ?2 xCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
/ O" f4 Z' p. s% E# H1 y( s( ACreateRectRgn 创建一个矩形区域 9 [/ [" p- {4 B: p1 O
CreateRectRgnIndirect 创建一个矩形区域
, v) \* J$ B; ^9 s6 C! l5 W& NCreateRoundRectRgn 创建一个圆角矩形
* ?: N! ?+ u& M$ W3 hDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 ' W/ V4 [7 g7 s- y' t% A) }0 R9 V# B
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 7 s. T0 I- y$ W9 e' U
EqualRgn 确定两个区域是否相等 ) ]" M. X" t) M) t' a
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 3 U6 e/ Z% _) s7 d& ?* T1 U
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
, G! D: j( J) K4 t8 [/ T% bExtCreateRegion 根据世界转换修改区域
4 F  @  l9 r3 `; ~# D  `5 l8 mExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
9 V3 \/ a& }( {$ J6 c: ~0 W( [FillRgn 用指定刷子填充指定区域 ! `( R1 D5 G1 t: k1 E3 Q$ h3 M
FrameRgn 用指定刷子围绕指定区域画一个外框 ' g7 h/ D. P; v
GetBoundsRect 获取指定设备场景的边界矩形 : z6 \/ w& N8 r9 T7 t1 B  n
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
1 t) l  I% |" ?" RGetClipRgn 获取设备场景当前剪裁区
4 s3 k# v: i$ q. OGetDC 获取指定窗口的设备场景
/ |7 |. E- F0 x2 HGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 . ]" b* O9 G; V: s1 x
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
- N* a( K% w& M& M  QGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
  I8 Z5 f& G+ D! K) kGetGraphicsMode 确定是否允许增强图形模式(世界转换) 7 G$ |" l. X3 V  H0 ^4 E* N
GetMapMode 为特定设备场景调入映象模式 - Q+ @6 G. z# t$ R- W: \3 m
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 8 a; b7 S/ g6 e( H4 s) C
GetRgnBox 获取完全包含指定区域的最小矩形
3 x& Q6 T( \  nGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 . \$ M4 j* y: g8 t
GetViewportExtEx 获取设备场景视口(viewport)范围 8 u& B0 F! A% `% e7 ]1 w0 O
GetViewportOrgEx 获取设备场景视口起点
; I: [  Q# F+ A4 B7 RGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 ; Z1 u, G" W& c1 _+ v
GetWindowExtEx 获取指定设备场景的窗口范围 5 a% E7 |9 l5 K3 I2 V8 Y7 P8 ^
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 * l# ]2 G" ?2 e/ l& |2 J2 G% [
GetWindowRgn 获取窗口区域 6 l; c$ Q3 x2 z" Y  \' T4 u' B
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
! s# p! ]9 H9 b2 H: [- ?3 eIntersectClipRect 为指定设备定义一个新的剪裁区 , W& ?0 i" q- k' ^( ~8 `: x
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
$ @( Y8 L# E3 o2 n% V* F1 `InvertRgn 通过颠倒每个像素值反转设备场景指定区域
) g: ?* z8 a* K5 \8 XLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
) i: n# K5 V0 O' |$ m- YModifyWorldTransform 根据指定的模式修改世界转换
, Y) L" b9 v) G1 c/ JOffsetClipRgn 按指定量平移设备场景剪裁区 - n. ?+ |* m2 G/ F$ `2 n: a
OffsetRgn 按指定偏移量平移指定区域 4 U. f. q8 L7 f
OffsetViewportOrgEx 平移设备场景视口区域 2 P5 v" f, g3 ~5 Z& [& h
OffsetWindowOrgEx 平移指定设备场景窗口起点
* ]; H% [" y" N" F/ MPaintRgn 用当前刷子背景色填充指定区域
  F* R6 o) Z5 a) Q3 G7 ^PtInRegion 确定点是否在指定区域内
  m# C- n- Q0 SPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
& k: ~) }6 H( u% XRectInRegion 确定矩形是否有部分在指定区域内
* i- H+ t& b" e- O1 w/ g* s- kRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) 8 n& l, M0 X; `6 g$ L
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景   X. F7 y: b, X, o8 v. R
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景   U* r% q9 q; R  ~0 T
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
+ j" j1 b% X) p- L* l! O* TScaleViewportExtEx 缩放设备场景视口的范围 6 B1 F$ U1 t3 i7 ~
ScaleWindowExtEx 缩放指定设备场景窗口范围
! `4 I! C/ c3 p& V/ v' PScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
! r4 U% l6 m3 m+ s4 j5 i- }% FSelectClipRgn 为指定设备场景选择新的剪裁区
7 N) J$ B  V& N8 @$ `* vSetBoundsRect 设置指定设备场景的边界矩形
" {8 W; y3 Q; _3 ]1 j/ KSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) " ~+ p+ ~4 _* N; |0 X" y
SetMapMode 设置指定设备场景的映射模式 . u( T4 y4 s2 W1 X5 T7 g! _
SetRectRgn 设置区域为指定的矩形
# e/ r6 U+ r4 M4 c" zSetViewportExtEx 设置设备场景视口范围
3 r: _: c( U" s1 [9 D9 zSetViewportOrgEx 设置设备场景视口起点
- h3 |6 `3 x1 f. W' P4 x/ F  gSetWindowExtEx 设置指定设备场景窗口范围 - y) i; o& V  j" \- R" L; H
SetWindowOrgEx 设置指定设备场景窗口起点
2 `4 R) c8 u3 w  bSetWindowRgn 设置窗口区域 ! }" V$ f, D$ d/ \/ M9 h) D
SetWorldTransform 设置世界转换 , M7 L! F3 W4 W3 a, Z/ S
ValidateRgn 激活窗口中指定区域,把它从刷新区移走
" B7 y  E; j6 N& c; qWindowFromDC 取回与某一设备场景相关的窗口的句柄 * n3 w$ c; ]3 r) R
10. API之硬件与系统函数 6 x6 Y0 u9 d% R* p
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
+ \4 W8 |! o; S- l$ U: eBeep 用于生成简单的声音
% R- |4 b- c! E, H0 w2 KCharToOem 将一个字串从ANSI字符集转换到OEM字符集 ) u2 J3 C  B( H4 T1 y; z
ClipCursor 将指针限制到指定区域 3 d. m9 B/ @: i  D# F7 T
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID - w5 ?1 m$ T" B9 r
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 $ l5 n- ~$ m& V$ d9 F
DestroyCaret 清除(破坏)一个插入符
9 \# a4 \8 _1 C$ e$ R! OEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
0 I# A5 p, X5 J! C0 nEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 7 \6 H7 V( C" F
EnumSystemCodePages 枚举系统中已安装或支持的代码页
, J* w+ m  g, r( N5 S+ S5 w- MEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 7 ]. w+ E9 \2 f5 ?. H2 o' d
EnumTimeFormats 枚举一个指定的地方适用的时间格式 ( R7 R( O7 H+ \, w
ExitWindowsEx 退出windows,并用特定的选项重新启动 4 x; a9 ]3 X1 b% M6 u
     WINUSERAPI BOOL WINAPI ExitWindowsEx(
; y! R- W: _3 m* U5 j6 AUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG2 i6 \6 K9 j: }9 U
     DWORD dwReserved); //0
7 u* b, P, M' X" T: y9 dExpandEnvironmentStrings 扩充环境字串 0 {/ G7 ^/ ~( g! x
FreeEnvironmentStrings 翻译指定的环境字串块
, ]: p$ g# R- E! V+ YGetACP 判断目前正在生效的ANSI代码页
3 V7 F" u& P; k! lGetAsyncKeyState 判断函数调用时指定虚拟键的状态
$ Y4 \, j1 k4 u8 m& z0 C0 ?GetCaretBlinkTime 判断插入符光标的闪烁频率 6 t+ x  T" G3 J$ h6 g
GetCaretPos 判断插入符的当前位置 / U3 p5 U- X& z2 a1 \2 J
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
+ Z9 F" E  N+ g7 V9 K* ~* ^/ H4 [GetCommandLine 获得指向当前命令行缓冲区的一个指针
- Q9 x$ p2 g9 i+ lGetComputerName 取得这台计算机的名称
- G" O( |: p9 h3 N9 L2 X6 M6 oGetCPInfo 取得与指定代码页有关的信息
# Q+ p5 v, k( Z$ ]GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
  r4 b1 S6 T0 Z/ S8 p5 \GetCursor 获取目前选择的鼠标指针的句柄 - m6 X3 g3 \1 g/ `+ S" D
GetCursorPos 获取鼠标指针的当前位置
  d) w, u- n$ J$ [GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 % k& M2 T9 E0 v8 N5 q
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
* \! Z# ]  A9 k) u. W: FGetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 7 [+ M3 G) m' y
GetEnvironmentVariable 取得一个环境变量的值 - `# W3 @% }. O% [% I
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
% g" I- k; A9 W0 V2 bGetKBCodePage 由GetOEMCP取代,两者功能完全相同 " }, R0 s" @8 \1 g, L! n
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
) h7 b7 A3 ?% I+ c6 {! z# m* RGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
) X& [1 G% f+ z9 ?/ ?- \/ Q6 D& @2 OGetKeyboardLayoutName 取得当前活动键盘布局的名称   A9 m; m2 X' S
GetKeyboardState 取得键盘上每个虚拟键当前的状态
. R5 G/ R8 m  I* s: wGetKeyboardType 了解与正在使用的键盘有关的信息
/ E0 \- {5 j1 D9 a' NGetKeyNameText 在给出扫描码的前提下,判断键名 % o, b. u! k; o: ]7 Z  F9 H4 z8 q
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 7 K! s$ c" A5 }+ h' Y% T
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
, W$ K: ~0 s' F; L6 j! fGetLocaleInfo 取得与指定"地方"有关的信息
& a* E# |( b( z6 uGetLocalTime 取得本地日期和时间 , w2 y2 Y+ ]/ \2 R
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
: M4 I* K0 ?) H* d1 uGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 6 S& t+ r0 Y% K+ u# k: T. T/ b7 W
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
, k2 X3 h3 g3 p4 G% T1 m7 aGetSysColor 判断指定windows显示对象的颜色 1 C( I  N. b7 y1 j4 a' ]! W
GetSystemDefaultLangID 取得系统的默认语言ID 3 @2 k) Q. O, S( [8 P
GetSystemDefaultLCID 取得当前的默认系统"地方"
8 w, {! j/ z6 ~9 y, f% v! nGetSystemInfo 取得与底层硬件平台有关的信息
9 A9 B* \" {* [! h" v0 |5 ?GetSystemMetrics 返回与windows环境有关的信息
+ Y# @7 W: A9 S8 w; k3 e: KGetSystemPowerStatus 获得与当前系统电源状态有关的信息
7 x  K: a7 ^4 q8 D! S: [& U+ tGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 7 i1 s' [8 @3 Y; O7 I
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 ! s" T9 o$ N2 A. b7 {  J
GetThreadLocale 取得当前线程的地方ID
) t% C8 V. D! e4 \3 b' v' f0 E5 VGetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) ( G" r& s4 ^! @1 [. }2 g
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
; n3 u( `7 s4 s) e6 `GetTimeZoneInformation 取得与系统时区设置有关的信息
) Y/ E8 N9 R' P8 }5 RGetUserDefaultLangID 为当前用户取得默认语言ID : y, D# N4 q, C; ?+ B
GetUserDefaultLCID 取得当前用户的默认"地方"设置   }  x  R, G% p+ O9 h3 |  j* ^. q
GetUserName 取得当前用户的名字
9 x  F% l; v  MGetVersion 判断当前运行的Windows和DOS版本
" `% }2 Z, [- C9 ]- mGetVersionEx 取得与平台和操作系统有关的版本信息 " h3 R0 o6 C" m- m) ~8 M
HideCaret 在指定的窗口隐藏插入符(光标) - Y" r7 S5 K- X6 F# z$ e
IsValidCodePage 判断一个代码页是否有效
) I# \7 n/ u0 n+ ^2 n- k. I, L+ QIsValidLocale 判断地方标识符是否有效 0 s" [1 O5 k, G
keybd_event 这个函数模拟了键盘行动 / r* b, x9 |) b) _, F: v5 @
LoadKeyboardLayout 载入一个键盘布局
  N- ^' L  i3 d3 v% C4 y0 aMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
7 P; k$ N6 A5 ]- h; d7 X: nMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
4 r! [: ?7 w' K% d9 ]5 SMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
2 Y- A& X; y8 imouse_event 模拟一次鼠标事件 9 F8 H0 e( H" p# Z* N. ^: }
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
. V. }1 q8 N1 T' Z$ E4 V4 XOemToChar 将OEM字符集的一个字串转换到ANSI字符集
. q7 `( A2 @% D8 n; \2 oSetCaretBlinkTime 指定插入符(光标)的闪烁频率 ( u8 W3 J. U" V
SetCaretPos 指定插入符的位置
' E2 K7 g5 a' XSetComputerName 设置新的计算机名
( Y7 u8 z. I, b; s2 ^9 G8 p+ [SetCursor 将指定的鼠标指针设为当前指针
4 Q( b2 t5 k7 _# Y/ q( s& q8 X0 |. d0 zSetCursorPos 设置指针的位置
' P* q5 w9 D, @+ s& B/ N9 sSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 % ?! r! u, T9 k/ b# r  G! }" A
SetEnvironmentVariable 将一个环境变量设为指定的值 : j$ q1 p7 S& y- X/ j
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 . g1 {; ?8 P. y) c1 m
SetLocaleInfo 改变用户"地方"设置信息
' N6 t+ w5 _1 |' J* u( k' M+ U% |/ @SetLocalTime 设置当前地方时间
! b% j; D. D4 _+ oSetSysColors 设置指定窗口显示对象的颜色 . h+ A3 R0 _- [9 H( I
SetSystemCursor 改变任何一个标准系统指针 ) a) ?( j9 k% ]4 k
SetSystemTime 设置当前系统时间 , x2 f! U, a( I! U! W( F$ b
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
3 s6 F* M4 v/ }; R% {; pSetThreadLocale 为当前线程设置地方 . N% e, ?  l+ g9 h' Y4 d
SetTimeZoneInformation 设置系统时区信息 + x0 S. z  @8 d3 b$ m
ShowCaret 在指定的窗口里显示插入符(光标)
7 \( x2 O' U, n2 ^/ p# [! EShowCursor 控制鼠标指针的可视性 + B  I6 V0 a) l
SwapMouseButton 决定是否互换鼠标左右键的功能
, j1 H) V/ R( j6 d' C$ ZSystemParametersInfo 获取和设置数量众多的windows系统参数
) y+ x! n7 i# p- u: _SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 ; ~; ~- E2 t& F9 j: w( J
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 ( t" Y# u6 C6 z# b, P- m1 I
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
5 @% @. _* c- t7 Y6 ^UnloadKeyboardLayout 卸载指定的键盘布局 2 N- R1 w8 N6 O# _( {8 e
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
! m4 P2 B# o' e; R& q( [11. API之进程和线程函数 8 c# T9 `0 B9 T6 m
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作   @8 e+ k* V% ?/ r' U
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
  ]; ~* X% u% ]( R+ x- Z7 }ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 . @& _% l) F7 I6 M! E* t1 t
CreateEvent 创建一个事件对象
% h; @3 x2 K: T/ p% h! i2 DCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
0 I6 E7 _7 ?3 l: cCreateMutex 创建一个互斥体(MUTEX)
, a3 O4 h' X, lCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 & @! h' |. u5 I
CreatePipe 创建一个匿名管道
% e, z; g- p3 `! VCreateProcess 创建一个新进程(比如执行一个程序)
8 H6 @( B2 O  v. H+ wCreateSemaphore 创建一个新的信号机 : W8 ^* Z; }+ x
CreateWaitableTimer 创建一个可等待的计时器对象 " a" r, e7 Y+ H% @# s8 D1 P
DisconnectNamedPipe 断开一个客户与一个命名管道的连接
" I" l  o0 R$ Y- b9 n" s' ]% |7 PDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 $ x  P. v8 ~$ \
ExitProcess 中止一个进程
' X; o) S/ g3 E6 N! I( eFindCloseChangeNotification 关闭一个改动通知对象
/ R- P6 @/ {5 w. z* C7 a! y- XFindExecutable 查找与一个指定文件关联在一起的程序的文件名
8 F2 e4 z" M2 R7 D; Z1 uFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 ! F' q% ?4 G" N
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 ' @/ U+ u; r7 R3 e, c1 _
FreeLibrary 释放指定的动态链接库
# K: g$ k- A1 {GetCurrentProcess 获取当前进程的一个伪句柄
5 B5 X+ @! W' X; z5 IGetCurrentProcessId 获取当前进程一个唯一的标识符 ) ~# _) B$ t! Z* F" n/ _5 w
GetCurrentThread 获取当前线程的一个伪句柄
# j9 [" r/ `7 \! `2 }, T/ ZGetCurrentThreadId 获取当前线程一个唯一的线程标识符 * J* i1 S5 ^* ?. B* `
GetExitCodeProces 获取一个已中断进程的退出代码 . O7 O; @' y- b* V( u; R
GetExitCodeThread 获取一个已中止线程的退出代码 / m9 O/ A/ r2 N6 F2 Y* ]. S
GetHandleInformation 获取与一个系统对象句柄有关的信息
$ e+ K; z  ?! wGetMailslotInfo 获取与一个邮路有关的信息
+ Y2 ], a. G3 b& LGetModuleFileName 获取一个已装载模板的完整路径名称 % `3 x7 A4 ?/ m$ `' D! @
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 ' U+ I) y2 Y3 x, ~
     GetModuleHandleA(LPCSTR lpModuleName);
6 u( {0 {" S' g, |GetPriorityClass 获取特定进程的优先级别
) a2 q+ f. N1 X- u5 U% vGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
4 Y: u. o6 Y% E8 N% j8 w8 ^! }/ n& ~GetProcessTimes 获取与一个进程的经过时间有关的信息 9 z7 a# f, H) {  P. t( I
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 2 O" I  {3 v6 f) Q) w/ _! j7 B1 ?7 k
GetSartupInfo 获取一个进程的启动信息
" _' ]( F) g0 ?) _2 |6 g  PGetThreadPriority 获取特定线程的优先级别 * D& U6 P8 f4 ~6 b1 s8 k
GetTheardTimes 获取与一个线程的经过时间有关的信息
$ x9 T: t. Z* H  z$ H" H8 W. `GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
4 L" U0 r: @+ D1 a- ^* b! nLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 8 o/ s. J5 |4 p% h
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 + j- B: ~: K: f  d  P% w  @
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 ( x, g9 z: N' \0 L- x2 g1 p/ {6 b
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 1 [$ E6 _9 ?6 B  x9 Z
SetPriorityClass 设置一个进程的优先级别
0 f; F5 l8 x: @9 x2 kSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
9 X+ y& H) t$ S# zSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 . W9 ^; V! C; t% w
SetThreadPriority 设定线程的优先级别
" D9 |( M* m2 p! b8 sShellExecute 查找与指定文件关联在一起的程序的文件名 # W* p( \' y! Y: |6 _4 z, }
TerminateProcess 结束一个进程 " f7 R, \! |: \( w, ~* q" {5 g
WinExec 运行指定的程序 5 k! s# N" \; k! T
12. API之控件与消息函数
2 B5 J( L1 }1 O0 a4 |6 j* y! o$ eAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 & t) q: V, v* M
AnyPopup 判断屏幕上是否存在任何弹出式窗口
9 z% ]1 V, d# T" F3 q; }; B7 Q$ sArrangeIconicWindows 排列一个父窗口的最小化子窗口
, ~, l$ T5 R1 R5 tAttachThreadInput 连接线程输入函数
. [& `. X  x8 t; KBeginDeferWindowPos 启动构建一系列新窗口位置的过程   d9 r4 j7 B# H$ b' z+ i6 _8 q
BringWindowToTop 将指定的窗口带至窗口列表顶部
3 d* V# R7 r5 eCascadeWindows 以层叠方式排列窗口
7 D% c- U( w% S0 {ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 0 @: w+ b# b) ^5 w( f
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
* v5 ^% p& \; B  N) A+ L( f1 fCloseWindow 最小化指定的窗口
( x* ^- B% [3 h, m! ~% k/ O4 @+ ^CopyRect 矩形内容复制 * s- J9 Q8 f# f: N/ ?
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
# R4 `$ N% r5 z; YDestroyWindow 清除指定的窗口以及它的所有子窗口
7 f/ [* c+ A4 ~2 {DrawAnimatedRects 描绘一系列动态矩形 ! [8 S, s, P4 F2 e/ H, H5 U
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
% k7 J& {3 M+ B! m- M4 w. zEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 $ q; n8 |- T8 _2 T* y
EnumChildWindows 为指定的父窗口枚举子窗口
- r: a% N1 |  H  Z9 }% }EnumThreadWindows 枚举与指定任务相关的窗口 * d) ^* Y6 F/ G( _! i8 w$ l! m
EnumWindows 枚举窗口列表中的所有父窗口
# T7 C! Q" C8 y) ~3 R; U! [EqualRect 判断两个矩形结构是否相同
+ p7 ]5 ^6 m1 J& _) X) f, ]# j' BFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 5 D! E( W- v% A3 s% v5 p3 X
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
( K" y6 k( k1 ~! K( j5 P# jFlashWindow 闪烁显示指定窗口
) ]1 `) X, K; D7 eGetActiveWindow 获得活动窗口的句柄 + I' J. v3 b9 u, F
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) , N% J: i1 @! t+ F) O
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 * n+ i% T  K0 r" H5 ?1 a) S
GetClassLong 取得窗口类的一个Long变量条目
" R" v6 }0 {9 Y8 w# ]0 {; I7 QGetClassName 为指定的窗口取得类名
8 a. X- S+ Y. A  z, M+ tGetClassWord 为窗口类取得一个整数变量
$ K8 b0 @$ s  N: R4 B1 Z2 pGetClientRect 返回指定窗口客户区矩形的大小 0 S  x4 g3 d; y3 Q5 x
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 2 z0 H, h2 T" u5 ^
GetFocus 获得拥有输入焦点的窗口的句柄 ( q" K# o8 M& t0 t# ?. ?4 Q
GetForegroundWindow 获得前台窗口的句柄
: m! K8 H1 ~# m  v. sGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 & U( v* x  [4 _& R, [" ^  k
GetParent 判断指定窗口的父窗口 # w7 P3 A% N8 R
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 3 f4 g- ?! U4 @& H& h
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 ' M6 j! L7 v( V* r; P0 i0 I1 {/ H
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 ' C% s! y$ ~5 q; q/ {1 I2 ]( C
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
$ }2 m9 t! l0 y5 UGetWindowLong 从指定窗口的结构中取得信息
7 e( v+ z7 }8 WGetWindowPlacement 获得指定窗口的状态及位置信息
+ w8 P$ y+ C, ]* G; \' e9 _, O. K1 {/ ?GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 ; [% Y! D& L- K( e
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 - f  U* r# _- n5 i7 ^1 t- a
GetWindowTextLength 调查窗口标题文字或控件内容的长短 1 u1 T/ C' d" ~
GetWindowWord 获得指定窗口结构的信息
2 }- L' D* P  f. }6 H! q5 dInflateRect 增大或减小一个矩形的大小
$ ?, M2 f' H9 ]) [" h# ~5 v! uIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 + \, x) e2 U. J( `: t- d
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
4 G5 [1 i+ A7 a. N! B/ ?IsChild 判断一个窗口是否为另一窗口的子或隶属窗口 # n- E3 n% {1 i" `7 L* r0 r% b( b
IsIconic 判断窗口是否已最小化 ( k. P' t1 X7 F* t6 l* B
IsRectEmpty 判断一个矩形是否为空 3 V3 [3 f* @2 A! P, ^8 c) k7 U* b
IsWindow 判断一个窗口句柄是否有效
, A6 c1 R# v5 eIsWindowEnabled 判断窗口是否处于活动状态
0 M8 q( O4 ]( zIsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 & o( n& w6 n  Q( d8 t- Z
IsWindowVisible 判断窗口是否可见
' d. z$ f6 o0 U( x" ZIsZoomed 判断窗口是否最大化
4 R5 v( U2 e* t+ B& f8 t* CLockWindowUpdate 锁定指定窗口,禁止它更新
7 r0 w9 H% @: OMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 ; W9 I' @, a( p+ i* y
MoveWindow 改变指定窗口的位置和大小
0 d  J# u7 k( |; s" f- BOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 . }0 H5 Q; V9 j; c) i% z# g
OpenIcon 恢复一个最小化的程序,并将其激活 1 n! d) d, W) Q# K7 V
PtInRect 判断指定的点是否位于矩形内部 , U. H1 K* D+ s- h% R- P, b
RedrawWindow 重画全部或部分窗口
# e9 v) n5 @9 D, {* ^# t2 uReleaseCapture 为当前的应用程序释放鼠标捕获
' o" V$ a& Q$ i" RScreenToClient 判断屏幕上一个指定点的客户区坐标 % l/ B. Q! G2 K6 h
ScrollWindow 滚动窗口客户区的全部或一部分 + {3 l& A! C6 i& y
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 " Q8 K# L4 p5 m5 ~2 F" J5 p) Z
SetActiveWindow 激活指定的窗口
! Y4 [; B# P4 |7 o( Y' ?: J0 DSetCapture 将鼠标捕获设置到指定的窗口
& v4 l9 U& s+ B2 W& W! \SetClassLong 为窗口类设置一个Long变量条目 8 P3 Z0 |  o% S4 m4 n$ R
SetClassWord 为窗口类设置一个条目
- E' @5 r6 g5 Z# V1 ]$ w+ GSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 " @3 K5 I5 j+ p2 F1 S
SetForegroundWindow 将窗口设为系统的前台窗口   i" c* N5 q9 x9 Z$ l
SetParent 指定一个窗口的新父
2 U" [0 I1 \3 ySetRect 设置指定矩形的内容
0 k8 C7 O+ ?5 O' iSetRectEmpty 将矩形设为一个空矩形
8 y/ ^, o& C- x0 O' p! DSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
( ~1 |9 T: J  o9 O* n0 [8 U& QSetWindowLong 在窗口结构中为指定的窗口设置信息 " y9 i0 P1 n3 i
SetWindowPlacement 设置窗口状态和位置信息 ( u) p8 D( e% M
SetWindowPos 为窗口指定一个新位置和状态
5 O" Y; C# j2 h5 H8 _% d+ A* kSetWindowText 设置窗口的标题文字或控件的内容 # n' M# u* f1 W
SetWindowWord 在窗口结构中为指定的窗口设置信息 + a. n2 B' \  [/ g
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
* z, ]( {* K# l# ?7 C: RShowWindow 控制窗口的可见性
/ y- N7 x3 D! W* LShowWindowAsync 与ShowWindow相似
  g+ v5 t$ o( m1 K' F5 b7 dSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 # ^# \% {: ?; X* G
TileWindows 以平铺顺序排列窗口
0 N7 ]" S# n/ B: v( C$ u) EUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 4 \$ F% M: A0 T# @9 x' [
UpdateWindow 强制立即更新窗口
8 k0 M9 M0 y' Y* F' [/ X+ ~ValidateRect 校验窗口的全部或部分客户区 ; _& y! X! w, y- W: a2 `9 V; J! N
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
& _+ s! b; ]7 V/ i高级音频函数—参看《VC++ 编程指南.chm》11.6. s7 g9 l; U- l8 ^/ |& O
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
: M0 o0 w# L: d& x' A: S* m     BOOL MessageBeep(UINT uType);
9 p- r# F& ~- D* a该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。( V5 z7 ~2 N  o; l& P
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
# ~2 a9 H" ]$ e7 [2 j& ?5 }
级别 * ?4 a# U9 I3 [' e" `
描述
. b- l; l& `2 j7 q
-1
! w0 N) g. m4 }0 x
从机器的扬声器中发出蜂鸣声。 ; q' \9 h5 J" z) y  ]  S# \1 A
MB_ICONASTERISK 8 X. Y; [4 m% M
播放由SystemAsterisk定义的声音。
5 `# o! A$ |9 T
MB_ICONEXCLAMATION
; r; c, Q! B7 L+ s
播放由SystemExclamation定义的声音。 1 r' U! u. Y6 B; t* n! u% }
MB_ICONHAND % k* g% {0 \" w+ l( m
播放由SystemHand定义的声音。 + U" m) h; Y: B- X3 F: Y
MB_ICONQUESTION " L  x; `1 ]$ i- m9 U
播放由SystemQuestion定义的声音。 % N+ O1 \6 V8 Y2 e
MB_OK 1 Y6 Y8 }: x3 t) \+ Q2 t6 ?7 J% G
播放由SystemDefault定义的声音
7 D6 y7 H' O( S* l7 G$ }: z* R+ y
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);
7 c8 l7 ^$ x( n  X8 I1 g% C% s0 a参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。  p2 G4 U1 C# l# T1 r7 R
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
$ T) M0 v  g! C) e9 f& }) t* a* H3 f参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。. }: a% c: c, M; l
标志
# P, ]7 \! z- P% v
含义
/ M: |1 g" i6 X/ I  M
SND_APPLICATION
3 h& y& F5 I2 x8 i
用应用程序指定的关联来播放声音。 ( W* A6 O# y2 v0 |& ?) ]! A' W
SND_ALIAS * X# b% ~4 F5 v) w+ h
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 . J. C$ A  j' B$ E4 ]
SND_ALIAS_ID * ?/ x: k; X2 n; s8 \# @
pszSound参数指定了预定义的声音标识符。
- x% x2 z% X4 F7 \0 \
SND_ASYNC
# k  V/ t  m) [- r5 q
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
9 s: [. S/ w6 N% S/ A
SND_FILENAME ) F8 T* x. C" b+ r
pszSound参数指定了WAVE文件名。
) V# Y& H6 L- a7 F2 D$ `, K, ^' o4 m
SND_LOOP
: M, o  D$ J; l' u7 z$ {: D( ]
重复播放声音,必须与SND_ASYNC标志一块使用。 ' R( \3 C5 |# N9 Z2 M
SND_MEMORY
5 M! p0 o1 K  v9 r# O3 W0 V& ?: Z
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
' _* Q( B6 I8 `1 _
SND_NODEFAULT 6 a3 d, d# d% L1 U
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 ( d' B7 {. c' j1 P: d% ~7 E
SND_NOSTOP ( R  Z) y0 y& J! D- _6 p2 @, }- ~
PlaySound不打断原来的声音播出并立即返回FALSE。
" r% ]5 K  Q3 q: f% {3 H
SND_NOWAIT
" w" o' |( V1 m  D5 u( m% S* t+ v
如果驱动程序正忙则函数就不播放声音并立即返回。
$ Z) g9 J- X6 F- ~# z* S9 W
SND_PURGE
- M( k+ m4 x/ U# X+ `: T
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
5 D7 N, a! X0 `  F, \: P
SND_RESOURCE
/ y$ @4 A7 _' m4 c. h) |' g- L+ V3 q
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 $ z) i$ ^- j: p& _( l+ S# B
SND_SYNC + M7 g. u/ g4 `/ G3 W
同步播放声音,在播放完后PlaySound函数才返回。 ( J! S# U4 f- c( F: y/ l
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
3 q& B9 \& Q' h  t( }' D函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
6 D( d; {4 Z5 h; sMCI播放8 }3 v2 Z% F1 ^5 d) [
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
4 {3 B; o! K! Q1 w2 ^( g9 KMCIERROR mciSendString(% Z0 B+ P: v0 K; D1 k0 s% s, f; j5 N
LPCTSTR lpszCommand, //MCI命令字符串+ _- q, _* s5 D; \8 x
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
$ k) x5 e/ N0 x1 V$ r' UUINT cchReturn, //缓冲区的长度
8 L! s" e9 E- C3 W2 O! iHANDLE hwndCallback //回调窗口的句柄,一般为NULL
6 y" e$ J! z- t0 w5 b# u); //若成功则返回0,否则返回错误码。
* q/ k$ H: [0 e( e& ~/ D" D该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
# u, u( ]1 q  V9 D3 @: l2 nBOOL mciGetErrorString(
. [7 g" D7 K4 d" m- Y% }. MDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码+ u% u7 f' ^; ?: W+ S. F5 U
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
8 ?0 S" c: x% Z8 [/ {UINT cchErrorText //缓冲区的长度
# B' i' M2 ?9 x6 R; X4 k+ ^);
# b1 o6 }' u, {& z" g* w/ _# v/ `! N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-13 22:33 , Processed in 0.022216 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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