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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
7 k9 R- |. j7 H/ J9 M1. API之网络函数
5 t3 ^) |4 Z5 {WNetAddConnection 创建同一个网络资源的永久性连接 - C! @" _* \9 A1 G  h( _
WNetAddConnection2 创建同一个网络资源的连接 2 v1 i( G" I% k
WNetAddConnection3 创建同一个网络资源的连接 " G& z4 ]! Z* s9 W5 u9 S# B
WNetCancelConnection 结束一个网络连接
- E0 ?. B% s; S: j: X0 \# NWNetCancelConnection2 结束一个网络连接 3 h8 r3 x* n4 g  d1 [3 q) S
WNetCloseEnum 结束一次枚举操作 # q1 u" {% _8 p) W# \" K- P+ K& N
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 # {( y% M- h' d# t9 d+ d1 b$ S
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 , ^$ L. N" n: C! ^# b! S
WNetEnumResource 枚举网络资源
7 Z! h2 l, f( ~3 Z, ~* w/ \WNetGetConnection 获取本地或已连接的一个资源的网络名称 8 d0 U- y' e  V" S' H; D1 T  x
WNetGetLastError 获取网络错误的扩展错误信息 0 w) Z3 I% ?' G+ m9 T
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 + r  L% s  J) O2 B/ p, Y
WNetGetUser 获取一个网络资源用以连接的名字
+ i0 |# C) c2 M  y+ |WNetOpenEnum 启动对网络资源进行枚举的过程 8 R  J1 v; B# W/ _2 [+ M
2. API之消息函数
5 v. o% V! Z2 g- z" [BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
0 `/ m8 [, }2 v& ^GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
" T  C4 x8 l! ]GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
/ L. s* j+ j0 x4 J$ hPostMessage 将一条消息投递到指定窗口的消息队列 5 L! W; M5 {+ G$ [( Y) v' c* \
PostThreadMessage 将一条消息投递给应用程序 8 B8 s" E* H% _6 `1 f+ @
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 8 ~; ^3 j$ c9 f) g: q
ReplyMessage 答复一个消息
7 U: J; e6 b, f1 e! ]9 u: xSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 6 G" W( S) B: T
SendMessageCallback 将一条消息发给窗口
& O4 O5 `7 B+ ]6 ~! O% V6 }0 f" SSendMessageTimeout 向窗口发送一条消息
4 P& \) S( y& z7 P4 g& ]3 T, QSendNotifyMessage 向窗口发送一条消息 ) R" }, A( ~' B4 n: c: F' I  j* T
3. API之文件处理函数
9 C5 a' J2 Y$ P/ NCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 : m, B& x  s' T- b  r7 ~: w
CompareFileTime 对比两个文件的时间
$ e% [% h. ~/ d0 HCopyFile 复制文件 5 C! R( @4 P4 D' e
CreateDirectory 创建一个新目录
1 q  g1 k! g! t5 G0 UCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 2 y/ [" P4 T9 `, R/ H; W
CreateFileMapping 创建一个新的文件映射对象 3 r: j6 A9 O& X1 h- `
DeleteFile 删除指定文件 + U8 h( w9 T' i5 L( _/ P
DeviceIoControl 对设备执行指定的操作 ) Z8 T) D8 J; k, G4 ]1 r$ c
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 # t% f& l8 m3 ^; {" P- z
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 7 P  J1 T: n7 t0 H- m0 \
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 ! i3 `; p. r; [+ q
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 ; U: ]+ d# J6 W
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
' A, V5 F% s$ C3 M- d( QFindFirstFile 根据文件名查找文件
1 L. u9 O& Z; ^8 h5 E; [2 ?FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件   W4 N% W' o* c/ e, m
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 + Y' Q- n1 w; X8 V8 K( m  ?
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
4 T2 w  x4 I4 D" E; |* ]# ZGetBinaryType 判断文件是否可以执行
" K0 Y  p  ?" @8 |) BGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
  O' b. k3 c* PGetCurrentDirectory 在一个缓冲区中装载当前目录 $ Y8 R# s0 }# K. U& R
