找回密码
 注册
查看: 4676|回复: 0

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
, g  A8 s/ I8 c! |  J$ e) ?. Z1. API之网络函数 6 x) P' _* U- \; q' N
WNetAddConnection 创建同一个网络资源的永久性连接 8 g0 w3 D$ F5 H7 y& n
WNetAddConnection2 创建同一个网络资源的连接 8 V4 v0 o9 |0 M3 j3 y2 `
WNetAddConnection3 创建同一个网络资源的连接
" l6 l) x- ]6 L+ F1 P7 O8 HWNetCancelConnection 结束一个网络连接 ' o& h5 K7 o# m
WNetCancelConnection2 结束一个网络连接 6 Y2 {; _3 a8 K/ a7 U; ~: F) W
WNetCloseEnum 结束一次枚举操作 6 {: i. d- ^( c5 T( w2 q: Q, w
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 9 i4 d7 Z) [( G: s
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 8 B/ S# [+ k: {6 T+ r7 N
WNetEnumResource 枚举网络资源 - i# p, g9 h9 G+ T6 G1 U
WNetGetConnection 获取本地或已连接的一个资源的网络名称 * o" M  U# K8 w  Y
WNetGetLastError 获取网络错误的扩展错误信息 , Z9 c3 S' A, u: d# {2 h5 B/ r+ ?
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 ! A1 ]. C$ A: b
WNetGetUser 获取一个网络资源用以连接的名字
- B/ I/ ]4 ]% o, @; E& S( S- P5 wWNetOpenEnum 启动对网络资源进行枚举的过程 - K. M, g8 j1 r" h5 _0 a
2. API之消息函数
0 p& _2 q) ?5 T3 y  [BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 ; [) ~2 W& E# D  a7 d
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
" W  M7 S$ q9 D# ?+ x; SGetMessageTime 取得消息队列中上一条消息处理完毕时的时间 7 {0 y% l6 s1 n  P0 H  U
PostMessage 将一条消息投递到指定窗口的消息队列
' M4 Q  e" b0 ]0 Y2 U  U+ Y* lPostThreadMessage 将一条消息投递给应用程序 # @9 D9 V" d0 A& b" H
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 - P! e* S8 Q) Z7 _: L+ }+ j
ReplyMessage 答复一个消息 ! O( f) H4 R, r5 h: {& C; }
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 5 w2 b- y0 s' M, y  I- G: e" Q
SendMessageCallback 将一条消息发给窗口
( J  Y6 v" S7 F# N' N* jSendMessageTimeout 向窗口发送一条消息
' s: u0 E( }7 O9 K/ c' JSendNotifyMessage 向窗口发送一条消息
/ Z- {: l" b: l% P; k" q) ^3. API之文件处理函数
; ~3 }# V4 M4 V- Z% ~4 @0 `4 {) eCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
- b/ s1 S  L2 `4 k9 u# \$ _CompareFileTime 对比两个文件的时间
0 d0 h0 M  @) r- g* L/ eCopyFile 复制文件 + I7 G1 U8 L# U8 D5 j( |% z
CreateDirectory 创建一个新目录 6 c; v9 T, M$ z# X5 W+ L9 O. y' h
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
3 o! c! R1 w% J- aCreateFileMapping 创建一个新的文件映射对象
/ F) M- e& I' Y" T# `6 k% l  zDeleteFile 删除指定文件 . e& f2 `2 Q* I, f
DeviceIoControl 对设备执行指定的操作
9 w) R# i8 n  h' e& j. Z! x& TDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
/ U1 d; v$ Q- Z0 s+ T5 \* dFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 9 R7 a4 n+ j& U6 o$ }9 ~+ R
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 : a) Z5 C; w1 ]( r, V
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 7 s" L. n* S+ D8 d% o. i
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
2 M/ h9 d# y& m" O/ R' WFindFirstFile 根据文件名查找文件
6 i$ z( p$ y* m& A+ HFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 4 ?2 `4 q' j9 X
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
7 w: @5 {5 Y. zFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
& ^; a/ _% G: r9 Q4 `2 R  PGetBinaryType 判断文件是否可以执行
4 Z$ a5 @: g' v. i! F& QGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 $ s6 E9 \7 e$ R1 b% e# b5 d! \0 s
GetCurrentDirectory 在一个缓冲区中装载当前目录 3 n8 K# w& m; s7 w, K( H
DWORD GetCurrentDirectory(. |; Y7 d# x% P% p  k
    DWORD nBufferLength,    //缓冲区大小$ a+ m9 i* E6 t
    LPSTR lpBuffer          //缓冲区的首地址( f" m2 i7 h- x6 o6 u' ?
    );' }: g% c8 w! ^+ z3 T
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
+ h& Y1 I* o. L8 T% ^GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
; \9 R# |3 S3 i6 CGetDriveType 判断一个磁盘驱动器的类型
) C$ g, D1 d& X# N6 TGetExpandedName 取得一个压缩文件的全名
, p( z4 t! s5 u  X! e6 DGetFileAttributes 判断指定文件的属性 $ z% q- ?% ^. ]1 l8 _
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 ( S  e9 d6 l+ p& T* i
GetFileSize 判断文件长度
. D8 Z7 u7 y6 h- ?! EGetFileTime 取得指定文件的时间信息 4 Y" P' o8 i1 H& C- L
GetFileType 在给出文件句柄的前提下,判断文件类型 4 H, z6 p5 U9 n7 C3 |$ |
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 + u' L  ^* B& ]5 o
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 - A# P* J2 w* q( m. A+ z2 @& P
GetFullPathName 获取指定文件的完整路径名   M9 T, e' n5 O/ Z* a
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 3 d4 x0 d% u  a6 F
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
% H! K( \" J+ }$ k, zGetOverlappedResult 判断一个重叠操作当前的状态 $ }7 \# H  o* k5 [$ E
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 7 q# `! d& N% Z9 @& b
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
6 s9 f8 l# {+ eGetPrivateProfileString 为初始化文件中指定的条目取得字串 7 ^" l) ]' }( E3 S" F
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
1 w0 P! G# B8 e0 B/ }- f; `' A- L( c! ~GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 ! {8 W, ^2 {+ D
GetProfileString 为win.ini初始化文件中指定的条目取得字串
/ i  U9 p' u* IGetShortPathName 获取指定文件的短路径名 # p: i  S# c( j+ Z
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 : i; H0 \" m9 V5 ?8 j
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
" D" x- L8 K+ j, \1 v2 EGetTempPath 获取为临时文件指定的路径 : `/ Z2 J: [  l
GetVolumeInformation 获取与一个磁盘卷有关的信息 6 i/ ~$ }2 u2 h! s  o8 N0 i
GetWindowsDirectory 获取Windows目录的完整路径名 3 Q9 G6 J% O7 `7 h
hread 参考lread
+ t* E! s) K1 D' yhwrite 参考lwrite函数
" R. q6 c" t. X9 r" ]* ?lclose 关闭指定的文件
$ P0 d- P) b; l8 _  Nlcreat 创建一个文件
+ F7 Z( x) J  P! o" o0 q' kllseek 设置文件中进行读写的当前位置 % {5 y/ p* h* _. f  X; e- z$ c
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
) W8 O9 E" _. [3 d, C' [, QLockFileEx 与LockFile相似,只是它提供了更多的功能 , j3 x/ Q: k% V" @. }4 ]
lopen 以二进制模式打开指定的文件
9 N: ~$ [. s# d& \lread 将文件中的数据读入内存缓冲区 % t9 N: |0 E' j$ a0 t9 Z7 ], K4 A
lwrite 将数据从内存缓冲区写入一个文件
. [  c2 a# E8 ~9 v% aLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
, v  W6 n+ o$ k, {& E' r3 J+ |LZCopy 复制一个文件
8 m  u! d( P' S0 ]LZInit 这个函数用于初始化内部缓冲区
7 O. p# S% D8 O8 o& o9 m8 Z8 e; E( qLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
! x& @! s5 G( W9 XLZRead 将数据从文件读入内存缓冲区
8 m1 b! L; j0 t/ T6 D& WLZSeek 设置一个文件中进行读写的当前位置
6 o: @+ N+ ?7 s$ u% VMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
2 f3 h2 X) o. I4 K7 D/ {- i% c! aMoveFile 移动文件 : D  m& V8 J+ X5 R4 i( U' g5 u7 K  K
OpenFile 这个函数能执行大量不同的文件操作 3 u1 |1 E: w9 e+ ~, f
OpenFileMapping 打开一个现成的文件映射对象 * k' w/ ^& w- H( s, h5 N2 |  a0 [
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
) G8 D# T5 _# `1 u3 R# MReadFile 从文件中读出数据 $ v4 w6 y$ O  O) ]3 ^
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 - r8 R  J9 ?- |  B0 ?# B
RegCloseKey 关闭系统注册表中的一个项(或键)
9 [  c% q5 c* SRegConnectRegistry 访问远程系统的部分注册表
9 x8 }- F' q' f. |  o/ bRegCreateKey 在指定的项下创建或打开一个项 , ]: z1 a1 O1 r5 _; F" c9 J' ?# j
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
, ?+ n: j0 A- y" X( CRegDeleteKey 删除现有项下方一个指定的子项 # K! F* g  K8 m& t
RegDeleteValue 删除指定项下方的一个值
" J4 ?& L; s1 J$ L1 u: hRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx ) z  V  S0 w2 O: a" D! i; [. d) L, B
RegEnumKeyEx 枚举指定项下方的子项 + E" o1 _+ }9 k6 O- ?
RegEnumValue 枚举指定项的值
1 l6 ?9 W% h* U  ~- MRegFlushKey 将对项和它的子项作出的改动实际写入磁盘
% R6 f( V. V: W. v3 F+ X7 M, e* K& LRegGetKeySecurity 获取与一个注册表项有关的安全信息
# e& r# d' F8 O; P) tRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
( w* F' I% p3 e  j; C8 XRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 9 I1 |$ p5 c/ J8 t2 f  v0 ]
RegOpenKey 打开一个现有的注册表项
# P  F" B. _# Z" Y( ZRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
8 M; J. i( R2 V" k3 f9 S3 ERegQueryInfoKey 获取与一个项有关的信息 + S( G' }+ K6 c% H# m; [
RegQueryValue 取得指定项或子项的默认(未命名)值 $ q+ J% O: r/ D5 C" [
RegQueryValueEx 获取一个项的设置值
; V$ G- ~. e' P7 |RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
5 ?+ I$ j) [0 u# T* gRegRestoreKey 从一个磁盘文件恢复注册表信息
: \. H# z1 [  Y; U5 f( s+ G) }RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 : t" E" `9 ]" W/ d
RegSetKeySecurity 设置指定项的安全特性
3 C, v' e. J3 _4 C1 ^( tRegSetValue 设置指定项或子项的默认值
0 U2 K2 a& o, }' ]# [; GRegSetValueEx 设置指定项的值
4 B  t1 u$ v! IRegUnLoadKey 卸载指定的项以及它的所有子项
; n- _- C3 n; q, H+ X9 nRemoveDirectory 删除指定目录 0 I$ c! X! z. B& ?5 Z3 Z3 m8 P5 x
SearchPath 查找指定文件 9 a/ g6 R& v  w6 a
SetCurrentDirectory 设置当前目录 % ^' f/ ~, T% O5 ]; [) v
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
# C/ J$ U# z2 Z7 bSetFileAttributes 设置文件属性 ( _. [1 ]" O9 L- g1 D, }4 `
SetFilePointer 在一个文件中设置当前的读写位置
) I6 c6 w7 L- cSetFileTime 设置文件的创建、访问及上次修改时间 : v2 J# W4 x4 }2 U
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 % p7 m0 O# s5 s
SetVolumeLabel 设置一个磁盘的卷标(Label)
1 A7 ^8 t4 Q2 mSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
* q& x6 M$ k5 ^6 ], xUnlockFile 解除对一个文件的锁定 : u& P, Q' e! W
UnlockFileEx 解除对一个文件的锁定 1 a/ D  c& ~+ O
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 ) N# m$ y, C  M7 S
VerFindFile 用这个函数决定一个文件应安装到哪里 " {1 |( x6 ^$ A" R
VerInstallFile 用这个函数安装一个文件 / o( k/ a( S2 ^
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 2 V* M3 J/ B: N0 q1 C7 d; M+ O6 F
VerQueryValue 这个函数用于从版本资源中获取信息
# V- I  j" q& A* h3 W, {# j! D4 v& eWriteFile 将数据写入一个文件
% e( M0 x3 O- W) d' nWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 , C/ c. i9 c8 H1 R, R0 u8 \
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
# p; H! s) b/ s4 J/ {& tWritePrivateProfileString 在初始化文件指定小节内设置一个字串
) `7 o5 ^; \% g4 YWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
' |+ C2 w# s1 @6 oWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 / H! T0 p+ A. m/ u" W
4. API之打印函数 # L+ A* v  D$ q. j: `$ t
AbortDoc 取消一份文档的打印 - Q- U7 s6 ~  z% p  p
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 - b$ p7 c/ @: m* x9 J
AddForm 为打印机的表单列表添加一个新表单 ( v! F# c" s+ N( ~& S8 V" w
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 - s( y7 y0 ]) F7 O# e, Z
AddMonitor 为系统添加一个打印机监视器 7 D7 F* p0 |, N5 D! D; H; [
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 5 z8 p5 x+ A: x6 }  ^
AddPrinter 在系统中添加一台新打印机 5 ^# f/ p8 c- |1 D7 ^& M0 z4 D
AddPrinterConnection 连接指定的打印机 ' a7 S9 V8 @/ ?: P2 s( @
AddPrinterDriver 为指定的系统添加一个打印驱动程序 6 V" ]. o' F+ |% z1 N! R' n* M
AddPrintProcessor 为指定的系统添加一个打印处理器
  {3 J! _' J9 K) j: N9 gAddPrintProvidor 为系统添加一个打印供应商
: p2 E% h5 e( a2 W* RAdvancedDocumentProperties 启动打印机文档设置对话框
/ k1 u* }# R  r' q  C$ t/ K$ yClosePrinter 关闭一个打开的打印机对象 0 U, c& w4 U, H4 [* e' F
ConfigurePort 针对指定的端口,启动一个端口配置对话框   }: l# l/ ?# V
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
! a2 E" t# k; \8 TDeleteForm 从打印机可用表单列表中删除一个表单
+ q: N" D. P" R* }7 EDeleteMonitor 删除指定的打印监视器 ; ?4 K( j2 c1 D0 b$ i
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
  ^3 t1 S' e6 O( D- WDeletePrinter 将指定的打印机标志为从系统中删除 & _4 [$ K3 P1 V
DeletePrinterConnection 删除与指定打印机的连接 . o# F, J2 S* u+ k1 R2 b- n
DeletePrinterDriver 从系统删除一个打印机驱动程序   ~9 p. A+ w5 C, A6 u3 T
DeletePrintProcessor 从指定系统删除一个打印处理器 # ?+ l+ A8 t1 Z+ c
DeletePrintProvidor 从系统中删除一个打印供应商
: y6 g2 P7 B  X5 h$ lDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 , ?" x" _1 R, ~/ z
DocumentProperties 打印机配置控制函数
8 t9 f$ v6 Q6 \% J" v- N# u1 EEndDocAPI 结束一个成功的打印作业 ' x( Z0 ?+ _" \5 \6 `8 A( F4 I: G
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 : C1 @# `( g; h4 ~- K+ T, e/ G
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 * n6 T/ f& [# G8 c/ G, m& |
EndPagePrinter 指定一个页在打印作业中的结尾 & z5 k; {$ p8 z8 n( M& u5 v, ^
EnumForms 枚举一台打印机可用的表单
( d# W! ~8 W4 }& [. LEnumJobs 枚举打印队列中的作业
7 f. I# O0 L8 E5 A; hEnumMonitors 枚举可用的打印监视器
. E# k4 C5 ^' Q0 N0 oEnumPorts 枚举一个系统可用的端口
1 I- O: ~" c" }3 s7 R3 G- qEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 1 V5 U1 Z) e9 m- d/ H: I3 N
EnumPrinters 枚举系统中安装的打印机
% w2 P6 P! D( C0 bEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 2 F$ z" X# ?3 f$ f* k
EnumPrintProcessors 枚举系统中可用的打印处理器 / S9 q$ E! x5 o; s# f" x6 b6 c
Escape 设备控制函数 % |  y8 U# [  R2 e; }- }4 j
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
! F) k% W7 W& L/ zFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
; H6 O  J" y( J0 x% }- KFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
6 W; s: ]3 K- q1 @, `& bFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
1 w4 R/ w; G$ Z+ X7 I( y4 gGetForm 取得与指定表单有关的信息
) s- e. T3 y0 b) W( yGetJob 获取与指定作业有关的信息
/ Y" e0 O  Q7 _2 B6 @GetPrinter 取得与指定打印机有关的信息 / R  N" i5 E0 o% U% ]+ H, ]
GetPrinterData 为打印机设置注册表配置信息 5 a: P6 ^3 W. c4 U3 B% e7 Z
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 1 Q  H, r" B2 @$ |
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 3 I/ |9 {% ]0 Z6 W" F/ q
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
# ?0 y, R5 g5 I% gOpenPrinter 打开指定的打印机,并获取打印机的句柄
/ X4 K7 ^* w& d. L* xPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
' [3 m0 C& F) lPrinterProperties 启动打印机属性对话框,以便对打印机进行配置
; g" k2 l2 R+ S% g+ mReadPrinter 从打印机读入数据 2 m) Y/ u! j& D/ z
ResetDC 重设一个设备场景
( B/ I+ I2 P9 a5 Z& l. kResetPrinter 改变指定打印机的默认数据类型及文档设置 " d! `' ]0 d! m0 I# F+ u
ScheduleJob 提交一个要打印的作业 4 ?3 \/ N, Q: F5 o5 ~5 B
SetAbortProc 为Windows指定取消函数的地址 4 f+ F1 C  G# \* m/ c
SetForm 为指定的表单设置信息 ! n. F: _* N4 [  p& V
SetJob 对一个打印作业的状态进行控制
$ `5 U- |2 \% I0 D7 K5 R% F* A& o* |SetPrinter 对一台打印机的状态进行控制
2 k& x+ u% F8 j7 `/ z; n9 l9 l: DSetPrinterData 设置打印机的注册表配置信息 $ n0 ~# X) l5 Z: t
StartDoc 开始一个打印作业
8 K! K( W* u6 a  vStartDocPrinter 在后台打印的级别启动一个新文档 3 a# s  _, c9 ?' \/ A& V3 T
StartPage 打印一个新页前要先调用这个函数
+ W  }( H. ]" P; uStartPagePrinter 在打印作业中指定一个新页的开始
4 o% T+ V- t5 z3 m2 n/ UWritePrinter 将发送目录中的数据写入打印机
; {; [/ c6 Z; N; m5. API之文本和字体函数
& P# K% h5 q3 D' E; \AddFontResource 在Windows系统中添加一种字体资源 % K  [' O8 ?8 s% F2 s- D
CreateFont 用指定的属性创建一种逻辑字体
* t6 F. h6 P7 ^* K' x4 _, _8 b. C# ZCreateFontIndirect 用指定的属性创建一种逻辑字体
% ~, J8 M8 C  l' j& FCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
/ }7 ?* c6 P4 p' b- t! ?; h  oDrawText 将文本描绘到指定的矩形中 5 S! d7 t0 f7 |" i  b) }3 D
DrawTextEx 与DrawText相似,只是加入了更多的功能 / W# e3 `! C2 V; I3 r6 M
EnumFontFamilies 列举指定设备可用的字体 / ~2 o9 s* U3 r/ f  q7 I
EnumFontFamiliesEx 列举指定设备可用的字体 9 F9 K$ ]* T, K1 A5 m" M2 G
EnumFonts 列举指定设备可用的字体 1 E: _4 H5 c# w5 K
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 # v0 _- a( E9 q* |* h8 s9 b
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 $ f1 d2 y- D* O  L& H
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
3 V: W( Q  X3 L9 u/ sGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 / r0 r$ G* D3 q% _2 I, J% k# u
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
  I# B2 @! }/ {/ r; K+ x6 a) QGetCharWidth 调查字体中一个或多个字符的宽度
. k3 C9 D6 n' l7 n! B! ]GetFontData 接收一种可缩放字体文件的数据 8 ?! t% A% X; r% g9 J. J
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
, e; F. H* z8 v% Q$ R  fGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
& \! f$ @/ D0 t8 F" T( b8 LGetKerningPairs 取得指定字体的字距信息
5 y" J+ J# v2 nGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
5 K5 G& w$ N* a4 |7 ^2 nGetRasterizerCaps 了解系统是否有能力支持可缩放的字体 9 j- j# c, G+ r
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
6 P7 u) E) o6 T8 ^% x0 t, eGetTextAlign 接收一个设备场景当前的文本对齐标志 8 }9 I  G: L0 k8 A& s
GetTextCharacterExtra 判断额外字符间距的当前值
; P, J9 x$ u( o0 E2 [GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
. e' w( }) m( qGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 % [0 S7 L2 |1 N" E) c
GetTextColor 判断当前字体颜色。通常也称为"前景色" 0 x1 }/ }0 S  I# m* h! J# `2 Q6 r8 M
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
; q/ r6 v( m; T+ A4 mGetTextExtentPoint 判断一个字串的大小(范围) + u7 i( P9 j! [1 v/ I2 C
GetTextFace 获取一种字体的字样名
" J+ B* B: L; }9 Z, C3 K! ~GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
% B+ ^% V/ q" X- x4 U* yGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 0 d5 N) L4 W, ]
PolyTextOut 描绘一系列字串
1 t' q: z; h4 g8 r! E0 F4 O( \RemoveFontResource 从Windows系统中删除一种字体资源 3 K+ ^0 D/ o$ o. n
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 , d- F3 a! `: j- i2 `. S7 s( z
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 7 B2 Y$ K+ e" h' _6 t, o
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
  q* a1 w3 Y; F+ o: Y8 @SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
0 h, M, f' D( @- WSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
) S' P* S0 y- M9 }9 ?0 D8 _' J: STabbedTextOut 支持制表站的一个文本描绘函数
  j; t2 l1 l) j" z( S4 VTextOut 文本绘图函数 ) {( h" h5 a1 |
WINGDIAPI BOOL  WINAPI TextOut(& U) H$ `- G: A7 r
HDC,     //输出设备
+ A+ A! @* f  y  X# u6 Gint,     //输出的横坐标
" a( h$ u( `/ |) A& [9 E2 wint,     //纵坐标0 E8 D  s+ ~8 I  S+ k! U3 d
LPCSTR, //输出的文本str
: V8 p" \/ S8 G4 qint);    //文本的长度:lstrlen(str)
0 }* g  o" A' V3 _/ q6. API之菜单函数 # V! K8 I6 w* ]
AppendMenu 在指定的菜单里添加一个菜单项 1 f; }; M. }( h2 R/ e
CheckMenuItem 复选或撤消复选指定的菜单条目
# j2 b! x. S2 r# A' rCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 " [& W. r3 n2 U7 F" E: g* F, t' d
CreateMenu 创建新菜单
& n4 X( Y1 H4 x& y8 k! H+ u/ DCreatePopupMenu 创建一个空的弹出式菜单
5 a3 m; m" A! e6 c. UDeleteMenu 删除指定的菜单条目
' n3 r! U$ ~9 X3 EDestroyMenu 删除指定的菜单
5 w% _( g1 k- x7 H% t3 o! [' I5 LDrawMenuBar 为指定的窗口重画菜单
# s1 p7 g  o1 D; |EnableMenuItem 允许或禁止指定的菜单条目
0 {& Z+ K2 q3 V" c1 L3 dGetMenu 取得窗口中一个菜单的句柄   s( G# f3 ?3 i. x* W
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
8 r# m0 f0 F! h8 Y. k$ c: qGetMenuContextHelpId 取得一个菜单的帮助场景ID 4 P) M  Q" C7 z1 E/ U; Z7 y6 e$ H# f
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 + g( _. R& a7 Q
GetMenuItemCount 返回菜单中条目(菜单项)的数量
. Q' O) m4 E' u! D) B7 I3 qGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID # ~/ ~1 W1 s4 m; U
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 + v$ J# a$ [* O  x
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息   v' U: a# J% L9 ]" \
GetMenuState 取得与指定菜单条目状态有关的信息
, W5 a3 m) {6 t' |% c1 e7 D& IGetMenuString 取得指定菜单条目的字串
- ]! R9 R8 H* ^' @4 O) G& QGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 5 l, y# [' W0 u0 m. u1 f9 `
GetSystemMenu 取得指定窗口的系统菜单的句柄
" w" S- f2 M6 q& s% W7 QHiliteMenuItem 控制顶级菜单条目的加亮显示状态 % x/ s: G, Q" V% v: l' Z
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 9 t" w  C$ N) f& A% [
InsertMenuItem 插入一个新菜单条目
4 Y% L1 V. o: b& CIsMenu 判断指定的句柄是否为一个菜单的句柄 : c" K* ?! e5 E- {/ W, X
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
' z( H( v$ _% k1 D- H; Z! {$ pLoadMenuIndirect 载入一个菜单 6 w! Z- E8 @( G- m! x+ u) b
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 7 L6 v6 g( A1 m! b) S. y; w
ModifyMenu 改变菜单条目
0 S6 T  i% e" _4 BRemoveMenu 删除指定的菜单条目
  P: ]6 }* T+ K1 }5 hSetMenu 设置窗口菜单 ) M' I7 g% ^) v9 q4 U% M1 ?2 b
SetMenuContextHelpId 设置一个菜单的帮助场景ID 0 j! t; W8 ]  b- N; x$ w
SetMenuDefaultItem 将一个菜单条目设为默认条目 * \! A8 ^+ S; i9 v7 V. Q% Z
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
' C# }5 Y8 t" {/ @! FSetMenuItemInfo 为一个菜单条目设置指定的信息 , O6 r, \( M0 U+ a) b+ M& L7 |
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
; V1 [" J- I) R$ J. n1 z" wTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能   x* b: U; s1 I. y' l' K) M
7. API之位图、图标和光栅运算函数
$ y: f) T! C8 l6 RBitBlt 将一幅位图从一个设备场景复制到另一个% [4 @! g: P9 L" W; G
     WINGDIAPI BOOL  WINAPI BitBlt(1 i! @' Y$ z$ _) i5 H
HDC,     //目标HDC
# K5 Z3 u0 n6 q. Y/ D. M2 ?! Xint,     //X1
1 L( G& c( U% W6 v/ Oint,     //Y1
7 a# J3 r7 F7 g5 a. Dint,     //width
, i+ m0 }( l9 R- M5 A, m- Qint,     //height
( H7 B7 l7 m* H: E; kHDC,     //源HDC# m" F9 X1 h$ N2 @( p
int,     //右边的距离5 f6 o+ y! G9 H
int,     //??4 ]) R) }4 E6 W; i* Q3 l7 b: d
DWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
1 F9 z3 L' Y# W/ C& \9 Y. j9 WPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS0 M7 X7 ?0 N3 P& K, c3 c
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
$ k/ y& ?2 C7 h& v: {5 {( j% pCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
$ J5 |* W( u+ {0 Q0 GCreateBitmap 按照规定的格式创建一幅与设备有关位图
7 m' p. O* [2 C2 _. r" h  ?- WCreateBitmapIndirect 创建一幅与设备有关位图
  q2 R# N5 H2 _$ C; ?7 W+ ^CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 # e% i$ L* S' ~: t
CreateCursor 创建一个鼠标指针 ' h( s" w0 G& e
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 9 d5 K/ o4 i0 Q" }* v9 g
CreateDIBSection 创建一个DIBSection
# r  `' p$ j0 ~) l& VCreateIcon 创建一个图标
2 M' |, q+ v, [' H( j9 I, l# M* N" CCreateIconIndirect 创建一个图标
$ Y: o9 R# u* k9 K- N$ uDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 , @" x% U3 B# m6 r
DestroyIcon 清除图标
; M6 G5 R. f2 GDrawIcon 在指定的位置画一个图标 - W! O) c- n/ P& a! H
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 / v9 R9 I9 L. ?" b5 M
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
2 w, Q" d/ n* a0 X2 R7 P' f5 oExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 ' H( U4 f: y5 }! a
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 ( O' g; t' H0 V; e9 S$ s8 p
GetBitmapDimensionEx 取得一幅位图的宽度和高度 : V) S! g. Y" E7 E
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
0 W9 \. H; A+ f9 D% A7 p: AGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 + o) A9 Z  A  d2 Z/ `
GetIconInfo 取得与图标有关的信息
' I% H" k0 k% dGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 " _; s. R2 ]+ b
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
# g' e& {" G$ c, {7 X# `, cLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
9 c. P$ t$ T, t7 R) [4 rLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
1 o6 J: ^/ L: f1 OLoadIcon 从指定的模块或应用程序实例中载入一个图标 " u$ c) Y( ^% {3 J
LoadImage 载入一个位图、图标或指针 - R' G5 H, l/ S0 R
HANDLE LoadImageA(
* L/ z5 P; O* b' a4 E- XHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()# D0 _4 e4 `1 s4 n2 @
    LPCSTR,               //资源所在的目录:c:\help.bmp* c& X8 \" u: F& u( }
    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE! ^+ ?) d9 C. n0 ^% S. j5 I
    int,                  //
  F8 N- l2 o* h6 T7 ^$ D    int,                  //: p3 S$ A" g, h5 l1 h0 m
UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
/ ~/ E, z( P$ u4 }+ `R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
) J3 u0 d& d& ^7 `# ^LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
) n, z; _6 z2 ^MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
0 `& @; c" u# ^# V7 qPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
8 N* N% N$ E/ B  {8 R& }. A& K: wPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
4 Z5 \  E- C8 _6 A% z+ K% `SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 : v4 g- v, _9 ]$ ]% V
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 ! L9 @! L' w" t- @* ]$ ^
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 3 y4 m3 y6 I, g
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
1 b6 ^* b2 @% U3 ^3 t$ d6 dSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
  ~% o2 t, K* V1 M4 Q% B" M0 GSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
) J/ p: F" R+ I' _1 L! ~6 w/ m9 OStretchBlt 将一幅位图从一个设备场景复制到另一个 ; M3 _/ f; B! }& F! M
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
. C. Q" i- w0 L0 b9 Y7 g8. API之绘图函数
* B9 t1 j- d' j7 T: l) d3 W/ U- yAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
; D/ Q4 Q) ]5 @# _" O* j9 mAngleArc 用一个连接弧画一条线 . P# a9 s# t4 c
Arc 画一个圆弧 ( \. ?7 g6 ^# Y0 ^3 B7 z# @
BeginPath 启动一个路径分支
1 L: ]* |* x6 D# fCancelDC 取消另一个线程里的长时间绘图操作 / W1 {8 x8 E, A4 U; y* T6 ]( N
Chord 画一个弦 & h8 u: y, [1 I- i) [2 f- t
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 0 t% X3 {! K0 E# G. R5 Q6 W; B
CloseFigure 描绘到一个路径时,关闭当前打开的图形
, T3 z! f2 _- tCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
  Z# K9 P/ j, H$ @CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
- ^" s& f% Y) j! LCopyMetaFile 制作指定(标准)图元文件的一个副本
7 d4 d9 `' g* `( W, xCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
8 J& w" I0 {2 L) XCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
2 k1 F0 c3 V7 y8 DCreateEnhMetaFile 创建一个增强型的图元文件设备场景
$ P$ c8 `) ]" s$ dCreateHatchBrush 创建带有阴影图案的一个刷子 + H" k: J) f* D( w
CreateMetaFile 创建一个图元文件设备场景
7 r- J5 P2 [% q0 xCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子   ^- h5 r- }( X/ a" U. L
CreatePen 用指定的样式、宽度和颜色创建一个画笔 1 @, R* M% V. Y5 `% A/ |6 E5 X
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 % l9 \1 b, J5 m" w/ s
CreateSolidBrush 用纯色创建一个刷子 ' d8 h+ g( b7 p: O- ]/ [
DeleteEnhMetaFile 删除指定的增强型图元文件 ) S0 v+ L1 I6 J: H, h
DeleteMetaFile 删除指定的图元文件 7 Q9 c% o$ n# u& e9 Y
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放  g, Z% X0 i7 Y9 C' D
DrawEdge 用指定的样式描绘一个矩形的边框 ; E! ?. ]3 L1 J. e5 d" D
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
- U: p7 a1 V: V. X# J0 yDrawFocusRect 画一个焦点矩形
9 o& C& h; [$ pDrawFrameControl 描绘一个标准控件
0 {* K( n$ W7 `9 y; dDrawState 为一幅图象或绘图操作应用各式各样的效果
; Z) B9 L. R& I& F. Y: C' \9 @Ellipse 描绘一个椭圆,由指定的矩形围绕
4 Z0 T9 X$ X2 @( \EndPath 停止定义一个路径
0 Q5 K* W; N: c8 }1 V& dEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 7 K' o2 V7 ?; m8 Y6 _* N
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
- u3 j* g" q, R9 u  H3 s0 g* DEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 ) `2 L" g; X; _* G# [% F( P# F' f
ExtCreatePen 创建一个扩展画笔(装饰或几何)
8 @; F" E8 G: y; B9 }& H5 iExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 : [: b+ J, q' M" T1 l, n9 ?
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 1 y# U$ g: J$ T) m9 i
FillRect 用指定的刷子填充一个矩形
* K! D( \- c3 C8 OFlattenPath 将一个路径中的所有曲线都转换成线段
* |/ J: f2 B5 p7 j6 ]7 f" A3 wFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
1 I) U) L1 x# G  T/ H( x# |FrameRect 用指定的刷子围绕一个矩形画一个边框
2 |& ^5 q( |, ~- @& P+ ^GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 - f6 _" \2 J2 Z: Y3 D) J
GdiFlush 执行任何未决的绘图操作 $ _. R- `# \- R  z- a& g
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 1 i6 L& z! T' I5 O4 ?2 {
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 7 i1 w4 R' I6 s" W
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 % z( o. K+ ^. T, Y- d% ]5 z
GetBkColor 取得指定设备场景当前的背景颜色 - l" T5 {) _/ M7 |# F$ J
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 ) ]% a- E9 j7 c, G9 p
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 7 q* E8 l$ p0 v4 `
GetCurrentObject 获得指定类型的当前选定对象
8 B1 i. v+ _( o, S1 OGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
) J. T; w9 j2 P" \: oGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
  L, e* u/ t2 D" ^! wGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 ; Q2 m; g4 m/ x
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
$ B* }9 }/ a$ U! ^) D7 S4 o$ P  NGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 9 M: ?% q; c: \- u9 E: i
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
+ q! Z& P6 ]7 B5 ?GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
6 a$ R/ O1 W+ V! O- k* C3 FGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 7 ?- `3 J, h- z  X0 J
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
8 e5 _3 k3 R" D& ~$ kGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
5 O5 z& S- u6 q  P1 G* AGetObjectAPI 取得对指定对象进行说明的一个结构
$ V; b. N) d2 d! RGetObjectType 判断由指定句柄引用的GDI对象的类型
) N6 `" H, R* K! a2 YGetPath 取得对当前路径进行定义的一系列数据 9 L) m; E; W' I: X- I& W% E
GetPixel 在指定的设备场景中取得一个像素的RGB值
, \: g& v- j; O# G% D, E5 jGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 , C& m/ x" k  l7 \
GetROP2 针对指定的设备场景,取得当前的绘图模式 4 K5 D! F% _( P; o0 U3 M
GetStockObject 取得一个固有对象(Stock)
* p7 W: \4 L3 I* [' Q' y% H* {GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
( Z: a  R' I) S7 [GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
( @! V) c% m5 p* W! y& RInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
8 Q4 P5 n' U3 M6 JLineDDA 枚举指定线段中的所有点
" x0 D' E! u7 ~LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
& ]. e4 h, D. {: a) YMoveToEx 为指定的设备场景指定一个新的当前画笔位置
# F6 x5 |/ l% j3 C. G; [# W0 \PaintDesk 在指定的设备场景中描绘桌面墙纸图案
+ }9 p' e; [8 x! |/ }: P5 H* j' [/ QPathToRegion 将当前选定的路径转换到一个区域里
; b; p6 y! d! A: y& w7 t, ]Pie 画一个饼图 6 l2 Q: r( R! @9 V
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 , A. h; c* o1 J
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
9 s+ C  r. H. |/ f: oPlayMetaFile 在指定的设备场景中回放一个图元文件
4 Y' h9 P9 N3 o: m) ?PlayMetaFileRecord 回放来自图元文件的单条记录
- Q3 Z" L2 P) z7 S; C7 n) Q: iPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
4 H9 X) u, |7 B  z1 G* bPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
2 Y6 }2 y' ]) g. a1 }+ t0 H- f/ JPolygon 描绘一个多边形
8 Z: m0 R0 L8 l; T( q6 G* b; oPolyline 用当前画笔描绘一系列线段 8 W$ ]# j( v- \3 X$ x$ k5 K
PolyPolygon 用当前选定画笔描绘两个或多个多边形 * y$ Y/ X5 a/ X7 V
PolyPolyline 用当前选定画笔描绘两个或多个多边形 4 p* _& Q" T& q0 s+ R7 U! L& ~8 Y
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 0 N; u1 z- f& X0 X5 X# N# N; X; k
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
5 n: ^4 C3 A- p/ k$ U6 V# A' ySelectClipPath 将设备场景当前的路径合并到剪切区域里 ' K2 c/ O2 [; V8 v' f
SelectObject 为当前设备场景选择图形对象 , M+ c, W. _% v: \
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
) I8 g, M2 T0 WSetArcDirection 设置圆弧的描绘方向
0 N7 W  q- i% n* o& USetBkColor 为指定的设备场景设置背景颜色   ~0 P* x" f! A
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 $ {, R( U6 s2 ?3 m# ^5 D% _2 [
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
( ~" F; g% Q* `+ ]) v( rSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 9 \3 ~( i/ u* {
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 6 j8 @( {7 {( C' l$ t7 A) Y
SetMiterLimit 设置设备场景当前的斜率限制 * N* X, s+ Q( d2 ]
SetPixel 在指定的设备场景中设置一个像素的RGB值 6 V- _* R8 K$ {  C
SetPixelV 在指定的设备场景中设置一个像素的RGB值 . d: m) u5 M  A' Y& j9 {
SetPolyFillMode 设置多边形的填充模式
1 Y- D3 O- G% M! iSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 & p8 ?* d' L5 n$ C3 w9 i
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 9 R) I- \) O5 a1 v4 g2 Q
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 , k, O: ^* R# g1 a1 I
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 $ _) {( T+ n, T3 K
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
! |& s! J5 D7 ^8 k8 J; X  OWidenPath 根据选定画笔的宽度,重新定义当前选定的路径 0 e) T% e1 q1 c: q- m6 d( m4 X
9. API之设备场景函数
  r: ~4 {* C; r; f) o2 ]7 mCombineRgn 将两个区域组合为一个新区域 ( R2 F3 t; {. p# |, ?
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 6 s/ s0 b' e/ W
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 5 d; x5 @7 Q% |) K3 b% X& i
CreateDC 为专门设备创建设备场景 $ B; H; R* C% |/ Q* \! b0 F3 [' w
CreateEllipticRgn 创建一个椭圆 + H  I9 {& {9 D& N0 C6 e) i
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
3 \* T" a+ y4 w& W, Q7 g" [CreateIC 为专用设备创建一个信息场景 ( H9 D0 P. _. p
CreatePolygonRgn 创建一个由一系列点围成的区域 5 o, e  A: p  `# o
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 # ^0 @- ~) R1 R& o. D, M1 }
CreateRectRgn 创建一个矩形区域 6 O2 g2 X# |- `1 d% a1 p. A+ }1 ?
CreateRectRgnIndirect 创建一个矩形区域
( B1 q  R$ w( S7 z4 [5 l% F& OCreateRoundRectRgn 创建一个圆角矩形
& R8 X7 R4 I$ W5 R4 ~DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 / `: X; K  p8 S6 C" G6 f( B) T
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
+ _: E0 S9 r' ^2 X! k/ U. vEqualRgn 确定两个区域是否相等 $ @, H& P0 L% g/ B% l/ q; `
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 0 R# G1 ~, ^% T0 N: C! K* n: V
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
" \. X6 o4 v1 \' {' T+ v& E3 IExtCreateRegion 根据世界转换修改区域 , [. z1 h$ ]3 B" Y6 i5 h' q
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
- `4 r$ E  [8 P# D( H3 cFillRgn 用指定刷子填充指定区域 7 B$ h9 [1 _& Q# S( p  @! `" h
FrameRgn 用指定刷子围绕指定区域画一个外框
8 f: m% S, T2 b# }; TGetBoundsRect 获取指定设备场景的边界矩形 / Q. W3 R7 v' r: C6 @: U
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 : k" ?/ a; b4 @6 n( O; |4 q
GetClipRgn 获取设备场景当前剪裁区 7 I+ ?& G) i  u/ U  t7 {8 r
GetDC 获取指定窗口的设备场景 + ~7 X+ H: P) u+ P' T; Q& \% N
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 ; Z" Z: {! b' @8 F5 |/ c- \- ~" _; C
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
, g* W" \) _% d: K3 R3 CGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
+ L) t/ L4 n6 `/ bGetGraphicsMode 确定是否允许增强图形模式(世界转换) 2 I) \, t: g( g: Q  Q! @
GetMapMode 为特定设备场景调入映象模式
! T0 |( g  K7 r' J3 FGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 ( _/ a9 A2 t2 K; l
GetRgnBox 获取完全包含指定区域的最小矩形 8 S/ H! m/ m( ^2 V
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 + o% K7 A" g% P! B( n
GetViewportExtEx 获取设备场景视口(viewport)范围 : e1 p: H$ |& [+ Q; z8 P4 @
GetViewportOrgEx 获取设备场景视口起点 $ H+ e9 M% A6 Y& P
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 : t4 w$ j5 N& G, t. c- D
GetWindowExtEx 获取指定设备场景的窗口范围 , Q3 @3 J! _2 _6 x( V
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 5 J- U" B4 M% M
GetWindowRgn 获取窗口区域
4 c+ O9 {, `9 A' lGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
$ a  V9 L$ G, X4 f) z' a8 jIntersectClipRect 为指定设备定义一个新的剪裁区
1 M9 h5 D: Y4 j' C. r% ZInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
7 ?$ K7 x. V6 e: f* }, m! q2 dInvertRgn 通过颠倒每个像素值反转设备场景指定区域
/ y5 P+ i8 [# T. g: N/ CLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 & W; R$ x2 Q6 ?) W0 e4 g3 Q# ?
ModifyWorldTransform 根据指定的模式修改世界转换 / |0 q2 O* v& K0 G" W5 X! M
OffsetClipRgn 按指定量平移设备场景剪裁区 $ f9 e; t1 y0 {3 t) P3 ^  q- G- h5 E
OffsetRgn 按指定偏移量平移指定区域
$ G% s: D4 p# sOffsetViewportOrgEx 平移设备场景视口区域 . U- g7 ^9 X! U* U
OffsetWindowOrgEx 平移指定设备场景窗口起点
+ A* Z* r" {- J# P8 U& G$ f5 \: ?PaintRgn 用当前刷子背景色填充指定区域 ' \2 h" A. q  u5 Z0 \
PtInRegion 确定点是否在指定区域内
) Q# u$ j; k( ]$ Z& U3 e/ V7 sPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
* S  v& B# {" r( mRectInRegion 确定矩形是否有部分在指定区域内
& P8 ^; [0 ~6 [/ }' h* V* aRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) ; [. i) P8 a9 p1 g. ?) D9 }
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
9 z+ [! P) q; YRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
5 d8 d. ^6 J  g  O; bSaveDC 将指定设备场景状态保存到Windows设备场景堆栈 8 \  T$ U% `! H, I3 y" }+ X
ScaleViewportExtEx 缩放设备场景视口的范围 $ m- P9 c2 x8 O. A
ScaleWindowExtEx 缩放指定设备场景窗口范围 8 y, a: v8 o2 x7 B: A- x" g. S; g( _
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
" d- m9 P& p# n- w9 ?- E# @+ eSelectClipRgn 为指定设备场景选择新的剪裁区
, R  g3 h+ }4 F7 m9 q/ fSetBoundsRect 设置指定设备场景的边界矩形
9 E' f" H  T: g+ I. A+ a  GSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) ) L  X0 E/ e9 p( S1 [& `1 t- Z
SetMapMode 设置指定设备场景的映射模式 & e+ o& G. |9 D7 e, D# @; _
SetRectRgn 设置区域为指定的矩形 : c! o2 l& N8 U7 k
SetViewportExtEx 设置设备场景视口范围
# ^, j1 |, X3 Z5 C9 }SetViewportOrgEx 设置设备场景视口起点
9 U$ V( p: D0 j! YSetWindowExtEx 设置指定设备场景窗口范围
9 f6 x" O. x0 gSetWindowOrgEx 设置指定设备场景窗口起点 ; E2 `5 R8 i/ C4 d* D( ]# T: y
SetWindowRgn 设置窗口区域 : q/ U2 ?( ~! s1 B. l& e3 j" E
SetWorldTransform 设置世界转换 6 ^- `" d5 i/ T
ValidateRgn 激活窗口中指定区域,把它从刷新区移走 , |. _" h! k1 g
WindowFromDC 取回与某一设备场景相关的窗口的句柄 ; h9 B6 q  K/ Y1 d* a$ y
10. API之硬件与系统函数
4 h! {: J& {+ d7 HActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 ) V6 j9 h, U; }8 s' ^. K
Beep 用于生成简单的声音 7 p+ ]$ V% P$ `2 j( t& ?/ L9 j# x7 C8 @
CharToOem 将一个字串从ANSI字符集转换到OEM字符集 ( q0 y7 n( }. U! I$ d" U
ClipCursor 将指针限制到指定区域 * X/ G0 P. p3 e, D# q7 @$ ?
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
6 ~: w9 @' z, w2 R2 N8 N; v$ d0 _CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 & B- Q# m2 Y6 e' n+ \
DestroyCaret 清除(破坏)一个插入符
. P3 k. c- a+ [. u' S2 ~/ n- Y% Q6 \  jEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 * D9 j8 z% x/ `! y% k8 J9 Z
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 , |& p, @5 r9 u# m. e) t$ c  }: C& Y
EnumSystemCodePages 枚举系统中已安装或支持的代码页
- e$ Z* B* `# y: B4 uEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 8 \/ u8 F6 t- W3 B6 f
EnumTimeFormats 枚举一个指定的地方适用的时间格式
+ c+ z$ ?7 x# ^& T6 MExitWindowsEx 退出windows,并用特定的选项重新启动
  `  }& |- s, R     WINUSERAPI BOOL WINAPI ExitWindowsEx(" w7 v* K# Q$ i6 m
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
% L" a# |- t" I     DWORD dwReserved); //0
" W0 a$ e  l2 b, l  TExpandEnvironmentStrings 扩充环境字串
$ K% y, q* K1 _: r! tFreeEnvironmentStrings 翻译指定的环境字串块
( b  b1 @: y5 E( f, S; KGetACP 判断目前正在生效的ANSI代码页 7 K% w; S* W1 n# L$ d) }2 A  r. V
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
+ |6 K' ~# D; g" T6 T5 bGetCaretBlinkTime 判断插入符光标的闪烁频率 7 H7 m& p" s' `& y
GetCaretPos 判断插入符的当前位置
4 b: f7 X9 ~( V" kGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
' C; i% A5 T/ E& R7 oGetCommandLine 获得指向当前命令行缓冲区的一个指针 ; n) y6 Z' ~$ s+ r
GetComputerName 取得这台计算机的名称
# ?& }& f$ ^8 BGetCPInfo 取得与指定代码页有关的信息 ( ~. d# G% P9 \* c) f/ v
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
4 H+ d' Z/ n4 K, d( A3 oGetCursor 获取目前选择的鼠标指针的句柄
/ p+ ]) m$ ^1 U% UGetCursorPos 获取鼠标指针的当前位置 % K# u; L5 Q, v( y9 `4 _
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
9 ~7 [  A* a3 ~. I! [GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
5 r! |# M3 Z  R7 W* o- T3 f& RGetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 , [/ [6 _2 c& @( o
GetEnvironmentVariable 取得一个环境变量的值
0 ]! ^8 d/ U* TGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
, N( m+ R# g7 H  k- i' rGetKBCodePage 由GetOEMCP取代,两者功能完全相同 . D. F, N5 B* V  j2 m% l5 \
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 ) I- p+ u3 V1 d/ g7 `8 }
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 # _$ X3 T  p' e$ j- z  Q# Q/ |9 w
GetKeyboardLayoutName 取得当前活动键盘布局的名称 1 y0 |: B0 e$ |" F" T$ k7 H# V
GetKeyboardState 取得键盘上每个虚拟键当前的状态 / j2 T6 L$ M0 a2 s
GetKeyboardType 了解与正在使用的键盘有关的信息 / r. u/ x% ?, |% f0 o: I
GetKeyNameText 在给出扫描码的前提下,判断键名
( W- Z& H( G4 l; B3 LGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 3 n; n$ t; I" ~' t( B3 Y# r
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
( n$ V. i& [& W' oGetLocaleInfo 取得与指定"地方"有关的信息
/ ~1 }7 R5 i% e  tGetLocalTime 取得本地日期和时间
1 E2 @" s# U  ?1 Z1 A% V+ L# CGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 2 s( B6 _$ G3 d
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 $ f; \+ k% k5 C4 G2 ~' o: e/ x
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
$ Z1 l5 v) e0 D* CGetSysColor 判断指定windows显示对象的颜色 $ H  j* ~3 o3 J
GetSystemDefaultLangID 取得系统的默认语言ID # `2 i  z0 j, R4 Z3 Y
GetSystemDefaultLCID 取得当前的默认系统"地方" 7 m# O/ V5 F7 F2 K3 l& h
GetSystemInfo 取得与底层硬件平台有关的信息 ' H0 O* K' Y& i+ e8 K0 z
GetSystemMetrics 返回与windows环境有关的信息
; I; R5 D4 N& b! R; K2 H5 Q$ AGetSystemPowerStatus 获得与当前系统电源状态有关的信息 ; H3 j, m' x3 H. U* N9 e
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
4 ?7 P0 }: ?1 }* y7 c, o; u# b3 |( G# JGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 ; Z" F" i3 l1 u9 W6 L
GetThreadLocale 取得当前线程的地方ID
: `# ^: w  r: i* k+ m: K1 @GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) 8 j( ~. Z$ d7 |, W" ]% l7 m% l
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
! d" s$ T" \/ W3 C2 W9 kGetTimeZoneInformation 取得与系统时区设置有关的信息
+ S% {" k& ]2 ]( U, A  |4 k/ QGetUserDefaultLangID 为当前用户取得默认语言ID + ?4 q- T: {$ \' X
GetUserDefaultLCID 取得当前用户的默认"地方"设置 3 f' h; a. |& Y8 [* K
GetUserName 取得当前用户的名字 : D4 @  N2 o" v6 B& G# @$ r
GetVersion 判断当前运行的Windows和DOS版本 4 y  @8 _+ Y  l% o: F
GetVersionEx 取得与平台和操作系统有关的版本信息 " B; V: v% ]& y. N8 `# ^
HideCaret 在指定的窗口隐藏插入符(光标)
8 w+ ~+ W8 [( O% L0 AIsValidCodePage 判断一个代码页是否有效
- j# i0 F. ^: F4 o6 _# pIsValidLocale 判断地方标识符是否有效 $ i, l8 A3 h! [! K; t% j* G3 F
keybd_event 这个函数模拟了键盘行动
! D' e3 S" S6 ^2 v( b4 f! f2 ]LoadKeyboardLayout 载入一个键盘布局
! q2 B+ B) F5 G* z( ~; gMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 , p2 K* S, p# n" b
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 7 d, q" Y' [9 s# M4 z! b+ V1 q
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 # u7 C2 D( t: Z5 [5 q
mouse_event 模拟一次鼠标事件 - c1 }- y: `  w  N! ~) R- b8 i
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
4 w) C0 d, ]  F+ R+ Z7 MOemToChar 将OEM字符集的一个字串转换到ANSI字符集 : g4 F/ y! @1 Q9 u, ^1 u) z& g  b5 N
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 4 g+ e1 t* o3 J3 S# O9 D
SetCaretPos 指定插入符的位置 1 a( k. B6 @1 S
SetComputerName 设置新的计算机名 ) ~% A5 H3 F! J% j0 ?$ ~" z: X
SetCursor 将指定的鼠标指针设为当前指针 % K. f& ]1 P9 J
SetCursorPos 设置指针的位置
2 p! _$ [' p$ {  ^: X$ lSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
/ z+ r0 N3 Z; qSetEnvironmentVariable 将一个环境变量设为指定的值 & G! F6 j! q" s  c. K6 H- s6 b& z
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 . }' ~8 y+ ^3 @+ G% ^' K$ R
SetLocaleInfo 改变用户"地方"设置信息
: T# Y$ @% ^- G9 Y8 RSetLocalTime 设置当前地方时间 5 J9 }7 X' e: C4 m8 n
SetSysColors 设置指定窗口显示对象的颜色
9 `8 }# H9 X5 J% d4 f$ E0 iSetSystemCursor 改变任何一个标准系统指针 . D# T: \' L, q* p
SetSystemTime 设置当前系统时间
9 Q5 e2 C0 P' ^* x8 qSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
$ j- M! ]1 q2 fSetThreadLocale 为当前线程设置地方 & ]* z2 M# J0 D* ~! \9 ?2 ?4 `
SetTimeZoneInformation 设置系统时区信息 ) F) S9 W  E/ \) |8 S
ShowCaret 在指定的窗口里显示插入符(光标)
: b* S8 W1 O5 qShowCursor 控制鼠标指针的可视性
& I* ?' `1 m1 h5 ySwapMouseButton 决定是否互换鼠标左右键的功能 : D( R. Y4 x8 P9 V9 M
SystemParametersInfo 获取和设置数量众多的windows系统参数   Q; @9 H, C" Q3 p8 ~2 G
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 . E& S8 W  x9 R& |, L
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
4 [7 I8 f# l0 ^9 K7 l7 wToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
# |5 Z6 y8 p" ?6 v% y& q' U" `UnloadKeyboardLayout 卸载指定的键盘布局 8 L; O1 p+ k0 ?& w0 f- R2 z) x; M" o
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 9 o& j  k) m- H8 Y  d) ]2 b9 f
11. API之进程和线程函数
) f" [+ \3 A; w/ ?CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
* r1 D8 H. O7 ]8 _$ l% v8 u1 eCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 3 M* ~7 W8 ^- U  W
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 ; b, b; l% V& f" H
CreateEvent 创建一个事件对象
# R/ U/ d4 Y# W9 K3 yCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) / X2 X9 B" z  c* l- U6 Y0 d$ |
CreateMutex 创建一个互斥体(MUTEX) * n9 n- z7 E7 }4 y7 t5 P
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 . C9 i! B" b  K/ a* A# a9 W# Z
CreatePipe 创建一个匿名管道
9 \" G" v; E5 ~5 s0 S) sCreateProcess 创建一个新进程(比如执行一个程序)
' M4 y. G+ e6 `CreateSemaphore 创建一个新的信号机 1 x" G: f. x; Y0 T, y0 ?. v$ J- n
CreateWaitableTimer 创建一个可等待的计时器对象 7 a" H/ I' \2 T6 R0 F
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 9 A+ ^7 `2 G4 q1 @* U5 G
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
4 J. B9 {' ]5 ?( \7 XExitProcess 中止一个进程
& m- h9 ~4 R( A! K. }$ X4 T: fFindCloseChangeNotification 关闭一个改动通知对象 ) F& m) K- k$ }7 r/ o0 ]5 {
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 ' z+ \+ f+ B( c: Q  o% _
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
) c8 J3 o7 v% p; @& NFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 2 T  D. U8 a. S8 Z
FreeLibrary 释放指定的动态链接库
$ ~% ], G. }. b# zGetCurrentProcess 获取当前进程的一个伪句柄
2 q3 K, L* O$ i: m, W" E) ^GetCurrentProcessId 获取当前进程一个唯一的标识符 : `9 r) H6 L* {! l6 ]
GetCurrentThread 获取当前线程的一个伪句柄
+ P4 @# E, x" y9 J/ S6 }. PGetCurrentThreadId 获取当前线程一个唯一的线程标识符 ( ~- A2 d" ^. `9 h, |% j
GetExitCodeProces 获取一个已中断进程的退出代码 4 y: J& T( k9 j: _" h
GetExitCodeThread 获取一个已中止线程的退出代码 . e% z. O8 }+ G  G/ s& G
GetHandleInformation 获取与一个系统对象句柄有关的信息   q% }1 K; D1 J# R. ?
GetMailslotInfo 获取与一个邮路有关的信息 0 r* w0 ?* r- j0 G5 |! r' [
GetModuleFileName 获取一个已装载模板的完整路径名称
" W" j5 K5 Z4 T; l) _3 f/ {GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
* }( I  B' V& L) c8 g6 _7 e& r     GetModuleHandleA(LPCSTR lpModuleName);
9 G3 V2 W: e: x* [GetPriorityClass 获取特定进程的优先级别
1 w, z/ D  G* A% C" fGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 5 e8 q' d8 [+ v+ {5 B( b$ Q
GetProcessTimes 获取与一个进程的经过时间有关的信息
$ d! O& f' W: ~5 T/ vGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
' k1 z) z/ E' [8 z1 MGetSartupInfo 获取一个进程的启动信息 ; ?+ r9 f- R' B- L- T
GetThreadPriority 获取特定线程的优先级别 # Q; `" m% [( I6 E
GetTheardTimes 获取与一个线程的经过时间有关的信息
8 [! T. m( k. A, k% W& tGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 : s3 _' X: Q' i9 ?, \, e
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 9 U8 o6 Z3 b! |2 u- \# [2 n
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
: x0 a. I  O$ u' ]2 ]1 WLoadModule 载入一个Windows应用程序,并在指定的环境中运行   f* V5 _9 {! y) x
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
0 n3 C( m$ j# _( p+ i8 v4 U) wSetPriorityClass 设置一个进程的优先级别
* l8 u% r# L3 Q0 d: [8 mSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
5 r6 f) P8 e6 a& F( X  ^1 p2 b( qSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
3 b7 ?6 b% {* g- H/ xSetThreadPriority 设定线程的优先级别 3 M. R4 Z+ a, W% w% R9 ]
ShellExecute 查找与指定文件关联在一起的程序的文件名 6 Z1 f" F3 P0 N% ?; z$ m- o" c5 ^& w& i
TerminateProcess 结束一个进程 9 L  D  M% ]9 K
WinExec 运行指定的程序
3 I) U6 n6 r' J+ ~# B12. API之控件与消息函数 5 D& S( ?% d" n# z! H& L
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
& K  X/ C0 w$ A9 D: AAnyPopup 判断屏幕上是否存在任何弹出式窗口
( n  p, V# g+ UArrangeIconicWindows 排列一个父窗口的最小化子窗口
4 E8 x) z2 |/ z+ K- UAttachThreadInput 连接线程输入函数
) Z& x4 L. O; p9 t& S' J6 @BeginDeferWindowPos 启动构建一系列新窗口位置的过程 9 f3 h: n6 |! C8 q) ~
BringWindowToTop 将指定的窗口带至窗口列表顶部
  y2 S* H( W5 i& K5 y% ]; K( Y: FCascadeWindows 以层叠方式排列窗口 , ?7 [3 f) M4 Q, q3 W9 r
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
7 U$ n3 f- |$ ]0 Z) I6 IClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 " N2 c0 e- T! k" z8 M! e
CloseWindow 最小化指定的窗口
# g8 l3 m9 o: C$ ]CopyRect 矩形内容复制
) w2 C( D+ C( h8 aDeferWindowPos 该函数为特定的窗口指定一个新窗口位置 5 E+ l4 i  X/ V7 h
DestroyWindow 清除指定的窗口以及它的所有子窗口 & ^4 H5 t' G' f
DrawAnimatedRects 描绘一系列动态矩形 ( o, z3 {5 V9 P: s+ Y3 ~: C- D
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
9 v' ^$ k/ k' f: D* `2 e: ZEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 . p# D. F0 \& P
EnumChildWindows 为指定的父窗口枚举子窗口
  `5 N0 {! s( x8 S5 W/ N2 QEnumThreadWindows 枚举与指定任务相关的窗口 : F( b- ?! p7 M3 x. i5 j/ m$ F5 `
EnumWindows 枚举窗口列表中的所有父窗口
1 C2 l8 N7 _) `$ A" u4 T7 `, J) |4 [9 |EqualRect 判断两个矩形结构是否相同
: j7 C: U" |0 ^: c' Y6 R, XFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
$ {# a9 r  b$ w9 S/ S- yFindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 $ l) ~  @8 k' u7 E$ L/ f! `
FlashWindow 闪烁显示指定窗口
- }9 S9 @) n' K$ @5 PGetActiveWindow 获得活动窗口的句柄
$ N( P) l1 N) d. X2 GGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
, l4 ]: A* N1 w3 {4 ]# ?GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 6 b- {8 R" F; L
GetClassLong 取得窗口类的一个Long变量条目 * o7 b7 D. \$ |; }
GetClassName 为指定的窗口取得类名
+ _3 `- g- X: u) b) d% V1 W) D; |( [GetClassWord 为窗口类取得一个整数变量 . R5 t0 i, X) b- d1 x* p% d" _5 J
GetClientRect 返回指定窗口客户区矩形的大小 $ \( t4 v1 J% U7 H
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
4 J$ S) D' ^7 H+ x; ^; LGetFocus 获得拥有输入焦点的窗口的句柄 : S& U4 I$ U/ W  G* q
GetForegroundWindow 获得前台窗口的句柄
$ \) F7 j' c& ?* SGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
) C7 ^6 l% ]) e6 g  T. h+ ]GetParent 判断指定窗口的父窗口
. f' y- c9 C* ^# Q; W1 sGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 ! a9 A; |2 v0 W, m2 I8 t
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 - b& O8 o7 Y1 O# O
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
5 S2 z6 t5 ]( ]1 W6 E" v) fGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
6 Z. _: t& ~- _5 C, IGetWindowLong 从指定窗口的结构中取得信息
& w. }3 H% P& F# ~- a6 c. _GetWindowPlacement 获得指定窗口的状态及位置信息
7 O# E" \' g! U6 G+ f4 fGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
0 J0 a( Z- C* E& T. F8 `; N  [GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 ! `. s3 E& Q% O/ V
GetWindowTextLength 调查窗口标题文字或控件内容的长短 6 R+ |- I/ r; y1 e9 m# e0 r" `
GetWindowWord 获得指定窗口结构的信息 5 A8 T2 n; z9 r( o3 x
InflateRect 增大或减小一个矩形的大小
" O/ T8 @- w2 Q% UIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
- v% `/ B5 U0 e0 ~4 vInvalidateRect 屏蔽一个窗口客户区的全部或部分区域 $ R3 g/ Y% _. h6 P8 o+ ~
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
# S- e0 w5 s1 A' O: V0 iIsIconic 判断窗口是否已最小化
) @* `4 H8 g! M; _9 U$ QIsRectEmpty 判断一个矩形是否为空
% c& R/ a! G( s5 l8 g6 a% vIsWindow 判断一个窗口句柄是否有效 - V3 {* [6 K; r0 l: x6 ?* q* [
IsWindowEnabled 判断窗口是否处于活动状态 4 b7 F% W  ?! O" o/ y
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 6 A* ]7 ^( M* u) s1 o* I" p* f
IsWindowVisible 判断窗口是否可见 ( x# P$ P- N4 }9 v% H8 Q
IsZoomed 判断窗口是否最大化 ! S8 d5 w, _- l, q2 p. d
LockWindowUpdate 锁定指定窗口,禁止它更新 8 K! [8 I6 X! U( J+ b; K  ^
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 + x( Z% G+ {6 E3 s; L0 D
MoveWindow 改变指定窗口的位置和大小 , k  j3 @8 P2 t6 ^9 e
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 / q5 K+ \1 K0 a# ^
OpenIcon 恢复一个最小化的程序,并将其激活
* V1 G  T# L% X: j" l& {3 I* W3 v* BPtInRect 判断指定的点是否位于矩形内部 5 d* C- n* A8 t. ?
RedrawWindow 重画全部或部分窗口 0 K0 ^- E4 b7 }% p
ReleaseCapture 为当前的应用程序释放鼠标捕获
) |. W/ M& Q3 I, \ScreenToClient 判断屏幕上一个指定点的客户区坐标
! B2 A+ ]+ A+ P% k7 WScrollWindow 滚动窗口客户区的全部或一部分 1 X' D7 H# D. U( R9 X
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
. O: C" q9 y% \8 C5 S. HSetActiveWindow 激活指定的窗口 . I0 O0 B: w. S- W
SetCapture 将鼠标捕获设置到指定的窗口
/ C/ n$ z' X, e2 {' `SetClassLong 为窗口类设置一个Long变量条目
8 R( r& m- i* N- u% U, O! V; iSetClassWord 为窗口类设置一个条目
' D1 i0 X4 r5 SSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 # ]. `2 Z" t" I$ B
SetForegroundWindow 将窗口设为系统的前台窗口
6 d  f0 Z* H* l1 ]& Y9 iSetParent 指定一个窗口的新父
4 T! x- Y  n/ eSetRect 设置指定矩形的内容 1 |% e! o' z1 \3 y
SetRectEmpty 将矩形设为一个空矩形
: z% C; w  r4 S  T$ z  gSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
3 |) Q$ J% h: B3 V3 O* ASetWindowLong 在窗口结构中为指定的窗口设置信息
- L6 \4 R9 v; q4 X8 X6 B( @1 MSetWindowPlacement 设置窗口状态和位置信息
' k3 l5 Z4 ~# \SetWindowPos 为窗口指定一个新位置和状态
! _- v, R9 r6 [3 k$ eSetWindowText 设置窗口的标题文字或控件的内容 & R3 T( i0 U: r- B( N+ d
SetWindowWord 在窗口结构中为指定的窗口设置信息
3 L! Z4 P( l2 ]# NShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
& T' Q: F  ~- Y; HShowWindow 控制窗口的可见性 + c* X0 [$ [: J! K. e% F5 o9 ^
ShowWindowAsync 与ShowWindow相似
% F0 c6 U. Z  WSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 ; Y5 B! M: g# }! O
TileWindows 以平铺顺序排列窗口
1 K% @( H2 d+ @0 m" Q& pUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 - T: F, ]' t+ v$ ^4 f! R0 h) h& S
UpdateWindow 强制立即更新窗口 7 C& b; w# T: {4 U
ValidateRect 校验窗口的全部或部分客户区
$ Q5 S5 @1 F1 m, B$ ]WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口5 m- v! X6 L+ m1 ?. e% s
高级音频函数—参看《VC++ 编程指南.chm》11.6
% C- L" B- G, o6 [7 @0 ], I     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。; R# Q  [& s. `
     BOOL MessageBeep(UINT uType);
! @0 ?; r/ p3 S该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。5 M4 Z% E- W0 k+ W
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
8 g2 Y8 l! c  |* b2 Y; J
级别
3 b  q' j) p* H) F( R8 _' H8 f
描述 ! G0 H2 F1 d+ g6 U3 F
-1
5 R- p1 a$ H6 R0 W0 V
从机器的扬声器中发出蜂鸣声。
7 |. A7 R) Z: Y8 ~$ O% }; I
MB_ICONASTERISK
0 E3 R4 `: O8 r0 y# t8 P
播放由SystemAsterisk定义的声音。 0 ~" `) L) H/ r" _( P) M, l: @
MB_ICONEXCLAMATION ! O( q6 f5 v1 h5 I. c& M# V
播放由SystemExclamation定义的声音。
9 w; V" k0 f, G! m- ~* J
MB_ICONHAND . @7 D& S9 N+ V9 \) P# a  O7 {& A
播放由SystemHand定义的声音。
% N: J! j! b& ?% X9 d" Z
MB_ICONQUESTION
* }  q& r  u+ A% P. x; i" [0 W5 v
播放由SystemQuestion定义的声音。
) h: N7 ^- W1 @  M4 H7 v
MB_OK # f5 \2 Q% t( t. r: j% Q0 U
播放由SystemDefault定义的声音 $ p% e6 o. L8 ~1 h" u' S6 I! B
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);
$ p; F0 B6 N) S参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。9 m& @6 y: l+ @' f4 [
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。+ @+ [9 X3 D: A& U) R; v
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。# T/ a' X- O+ c$ l. u8 Z# {* A
标志 " T$ r% K  R* c0 X" A: O' L
含义
$ r, F) l! d. _  P0 ?( L" D
SND_APPLICATION
# b9 E  q* l% f8 R  U
用应用程序指定的关联来播放声音。
( D9 s( ?- M9 n
SND_ALIAS
8 j& \" i8 ?4 s% V' T
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 ; I6 r. W- A6 t) |( T( {
SND_ALIAS_ID # }- I3 E! a- X, M
pszSound参数指定了预定义的声音标识符。
! v0 U7 S& s; w9 [6 d
SND_ASYNC
" N3 V" ~( T4 I
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
: E9 o3 }) V: [) |
SND_FILENAME
' I. f% C  e" V
pszSound参数指定了WAVE文件名。 4 h* H  D1 X. x# F' w; R
SND_LOOP / O+ z- h$ `1 O
重复播放声音,必须与SND_ASYNC标志一块使用。
1 r. L2 m  ~- b3 O
SND_MEMORY # G2 W8 T" |* ^7 E
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
( x9 l  }4 z4 z9 M' t0 f5 {
SND_NODEFAULT * M+ ], A' H! Q6 D
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
3 E% n; v9 [% Y# I, F
SND_NOSTOP
$ b5 }% i3 W9 E! F
PlaySound不打断原来的声音播出并立即返回FALSE。 ; k3 D% l% |: G6 B6 m' n$ Z: h) ~) K
SND_NOWAIT 8 x+ n. j9 x: r' j
如果驱动程序正忙则函数就不播放声音并立即返回。 . r1 D' f; z7 h( w
SND_PURGE
" k! `* l4 n' \; a
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
- ^3 ]* u+ H7 n
SND_RESOURCE
# g5 S6 N1 p; W7 B' |8 z
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
" |3 @, j; s% j9 {) @
SND_SYNC
' v' o, S% C+ Z
同步播放声音,在播放完后PlaySound函数才返回。 6 }! s* `5 @/ U  m. X
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
2 D6 ^7 K- v, O( v函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
) |9 Y5 D. o9 J1 P: w0 sMCI播放
. ~2 U( x! \7 M! f  V所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
2 p& h% c- p4 oMCIERROR mciSendString(# @( ?. Z/ n" d, p# O& U
LPCTSTR lpszCommand, //MCI命令字符串7 [) ^* Y, S3 X0 Q
LPTSTR lpszReturnString, //存放反馈信息的缓冲区! G; B; S% f1 f( \2 P/ {
UINT cchReturn, //缓冲区的长度/ y/ G2 ]. P3 N4 Y5 ~" v# d, |: A
HANDLE hwndCallback //回调窗口的句柄,一般为NULL' k2 J6 \: v) e  A, w5 b
); //若成功则返回0,否则返回错误码。/ Y8 r0 K. e! p/ Y- M) U) B
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
3 Q5 K9 t3 B, QBOOL mciGetErrorString(& Q2 E6 n2 }. k" y* J1 ~
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码1 d0 ?7 v9 o* p9 V/ J8 F/ D& }
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
) c2 y  t+ K" Q$ l% @UINT cchErrorText //缓冲区的长度) W$ r, h' T9 T" e$ c3 p
);7 K4 ?2 ~" J" w; r, x1 N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-1 23:06 , Processed in 0.021691 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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