DWORD GetCurrentDirectory(/ v# \" L4 g5 d4 ]2 f
    DWORD nBufferLength,    //缓冲区大小
4 I* J; c6 C3 F8 Q/ E2 D% N7 C1 G- G    LPSTR lpBuffer          //缓冲区的首地址( N" V" X6 p5 x. H# [0 p
    );; {! T- U, i; X: E% R% u* U& u
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 3 v! G  q- ^/ S4 L0 ?/ [' B  X
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
4 G1 I& ~7 F3 J. w  z. _" }GetDriveType 判断一个磁盘驱动器的类型
  [5 n1 v$ S$ \9 i  c1 n& l/ m9 ]( uGetExpandedName 取得一个压缩文件的全名 / W( P& J' A1 j
GetFileAttributes 判断指定文件的属性
6 V- S1 d  g- k( H' @3 DGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
: ^" ?+ W/ \5 @6 @+ KGetFileSize 判断文件长度 1 ~' ]$ p# U/ Q0 ]& l) D
GetFileTime 取得指定文件的时间信息
. M. k/ b) d5 m% i& W; R" x, fGetFileType 在给出文件句柄的前提下,判断文件类型
* l1 K5 k; l4 R& O6 B( `GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 3 l' u5 J* I* z
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
. |& y4 O7 C& X) F8 K; A& ?GetFullPathName 获取指定文件的完整路径名 ; q+ A1 Z& t! n
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
2 ^  v  M. M, \GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
1 \9 [. r) G! vGetOverlappedResult 判断一个重叠操作当前的状态
6 D' b/ E/ G' ^* c- O$ JGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 1 Z7 [/ ^* {# X4 j
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
" C8 F7 F7 }5 @$ _% ^5 ?GetPrivateProfileString 为初始化文件中指定的条目取得字串
( ?* ~* z7 \4 e; vGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
, {5 q6 y' L. j" b5 M3 F0 aGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
, _2 _8 Z* g) T9 C  r+ wGetProfileString 为win.ini初始化文件中指定的条目取得字串
: m+ F, X  f0 T$ V( \0 _+ z: xGetShortPathName 获取指定文件的短路径名
! P- b4 U& e- m3 m2 j4 I1 Y5 i( hGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 . Y2 n: O0 Z- ~& u9 h) U7 `
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
6 p" ]( f9 D% a6 v- jGetTempPath 获取为临时文件指定的路径 % o* u+ a6 B0 Z8 F6 c5 u9 Z, d, w
GetVolumeInformation 获取与一个磁盘卷有关的信息 + B6 F" M: E/ m4 w' F3 }
GetWindowsDirectory 获取Windows目录的完整路径名
; M. R5 s9 k/ V4 Thread 参考lread " ]8 Q9 R* D2 Q! V
hwrite 参考lwrite函数 ' X2 K2 c% Z# L! h% m
lclose 关闭指定的文件 % T, i4 e$ ~1 W' I8 U2 V  r/ v
lcreat 创建一个文件 2 k$ Z+ J" i' `# T7 N8 r% {
llseek 设置文件中进行读写的当前位置 % ^0 P7 d  ]2 W4 J! h9 q# M
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
9 i8 v+ L" |2 P" H  gLockFileEx 与LockFile相似,只是它提供了更多的功能 ) R6 I3 B& ]: H) j/ m
lopen 以二进制模式打开指定的文件 , b, s" ?! m) p1 ~* _
lread 将文件中的数据读入内存缓冲区
  f/ H7 C4 ^' L% Alwrite 将数据从内存缓冲区写入一个文件 8 @& [7 J. p( c0 G) h. j
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 : A0 e% P  x' @0 Y8 |
LZCopy 复制一个文件
# e4 d6 h+ E" JLZInit 这个函数用于初始化内部缓冲区 9 N8 [& e9 K9 c
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 % ^4 P# |# x$ z# @. b  p6 c) o
LZRead 将数据从文件读入内存缓冲区 8 A* n9 T1 e+ d! [* z
LZSeek 设置一个文件中进行读写的当前位置
% H* B# a5 h2 x' i5 I- X6 d0 ZMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
- u- p) V7 K/ m8 _; CMoveFile 移动文件
; h5 J6 }( P$ l1 fOpenFile 这个函数能执行大量不同的文件操作
, C9 e0 g' ?6 s! \, g4 NOpenFileMapping 打开一个现成的文件映射对象
$ r+ x8 W' M4 TQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 + G+ [* O9 a9 X5 E* i
ReadFile 从文件中读出数据
2 w# r% B. i# _8 W# f- YReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 6 ^) u" k. N* S- T- F" B; Q/ l
RegCloseKey 关闭系统注册表中的一个项(或键) 4 M' \$ |. D/ ^. V
RegConnectRegistry 访问远程系统的部分注册表
0 v" O$ m& _" g, b2 {! eRegCreateKey 在指定的项下创建或打开一个项
5 B+ ~' t. _6 R4 }RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
, _7 `. w; p, Q  U7 F+ r+ QRegDeleteKey 删除现有项下方一个指定的子项   R0 v; G; f' V
RegDeleteValue 删除指定项下方的一个值
9 \" `' Y- b& i5 {7 l: |RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx ( h& _( g2 \/ n: a) w" Z4 T
RegEnumKeyEx 枚举指定项下方的子项 : ^. b, \8 t; B2 c$ o$ J7 p6 v
RegEnumValue 枚举指定项的值 5 ]) d- i* }& ~
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
) S, Y* F9 t$ t( ^RegGetKeySecurity 获取与一个注册表项有关的安全信息
  @, H! X6 r" y- IRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 % I6 y2 o  Z& o/ \
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 ' x9 h" z  \' |: [0 q0 k' n
RegOpenKey 打开一个现有的注册表项 5 q8 Z5 Y! W# P1 W/ T5 [  `
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 5 s2 l8 I7 O" Y( P9 E
RegQueryInfoKey 获取与一个项有关的信息 6 |- s& o6 v# n# G9 V6 B
RegQueryValue 取得指定项或子项的默认(未命名)值
8 O% [1 G3 e# ARegQueryValueEx 获取一个项的设置值
' A, X. d6 p# V3 k; r9 _8 vRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 - h, Q( s/ H# s# K
RegRestoreKey 从一个磁盘文件恢复注册表信息
3 a; V+ a: Y; a- URegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 4 ~% T7 Y4 t5 @, A- r! h" n  c
RegSetKeySecurity 设置指定项的安全特性 : X" ~" Z$ d6 \! n1 |
RegSetValue 设置指定项或子项的默认值
! U+ G/ Y, j5 k7 t2 W4 [  {1 y: `* nRegSetValueEx 设置指定项的值 5 s$ J3 G; F) k
RegUnLoadKey 卸载指定的项以及它的所有子项
9 ~+ W4 e6 _8 u4 T$ g0 eRemoveDirectory 删除指定目录
$ O& W6 m+ c% ~! wSearchPath 查找指定文件
/ ]+ p- @) ]1 f, H" YSetCurrentDirectory 设置当前目录 ! E) ~7 A' P  [- v
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 ) {% V2 N5 h  _8 \8 p( k9 ]* y
SetFileAttributes 设置文件属性 . f. `6 D. ]7 d" f/ R( c/ ]+ F3 g  Q
SetFilePointer 在一个文件中设置当前的读写位置 : a1 `0 V+ o4 H+ Y
SetFileTime 设置文件的创建、访问及上次修改时间
' E5 D* f7 a% E2 I& A7 Y7 s5 PSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
& v: Y8 Z! T. USetVolumeLabel 设置一个磁盘的卷标(Label) . r& E$ {( v* ^( @, O7 S
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 * A) F# R1 a: R- ~5 u" G% Q. c
UnlockFile 解除对一个文件的锁定
. e% {- M) w; k3 W4 l6 wUnlockFileEx 解除对一个文件的锁定 7 [. ?1 q' @# g( c( T
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
: \' D8 {. m$ z! B5 d1 GVerFindFile 用这个函数决定一个文件应安装到哪里
: x7 w/ ?/ _  b0 JVerInstallFile 用这个函数安装一个文件 9 c& h+ j$ t: ?6 e
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 8 V' J# }7 H8 b6 q& s6 }5 f1 k
VerQueryValue 这个函数用于从版本资源中获取信息
) L  M! |6 B  S! U/ FWriteFile 将数据写入一个文件 6 W/ h+ T# {/ v/ n, L1 s
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
0 o* {  Z/ u% l  BWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 - S, |7 |/ i; m; f2 f$ }0 J
WritePrivateProfileString 在初始化文件指定小节内设置一个字串 + q; H- J8 R& o
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 ) c9 ]+ P. \" o, w9 I6 [' j
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串   Q' J; ~  l- c) V6 v% j, o
4. API之打印函数 + _( G0 @) ~6 q
AbortDoc 取消一份文档的打印
3 ^( i$ n7 Y2 l+ IAbortPrinter 删除与一台打印机关联在一起的缓冲文件
- E  a. J& x' J- T) U1 o3 ~AddForm 为打印机的表单列表添加一个新表单 & B2 u$ J' \: r
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
4 Y7 _8 A7 n: f, p& y. e+ [: Z1 yAddMonitor 为系统添加一个打印机监视器
  I6 v7 `6 D& ~. sAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
; I  U8 O$ x7 V# z% ]$ `AddPrinter 在系统中添加一台新打印机 % m) }# h+ B7 ?: F' r+ O% N
AddPrinterConnection 连接指定的打印机
* S$ P/ d  |& h1 _6 V2 jAddPrinterDriver 为指定的系统添加一个打印驱动程序 & s3 D6 R7 @. u# Z2 {
AddPrintProcessor 为指定的系统添加一个打印处理器
. Y6 p0 ~9 K; BAddPrintProvidor 为系统添加一个打印供应商
* h+ R  `! x7 R- J# KAdvancedDocumentProperties 启动打印机文档设置对话框
$ h7 z" q. ]0 k& N  u- EClosePrinter 关闭一个打开的打印机对象 ' L0 d) ^0 C" d1 ^$ q. S0 \
ConfigurePort 针对指定的端口,启动一个端口配置对话框 ; G8 p4 i+ u  r3 R: |: G5 c
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 + U  v) p9 A0 S  Q4 P
DeleteForm 从打印机可用表单列表中删除一个表单 / S; F2 v) |3 ~# _) y
DeleteMonitor 删除指定的打印监视器
- W4 V3 P6 _/ d9 f" f+ jDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
  u& U8 Q: X  [# T  S$ ^* LDeletePrinter 将指定的打印机标志为从系统中删除
! Q7 q  ~) f1 C9 Y7 P2 s/ lDeletePrinterConnection 删除与指定打印机的连接
: @/ s8 ^6 c6 N: gDeletePrinterDriver 从系统删除一个打印机驱动程序
6 B* j0 J& ~% R% z4 t- uDeletePrintProcessor 从指定系统删除一个打印处理器
# e3 a8 |9 _- |9 F( c" A! wDeletePrintProvidor 从系统中删除一个打印供应商
( x+ O* X: {) g' T* m$ Y4 |: Y7 DDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 9 H8 g5 P' t7 b7 h* d
DocumentProperties 打印机配置控制函数
8 A, w; a6 q7 `, Y- v2 HEndDocAPI 结束一个成功的打印作业
( R' C! j. @3 ?( h8 ~9 BEndDocPrinter 在后台打印程序的级别指定一个文档的结束
& [8 O: {5 n3 ZEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
4 F! J) ]- k3 Q: OEndPagePrinter 指定一个页在打印作业中的结尾 8 h/ _  _4 w. s0 Y6 O/ ?
EnumForms 枚举一台打印机可用的表单
4 @1 n3 u3 N; N- D0 NEnumJobs 枚举打印队列中的作业 4 P8 u: w% R* i) K5 J- |! p8 c0 K( }% g
EnumMonitors 枚举可用的打印监视器 / O0 M, P* e6 p: d" Y8 u
EnumPorts 枚举一个系统可用的端口
3 N, F6 e/ L; X9 A( X/ Q0 eEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
7 _) {3 j/ j5 t6 fEnumPrinters 枚举系统中安装的打印机   `: n7 u+ ~6 [- T
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型   A1 K: I' ?, r* ~& o! _
EnumPrintProcessors 枚举系统中可用的打印处理器
6 f* e5 u/ i; I$ GEscape 设备控制函数 ) z. J- X# p5 J! m: W% g
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 * P3 e6 ]% s* e* k
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 ! p8 }8 C' M% }; N
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 % ]9 U& k( d* p' ~: o
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 % i6 e1 d! {  ]! F3 \$ b4 N
GetForm 取得与指定表单有关的信息 1 G- x7 G$ u( [/ Z8 y
GetJob 获取与指定作业有关的信息
; X3 Q" D6 f$ s; cGetPrinter 取得与指定打印机有关的信息 5 R' l- Y5 C: u9 T, j( w
GetPrinterData 为打印机设置注册表配置信息
* P$ ?/ [1 I# fGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 # M0 s4 H$ O7 Q; _: Z: P1 h* g
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 # I5 }7 z# @- E: ^
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
6 J4 i1 b' n9 L* l$ j1 I$ MOpenPrinter 打开指定的打印机,并获取打印机的句柄 % j+ n8 R: z) n$ G$ [/ V/ W
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 : h% E/ C  C" |6 s3 q
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 # n5 M1 `# q: T  I) S4 Z. D& d" x! a
ReadPrinter 从打印机读入数据 % h8 g( Y4 P; k! L, [6 @
ResetDC 重设一个设备场景 9 ^: w1 S# Z) R+ @" C( ]' e/ B
ResetPrinter 改变指定打印机的默认数据类型及文档设置
& D; q9 j0 X. a- U+ kScheduleJob 提交一个要打印的作业 6 Q  M! M+ T7 n5 L3 F
SetAbortProc 为Windows指定取消函数的地址 8 ]: v4 L" Z! u! n
SetForm 为指定的表单设置信息 % {$ |, Y! L; Y# e8 N
SetJob 对一个打印作业的状态进行控制
  D/ ~( w# y! M7 V7 ZSetPrinter 对一台打印机的状态进行控制 $ h4 r* O6 x( w$ _. x
SetPrinterData 设置打印机的注册表配置信息 ! h4 |8 V9 o$ T" X
StartDoc 开始一个打印作业 7 E. e' z" T9 L3 D
StartDocPrinter 在后台打印的级别启动一个新文档
/ y. H. T6 I9 A! p. j! ~StartPage 打印一个新页前要先调用这个函数 7 L2 g8 [+ Y! Z, S( }* M: ^
StartPagePrinter 在打印作业中指定一个新页的开始 / I7 j0 J! y5 S: [- r
WritePrinter 将发送目录中的数据写入打印机
, Y7 F( M6 l# H) [; o5. API之文本和字体函数 9 N' F% X; ^. j1 c* ^' y3 T
AddFontResource 在Windows系统中添加一种字体资源
  h( D* M3 M- C+ L5 U, h5 e9 ^CreateFont 用指定的属性创建一种逻辑字体
6 J! L+ t- w$ C3 V# l1 D9 ^) J! oCreateFontIndirect 用指定的属性创建一种逻辑字体
* B% J" `# J* s3 n' D5 L( WCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
9 }6 D: E1 m+ A! e& }9 s# bDrawText 将文本描绘到指定的矩形中
1 C$ a  `5 \3 E1 CDrawTextEx 与DrawText相似,只是加入了更多的功能 & u- R! L6 i0 i, g# a
EnumFontFamilies 列举指定设备可用的字体
/ t0 ?+ W& w0 q% p7 V1 J8 KEnumFontFamiliesEx 列举指定设备可用的字体   h) u! X: u# a' g$ }% |" x3 k. D
EnumFonts 列举指定设备可用的字体 7 C+ C6 k* E, x1 h- F; Z0 }. f
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
& P4 v3 x! g  }4 f2 p% t( x! qGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
: D2 c4 p0 `4 j9 MGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
( k3 g+ n. U) r. E' [# ?/ l' t' ZGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸   |- d% L/ N; N3 U, Q* D8 ?
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
) |/ P3 R: U8 h5 }9 e* G$ K8 wGetCharWidth 调查字体中一个或多个字符的宽度 5 @* ~2 {4 ^' t9 \+ B% L- ~' S
GetFontData 接收一种可缩放字体文件的数据
: W& w" g; g- H5 s' cGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
# B) u+ z6 j: _( \GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 . D& H2 ~, Z- N" M' ?9 |
GetKerningPairs 取得指定字体的字距信息
8 u  [! J% Z* o" n5 ]) [* V+ HGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 2 @+ W% |' s5 ]! U
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
- d) V6 {1 n1 M/ C! {3 @GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 ) V$ D0 n. ^7 b$ P/ O5 x
GetTextAlign 接收一个设备场景当前的文本对齐标志
' A/ U; e! G4 T. k3 HGetTextCharacterExtra 判断额外字符间距的当前值
4 _) P' o$ m9 M5 {  @GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符   I* s9 h. K0 e1 \& ?: S" `" }
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 ; o: q: \. L6 _$ A5 Y
GetTextColor 判断当前字体颜色。通常也称为"前景色"
1 t9 C; K6 s5 i) UGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
* O, z. H6 {" N- RGetTextExtentPoint 判断一个字串的大小(范围)
) [' U- u  o7 W3 q; R! DGetTextFace 获取一种字体的字样名
! i- N; G+ u2 k4 ~8 {1 {" c  U; DGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 - T% k: i3 V9 D' k2 X! N- ?
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
( i( e' i+ o4 c6 p  k! NPolyTextOut 描绘一系列字串
3 Q! Q4 o, ]" K6 F6 d2 l+ T% `* bRemoveFontResource 从Windows系统中删除一种字体资源   s9 W; |) @; o; u* R/ Z
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
  A+ ]5 ]0 O6 a6 c3 vSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
! o$ ^- b* ?1 a7 P: ^: b5 v' JSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 : C7 L4 p/ Q$ U0 E6 E# S
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
/ w; A( |2 g- t' U# JSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
% `. _1 j; {& l& F' t( yTabbedTextOut 支持制表站的一个文本描绘函数 5 F/ p$ b& a4 q" M5 a
TextOut 文本绘图函数
7 ^& C* p6 e0 A1 b3 ^WINGDIAPI BOOL  WINAPI TextOut(
& Q2 p' A: s" a; @/ Z1 cHDC,     //输出设备
, H' W/ E( d$ |6 bint,     //输出的横坐标+ F6 L5 n& F8 i: m% u# f1 ?
int,     //纵坐标
- ^, E. ~7 j, S& T/ fLPCSTR, //输出的文本str
% ?6 L  h( ~4 E: q2 l# yint);    //文本的长度:lstrlen(str)! H8 D: {. j3 E7 n
6. API之菜单函数
8 ]# l1 X; ~( J5 R" c% KAppendMenu 在指定的菜单里添加一个菜单项
8 n9 l  o/ w5 V  A; }CheckMenuItem 复选或撤消复选指定的菜单条目
' ?2 t! c. J  m2 O4 H* m( y2 rCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
0 T5 F" Q7 _9 q% K9 P' SCreateMenu 创建新菜单 . K2 h% l! w  [! K) M2 [
CreatePopupMenu 创建一个空的弹出式菜单
" S! h( q. A+ W9 x$ Q! S2 m9 X  C. C0 _DeleteMenu 删除指定的菜单条目
' m  c* c( j' }9 J2 J9 R. wDestroyMenu 删除指定的菜单
3 r. G/ D' q& y3 t  \8 |6 JDrawMenuBar 为指定的窗口重画菜单
4 f" c. \! t6 ], Q/ [5 ZEnableMenuItem 允许或禁止指定的菜单条目
1 L$ Z9 ?0 k' v+ M: `GetMenu 取得窗口中一个菜单的句柄 3 u/ z% j/ x3 t" `% m
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
$ R- w7 I% F2 F1 K$ {GetMenuContextHelpId 取得一个菜单的帮助场景ID / _6 W; S% w$ ]
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
' E$ r- A0 v6 m& M' RGetMenuItemCount 返回菜单中条目(菜单项)的数量 , j( ~% S- J1 P$ r6 j" Y" h6 A
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
) `. K/ n! s; l! F! e3 V- i4 m8 HGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
3 d5 @( C# O# ZGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 5 I, L9 c$ ?: b  D' L
GetMenuState 取得与指定菜单条目状态有关的信息
3 g, l7 b7 B& uGetMenuString 取得指定菜单条目的字串
6 `4 S) k1 @  Y6 H9 F! {- |GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 8 L; q$ O, G; J+ H9 r, [- C
GetSystemMenu 取得指定窗口的系统菜单的句柄 7 p3 ~- U! P8 L5 ?/ x+ S
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 ' }. b" [) Z( W3 z; c0 h( A, C) k
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
3 Y% e' Z* H* IInsertMenuItem 插入一个新菜单条目 3 ~$ G! B8 r; I
IsMenu 判断指定的句柄是否为一个菜单的句柄 $ ^- ^( l3 l. c/ ~
LoadMenu 从指定的模块或应用程序实例中载入一个菜单 / G7 y  A. A; v5 ~2 ]
LoadMenuIndirect 载入一个菜单 , n7 y4 [- Q8 D1 H
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 - b. P% O0 _& X5 W; P
ModifyMenu 改变菜单条目 8 f+ I" d. {  O$ G- E6 ~* F9 K9 Y8 K
RemoveMenu 删除指定的菜单条目
/ Q% L& n" ~6 |7 O; USetMenu 设置窗口菜单
9 K9 m  W; m) q, F$ F; W8 PSetMenuContextHelpId 设置一个菜单的帮助场景ID 6 M3 n9 s7 b/ {: D3 Y9 |* C  k; @
SetMenuDefaultItem 将一个菜单条目设为默认条目
1 i& v- r2 f4 l$ }' tSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
( K. r5 _- N2 z! M% ~, u6 C: vSetMenuItemInfo 为一个菜单条目设置指定的信息
( g$ l$ |1 [1 g& T- d8 _6 ?  v# kTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 ' y+ `5 R* s% [) E% Y9 }/ h+ D
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
6 ]" M6 m3 B) ^! D; ?) {& x7. API之位图、图标和光栅运算函数 9 h4 M( A- j7 ?) e+ y
BitBlt 将一幅位图从一个设备场景复制到另一个
' k$ `* M, D0 M; v  x     WINGDIAPI BOOL  WINAPI BitBlt(
& y0 x& j7 T% y) [" U; @6 qHDC,     //目标HDC+ V( x: z$ A4 }/ s6 ~7 m
int,     //X1. w8 r# c9 D# S9 ^+ \6 b
int,     //Y17 G+ U8 F- I6 w+ ]3 l
int,     //width
; u. T, E; A9 U! qint,     //height& z# e5 F+ q) U) }- M* K4 [
HDC,     //源HDC# \( C# i( U7 D( A9 ~$ Y
int,     //右边的距离
, P$ X9 @( z8 Z3 p4 }int,     //??3 [+ Z0 r! {1 o# g, Q5 t* o
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|& C  u  `+ S$ u' L. I
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS0 s, Y9 f: c3 j. Y) ?5 E2 [
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 % J& j1 J. e' R( c$ g
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 5 Q+ e( p( R' j, X! ]( k
CreateBitmap 按照规定的格式创建一幅与设备有关位图
4 l6 P& m" y6 t, ^CreateBitmapIndirect 创建一幅与设备有关位图 % T6 y2 s: V; L" z9 |3 q" q  \
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
. g- w) |: a. q, Q6 j4 g: QCreateCursor 创建一个鼠标指针 " S2 J: w& I7 N2 e/ {7 e
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
7 k! A: B" k. s1 |  l4 m% PCreateDIBSection 创建一个DIBSection
& c% j. V4 V: ]; kCreateIcon 创建一个图标
2 _- c4 z+ U) r* x, yCreateIconIndirect 创建一个图标   w8 j7 X( Y- V, v5 e6 f5 b
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 $ y2 t. }0 T! |
DestroyIcon 清除图标 , ?& u3 C* S9 v  `! l9 v
DrawIcon 在指定的位置画一个图标 " a3 h! a7 `: b, ^; n. S
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
' u3 Y9 L/ Q% y+ R* a2 o* ^ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
* }, M+ Q/ p. k4 |+ m- C+ iExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
% t3 u  J+ H; w: h2 YGetBitmapBits 将来自位图的二进制位复制到一个缓冲区
: G/ a6 k5 N' Y1 SGetBitmapDimensionEx 取得一幅位图的宽度和高度
3 [9 S4 X3 u- n, f* Y4 k8 lGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 3 l( |) E) Q8 V% T  R( ^
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
4 _* m6 }6 h" s) X6 l- ]; P; j' I4 nGetIconInfo 取得与图标有关的信息 % Z+ X( d7 W- C  l% o2 q, W+ }
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 + \; k/ r( i, _1 |! d- f
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 ( X" E" P9 ?* _% M7 S" h$ `7 K( z
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
7 F& K2 M& t6 n  d9 u% |' \% hLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
( [0 w2 J. ^; E: z1 @$ o6 |LoadIcon 从指定的模块或应用程序实例中载入一个图标 4 j; D; D- a2 h$ ]' B
LoadImage 载入一个位图、图标或指针
% }: H) m  ~% t0 t) l- THANDLE LoadImageA(
& s) u0 ?- O- [: v( a/ _HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
, L! t6 p% P7 K" O2 w$ \4 h& r    LPCSTR,               //资源所在的目录:c:\help.bmp% {5 p1 M9 s5 \6 K7 Q4 X8 K
    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
2 g' Z; ~* y! k- K. h6 M8 k    int,                  //
, O0 A5 V" w& y  ~- I    int,                  //
$ r  g3 H$ L4 C! [6 N+ jUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|. t  a0 ?/ b, C+ k8 z
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|& H( B9 W1 A) ^: g7 G' B( V
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
$ I2 ?5 `+ {/ z& }: t- oMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 * o1 M7 M. c1 A3 N1 v
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 7 E& Z0 p* n8 x# B
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
3 i5 r; m% \9 e# P  w% ~  I- sSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 - M: k* a0 s* ?% A& }
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
7 L4 L  A) e' ~) H5 n1 k5 tSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 ; N1 T' L! j+ Q0 k
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
$ F5 F8 @% o0 S1 hSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
2 N$ |, t7 f  G6 vSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 0 N8 X# N& l/ `) J7 ]
StretchBlt 将一幅位图从一个设备场景复制到另一个
* E6 \" n/ e: ~  h5 |StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 8 m& v" J% v; p( h6 F0 [
8. API之绘图函数
, k% e! H- x' c7 UAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
, ?/ c/ |6 T6 {' EAngleArc 用一个连接弧画一条线 ) Z! N  Q: _! t& c1 F1 h3 I
Arc 画一个圆弧
5 V  H. p3 Q- G+ n! O) xBeginPath 启动一个路径分支
  |/ B! C0 H% b. `; W7 C! rCancelDC 取消另一个线程里的长时间绘图操作
2 K! M8 [# q  _& GChord 画一个弦 . z6 Q: N4 F/ T
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 3 e: x6 N$ C0 I+ R3 r9 o7 r
CloseFigure 描绘到一个路径时,关闭当前打开的图形 # a( D; K" x# a: _% _
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 2 g9 R3 D5 E8 R9 j2 j/ F
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
& ?' i9 ^# L, o& i0 GCopyMetaFile 制作指定(标准)图元文件的一个副本 ' T. {2 U6 h* U+ U6 W; I
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 2 D) i- ~% |$ E( R4 ]. H( v  s
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 5 M" U- Q6 i: N0 U) E2 ~: b( n
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
4 E: A$ }, ^" w5 K. W1 ~CreateHatchBrush 创建带有阴影图案的一个刷子 - W0 K8 }( N/ m8 e, @
CreateMetaFile 创建一个图元文件设备场景 5 L( j! ]& F3 v( H" g/ M
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
" ?+ x1 B! A8 g4 o  S/ CCreatePen 用指定的样式、宽度和颜色创建一个画笔
) x9 ?! p8 K* V; ]6 `0 N8 lCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 % f; S) z+ t8 q7 `% _( Q: |( d+ a
CreateSolidBrush 用纯色创建一个刷子
2 f* i- E% N  ^DeleteEnhMetaFile 删除指定的增强型图元文件 6 I$ g- |; C* a- L1 Q* u
DeleteMetaFile 删除指定的图元文件 8 T! f9 S! ?3 |5 \2 Y) b, D: S
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
4 v. V: F4 @  J# ~- K; z- b5 \! }DrawEdge 用指定的样式描绘一个矩形的边框
$ |9 E3 l4 X5 V6 H# |8 q5 l4 XDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 5 C4 G% h0 f7 y$ p! z* \% O. i
DrawFocusRect 画一个焦点矩形
) g- e. \' X) m  QDrawFrameControl 描绘一个标准控件 & [' e9 S' E6 @* n! j! E
DrawState 为一幅图象或绘图操作应用各式各样的效果 # Q0 A2 f; P! x# L; {5 V' D
Ellipse 描绘一个椭圆,由指定的矩形围绕 ( |: i7 ^7 S& ]; P, G9 \$ j
EndPath 停止定义一个路径
) b! u7 X; o  J) jEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
/ R" m5 w0 T, ^! B3 g) QEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
- X7 N, e8 a: CEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 & \4 Q! k& S$ F* F& M, G1 s, \
ExtCreatePen 创建一个扩展画笔(装饰或几何)
) y. d' D4 d! I0 q/ }ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
, ~$ ~; `/ [  S3 P& ~- NFillPath 关闭路径中任何打开的图形,并用当前刷子填充
% j1 E+ F$ z) ?6 o" D* X+ zFillRect 用指定的刷子填充一个矩形 6 C4 c/ I5 B- A, V0 Z6 C( l# n/ L1 H
FlattenPath 将一个路径中的所有曲线都转换成线段 " ^8 ?, B2 ?* a) O
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 5 Q4 R( O: l, @5 ^
FrameRect 用指定的刷子围绕一个矩形画一个边框
: E1 L* G# ?1 g. ?2 j" oGdiComment 为指定的增强型图元文件设备场景添加一条注释信息
9 Z: M* H7 ]/ K" C$ E+ {GdiFlush 执行任何未决的绘图操作
4 j3 i( P2 u, GGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 9 v+ u1 m( q* P7 ?/ ]' C
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
2 n# h: Q( |* pGetArcDirection 画圆弧的时候,判断当前采用的绘图方向 # O  z  f* p' N& L& Y- Q+ N* r
GetBkColor 取得指定设备场景当前的背景颜色
4 P- ^. A, q8 I( @0 q8 hGetBkMode 针对指定的设备场景,取得当前的背景填充模式
0 }8 M9 _6 X1 w( B5 BGetBrushOrgEx 判断指定设备场景中当前选定刷子起点 $ V2 T- K# [. i" Q6 P
GetCurrentObject 获得指定类型的当前选定对象 6 X. E' e: s6 i3 c3 |
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 : _# c0 p9 k4 H/ |8 C
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 * z+ u  m8 ], s5 G
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
8 A' R5 t3 g0 W4 w; j  Q; ]# [* {GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 " C$ {7 C; A; o# I/ A) p
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 , ~# S! n; I- l2 Q5 c
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 7 j2 ]7 N$ Z9 _: r! `& e8 s
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
0 ]# j& @* G' d/ h8 ^. YGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
% w" R. ?, c9 N. a: M* ^GetMiterLimit 取得设备场景的斜率限制(Miter)设置
0 q7 N( p8 i/ T6 xGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
# }1 m$ {1 o3 t8 u3 j1 uGetObjectAPI 取得对指定对象进行说明的一个结构 " Z7 y( U8 m+ j! }2 T7 I
GetObjectType 判断由指定句柄引用的GDI对象的类型 ! g- B7 w* W/ t: f* S7 {
GetPath 取得对当前路径进行定义的一系列数据   ]) n8 v$ y* i1 B$ P& a6 d8 `
GetPixel 在指定的设备场景中取得一个像素的RGB值
& F2 A+ a( b, f0 YGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 $ u5 I2 d& F" u, }0 s$ J) M1 T
GetROP2 针对指定的设备场景,取得当前的绘图模式 : j% y4 h9 r  X; \) Z
GetStockObject 取得一个固有对象(Stock)
2 X$ e, {+ V2 X+ EGetSysColorBrush 为任何一种标准系统颜色取得一个刷子 : u$ y% I. k. a& D
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
  Y' R  e; X/ W. z9 D' T) fInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
2 l* [, m2 ~7 ~5 j  ^% ^/ o' `LineDDA 枚举指定线段中的所有点
( G4 h& ]6 |$ L) x* Y- z. Y2 ?1 rLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 ' o. G$ K1 c) K; c3 z) ^
MoveToEx 为指定的设备场景指定一个新的当前画笔位置 ) l" ?7 A7 N  R& V
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
: q; T2 l) D. V, z4 J# I9 Y2 fPathToRegion 将当前选定的路径转换到一个区域里
( [2 \( F) b  r" zPie 画一个饼图   ?3 g8 x% J7 f) P$ i: N
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
9 j& ~$ [+ q- |, |; mPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
/ A1 B& T. U. I0 i1 lPlayMetaFile 在指定的设备场景中回放一个图元文件
: m2 z* t# A) Y, I# A* oPlayMetaFileRecord 回放来自图元文件的单条记录
' a+ y3 S6 u1 b. _8 D# i2 _PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
" h8 P# d* Y) \2 T0 wPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 8 J9 h! J+ _& N' e
Polygon 描绘一个多边形
, B8 V( F  g' ?1 g& D/ SPolyline 用当前画笔描绘一系列线段
( @+ }" b' U' h4 t8 s1 xPolyPolygon 用当前选定画笔描绘两个或多个多边形 ( k% A" ~6 I4 N* m0 E6 ?
PolyPolyline 用当前选定画笔描绘两个或多个多边形 ; w) s; D5 f4 z/ w! O  d7 L1 c
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
8 C$ I( ?# {8 f  a1 i- ZRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 ( m' L. j- M. K/ J; f2 _5 ~/ K# |
SelectClipPath 将设备场景当前的路径合并到剪切区域里 " h  H0 ]. \1 f/ |: X
SelectObject 为当前设备场景选择图形对象 7 t  u: [( T) I( N
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
) A! I: Z, Q* J3 c6 w; }SetArcDirection 设置圆弧的描绘方向 1 _9 I4 ~. s, v& p: m
SetBkColor 为指定的设备场景设置背景颜色 5 x1 c3 w& {! a0 F+ J9 L, R9 B% }
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
' g  e1 h1 s+ O& `- C. j+ b- sSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 & v' L5 R: U8 Y( M! _
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 4 r& a; R- b. Y9 y: }2 U: Y
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 6 ^; r& i& v% a8 f1 d4 g; |" R
SetMiterLimit 设置设备场景当前的斜率限制
8 M( q2 s. `! U: a5 s; A; n& qSetPixel 在指定的设备场景中设置一个像素的RGB值 5 p5 k" W/ t+ Q$ r4 Z
SetPixelV 在指定的设备场景中设置一个像素的RGB值 * i3 q1 B" Z0 x! Y5 Y4 B; W1 L- R
SetPolyFillMode 设置多边形的填充模式 3 G+ W+ H' ^4 o6 M# |$ n1 P/ r9 z! [
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
2 l1 U/ g2 @8 ~+ j% ?/ rSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 . g, t. ]# o" Q- B; o, I
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 $ P7 R3 c, m& b( E# `% q
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭   P$ B- U. `+ K* c- V$ M& U& l+ x
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
3 y* y+ e" h; x0 n0 [/ v' yWidenPath 根据选定画笔的宽度,重新定义当前选定的路径
/ r9 ~3 I( M8 c# X$ Y, j9. API之设备场景函数 8 p4 k# q7 c, m
CombineRgn 将两个区域组合为一个新区域 2 H. P) o5 X4 F6 v$ C; n) x5 X
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
8 y- q, Q% n: kCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 5 R1 W+ h, \& n# S, o
CreateDC 为专门设备创建设备场景 1 W" ~' x6 P0 V/ p$ c$ D) U
CreateEllipticRgn 创建一个椭圆
7 P: _$ a7 p! Q7 J6 [/ E: t0 s% yCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
  z3 O6 {  x4 L1 _" Y2 H$ I$ |CreateIC 为专用设备创建一个信息场景 8 V6 ?/ @* x0 D& z  I# M
CreatePolygonRgn 创建一个由一系列点围成的区域 9 m1 h5 k% N% s5 [4 C
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
" j5 `7 `& ~( m. {! G. RCreateRectRgn 创建一个矩形区域
& B! d8 C5 Y( ~- hCreateRectRgnIndirect 创建一个矩形区域 ) r5 u" C% u' z/ T- p. }7 ?
CreateRoundRectRgn 创建一个圆角矩形 ' D) I3 v, y1 v! M5 z3 m7 Z5 j
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 * Y1 q3 o. h/ `8 m5 q! X
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
" E$ P1 }$ g- k6 V+ @EqualRgn 确定两个区域是否相等 2 }3 `; R- q& O  `% X
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 6 a- ^3 I7 g# Q- c4 _3 S
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
2 q- Z1 ^1 h' G* e( a! p: cExtCreateRegion 根据世界转换修改区域   [- g3 g% f! y9 D0 X
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 # }; k" z# _$ F
FillRgn 用指定刷子填充指定区域
: C7 _. r/ a* i3 n6 CFrameRgn 用指定刷子围绕指定区域画一个外框 ; h0 v. b3 J0 s  Q
GetBoundsRect 获取指定设备场景的边界矩形 6 `5 |7 ]% y  s3 }
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 4 M$ C9 o  |9 S- U5 }
GetClipRgn 获取设备场景当前剪裁区
4 Y+ a: d) U7 z& W- K6 bGetDC 获取指定窗口的设备场景
4 g0 ^% r+ T& H9 i$ c+ _* UGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
7 B, Z$ w  b- M- Q; l" i3 WGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
  n; H2 Q2 Q2 ZGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 . r7 ?! @9 B5 c5 ]: a: u6 d
GetGraphicsMode 确定是否允许增强图形模式(世界转换) - N; v+ n- \* D4 W: B! R9 s$ H
GetMapMode 为特定设备场景调入映象模式
3 {% X1 ?% M. j# S! t( T! e% _GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 % t& n3 d! S5 v
GetRgnBox 获取完全包含指定区域的最小矩形
) ?) L7 f# A; E. R/ A. NGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
! D- ^* M- X! J5 s# R4 {1 iGetViewportExtEx 获取设备场景视口(viewport)范围
, }( ?6 K; c; N# g* \4 I, L1 b6 }GetViewportOrgEx 获取设备场景视口起点
# `: E/ u& O9 j* Y& i# dGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
" w* a7 ~8 T( }" XGetWindowExtEx 获取指定设备场景的窗口范围 ) {/ `9 }% h$ _: }
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 . C& ]5 [# |4 N1 r8 Y! d
GetWindowRgn 获取窗口区域
$ J8 S8 W, ]( ?" c- z+ G- WGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 # F' O! x( f2 g( v( X/ u
IntersectClipRect 为指定设备定义一个新的剪裁区
) P! k5 Y" X9 M- Y6 [InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
1 _8 ]' D1 {3 ]* p- OInvertRgn 通过颠倒每个像素值反转设备场景指定区域
" E' U5 o3 E$ C; l+ [LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
/ I' l* w9 @' {ModifyWorldTransform 根据指定的模式修改世界转换
8 k6 R, ~! t; J; y# p/ JOffsetClipRgn 按指定量平移设备场景剪裁区 ( i- \4 r. U/ N$ }+ L
OffsetRgn 按指定偏移量平移指定区域
+ k" ?+ W8 Q7 G' F! x8 bOffsetViewportOrgEx 平移设备场景视口区域
9 u0 U! L4 |4 F1 o. ?* M) oOffsetWindowOrgEx 平移指定设备场景窗口起点
' D; g( t" M: S$ \2 B" xPaintRgn 用当前刷子背景色填充指定区域
0 g' I9 A. |. S$ \& JPtInRegion 确定点是否在指定区域内 ' i/ ~% n% L  V
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 4 d# S0 L+ S% ]5 d
RectInRegion 确定矩形是否有部分在指定区域内 9 j* @/ U$ v# j% o4 C
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
! {  J7 m% n7 ^& ?  k9 MReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
+ p' M0 ]. f6 lRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 : ^: K, a& Q; T! W* m
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 ( D# A4 u: s" c/ b
ScaleViewportExtEx 缩放设备场景视口的范围
, x; G5 z0 }9 `2 HScaleWindowExtEx 缩放指定设备场景窗口范围 * U+ n. [- `# y3 D( d; H% D
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
1 Y% ~/ i; Q3 r4 MSelectClipRgn 为指定设备场景选择新的剪裁区
7 c8 N: q  ?7 L# D2 e+ E/ |. K, P+ aSetBoundsRect 设置指定设备场景的边界矩形 1 ?1 b8 U  ^" `5 E; W& a- Q, M( I& j
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 2 ~, v1 _0 l. e) C/ F' u) i
SetMapMode 设置指定设备场景的映射模式
8 J" ~7 |) f' h* Q. @* fSetRectRgn 设置区域为指定的矩形 ( j% f- ?% K7 p) `. N2 t
SetViewportExtEx 设置设备场景视口范围 ' S! Y9 p- C* P% n; @- D# K2 a
SetViewportOrgEx 设置设备场景视口起点
. ~; @" g* e2 |SetWindowExtEx 设置指定设备场景窗口范围 5 f6 R2 L5 t+ r" ~+ r
SetWindowOrgEx 设置指定设备场景窗口起点
; \6 h; p1 o/ s% l/ f- M+ ySetWindowRgn 设置窗口区域
6 O* {5 h: |4 C0 D: N% `SetWorldTransform 设置世界转换
' t) c( Z( q+ X- QValidateRgn 激活窗口中指定区域,把它从刷新区移走 / I+ U  V% X' e
WindowFromDC 取回与某一设备场景相关的窗口的句柄   S# c# _1 X4 Z' N
10. API之硬件与系统函数
, m1 F) k; V( v5 y, lActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 / A# g* q/ ?6 j, `2 h- e. U9 a1 m
Beep 用于生成简单的声音 ) ~7 m- s7 v) b" [- L1 s5 v
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
, K  M( Z. u# t0 oClipCursor 将指针限制到指定区域
8 Q: a: a, B. J0 IConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
, O8 E! M; Y4 O8 O7 j% L3 ?7 xCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符   m6 _1 \- P9 S* J4 U" b4 B% q' k
DestroyCaret 清除(破坏)一个插入符
% H# W% g0 j' ]( NEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 3 K# e$ [3 D5 B4 A! A
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
. K8 {- B/ y- S9 |EnumSystemCodePages 枚举系统中已安装或支持的代码页 , z+ y% R, V1 `2 E1 g' i$ H
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
/ G3 b) ~; @+ s9 y- R) XEnumTimeFormats 枚举一个指定的地方适用的时间格式 4 Y( ?9 e  M% p' y- h
ExitWindowsEx 退出windows,并用特定的选项重新启动 : J9 W0 K$ w* t  |
     WINUSERAPI BOOL WINAPI ExitWindowsEx(
+ K; k& \5 L4 \2 rUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG6 ?7 Z6 S. {. R4 v! \" g' y- m
     DWORD dwReserved); //0( u& k; ^1 E; z& S2 Y+ o
ExpandEnvironmentStrings 扩充环境字串
% d- T3 R$ d- s. t9 n4 i, `' bFreeEnvironmentStrings 翻译指定的环境字串块 8 `6 J$ N6 k& k  S* p
GetACP 判断目前正在生效的ANSI代码页
3 d' Y' x, _$ a) M* EGetAsyncKeyState 判断函数调用时指定虚拟键的状态 2 H1 a. I) |6 s; @; b
GetCaretBlinkTime 判断插入符光标的闪烁频率
# X5 q7 Y$ o' I; [. }3 x9 hGetCaretPos 判断插入符的当前位置 4 Z. C4 d) p' l6 R( B+ I) t
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 4 m, q( M9 r4 M4 D+ G# g! t
GetCommandLine 获得指向当前命令行缓冲区的一个指针
: b/ Y% W5 L' Q8 ^GetComputerName 取得这台计算机的名称 3 }- z; G6 k3 ~. y5 U1 Q
GetCPInfo 取得与指定代码页有关的信息 ) R% S* T; k) x: m2 i4 c& s
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
5 @( e$ O/ D* y5 PGetCursor 获取目前选择的鼠标指针的句柄
: E" K  v/ y: e& X2 k! v  gGetCursorPos 获取鼠标指针的当前位置 0 E" Z% v6 Q, J0 _9 J* p
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 ! r5 {1 P- }5 }1 L  P4 Q" _% I1 J" M
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间   l* d% z  r: z
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
  D( w% b! Y3 S: A1 D! @. zGetEnvironmentVariable 取得一个环境变量的值 4 X6 a* Q! J7 l
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
# H* _. `% Y2 A* E4 ]8 q5 y3 rGetKBCodePage 由GetOEMCP取代,两者功能完全相同
& F/ D0 W) d# G0 t. ?GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
3 c5 l3 j# N2 l' DGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 8 R) a& U+ b* h. `# B, a
GetKeyboardLayoutName 取得当前活动键盘布局的名称 / [- W. l  B4 a6 ?" z
GetKeyboardState 取得键盘上每个虚拟键当前的状态 ' n* T  z* L5 B- U! ]
GetKeyboardType 了解与正在使用的键盘有关的信息
0 L8 U: h, A  f) ]9 Z1 `# uGetKeyNameText 在给出扫描码的前提下,判断键名 # U7 A7 M9 N+ p( B
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 ; d& T/ |3 Q+ C# O5 {) w' v
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 - {7 X& D6 G" a$ i
GetLocaleInfo 取得与指定"地方"有关的信息
% P( x1 D# {# t' @GetLocalTime 取得本地日期和时间 # U0 e: D8 h$ O- p& V/ W0 Y
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 ( J# q6 `- p" X8 w. _
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
& R& r$ Z  R; A( g* o6 ZGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
' i) ^( ?( M- j/ }GetSysColor 判断指定windows显示对象的颜色 ! Z4 k/ ?% m* ~: ]9 s5 E3 Y/ j" d
GetSystemDefaultLangID 取得系统的默认语言ID . l9 Z, C; h$ @  d9 {
GetSystemDefaultLCID 取得当前的默认系统"地方"
/ _4 r+ U: }8 ^! BGetSystemInfo 取得与底层硬件平台有关的信息 * |, h4 G2 T$ `8 [2 J7 K
GetSystemMetrics 返回与windows环境有关的信息 - d: F% H  \% b: h4 _5 t9 t
GetSystemPowerStatus 获得与当前系统电源状态有关的信息 8 `7 J# ]* R3 |* o6 k/ o6 G
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 / r2 U8 S- z- n7 o( m# o! X# s
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
! |3 L6 E  @) Y8 cGetThreadLocale 取得当前线程的地方ID
3 W/ C2 f6 S+ @! fGetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
* ?" m) J# ?2 Q* |GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
  U. ]6 L  s0 C# n1 s8 HGetTimeZoneInformation 取得与系统时区设置有关的信息 ( b# k9 w  M8 z- O
GetUserDefaultLangID 为当前用户取得默认语言ID
- p( h, d" [* E. Y8 V! u" r9 @4 {. xGetUserDefaultLCID 取得当前用户的默认"地方"设置 0 L8 }! I! T1 F% {4 r: L
GetUserName 取得当前用户的名字
5 X$ ~+ O6 [+ }# dGetVersion 判断当前运行的Windows和DOS版本
3 X; H3 V6 t. k+ W( sGetVersionEx 取得与平台和操作系统有关的版本信息
! |+ l5 h' ]- P. }HideCaret 在指定的窗口隐藏插入符(光标)
, A7 V( r6 M! `& E: O5 r: cIsValidCodePage 判断一个代码页是否有效
1 z% k! l( g& i8 i0 P. ~7 q2 iIsValidLocale 判断地方标识符是否有效 5 E& H4 s" C8 R) `, p% N
keybd_event 这个函数模拟了键盘行动 0 u. m3 J9 M' k( A% P( C% Q
LoadKeyboardLayout 载入一个键盘布局 4 x7 t  `; F9 d2 a) h1 a
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换   w. b# g: `3 T* _
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换   D# Q' E7 |# I
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 1 V) B8 M3 O- P8 c$ p7 P
mouse_event 模拟一次鼠标事件
, C+ h; e- x& b& h3 o8 Q0 LOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 , J( ~. u, H+ R1 ?  J# |
OemToChar 将OEM字符集的一个字串转换到ANSI字符集 : e. W9 [' C' w8 O: P, M) T; ]: R
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
- h; Z" z6 \6 R6 WSetCaretPos 指定插入符的位置 . b+ z( P: D) Y8 {& g) x
SetComputerName 设置新的计算机名 + H# h  U5 X# P% d& z- U$ s
SetCursor 将指定的鼠标指针设为当前指针 % \  R' u' S: [( N2 R5 B1 m5 a; [& r
SetCursorPos 设置指针的位置 ) o) D( ~. b3 G) `. k
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 0 E. j3 j( _  c) O- w9 J" t
SetEnvironmentVariable 将一个环境变量设为指定的值
. Q3 _1 p) ?7 |SetKeyboardState 设置每个虚拟键当前在键盘上的状态 6 A% c, e: c  v2 b$ `/ M
SetLocaleInfo 改变用户"地方"设置信息
/ Y1 f$ E5 V1 N* h: @1 R6 W- Z2 L, ISetLocalTime 设置当前地方时间
- ~7 q  D: F" W# t8 Q( Q: t  o$ uSetSysColors 设置指定窗口显示对象的颜色
8 ]5 o# k+ I5 XSetSystemCursor 改变任何一个标准系统指针
1 ^& k2 V7 j$ J1 H9 o/ D+ eSetSystemTime 设置当前系统时间
3 ?( S% v" e  f- BSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
4 L: W: `; Y: A1 hSetThreadLocale 为当前线程设置地方
. J( V. m! N1 \0 RSetTimeZoneInformation 设置系统时区信息 ' G0 t3 t2 u4 u4 T; k# j
ShowCaret 在指定的窗口里显示插入符(光标)
/ k. v; w! e8 e. \) @6 A5 a6 k( K6 zShowCursor 控制鼠标指针的可视性
- K: G, I# q) R8 S8 jSwapMouseButton 决定是否互换鼠标左右键的功能
" Z: r- O  o- I( {; bSystemParametersInfo 获取和设置数量众多的windows系统参数
1 |. \7 W- `- dSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
) [' H3 G  A% y, JToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
- s. O3 W9 Z, s1 EToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
1 H' w! T5 w9 A! y% j5 Z! e6 }UnloadKeyboardLayout 卸载指定的键盘布局
/ b. n8 s6 |, iVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 7 I3 p$ Y# }5 C$ G
11. API之进程和线程函数 . a! J4 Q! x$ W
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
! k3 o* d5 N& `; Z5 |8 HCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
& n: T3 g0 O8 {ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
+ y7 v' w7 M  R$ Y1 i! kCreateEvent 创建一个事件对象 - M: r% C/ P( ?1 V6 r
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
- b3 o) v  s; \/ x# K/ kCreateMutex 创建一个互斥体(MUTEX)
5 J6 n# n5 Y' i' `" aCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 ) |7 F8 ]+ T( p! U& F8 f7 Q# Y6 H
CreatePipe 创建一个匿名管道
* S" ~$ u0 @  h& A+ T5 u: {" I& rCreateProcess 创建一个新进程(比如执行一个程序) ( m, P* B8 ]) b1 B, s) K
CreateSemaphore 创建一个新的信号机
) l) i& x0 T; sCreateWaitableTimer 创建一个可等待的计时器对象
8 ?# ~3 R9 A% m) ZDisconnectNamedPipe 断开一个客户与一个命名管道的连接 1 f  s$ ?0 W+ }0 Y3 j
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 , P/ h: H9 Q) _* i& B( v2 B
ExitProcess 中止一个进程
7 [4 Y& I/ `9 N1 }4 V9 t5 CFindCloseChangeNotification 关闭一个改动通知对象
! {$ P8 a) F) e/ C5 q3 S9 Q8 f9 QFindExecutable 查找与一个指定文件关联在一起的程序的文件名 2 `1 I7 ^( H' x% H# U1 S
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 - K/ o! n* ?9 t" C
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 ( u& _, E0 U6 Q, X/ h8 D& A
FreeLibrary 释放指定的动态链接库
7 R/ q- i$ M2 ?' K. qGetCurrentProcess 获取当前进程的一个伪句柄 7 x1 ]8 Q" B' u; T
GetCurrentProcessId 获取当前进程一个唯一的标识符
& A" L, I; _- eGetCurrentThread 获取当前线程的一个伪句柄 ( [3 ?; g: _9 _- n- w' M6 r
GetCurrentThreadId 获取当前线程一个唯一的线程标识符 2 G) z& A/ Z9 O) Y' j- O/ q% ^
GetExitCodeProces 获取一个已中断进程的退出代码
, B3 I; Z2 [7 J2 t; pGetExitCodeThread 获取一个已中止线程的退出代码
- v5 N3 D! Z4 ~% ?% UGetHandleInformation 获取与一个系统对象句柄有关的信息 $ a9 P0 m8 i( o7 v
GetMailslotInfo 获取与一个邮路有关的信息 ( a  P% _- A) z) ?
GetModuleFileName 获取一个已装载模板的完整路径名称 / s) A; v+ b; f/ F+ U
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 1 b7 O/ x4 v- u( k
     GetModuleHandleA(LPCSTR lpModuleName);
9 @; u* N* w* {GetPriorityClass 获取特定进程的优先级别
5 _) c: d& Q( w# JGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 + o9 q8 L/ Q! l  L" r4 G
GetProcessTimes 获取与一个进程的经过时间有关的信息 8 {1 \: H( c+ o1 F8 F/ @: W
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 9 h, N' U/ P" k5 g5 m- n5 V3 v
GetSartupInfo 获取一个进程的启动信息 ) u% k, c1 _3 L! `% _: ^! ~
GetThreadPriority 获取特定线程的优先级别
+ w9 G" J* H" O) U! ^1 jGetTheardTimes 获取与一个线程的经过时间有关的信息
/ @; u* c' K, \1 F  K* D! e5 ?GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
' D7 T1 |7 e3 H/ L' `LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 5 a5 e2 G; j, N  K
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 # S" y$ E1 `1 |5 g, `4 R# o
LoadModule 载入一个Windows应用程序,并在指定的环境中运行
$ r5 S8 l+ m( bMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 9 L% t' o: [- j9 l2 B8 w) [  u# G
SetPriorityClass 设置一个进程的优先级别
, Q# ^* u% V+ a' D1 ySetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
4 H4 ^7 R1 i) o8 eSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 * O% v" r6 _$ c" [# M
SetThreadPriority 设定线程的优先级别
( m$ M% F( O$ l9 H/ RShellExecute 查找与指定文件关联在一起的程序的文件名
, Q* J9 Z# k1 ATerminateProcess 结束一个进程
, z" H2 ~6 b2 s2 b9 F0 M% V7 R6 }WinExec 运行指定的程序 ( w9 i6 E" i+ {, d& O/ F
12. API之控件与消息函数
$ f7 O4 V5 q& m1 o& P; @* fAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 . p) |* x* S9 }; E* E0 H
AnyPopup 判断屏幕上是否存在任何弹出式窗口 ; q- n; W( O  f8 z
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
, y% M* ^' i6 l2 Z5 M1 }$ v% }AttachThreadInput 连接线程输入函数
3 N- f! @0 X9 u: aBeginDeferWindowPos 启动构建一系列新窗口位置的过程
: G  V/ U+ b3 }, g' CBringWindowToTop 将指定的窗口带至窗口列表顶部 5 {' T) B# W- p* p4 @
CascadeWindows 以层叠方式排列窗口 6 Y, A2 f4 W* O. e
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 / d0 h( A" Q4 @% [- Q$ D
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
: f/ y+ G3 b+ C1 d) [2 m9 q. pCloseWindow 最小化指定的窗口 , o1 L3 U0 T1 P9 m+ `. r" ~% o
CopyRect 矩形内容复制
) C7 K  c+ O: @+ yDeferWindowPos 该函数为特定的窗口指定一个新窗口位置
( N0 M) y' N5 X3 z( pDestroyWindow 清除指定的窗口以及它的所有子窗口
) G  d& `5 u1 k: _& v3 \9 TDrawAnimatedRects 描绘一系列动态矩形 6 U* G# Y: V* n) o+ b
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 9 Y5 A& o% ~' n4 u& U2 B
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 $ T9 ]9 y* _4 C6 C
EnumChildWindows 为指定的父窗口枚举子窗口 3 D. W" B- V" `
EnumThreadWindows 枚举与指定任务相关的窗口
) U3 v+ m/ o- D# v# ~EnumWindows 枚举窗口列表中的所有父窗口
9 k% {4 W. u6 ?  M! q; v  d" tEqualRect 判断两个矩形结构是否相同
2 Y, J& n" D: P5 K9 v/ t( h5 M  B' rFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
5 ~( }7 C, ^/ s2 z* f, Q2 DFindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
* _4 a6 h5 a2 {0 g; X5 h0 ]FlashWindow 闪烁显示指定窗口
$ ~+ p- H& O9 U+ U0 CGetActiveWindow 获得活动窗口的句柄
4 x  ^- Y. b7 J8 |% m: j8 fGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
* @3 n2 m, M) U) Y- pGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
6 J, _# _/ F/ ~) Q* C! RGetClassLong 取得窗口类的一个Long变量条目 - b, v9 A$ @3 c0 x/ Q
GetClassName 为指定的窗口取得类名 $ t/ U3 P- c4 {8 I( j
GetClassWord 为窗口类取得一个整数变量 & {8 O& y4 R, ^+ G- n
GetClientRect 返回指定窗口客户区矩形的大小 3 @' M; b0 \6 ?+ g3 M
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 3 x; j( R' W  x- ]2 W6 `
GetFocus 获得拥有输入焦点的窗口的句柄
  @* O) k# b$ B. m( j4 {- ?3 BGetForegroundWindow 获得前台窗口的句柄 6 w8 _; g: C; Y  t7 \; ^/ X
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
! c; Q2 ?) {  g8 |" dGetParent 判断指定窗口的父窗口 ) Q: E* U; l6 Q  [+ D  b0 u' Q
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 ' [3 H& j7 g% C9 j) k) R& s4 J4 A) T
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 & l+ e1 h* Y# s. L! V1 B
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 . S5 B7 h  Q7 V& {
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
" d. l$ O* _+ L; MGetWindowLong 从指定窗口的结构中取得信息
7 J+ {( K4 A+ Q2 uGetWindowPlacement 获得指定窗口的状态及位置信息 # C8 ~4 l/ H( g# p
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
+ ~1 f5 @) x( z; e# n# lGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
. h; w9 D( `7 V* ZGetWindowTextLength 调查窗口标题文字或控件内容的长短
2 j/ f* Q2 |- W6 ?GetWindowWord 获得指定窗口结构的信息 1 g1 [# i9 ?1 @
InflateRect 增大或减小一个矩形的大小
8 X; i9 A, H3 M3 l3 nIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
1 y" _/ k! t0 k$ w$ wInvalidateRect 屏蔽一个窗口客户区的全部或部分区域 8 C6 b' U! |' c' p4 G; T+ t* m
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
: F. ?. K1 C9 `" J9 iIsIconic 判断窗口是否已最小化 ( n# D% R( m1 I7 b) l% C$ \3 i
IsRectEmpty 判断一个矩形是否为空 " @/ G! e3 h& i. p" h4 A
IsWindow 判断一个窗口句柄是否有效
8 w! T9 M2 [& EIsWindowEnabled 判断窗口是否处于活动状态 5 Y8 I4 ^+ w+ q7 i) r5 A1 x% Y( @
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 ) s2 T# G! x% L( Y! {1 [
IsWindowVisible 判断窗口是否可见
) ~6 O- }1 s, O1 \IsZoomed 判断窗口是否最大化 + _" C. X5 g" Y1 f
LockWindowUpdate 锁定指定窗口,禁止它更新
7 J2 @+ H5 I! k) x  n& kMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 $ w7 q3 _  t6 I6 c
MoveWindow 改变指定窗口的位置和大小 . w* h* L& i) n8 {, }7 h( X( N
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
- ~' I7 j2 i$ G  \' xOpenIcon 恢复一个最小化的程序,并将其激活
* i( R' U  h" G' WPtInRect 判断指定的点是否位于矩形内部   @- d) J' q  W  q( K. v4 z
RedrawWindow 重画全部或部分窗口 9 m2 b5 L" f8 I: H- E. o# a
ReleaseCapture 为当前的应用程序释放鼠标捕获
7 w% }: ^* N8 E" Q( u( UScreenToClient 判断屏幕上一个指定点的客户区坐标
9 L' P- |5 i% I* i' mScrollWindow 滚动窗口客户区的全部或一部分 5 B/ s* ?% ~( b
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
, A# a3 y' s4 _0 \6 S3 q' CSetActiveWindow 激活指定的窗口
. ~9 g2 z% T% r4 S0 \" d8 q) ASetCapture 将鼠标捕获设置到指定的窗口 % Y8 D7 ?+ i; Y+ ]4 g
SetClassLong 为窗口类设置一个Long变量条目
  Y- d& [+ k  D* }3 L- wSetClassWord 为窗口类设置一个条目
1 g  [( t4 `# J: D; Z: y. S6 P$ dSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
( ]- x; [( T0 V3 }/ CSetForegroundWindow 将窗口设为系统的前台窗口
, g; H: ^" [) |3 F* l# tSetParent 指定一个窗口的新父
0 v2 C  v7 N( M; m+ F, o7 z2 HSetRect 设置指定矩形的内容 $ {8 s+ O/ c# W9 k
SetRectEmpty 将矩形设为一个空矩形 * Q/ y( J' \" o2 {
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
2 o, ^6 a9 y& v- u8 j) |% gSetWindowLong 在窗口结构中为指定的窗口设置信息 + B3 l8 D$ Q0 W6 v* q$ }( `; }( b
SetWindowPlacement 设置窗口状态和位置信息 + r, q, B5 a1 d4 q  x
SetWindowPos 为窗口指定一个新位置和状态
% g! }6 {! N5 A8 d8 u/ i5 b& i. ASetWindowText 设置窗口的标题文字或控件的内容
2 g& p" ^! {- r3 F& }SetWindowWord 在窗口结构中为指定的窗口设置信息 2 K+ l* M" W2 o- X2 E
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
: j& Q& a2 v1 M9 E* r0 i$ ~ShowWindow 控制窗口的可见性
1 l3 E* z/ p0 D2 ?- Q% y4 W: [2 SShowWindowAsync 与ShowWindow相似 9 P3 y7 ~6 ~* X! Y2 u7 p8 u
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 0 k& Q& C/ ^8 Z6 W/ c
TileWindows 以平铺顺序排列窗口 9 {. v4 H# Q- d
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
; v  ~' @3 R6 KUpdateWindow 强制立即更新窗口
) n7 M- A. l* f7 PValidateRect 校验窗口的全部或部分客户区
# x  K1 X; g. ]3 R! N- |WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口# @$ G% O- Y; y' p; q* C4 i
高级音频函数—参看《VC++ 编程指南.chm》11.6& q7 T% |# Z8 q( r8 Q3 x1 L8 z/ A. N
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
4 w" b* E# Q3 w: Q' @     BOOL MessageBeep(UINT uType);/ J. r* r% Y* \7 e; s4 l2 Y) }* `
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
8 v0 o; v1 R, }3 G: x参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
# E2 ^5 j1 d2 J& j/ V" p
级别 4 ~$ L) F' n8 @$ x+ ^% @2 v0 D( f
描述
" i4 Y/ j' R. w% P1 j7 e4 T
-1 / K9 D* c( ], I3 k5 @6 ^
从机器的扬声器中发出蜂鸣声。
$ J8 F; c" ?7 w2 l7 T
MB_ICONASTERISK
4 W+ c0 K" q0 \+ V0 h6 L
播放由SystemAsterisk定义的声音。
3 t# L$ g; W0 S6 f% b4 i1 r- s
MB_ICONEXCLAMATION ; P; p! N1 t# U& [. D
播放由SystemExclamation定义的声音。 % m0 R. E# d: L* r8 Q
MB_ICONHAND 3 U5 q& |/ ]% `+ `, L
播放由SystemHand定义的声音。   Z5 K  x! {- C( e8 `0 a# A
MB_ICONQUESTION
3 k4 X0 F3 q, l; M  K& ^  u+ F
播放由SystemQuestion定义的声音。
- p8 U1 b5 a( {, o8 d
MB_OK 1 f/ p' M; x+ z4 o  h9 m. S+ R5 }
播放由SystemDefault定义的声音 + n/ S7 S1 T( {5 H# K) F8 n; c
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);; A( c5 ^4 C3 U+ o2 M! x
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
' a' i2 S, n, d% U* ]3 O参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。0 \, d0 }9 H4 G8 h: b' _
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。) B2 F) ]4 U" B" j
标志 # {8 c/ Q0 e6 T$ f& u; v, o
含义
; w- S+ c  t8 q! W$ i5 M1 V
SND_APPLICATION
; t$ c$ F( k5 u1 B  O& K5 p* w
用应用程序指定的关联来播放声音。
% s! ?. W7 P- |  [4 X+ E2 C2 d
SND_ALIAS 2 c0 b' T9 ^" o" O! f+ @+ l! d' f9 I
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
" b1 y+ l# G. r. W8 t. d- ]
SND_ALIAS_ID & _+ O4 E! F$ R5 |
pszSound参数指定了预定义的声音标识符。
7 y, w1 `$ ^" y. t! |
SND_ASYNC
: s5 i; Y+ _* h7 }2 D( [# X5 C
用异步方式播放声音,PlaySound函数在开始播放后立即返回。 8 F/ i* v$ L( m$ [9 l  @* z
SND_FILENAME 0 z  F9 }' g' M( ~- Z
pszSound参数指定了WAVE文件名。
3 A5 e7 C" W; Z9 S2 {$ H) d9 N% h1 h1 V
SND_LOOP ) M) Z: E# {- a4 o
重复播放声音,必须与SND_ASYNC标志一块使用。 ' ^1 G1 o+ {8 @: s- X( f
SND_MEMORY
( e) [" G: \( `
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
$ q% U% V5 a7 _7 ~  }
SND_NODEFAULT 2 h( o' v* p0 g0 c
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 2 f( H* ?, t( N* p3 N/ Z" u
SND_NOSTOP
& m) a. r. U7 J# d9 t( p$ n
PlaySound不打断原来的声音播出并立即返回FALSE。
$ x2 o7 e, P! v7 L! H6 h5 r( P
SND_NOWAIT
* p2 r" C9 G2 H
如果驱动程序正忙则函数就不播放声音并立即返回。 % r& f2 R/ g0 I; {# X; H2 |7 Q$ t
SND_PURGE 9 x5 V$ T% ?+ Z: Z
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
2 ]7 p, r8 ^8 K
SND_RESOURCE
, q; `1 `9 V+ P) W3 F
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 ( \* g' L3 a+ z1 Y2 Q2 d" z' e
SND_SYNC & H0 K6 j4 ^$ C+ {2 T4 [. p
同步播放声音,在播放完后PlaySound函数才返回。
5 m4 x3 M; @! T* W3 v
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
% {7 M4 C0 T" m2 [! n  Y( J函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
3 V# l5 t+ l: S& B% g4 h2 AMCI播放
+ T9 e( C' `) w* w1 X所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:& o; W9 Z) p( L' f
MCIERROR mciSendString(
6 B) u" c" Y% q% L( q& ]  C* ~- w, wLPCTSTR lpszCommand, //MCI命令字符串
2 X& g( B8 O& p8 a( W2 }) f5 u- OLPTSTR lpszReturnString, //存放反馈信息的缓冲区8 y5 e) t3 Y0 B( Z2 ?
UINT cchReturn, //缓冲区的长度: J2 l% K" o2 _
HANDLE hwndCallback //回调窗口的句柄,一般为NULL9 o- j. F1 ?# X1 K# i+ T
); //若成功则返回0,否则返回错误码。. \9 I$ L% I4 H+ y- T. H* [; M
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:8 x" Z; O1 Q0 q. }
BOOL mciGetErrorString(- O0 i4 h, c3 V7 l! s
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码, r  T0 K- p$ E" U4 [' H5 D
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区- N& _3 v* L5 d* d- t
UINT cchErrorText //缓冲区的长度
7 q; r4 S2 ?* s( `7 K);( X. t0 G: ?5 s1 \: k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-19 04:07 , Processed in 0.021610 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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