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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
9 y, `; S( Z: F1 J* E( G5 E1 }5 j1. API之网络函数
4 _: e" H: N: C0 f  Q3 @WNetAddConnection 创建同一个网络资源的永久性连接
% E3 a* d- ^4 J  [: |- HWNetAddConnection2 创建同一个网络资源的连接 9 M8 Q" m7 A, r
WNetAddConnection3 创建同一个网络资源的连接
* k8 [/ i( k  j" T; i$ B& rWNetCancelConnection 结束一个网络连接
# \0 Q3 e' O% D' ZWNetCancelConnection2 结束一个网络连接 5 J4 M1 E* ?- c. L; H! b- Y
WNetCloseEnum 结束一次枚举操作 5 V7 C! [6 Q* m( X
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
4 q" l/ ^" `* Q7 Z1 z9 vWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
* r, q( V# z+ g' Q8 x8 HWNetEnumResource 枚举网络资源 ! r% X" y$ G) b' Z2 Z  u
WNetGetConnection 获取本地或已连接的一个资源的网络名称
$ F5 F$ R$ p5 ]% NWNetGetLastError 获取网络错误的扩展错误信息 % n( J5 @1 z9 n& E1 b0 _) F
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
2 }, K- C6 A( K7 ?# G& |' B" K( tWNetGetUser 获取一个网络资源用以连接的名字 1 |3 t- q& z, P' k
WNetOpenEnum 启动对网络资源进行枚举的过程 , R. t* e4 h, i- x' d
2. API之消息函数
; W' f+ L6 F4 n. c7 [BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
; o  `* l4 h9 N1 a- u2 |5 LGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
9 w4 j# \2 a/ _GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 # s6 g  z( F% @. z1 R. h
PostMessage 将一条消息投递到指定窗口的消息队列 4 D0 K+ D- L/ F5 {1 E
PostThreadMessage 将一条消息投递给应用程序 $ ~# x; u4 z( G# `# Y% x2 H) o1 o" W
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 $ x/ s" U' E& W* ^; B2 L, C* T+ H; C
ReplyMessage 答复一个消息
# i9 V/ _' G1 Q' l+ o; mSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 $ p1 ^# g% O+ K8 o
SendMessageCallback 将一条消息发给窗口
) n7 Y; t  _; m  s% Z/ a# m' `SendMessageTimeout 向窗口发送一条消息
7 {( }- E/ a) ESendNotifyMessage 向窗口发送一条消息
! N& Y2 L2 Z5 z% }5 ~# U4 i3. API之文件处理函数
6 G0 Y; @$ Z6 L2 c/ qCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 5 ^+ T/ V! T  Z; Y' \
CompareFileTime 对比两个文件的时间 5 G, K0 C" m+ p* m% ~9 Y
CopyFile 复制文件
4 S) H+ N7 O# L( PCreateDirectory 创建一个新目录
: S; D9 s. r& ^1 I0 KCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
" u. [. e7 i, o) ~* JCreateFileMapping 创建一个新的文件映射对象
* E3 c* t, |, {" TDeleteFile 删除指定文件
: D) D1 a; {* z: [# |; ~3 s& `DeviceIoControl 对设备执行指定的操作
% t- u3 A# X9 `$ S% }DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 8 S( \' ]' o4 l! i) v$ S
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 9 A! {) |/ v: i& z8 I9 K
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
2 _7 Y; V' o7 O2 w" CFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
9 T9 C( p5 r/ ?1 ]. y) o4 w& t3 `7 o7 mFindClose 关闭由FindFirstFile函数创建的一个搜索句柄
8 a- r& Z6 a9 s1 A' n3 CFindFirstFile 根据文件名查找文件
: }3 o- q1 J& S2 RFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 7 V6 o" P2 k3 \) \8 z' E, a
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 8 l# {8 A3 \- t+ B
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 , M. l% c& q: M- }
GetBinaryType 判断文件是否可以执行
# D; t/ A# s. B  f, o, s4 [GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
) O: C- {5 O7 D7 u' X4 U3 }* fGetCurrentDirectory 在一个缓冲区中装载当前目录 0 b  S9 R- w4 z/ P
DWORD GetCurrentDirectory(
3 G1 @6 i6 k+ m5 S- R4 a( n    DWORD nBufferLength,    //缓冲区大小. H) C! B) b' D' p
    LPSTR lpBuffer          //缓冲区的首地址8 B7 q5 Y2 ]5 B$ y* t+ A
    );
" ?: P# D& C/ ^1 V) h6 H' w3 X3 KGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 ! n& q9 R* i- H+ }$ O( T. I
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息   [& Z1 v* q4 J* V
GetDriveType 判断一个磁盘驱动器的类型 - e5 u* R5 E$ G% i
GetExpandedName 取得一个压缩文件的全名
  I4 R, v. G4 n; z5 L& |GetFileAttributes 判断指定文件的属性
, H" `7 C) W) D# a7 b7 ?% X1 ^9 TGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 1 r5 N- l" L$ m1 D9 S' ?5 S1 n
GetFileSize 判断文件长度 ; \: k( S$ M7 q
GetFileTime 取得指定文件的时间信息
* R# G- E! Z; ^) N  o( q- nGetFileType 在给出文件句柄的前提下,判断文件类型 : j7 {+ m2 M7 u' _  N0 U" b" k+ k
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 ' Z! S5 m) }7 g2 l( ~
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 2 v' m; |; @) n0 A
GetFullPathName 获取指定文件的完整路径名 ) |+ D- a* p+ N1 {
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 # D; |7 X. ?1 y' A) Z* Z5 q
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 5 G# M% W4 k) X9 h6 s. J
GetOverlappedResult 判断一个重叠操作当前的状态
, o" {  [: V8 }7 i( P7 k: V# m5 RGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
. j5 e9 i: M9 l7 [9 f: ~# A! QGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 * L5 q$ s) x8 `" q
GetPrivateProfileString 为初始化文件中指定的条目取得字串
! E$ O/ @: ^4 WGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
  p  X8 T; i2 NGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 % d; D1 j% j: {8 \
GetProfileString 为win.ini初始化文件中指定的条目取得字串
4 @- B3 `. b/ |' U$ _) fGetShortPathName 获取指定文件的短路径名 + \& _! c* |& Q' _5 Z
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 & i6 H. o, |; W5 L8 K2 {  l
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 * z, f; O- _' u; {$ k$ I9 J8 X
GetTempPath 获取为临时文件指定的路径
0 @1 V' Z1 s) O+ KGetVolumeInformation 获取与一个磁盘卷有关的信息 ) ^" W' w( L: b, R6 f' @
GetWindowsDirectory 获取Windows目录的完整路径名 % O0 l3 o" O7 A% c
hread 参考lread - S, ~; b( z1 u, l  M  V4 {+ q8 K
hwrite 参考lwrite函数 3 G! h  U, R% m2 x# n4 X
lclose 关闭指定的文件 ) }( f/ t3 c7 x  O
lcreat 创建一个文件 . T' U8 X, o& f$ d" K
llseek 设置文件中进行读写的当前位置
2 ^, @$ ~* r1 u8 _! g  x  s0 ~% [LockFile 锁定文件的某一部分,使其不与其他应用程序共享 1 ^( I1 c$ A8 E! i. m6 l
LockFileEx 与LockFile相似,只是它提供了更多的功能
1 m: J1 O3 \3 a" m6 \5 ^1 wlopen 以二进制模式打开指定的文件 1 M$ w; P- {0 f( x
lread 将文件中的数据读入内存缓冲区
* c- J- N% H8 M  J  k% [% K# wlwrite 将数据从内存缓冲区写入一个文件 2 l3 l- J  E9 \/ N0 K
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 ! N  k" x4 ~! _7 R: g+ ^- ?: C4 K
LZCopy 复制一个文件   G7 F. W% y. `% k: A
LZInit 这个函数用于初始化内部缓冲区
5 a+ l# U, d1 F8 l: q! |LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
( K$ e3 t/ j0 \5 r$ L/ R4 GLZRead 将数据从文件读入内存缓冲区
  @1 p8 f. S2 Y" ^0 t  _LZSeek 设置一个文件中进行读写的当前位置
. [, ?; x4 T, [3 e- jMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
5 A, x, L' A4 {2 _+ VMoveFile 移动文件 # v9 k, f3 M- U7 D; `
OpenFile 这个函数能执行大量不同的文件操作 , g) {/ J7 g% {
OpenFileMapping 打开一个现成的文件映射对象 6 D  `; D( v  k( ]8 X; Q7 C
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
2 d; J5 f5 Y8 N( ~9 VReadFile 从文件中读出数据
+ {. v  ]9 r" B: q) U5 GReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 # [6 f/ d# C1 y( [  a; _
RegCloseKey 关闭系统注册表中的一个项(或键)
0 ^( ~. y- u5 p0 }) tRegConnectRegistry 访问远程系统的部分注册表 . m2 a6 j+ a5 R4 M5 L, k
RegCreateKey 在指定的项下创建或打开一个项
  P5 H8 j5 n% O/ S! o/ WRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 & x( F" L6 O8 K4 j5 S0 n+ x
RegDeleteKey 删除现有项下方一个指定的子项 2 g) k5 Q" ^/ }' D
RegDeleteValue 删除指定项下方的一个值
+ o. }- u" n- c" ~/ X8 }RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx 4 p5 ?  ?1 Z& |5 K
RegEnumKeyEx 枚举指定项下方的子项 ( x" l5 q4 L% [; l- d1 w- g* N4 f& i
RegEnumValue 枚举指定项的值 & J& e# H. p/ x4 j) R/ @
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 " ^3 u8 e* h* E' A0 U
RegGetKeySecurity 获取与一个注册表项有关的安全信息
0 E- t3 ~3 T7 J: |9 ^( k0 F6 x5 TRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
% V7 \6 D4 L4 p2 |7 K6 KRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
8 j6 y# @' j( s3 p) jRegOpenKey 打开一个现有的注册表项
: F6 B# ^8 E  U5 f0 e2 bRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 3 C9 E! n. M4 U  [. B
RegQueryInfoKey 获取与一个项有关的信息 + E2 ~5 C% f. s* C
RegQueryValue 取得指定项或子项的默认(未命名)值 + V% `1 l4 e! R5 ]  c0 a! {3 M# i
RegQueryValueEx 获取一个项的设置值
, G& b9 P) I* H8 J6 aRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
2 J% H3 p6 R9 P$ ~RegRestoreKey 从一个磁盘文件恢复注册表信息
4 ^/ a4 n$ O- |$ c2 WRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 , A2 b5 M# j1 O  W8 I
RegSetKeySecurity 设置指定项的安全特性 . F4 K0 W# l4 x9 P( F/ R2 T8 P
RegSetValue 设置指定项或子项的默认值
  d: u' s: A7 x+ ORegSetValueEx 设置指定项的值
* w* q% i- q3 N6 J- t: w9 lRegUnLoadKey 卸载指定的项以及它的所有子项 + Y9 N0 J3 w& f! y, Q) W
RemoveDirectory 删除指定目录
; K2 i  p. h. A, Z* w0 PSearchPath 查找指定文件
! d- O6 F- |! y4 YSetCurrentDirectory 设置当前目录
7 X% V: b1 e8 e( k, B) A' USetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 + D* t: s( A  k$ g2 c
SetFileAttributes 设置文件属性 1 H4 X2 g% A* }. f9 Z
SetFilePointer 在一个文件中设置当前的读写位置 * ]7 }/ i2 R% [0 d
SetFileTime 设置文件的创建、访问及上次修改时间 ; M3 g+ `0 h" A
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
4 B, F0 s* L7 l4 ^/ lSetVolumeLabel 设置一个磁盘的卷标(Label)
5 D6 f4 l. r+ y8 f* WSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
  H" w9 _2 v0 R' eUnlockFile 解除对一个文件的锁定
& o+ _( Y7 V# K1 b6 F, {% ?1 tUnlockFileEx 解除对一个文件的锁定 8 p5 o) j7 x: t+ d) x# l2 q
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 ' @: V% d: I" `& K  f
VerFindFile 用这个函数决定一个文件应安装到哪里 & f" G* \% g3 z6 M. }
VerInstallFile 用这个函数安装一个文件 5 M2 Z* M& i5 j5 a# P% w/ r( S% m
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称   B$ G9 H& E9 T( m6 j1 U
VerQueryValue 这个函数用于从版本资源中获取信息 ; [2 Y- T9 Q" E& L( m# `" A
WriteFile 将数据写入一个文件
2 d& v2 _) P- t2 F% E- s- nWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
5 i  x0 g9 X* m7 P$ ?% xWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 . v+ }: D7 V5 |8 [
WritePrivateProfileString 在初始化文件指定小节内设置一个字串 / F9 t# j2 O/ e/ }* D6 E
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 + c9 h1 M, @& {
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 * b- E! K! F7 W) Y3 |& A
4. API之打印函数
7 G2 @5 K6 {9 O6 vAbortDoc 取消一份文档的打印 - d( f3 M, T9 z3 g0 a6 }4 s
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
" ?4 Z: n6 `0 eAddForm 为打印机的表单列表添加一个新表单 ' M& ^' A1 T* ]0 P+ [: Q% h
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
0 ]' e' P/ O/ J. wAddMonitor 为系统添加一个打印机监视器 2 K7 \& X* V- G% j4 p7 z
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
; U" C/ Y6 F" ~% mAddPrinter 在系统中添加一台新打印机 4 w/ h- ^' r, P( }/ u' k
AddPrinterConnection 连接指定的打印机 - ^# S: L8 n, a5 O9 d9 N: g: R+ @
AddPrinterDriver 为指定的系统添加一个打印驱动程序
4 w, T6 r6 J; i8 y, _AddPrintProcessor 为指定的系统添加一个打印处理器
; d4 V( H: {( t4 dAddPrintProvidor 为系统添加一个打印供应商 , c9 }2 |& o" Y! b
AdvancedDocumentProperties 启动打印机文档设置对话框
- C: e1 g! t! d) V% DClosePrinter 关闭一个打开的打印机对象
$ O5 N0 `" H2 \' K( T* G- NConfigurePort 针对指定的端口,启动一个端口配置对话框 9 ]  M! R6 a! l6 P/ c
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 ; e/ T8 T/ H5 F9 O% ]. r1 W$ @
DeleteForm 从打印机可用表单列表中删除一个表单
4 }7 [" |8 U( Y4 @. B. c- |DeleteMonitor 删除指定的打印监视器
) Q% q% r% c& S6 ^1 H$ t$ ZDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
, x! Q; u* w/ \+ Q2 c  }3 ]& ADeletePrinter 将指定的打印机标志为从系统中删除 ! e# o6 T) L1 T
DeletePrinterConnection 删除与指定打印机的连接
0 J% e/ f- F! `9 WDeletePrinterDriver 从系统删除一个打印机驱动程序
- V$ E3 j6 I2 W- p, `' ADeletePrintProcessor 从指定系统删除一个打印处理器 # T4 J0 l0 q$ I; ?: T4 q5 A+ {1 C: i
DeletePrintProvidor 从系统中删除一个打印供应商 $ x/ ]" ^- z) R6 O
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 ' `2 c1 x3 L* R( L& D9 Y8 i1 y$ J
DocumentProperties 打印机配置控制函数
/ `" i* {% s- u- o' O. u- k; iEndDocAPI 结束一个成功的打印作业 & e$ r% \& [, ^" Y9 }( @& N
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
) l! }$ s% @( [8 G; z/ tEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页   q$ P3 k- t0 g3 U& h& Z: o6 \( d
EndPagePrinter 指定一个页在打印作业中的结尾
( _- Q$ Q$ y- y, ]; k. [1 MEnumForms 枚举一台打印机可用的表单
9 g' l5 J5 P2 Q% cEnumJobs 枚举打印队列中的作业
% K7 c$ p# ^) f# K  \" ~EnumMonitors 枚举可用的打印监视器 4 d$ ?  |! J# |& C% }# G
EnumPorts 枚举一个系统可用的端口 $ S# ?1 J4 o& `+ b( }
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
4 e  U( m/ z8 H, }EnumPrinters 枚举系统中安装的打印机 ! s% M& g# z8 F% m; b; z
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 9 }. \/ c; @5 ?: X* T5 `2 {. v9 T
EnumPrintProcessors 枚举系统中可用的打印处理器
( D, K9 A% P* F- lEscape 设备控制函数 ; t4 m. |# I  {# r2 f. d3 Z; Z& c
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 9 n, W  v; W0 @( C' ]
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
4 ]4 q4 B# {2 }, ^8 ?$ i1 }: X7 TFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 ' B0 [+ @# t' N7 ~6 n" T5 m
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 6 d7 }& F6 ^' ?/ N( ^
GetForm 取得与指定表单有关的信息
3 I8 C2 g( U' B  E' z" V0 ZGetJob 获取与指定作业有关的信息 : O. d* h* B/ Q; y- `" U0 u
GetPrinter 取得与指定打印机有关的信息
( d7 a* D$ M/ ^/ l; F0 r/ ]GetPrinterData 为打印机设置注册表配置信息 9 p# ~' f3 k, r0 G5 v& g* ]! x
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 $ C1 v" \) J1 M; q/ H
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
6 Z# y% F+ y" N: a+ IGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 , k9 B; V& u8 I; r* ~) H
OpenPrinter 打开指定的打印机,并获取打印机的句柄 + x+ {. d3 d/ \& C
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 ! q- R( r8 h! p( U8 Y
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
  c5 `5 T3 V& T5 XReadPrinter 从打印机读入数据
4 \; l: e; \( G7 N; n" pResetDC 重设一个设备场景
  n0 }+ Z7 h; MResetPrinter 改变指定打印机的默认数据类型及文档设置 ) g  C0 Q' G" ?1 o9 k; k
ScheduleJob 提交一个要打印的作业 % u1 ]2 K; x& R* q! v! F' K
SetAbortProc 为Windows指定取消函数的地址 # ?6 a: G0 w- I. C
SetForm 为指定的表单设置信息
' l9 b# m5 _6 KSetJob 对一个打印作业的状态进行控制
& t3 c' P9 `/ @' }; eSetPrinter 对一台打印机的状态进行控制 " s7 c) q" c9 r( L" R$ X
SetPrinterData 设置打印机的注册表配置信息 * h* d8 n) Y2 Z$ }# e, J  d! q
StartDoc 开始一个打印作业
! I0 [  C0 I2 e) ^' e# ?StartDocPrinter 在后台打印的级别启动一个新文档
% p% e( J; R/ G0 Y! S: ZStartPage 打印一个新页前要先调用这个函数 " u. r6 M6 I8 B
StartPagePrinter 在打印作业中指定一个新页的开始 / V# L& s, M6 D9 ^" y5 p
WritePrinter 将发送目录中的数据写入打印机 0 A$ p6 x: i2 [! ?5 {
5. API之文本和字体函数
3 H% X' I$ k& TAddFontResource 在Windows系统中添加一种字体资源 8 }/ F- ~! }" N  C- n
CreateFont 用指定的属性创建一种逻辑字体 9 D8 e) K! e" c/ D) n
CreateFontIndirect 用指定的属性创建一种逻辑字体 " n4 d- P" h6 G* q' G% d
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
2 D+ `4 l8 e, @4 i! YDrawText 将文本描绘到指定的矩形中 # V0 _9 q) f2 B
DrawTextEx 与DrawText相似,只是加入了更多的功能 9 Q9 T; q0 Y4 f3 ]" ~; T3 {; y3 i
EnumFontFamilies 列举指定设备可用的字体 0 I( b. S% X! i- l: p4 n8 @9 k( Z" a. H
EnumFontFamiliesEx 列举指定设备可用的字体 + l: G" Q' O* Y9 F5 n
EnumFonts 列举指定设备可用的字体
1 w. l0 l# j, ~; z; KExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 ) t) t; w* G% j' U
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 8 ^* ~# n& I- N9 k
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
0 d0 l& J! P: e2 z+ J9 z5 eGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 1 J% @8 ?* z" ]3 r$ Q0 J
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
6 X1 P4 i: a4 |$ E, J9 c; w) e' bGetCharWidth 调查字体中一个或多个字符的宽度
3 k! c) i6 u" N" [GetFontData 接收一种可缩放字体文件的数据 3 ~9 J. n5 U- H
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 4 T2 W5 I* \$ A
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
# a* X5 N6 i+ f, nGetKerningPairs 取得指定字体的字距信息 / l9 A0 Q+ C" W! L5 s4 k
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
, _; C( _  n9 E7 x" FGetRasterizerCaps 了解系统是否有能力支持可缩放的字体 % n0 a6 X; e. E' n9 ]/ d
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 : B& L: o( x! a- j
GetTextAlign 接收一个设备场景当前的文本对齐标志
0 [. W! A  S4 _# G' dGetTextCharacterExtra 判断额外字符间距的当前值
/ o1 a1 n) _& l# o- ^GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 7 P$ _3 N4 [) G& p" H, h
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
7 \3 p* |& Y/ X0 i0 |( J! `GetTextColor 判断当前字体颜色。通常也称为"前景色" - F$ j8 Z  U* |8 w+ @9 E
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
/ S2 ^( L- w& HGetTextExtentPoint 判断一个字串的大小(范围) 8 J4 s7 @* e- U9 E. W, q
GetTextFace 获取一种字体的字样名 0 G) M  Q4 O. `3 o( f' q7 m
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
5 P6 @* H( u: n7 H  i: LGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
4 W( Z" Y7 e/ T$ bPolyTextOut 描绘一系列字串 7 b& o) E/ S! Q9 A' n
RemoveFontResource 从Windows系统中删除一种字体资源
! {, }# w6 x+ L3 ^0 RSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
3 I/ H! d  z( x4 f% H7 ZSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 ( G6 Z" W1 r( L6 k4 p
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 / e3 f2 B2 k# [* G9 V
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"   C8 Y, @; h* F! F3 ~; e6 R1 s
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 ) J, F8 }. T0 k6 z, G! J
TabbedTextOut 支持制表站的一个文本描绘函数 $ y+ x9 s4 U" i9 ]6 q" O8 q
TextOut 文本绘图函数 . @8 L& d: `; n. _
WINGDIAPI BOOL  WINAPI TextOut(
6 D/ U) {4 r0 W2 @0 X0 aHDC,     //输出设备
5 \2 s  X$ O7 g# a5 ?- ?- F# Cint,     //输出的横坐标
6 s4 B! E  y1 f+ O* W0 ?1 Jint,     //纵坐标
  N. k6 h: }- x  S& z1 I0 q) DLPCSTR, //输出的文本str8 n5 ?+ ~1 E8 X5 N) G% c$ M( z4 q4 p
int);    //文本的长度:lstrlen(str)
) ]9 j2 R% O1 A) N& V! d6. API之菜单函数 , e9 N2 V6 a# U6 ?4 l: I6 j
AppendMenu 在指定的菜单里添加一个菜单项
/ m1 l5 A1 P4 T7 \CheckMenuItem 复选或撤消复选指定的菜单条目
: o; N0 z' C) jCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 ) Y& C+ t9 w; {. U! t0 x6 H
CreateMenu 创建新菜单
: }2 i3 Q! P% rCreatePopupMenu 创建一个空的弹出式菜单
' V4 |+ f/ G0 c5 a8 l- |/ @DeleteMenu 删除指定的菜单条目
  h1 |/ |$ e5 i3 s3 o; HDestroyMenu 删除指定的菜单 * Z: `3 o. g" e
DrawMenuBar 为指定的窗口重画菜单
' z( i6 E& {7 {6 ]EnableMenuItem 允许或禁止指定的菜单条目
5 T7 U3 ~* p+ X5 CGetMenu 取得窗口中一个菜单的句柄
) G+ y: e* U1 Y. g$ fGetMenuCheckMarkDimensions 返回一个菜单复选符的大小   _9 U% m% D: k* p1 u! W0 |
GetMenuContextHelpId 取得一个菜单的帮助场景ID
1 p: A* T$ n- V7 j7 Y8 RGetMenuDefaultItem 判断菜单中的哪个条目是默认条目
: m/ r1 G5 S+ i2 U+ ?5 Y$ PGetMenuItemCount 返回菜单中条目(菜单项)的数量 - }: d8 j! ]$ T) u# _' C  D/ ~' k) R
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
0 I2 j# F5 D( j, L+ c: {% LGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 1 V" \/ {2 v$ J
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 # I& Q& W% i6 V+ b3 `
GetMenuState 取得与指定菜单条目状态有关的信息
4 R0 S* f* D+ s, c# s5 N: i) eGetMenuString 取得指定菜单条目的字串
- `* b( S+ x  ?0 rGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 : V6 Z9 e" N" \6 t' D6 ~$ S
GetSystemMenu 取得指定窗口的系统菜单的句柄   p( x+ j1 }9 [; s8 v* ~
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
1 e1 i8 t' g8 _! @9 r* qInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
2 f. w9 U6 ^6 \2 TInsertMenuItem 插入一个新菜单条目
$ @+ W) x" i4 f+ S! K# O5 l- {( qIsMenu 判断指定的句柄是否为一个菜单的句柄 3 w! E3 B& P& ~" `# d2 t( U3 F" L
LoadMenu 从指定的模块或应用程序实例中载入一个菜单 / h0 ~4 b3 k) a- A% r1 P
LoadMenuIndirect 载入一个菜单
5 d7 \0 m4 F" T" J# z2 [# TMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
7 Y3 N1 o. L+ l: fModifyMenu 改变菜单条目 : T' B  A7 N: h: Y
RemoveMenu 删除指定的菜单条目
) q) H9 \8 |0 [5 `6 @8 RSetMenu 设置窗口菜单 $ T+ X8 P) l2 j% d4 q
SetMenuContextHelpId 设置一个菜单的帮助场景ID
( l- Y; @, }* p/ ~) nSetMenuDefaultItem 将一个菜单条目设为默认条目 + V, l* l/ f2 @
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
) v- N. U0 Q) k9 K, R$ O: TSetMenuItemInfo 为一个菜单条目设置指定的信息 & X7 B% I9 M" s8 m7 g
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 $ z! r5 I+ {% p" I5 N0 D: A0 `, X
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 ) s( o: r, f' ~
7. API之位图、图标和光栅运算函数
: c+ T; J% [+ e2 \) y* F6 [BitBlt 将一幅位图从一个设备场景复制到另一个
/ Z$ b0 E: Q9 V' F* q3 H1 [     WINGDIAPI BOOL  WINAPI BitBlt(: `6 ^$ X2 a  J
HDC,     //目标HDC
/ f  ^% H6 x" M4 bint,     //X1, h. p1 b0 x+ ?, @7 M* |6 e4 S
int,     //Y1
6 s1 F& o8 `" Fint,     //width
# M1 x5 J# E, T, S7 @4 c( V( y  rint,     //height: m5 M: o+ t! g. \) B$ T8 n
HDC,     //源HDC) j2 F6 O( w- Z0 ^" ~- S4 u
int,     //右边的距离
4 M; Y; `2 r; ?9 yint,     //??
* O1 z/ w! Y4 L+ F% VDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
6 f$ w/ q, o7 Q: T7 yPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS# L3 h; G. B) e. E% d
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序   D, h* }: S( W
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
6 u/ E* h6 V4 x) s; }4 r" m8 JCreateBitmap 按照规定的格式创建一幅与设备有关位图 * u$ k, T( I6 [
CreateBitmapIndirect 创建一幅与设备有关位图
/ F. r% l1 \' F  D. V" |CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
6 a' m' X, F& ]( A3 {2 i8 |( JCreateCursor 创建一个鼠标指针 ' \& g% r! d  |
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图   O$ m; D& F/ o
CreateDIBSection 创建一个DIBSection
- W- E/ Y& T' N0 Z5 @CreateIcon 创建一个图标
# f5 O  a" \1 y: i9 G* yCreateIconIndirect 创建一个图标 1 Z! e; L" l1 l1 S0 P: y- s
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 , J0 {9 G5 o1 m' x: t$ I
DestroyIcon 清除图标 ; M- ^; t4 F5 x
DrawIcon 在指定的位置画一个图标 / s2 v  Q& k1 N# Q1 i  B8 x
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 8 ]* S8 K* B- z
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
+ I* u0 e1 ^" Y/ x0 T1 o. P* XExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
3 }: }2 T- ^! I! M9 ~4 iGetBitmapBits 将来自位图的二进制位复制到一个缓冲区
3 Y: f$ c6 ?8 @* i  N/ q' OGetBitmapDimensionEx 取得一幅位图的宽度和高度
/ j. J+ g' `0 p. ^. M4 LGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 , @! k+ M& t5 p# _. S
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
& F6 G/ X4 b5 c. b  X8 o/ ^. mGetIconInfo 取得与图标有关的信息
% O' J9 n0 V" n: x6 b! H8 aGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 1 d8 U) q) x1 R+ O
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 $ {- B( u& U0 ^6 N, i2 _
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 & ^! W; t! _, \; _
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 " l/ T8 t% |" [2 X) p0 g
LoadIcon 从指定的模块或应用程序实例中载入一个图标 4 a! r0 q( `$ v& f
LoadImage 载入一个位图、图标或指针
" v5 m5 v8 g9 q* z+ T$ Z( _, PHANDLE LoadImageA(( T5 J1 O7 H7 v2 [
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
  r; c4 z$ a% r! v% j  W8 A0 e/ W    LPCSTR,               //资源所在的目录:c:\help.bmp
" D% g4 U" L5 _# g    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE, @9 U- x5 H1 m9 s
    int,                  //
( s6 w% e. o$ g. K; M+ W    int,                  //
6 a$ |& y1 g* Y7 C. Z* H! a/ A( UUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
6 h( k! z/ k4 C6 Z) `R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
, ?* N  S5 h+ I) _. o, r5 b4 }- PLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
3 c  G" _/ o0 JMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
" b6 g: _( c- Z3 t# d: MPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 & q8 Q3 L0 j0 y1 [/ E& @
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
3 e+ R6 U) O$ Q5 X/ I) BSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 . |  O8 E; m+ q- Z: C
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 / ~' G7 ~7 t6 J! f& V
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
  I) q( @+ N& M1 j% s# i+ cSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
' y6 ?# \  j( I' cSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
( w# `8 a+ a  \SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 ! T* \4 m+ j+ I( D
StretchBlt 将一幅位图从一个设备场景复制到另一个 7 [) B) k0 \9 s8 f0 l
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 ' ]# q% Y& f" r9 D, z$ K
8. API之绘图函数 4 y' D0 b0 C  x2 z% W
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 : U& d8 l# [) q( r+ @
AngleArc 用一个连接弧画一条线 , s2 k8 c) H" A1 X% c
Arc 画一个圆弧 : [* o* x4 T; r# H7 O& \0 o: L
BeginPath 启动一个路径分支
1 i7 I% p  F8 ]# a3 r& J7 Z9 qCancelDC 取消另一个线程里的长时间绘图操作 5 B- F$ U. g3 ~
Chord 画一个弦 8 F; r* w6 z  y; G' ~
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 8 h. u' Q1 C. }+ o* X4 I7 q
CloseFigure 描绘到一个路径时,关闭当前打开的图形
: Q% E! P$ p& [1 cCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 ' I+ H" }7 j/ t- A) o8 F9 |$ X
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) 4 a% j( E( W% p9 T! g) H
CopyMetaFile 制作指定(标准)图元文件的一个副本 2 K1 D( ]4 a7 O0 y
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 ( o/ O4 h; x/ H6 D/ C) a
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
' i6 r+ S! J7 R1 pCreateEnhMetaFile 创建一个增强型的图元文件设备场景 - r' C& p( ]6 [
CreateHatchBrush 创建带有阴影图案的一个刷子
8 T* ?4 v( v' H  e/ ^CreateMetaFile 创建一个图元文件设备场景
& T) [5 H6 t& T6 bCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 , W1 F& r$ w1 W0 C2 F; I; G
CreatePen 用指定的样式、宽度和颜色创建一个画笔
6 r' M8 ^. J" l  z# D1 n* WCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 % r8 @0 y& i4 F5 K5 l& Q' ^# N  p" X0 F
CreateSolidBrush 用纯色创建一个刷子 + d% S( |$ a: c1 e" e
DeleteEnhMetaFile 删除指定的增强型图元文件 % J+ ~3 T) [6 G* A+ X
DeleteMetaFile 删除指定的图元文件
- I( Q4 U; F5 K4 `2 A* i6 HWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
/ Y1 ~. R% j  n5 dDrawEdge 用指定的样式描绘一个矩形的边框 ! O; n$ r/ Q- ~+ b2 ?* J% G! q. ^
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 , A7 u0 ?& R$ `# C( a) P  e
DrawFocusRect 画一个焦点矩形
4 T, N' s9 k% K) Z8 M; V) w- Y8 zDrawFrameControl 描绘一个标准控件 3 S# _" \# r* A; j7 s$ a2 K/ k
DrawState 为一幅图象或绘图操作应用各式各样的效果
6 {* Q3 }# C/ Y9 y4 C7 P) yEllipse 描绘一个椭圆,由指定的矩形围绕 6 {9 I! j6 a* V( ~: \  z" `
EndPath 停止定义一个路径 . U. L; V2 m* g" \8 X0 s2 A+ k
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 6 k9 R0 u9 G- T% y
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
% Z- q  \. ?6 q- l( M7 ~EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
* `( D" Y% b. C& s1 ]& o# \: ?ExtCreatePen 创建一个扩展画笔(装饰或几何) 7 Y* v' K7 o% W
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
/ V* ^1 p3 W$ U1 R+ j$ [; C/ fFillPath 关闭路径中任何打开的图形,并用当前刷子填充 - x9 O. R. u6 E8 d  X
FillRect 用指定的刷子填充一个矩形
/ u: X( N  D9 l7 `# {* BFlattenPath 将一个路径中的所有曲线都转换成线段
- ^1 G' X0 c: XFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
8 a$ c1 W. I6 g. K; A( ]FrameRect 用指定的刷子围绕一个矩形画一个边框 8 n. A. p; x1 g
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 0 `3 ]1 t9 V2 w0 Q- t! ]1 e5 J
GdiFlush 执行任何未决的绘图操作
+ a/ v3 V) s7 _: T) JGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 # Z+ p$ f* A* {
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 : s: A& n! G% W0 Q, A
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 0 [# Q/ R+ [+ ^0 s% N  Z: g1 J3 w
GetBkColor 取得指定设备场景当前的背景颜色 ; C# m2 Y* q, i9 I! o" ]0 h& C+ _
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 & ]) {9 K1 p7 e5 O
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
3 F8 c  x9 |" O0 w! H6 E8 bGetCurrentObject 获得指定类型的当前选定对象
7 I0 }; F3 `2 g1 C  M' I" ]: bGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 6 A" }" m9 H6 W9 J* A; u7 y
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 0 A7 Q  {% }% ]* F% M
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
0 {$ d/ m& z7 _3 J" y( l3 y' {GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 $ O- l1 i$ m! k# F! C8 T
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 # n% I" P  Z) D  w; F
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
# N; K$ }4 H9 g8 }GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 ' |+ {; l3 }7 N! Z) G1 q  S9 ]
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 + A5 V( ]! _* r  ~0 C7 Q* ]7 W6 z
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
- M: l/ B  I& |0 w% o. e, ~GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 2 y- K! d+ {9 e: o7 U$ w
GetObjectAPI 取得对指定对象进行说明的一个结构 + ?9 E9 T8 p$ p) v
GetObjectType 判断由指定句柄引用的GDI对象的类型
, M3 w% }4 f( x- pGetPath 取得对当前路径进行定义的一系列数据
1 I" a+ P* C# K- z& h0 ~$ LGetPixel 在指定的设备场景中取得一个像素的RGB值 2 l; L; ^6 y$ H8 e" o( m& S
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
7 k( x0 H+ u4 [6 e  h$ ?5 R0 j0 f# WGetROP2 针对指定的设备场景,取得当前的绘图模式 7 X9 j! q1 G' L* A, Q
GetStockObject 取得一个固有对象(Stock) ( \1 \1 }% l& @
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 . ]) G# v. Q  L9 l, P9 x8 e% i9 P
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
: _3 k9 `5 M, S: @$ jInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
- X# {/ r6 }! \& u8 c- o4 ]LineDDA 枚举指定线段中的所有点 ( a7 C& D9 T$ K: e# P
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点 8 \8 ?  K- t2 R" Q" x3 j. g
MoveToEx 为指定的设备场景指定一个新的当前画笔位置 / w* t$ U% D" K7 o. ~9 n- Z
PaintDesk 在指定的设备场景中描绘桌面墙纸图案 7 K; l( S# G" q5 u
PathToRegion 将当前选定的路径转换到一个区域里 5 C( P; o% q! s7 a1 q
Pie 画一个饼图
5 i, w! O% \" l) x4 U+ m1 A( zPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
: O9 o4 }6 ]. z( ]( h, nPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 9 X6 u8 }# R. }. \
PlayMetaFile 在指定的设备场景中回放一个图元文件 / B/ @( q. N8 g
PlayMetaFileRecord 回放来自图元文件的单条记录
6 f" l8 D( @' T  O6 z$ F# A' cPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
3 ?: u8 ~" C7 k! M6 Z# EPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
) Z* \; K+ ]/ N2 [' _Polygon 描绘一个多边形
2 A4 x4 C$ n- {! O# {# e5 YPolyline 用当前画笔描绘一系列线段 ; C; c1 f) r4 E# b+ }
PolyPolygon 用当前选定画笔描绘两个或多个多边形 ' M/ ?, m& v) }6 Z, j8 d; L$ a
PolyPolyline 用当前选定画笔描绘两个或多个多边形 ! |6 F. O8 d: u4 ~8 D: t6 B
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
0 S. z! {; u2 A. `; A2 e- T1 oRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 3 n4 N, ^9 a0 u7 z- k
SelectClipPath 将设备场景当前的路径合并到剪切区域里 4 W3 r  h. h' A, S: U; f2 E$ \
SelectObject 为当前设备场景选择图形对象 4 L, G0 R, R0 T6 G
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);/ N9 w! @9 H5 n; e
SetArcDirection 设置圆弧的描绘方向
& G- z" y6 E* E# b$ u, l* V- d3 ESetBkColor 为指定的设备场景设置背景颜色
5 c% S+ @2 ^7 S9 B. hSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 / K7 C- S2 |: L# j4 {  q9 ~
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
. {3 m; X& h$ sSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 7 U1 R4 P$ I: Y. t7 F& i
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
( ^0 Z4 Z, Q+ T: S4 Q+ B& V8 f$ N0 vSetMiterLimit 设置设备场景当前的斜率限制 ) e  D0 \- r. b/ Q$ B! |8 k
SetPixel 在指定的设备场景中设置一个像素的RGB值
8 e" A" V8 i* q# I  L0 P- ]SetPixelV 在指定的设备场景中设置一个像素的RGB值 4 d7 C: _5 ^" ?/ r, a2 U
SetPolyFillMode 设置多边形的填充模式
# v4 k$ k5 e/ d0 ]" _SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
& d$ R( P, E! j2 j* U) a9 i6 KSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 $ T/ `7 b, v& j, b9 l' e+ H/ v( d' v  ?
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
1 ~* @/ j7 f4 M) e- RStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 2 w+ q+ ~6 r9 V. V. k
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
9 h2 d/ m: b2 J: a6 VWidenPath 根据选定画笔的宽度,重新定义当前选定的路径
. S7 n, v+ F2 u9 n2 v1 y( m( T9. API之设备场景函数
# ], O) @# q2 h2 g3 F; VCombineRgn 将两个区域组合为一个新区域
/ N7 N6 m% x" ~4 v. f7 K: K! {CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 % B; b& z+ V( k
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
& E( h& @7 p# a6 l2 q, f2 F% l4 G) P, [CreateDC 为专门设备创建设备场景
; [$ j3 f; R( dCreateEllipticRgn 创建一个椭圆
  {6 v. G5 r* lCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
9 r- o/ J  E! B6 G7 oCreateIC 为专用设备创建一个信息场景 ( e" [; d/ s6 n* U
CreatePolygonRgn 创建一个由一系列点围成的区域
# j7 b4 i$ I  x# K  tCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
6 a, [* m5 |- j* ^, RCreateRectRgn 创建一个矩形区域
! O' D: l" k$ K+ fCreateRectRgnIndirect 创建一个矩形区域 " R9 Y5 G0 T2 A  d& |/ g4 }
CreateRoundRectRgn 创建一个圆角矩形
, g1 W' u( {& R# I6 _7 ~DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 ) `8 f4 `! b. ?
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
0 e! w. ^6 R& i" T! }EqualRgn 确定两个区域是否相等
- _! s/ c7 O: I5 |8 R: CExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 6 i. r* |8 x- [' K
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
# M! p/ z* X  ^# X$ e  nExtCreateRegion 根据世界转换修改区域 2 J9 D( F" v2 P
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 * d' g' L: m! i% l  K9 `
FillRgn 用指定刷子填充指定区域 3 D; D4 V4 C3 i' M8 G4 d, X; Q4 n
FrameRgn 用指定刷子围绕指定区域画一个外框 # M, n  R) Z4 q, l7 ]
GetBoundsRect 获取指定设备场景的边界矩形 ! g" I2 u. c7 I; g" p
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
1 E; x# g# H1 Z. K2 F2 kGetClipRgn 获取设备场景当前剪裁区
0 D& r4 `( R7 t3 H0 SGetDC 获取指定窗口的设备场景
( D. M" m5 p! K8 K3 z/ jGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项   P) }. Y) w+ O. S1 X6 C' I
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) , _, F2 k& n: M+ a
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 7 A& h' Q7 p' X$ t
GetGraphicsMode 确定是否允许增强图形模式(世界转换)
; J3 P. \% }" R+ ~3 zGetMapMode 为特定设备场景调入映象模式 : m1 S& w( q0 N* j1 y- o! V7 `5 {  H
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
% T4 [6 Q$ q& ~1 `5 ]GetRgnBox 获取完全包含指定区域的最小矩形
7 e$ A2 s+ ]' Y$ MGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
% g# V% T/ v6 j7 n, CGetViewportExtEx 获取设备场景视口(viewport)范围
8 E3 d8 j6 ?7 e; U/ @0 x) QGetViewportOrgEx 获取设备场景视口起点 2 i; ?% |1 @$ X- v2 t" A/ [' c
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 * V& L6 j4 v) k& z3 R. U
GetWindowExtEx 获取指定设备场景的窗口范围
5 z" b' n3 K/ j9 p/ \GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
( J2 m8 ?9 v7 U6 YGetWindowRgn 获取窗口区域
2 t0 {! j2 C8 p% B: f; [GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
4 {" X) X) S$ a% b" \8 T" x4 DIntersectClipRect 为指定设备定义一个新的剪裁区
, t% ], u1 f6 ?6 M* i/ zInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 % h: Z' I9 h/ A
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
/ y1 i$ b2 T8 o, Q8 P, x+ rLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
0 K! Z" }+ Q4 |ModifyWorldTransform 根据指定的模式修改世界转换
# ]9 ^7 |) |* DOffsetClipRgn 按指定量平移设备场景剪裁区
. N# G1 g- b5 |! p( m3 Q6 GOffsetRgn 按指定偏移量平移指定区域 4 W4 U: `3 d! {- Z- ?7 ]
OffsetViewportOrgEx 平移设备场景视口区域
" C7 F  s+ S$ ]5 ?. [1 _! B6 VOffsetWindowOrgEx 平移指定设备场景窗口起点
# M8 a2 y3 w8 ~PaintRgn 用当前刷子背景色填充指定区域
; o0 y4 f* z$ U7 y  k# e7 N( B: kPtInRegion 确定点是否在指定区域内 0 B" z4 B9 y. I4 Q$ ~1 ^
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
& H8 W( \2 Q  vRectInRegion 确定矩形是否有部分在指定区域内 + {4 G; c) E: ^; I0 U0 p
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
9 R1 k+ F: {1 P+ M4 b: L* m4 f% dReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 ) D: p2 W6 Z3 V) z
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
, V: R6 ]9 V9 GSaveDC 将指定设备场景状态保存到Windows设备场景堆栈 * @& L* ]5 d9 \9 Z2 c
ScaleViewportExtEx 缩放设备场景视口的范围 # U3 \" D1 o' d$ E# O4 ~! L
ScaleWindowExtEx 缩放指定设备场景窗口范围
& E  X4 a0 `, u! Q1 \ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
/ D1 a8 c( X$ q6 BSelectClipRgn 为指定设备场景选择新的剪裁区
) j5 t  r* R" l# C. ^+ o/ |* d% a8 }SetBoundsRect 设置指定设备场景的边界矩形 3 \# e/ t9 P& k+ i. x
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) . V9 J( ~+ ^/ b
SetMapMode 设置指定设备场景的映射模式 3 ]# i* y( U8 N( E9 w
SetRectRgn 设置区域为指定的矩形
6 j" I3 t9 r, z; x1 I8 HSetViewportExtEx 设置设备场景视口范围 " M9 k9 m, G* }  n& V3 d
SetViewportOrgEx 设置设备场景视口起点
8 A& l* [, O) P! y7 \SetWindowExtEx 设置指定设备场景窗口范围
: O3 X. T8 w2 X# h! M4 R) H4 ?: e. mSetWindowOrgEx 设置指定设备场景窗口起点
; s1 C; N) Y; A7 z9 wSetWindowRgn 设置窗口区域
- @8 K7 b( N# O/ X' n; zSetWorldTransform 设置世界转换
3 t  m# Q! u" l" Y5 gValidateRgn 激活窗口中指定区域,把它从刷新区移走
# c2 h, o+ m6 c( C; PWindowFromDC 取回与某一设备场景相关的窗口的句柄 1 H. J: ~# \2 {
10. API之硬件与系统函数 & \; J. b. a2 A- e0 k# b
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 2 `2 @4 H& F. u# H  k' |
Beep 用于生成简单的声音 - ?4 Q3 q  V% O0 `
CharToOem 将一个字串从ANSI字符集转换到OEM字符集 : v0 M, b0 x% {
ClipCursor 将指针限制到指定区域
3 h6 m# W8 b- ^9 Z# f1 GConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID 0 \+ h: ]; ?0 c, K/ T% l( i% H6 W7 Y6 c
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 / S! x4 l9 o9 m6 J$ S* p
DestroyCaret 清除(破坏)一个插入符
$ O, ~+ n! N# L! u' fEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 6 D$ r' G4 B! G* I
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
! R% k. `1 B1 Y, SEnumSystemCodePages 枚举系统中已安装或支持的代码页
3 }& d, E/ \- x. _+ B8 uEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
. G3 _# J# v' \1 l  M2 o" r8 fEnumTimeFormats 枚举一个指定的地方适用的时间格式
+ K" ?, M7 \' VExitWindowsEx 退出windows,并用特定的选项重新启动 ' _4 C: w# @3 C( j! \. \' E
     WINUSERAPI BOOL WINAPI ExitWindowsEx(! L" Z* y/ x6 y: }" @: o
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG: E5 \5 Z6 ], {/ h; t; _
     DWORD dwReserved); //0
$ H: q' M2 `$ F$ UExpandEnvironmentStrings 扩充环境字串
4 [  G* x! L! \" hFreeEnvironmentStrings 翻译指定的环境字串块
  I4 s# h% ^2 t7 PGetACP 判断目前正在生效的ANSI代码页 / U% H) z1 y0 N7 D# j) W6 s
GetAsyncKeyState 判断函数调用时指定虚拟键的状态 3 f- \8 ]4 M  s5 v: Z
GetCaretBlinkTime 判断插入符光标的闪烁频率 " h" k( |' K5 D5 o$ v! H( K
GetCaretPos 判断插入符的当前位置
/ j, r" Z  s( \9 e% Q2 hGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 * m4 {- b% {" p  ^) h; X- G5 d
GetCommandLine 获得指向当前命令行缓冲区的一个指针 / b* K' Q, I, ?& D+ p  S
GetComputerName 取得这台计算机的名称 " @9 z& f, G& Q; m( ^3 k( \5 I
GetCPInfo 取得与指定代码页有关的信息
! ]4 d: L5 ^$ [GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
- Q. f9 E' P8 i1 x* {0 ^; U, ~GetCursor 获取目前选择的鼠标指针的句柄
# z0 j2 ~+ w" J# N3 r/ m" ~GetCursorPos 获取鼠标指针的当前位置 ( j7 b- p( @2 i$ J( k9 x& V
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
/ h* M% A- f9 Z( \8 I- y, b6 lGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 % H) n$ t0 `/ z5 V3 f- m7 B' |
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 5 H) e  g2 f& ^. J$ D* @
GetEnvironmentVariable 取得一个环境变量的值
5 m3 f6 ]" k1 n7 l: w' nGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 6 u8 V3 \( t* R8 A. G
GetKBCodePage 由GetOEMCP取代,两者功能完全相同 & ~0 m5 @- C- s: v" `2 B3 u- O
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
" d; e9 q8 l  l8 b2 LGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
3 R1 H- R4 J2 |- A$ BGetKeyboardLayoutName 取得当前活动键盘布局的名称
9 {$ U6 {; s( p  pGetKeyboardState 取得键盘上每个虚拟键当前的状态 # s# H" w; s* i% z4 K2 }% E
GetKeyboardType 了解与正在使用的键盘有关的信息
" [5 V% q' l- t; lGetKeyNameText 在给出扫描码的前提下,判断键名 # o4 c. `# g7 s" j" M1 Y6 h
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 4 H1 s: W2 p4 Z
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
7 r* w  e# E4 A- x! kGetLocaleInfo 取得与指定"地方"有关的信息 & j$ n9 t6 N: M% s$ J! A9 O! D
GetLocalTime 取得本地日期和时间
- [$ I+ A; j# D  V5 O* SGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
$ [  M% b2 ?3 AGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 + N: j4 T( K4 \( V% p
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 & `( s0 |' k) G9 p" G
GetSysColor 判断指定windows显示对象的颜色 ! f3 p. S4 |/ c! _
GetSystemDefaultLangID 取得系统的默认语言ID
  C9 X6 j: w% zGetSystemDefaultLCID 取得当前的默认系统"地方"
8 d, K' L. }  J5 e! UGetSystemInfo 取得与底层硬件平台有关的信息
# B/ _2 n+ ?8 l: `9 @! _; KGetSystemMetrics 返回与windows环境有关的信息
' C( w  [/ T7 m( M2 \4 vGetSystemPowerStatus 获得与当前系统电源状态有关的信息
$ }$ _, p% M7 o  ]4 b! i( {, NGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
$ d8 ?- \0 @  [8 v% }7 l8 z' y: EGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步   C* h: c5 f# p+ }9 ^' x8 ~* {
GetThreadLocale 取得当前线程的地方ID 9 j, K* T1 \3 X" G( u) Q8 c* _
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
) g' Q- p5 B" eGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 5 O0 B  n1 Z; }+ p
GetTimeZoneInformation 取得与系统时区设置有关的信息
3 c% Q) P" |% bGetUserDefaultLangID 为当前用户取得默认语言ID ) w$ R' r: Z, d9 q0 W" a5 C8 c' K
GetUserDefaultLCID 取得当前用户的默认"地方"设置
. p/ ^  S& Y9 K! D3 tGetUserName 取得当前用户的名字
! w, p& F, M4 P" m' NGetVersion 判断当前运行的Windows和DOS版本 7 T5 }8 b+ N, v1 T
GetVersionEx 取得与平台和操作系统有关的版本信息 7 |2 J% w* {  `/ L
HideCaret 在指定的窗口隐藏插入符(光标)
7 F, g. E5 [- e8 I$ HIsValidCodePage 判断一个代码页是否有效
/ n" D( h$ u; SIsValidLocale 判断地方标识符是否有效
+ ^0 a: Z, n- S, I5 E1 Jkeybd_event 这个函数模拟了键盘行动
$ l- c0 v: O% ~+ j' x/ h0 ~LoadKeyboardLayout 载入一个键盘布局
) R3 P, _( m6 `) s% |+ NMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
4 J- _+ \3 u8 S, d. EMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
4 X+ K) l- W. ^5 aMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
. X1 l, P+ D: @  Vmouse_event 模拟一次鼠标事件 9 @- r; u: a) Q% M1 d* U
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
9 X9 d) c5 l6 y( hOemToChar 将OEM字符集的一个字串转换到ANSI字符集
7 l4 c2 }% O8 J; B+ jSetCaretBlinkTime 指定插入符(光标)的闪烁频率 9 h* z# o/ Z# o0 _
SetCaretPos 指定插入符的位置 / {# a: i& D6 N/ u5 q
SetComputerName 设置新的计算机名
! f$ g: m& V! |, U, N; \- o6 bSetCursor 将指定的鼠标指针设为当前指针 % ^0 ^0 _) [6 r% |( W) b" {2 `
SetCursorPos 设置指针的位置 , d9 l# Y2 D. n- M% a
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 ! W% `+ Z( p& |9 X9 N$ n
SetEnvironmentVariable 将一个环境变量设为指定的值
1 Q( H  n8 S  S' o0 i1 w0 A( tSetKeyboardState 设置每个虚拟键当前在键盘上的状态 ) s1 \5 M9 \, r0 }" N6 w
SetLocaleInfo 改变用户"地方"设置信息
$ d4 ~) {& l3 U- V9 ^/ g- |9 i, P7 d1 TSetLocalTime 设置当前地方时间 $ \7 t. Z7 Q! J$ V6 q
SetSysColors 设置指定窗口显示对象的颜色 ( Y2 \4 U! V+ j* T0 _# V( N' \: J' \
SetSystemCursor 改变任何一个标准系统指针 - w' G! I# m5 S
SetSystemTime 设置当前系统时间 9 j1 ?0 V% z, h; |
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
2 ?' V6 v1 m0 t- g1 qSetThreadLocale 为当前线程设置地方
! A. Y0 o% r: v) D& X- C- J/ USetTimeZoneInformation 设置系统时区信息
! h/ q; Z$ X9 G4 OShowCaret 在指定的窗口里显示插入符(光标) 5 j' V# E3 d5 M$ d+ X
ShowCursor 控制鼠标指针的可视性
( G: C( h+ ]0 S9 {" Y( m7 F" r. z0 XSwapMouseButton 决定是否互换鼠标左右键的功能
- b  f+ }7 l% A/ ISystemParametersInfo 获取和设置数量众多的windows系统参数 " Z0 k$ t$ X) c5 `' R* L
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
) H5 U% g3 s/ ^4 aToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 7 x8 `- A; h5 X+ d
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 8 S1 l4 |5 Q) D% @9 v3 n6 I4 @
UnloadKeyboardLayout 卸载指定的键盘布局 / i" z. z. h$ n; u+ Y: z+ z9 u. ?! Z
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
$ e6 W; W, T( p0 G: [- }: p11. API之进程和线程函数
8 f. |, k8 p9 R0 N7 Q% @CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
9 S' t5 X2 o3 l. x% s; gCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 $ F  o" u/ l+ f0 y
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
1 |" [+ K' w5 z4 D4 X5 JCreateEvent 创建一个事件对象 " V0 U0 u5 T9 i
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) : z0 I& d; M- }7 T
CreateMutex 创建一个互斥体(MUTEX)
3 c* Z; d$ g; p3 ^; }+ D/ XCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 2 x/ z+ M9 ~4 q0 r
CreatePipe 创建一个匿名管道 * T  @1 C' [& s& y. ~
CreateProcess 创建一个新进程(比如执行一个程序) 0 K6 I7 y7 I7 q* |9 M
CreateSemaphore 创建一个新的信号机
0 d6 \! a* l/ e/ B' [; U5 nCreateWaitableTimer 创建一个可等待的计时器对象 ) ]8 m+ l4 w2 h. B
DisconnectNamedPipe 断开一个客户与一个命名管道的连接
& h& m, o4 H; N; C- XDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 ! z9 C5 d- m2 R; q& q7 ~
ExitProcess 中止一个进程 7 z* U- v( K1 h0 `
FindCloseChangeNotification 关闭一个改动通知对象
0 m# I3 d% p( T! ^: v" A3 nFindExecutable 查找与一个指定文件关联在一起的程序的文件名
* V6 L) _& K9 B4 {- g  m5 HFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
9 A1 D: Q/ p8 U  W; cFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 * _2 U/ P0 y% w4 [
FreeLibrary 释放指定的动态链接库
- D# M" g' B2 gGetCurrentProcess 获取当前进程的一个伪句柄 . K/ X4 Z' a/ m
GetCurrentProcessId 获取当前进程一个唯一的标识符
$ b7 S' w( `7 J9 u# c5 K1 yGetCurrentThread 获取当前线程的一个伪句柄 3 k' {0 u# |! R7 {- Y
GetCurrentThreadId 获取当前线程一个唯一的线程标识符 , \$ u& p1 Z( g  b  h6 s
GetExitCodeProces 获取一个已中断进程的退出代码
9 _! i  U) B$ B$ |4 iGetExitCodeThread 获取一个已中止线程的退出代码
' X3 H( {, \3 Z/ b# e9 c2 y# GGetHandleInformation 获取与一个系统对象句柄有关的信息 ! k+ G/ j3 g1 ~8 I& \7 b. }
GetMailslotInfo 获取与一个邮路有关的信息 " v' }1 t; a0 B- i; u: U( H  U
GetModuleFileName 获取一个已装载模板的完整路径名称 , R. E1 m3 _6 `  p
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
) ]' e, A$ ]$ V2 i0 P. G     GetModuleHandleA(LPCSTR lpModuleName);
. o& _/ H4 w" B# vGetPriorityClass 获取特定进程的优先级别
7 \0 g9 F8 B' z# d# QGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 2 l1 Q$ A) J+ j+ Z3 M' g2 T
GetProcessTimes 获取与一个进程的经过时间有关的信息
% e) {* X2 G0 n$ ]% iGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 0 i3 G+ `8 T; h9 t! Q% A$ q% Y5 r
GetSartupInfo 获取一个进程的启动信息 9 G: i" d2 @$ N; n5 G
GetThreadPriority 获取特定线程的优先级别
5 R- {* N% N  H/ C* r. GGetTheardTimes 获取与一个线程的经过时间有关的信息 , |% d4 J  Q5 U; M6 w
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 4 C# L* M$ n' c" F
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 / U% V) }5 V( f( v. ]0 ~/ R* g$ F
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 ) ~# B2 A' K2 N5 }
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 ) }" y4 r% A* H/ L! T  o4 z
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 0 |, c! O! n1 D1 ?3 m/ Y: N
SetPriorityClass 设置一个进程的优先级别
% m9 Y. ]( D: a& A) U$ j: xSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 ( I/ [& h# s$ o; K
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 1 d5 C$ K4 V; W5 h& D
SetThreadPriority 设定线程的优先级别
  v  d2 }# T5 c4 RShellExecute 查找与指定文件关联在一起的程序的文件名 $ n; ^% ~* N5 Z
TerminateProcess 结束一个进程
2 ]" s& O* Z7 `0 g0 k# ?3 z$ CWinExec 运行指定的程序 & w# C3 Y$ V( U8 ]6 ~
12. API之控件与消息函数 * C5 I  m1 n1 O* P6 _
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
( p+ ?# a; A% jAnyPopup 判断屏幕上是否存在任何弹出式窗口 6 d" Z" Q3 y% O7 R0 g  I7 h! W
ArrangeIconicWindows 排列一个父窗口的最小化子窗口 ; P; _5 _2 c3 I4 _
AttachThreadInput 连接线程输入函数 4 \+ }* P* N4 F/ u' P( R
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 7 [6 x  I$ o! c
BringWindowToTop 将指定的窗口带至窗口列表顶部 6 X% u3 x# z+ e7 K4 _( i
CascadeWindows 以层叠方式排列窗口 . ?. \0 X# ?4 Y. Z1 S
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
0 n5 C" {- x* I9 a- YClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 : K$ h7 q/ l/ j2 j  ?0 E; b
CloseWindow 最小化指定的窗口 ' O9 U" Y: n/ f4 j+ x  X  U6 G1 J
CopyRect 矩形内容复制
- A- y0 Y) n: O3 {DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
; d; S0 t  E4 h# `, M  Z9 O) Z7 iDestroyWindow 清除指定的窗口以及它的所有子窗口 7 R) e6 G1 w3 [3 ?$ C
DrawAnimatedRects 描绘一系列动态矩形 " N) k, Q# C2 r' ~2 s
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
' E* U. h( n; L8 ?EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 4 z. d1 a8 E, a: I
EnumChildWindows 为指定的父窗口枚举子窗口   {1 j$ M8 V, K* y  V$ F# R
EnumThreadWindows 枚举与指定任务相关的窗口
' g- O) h" T* l9 r8 H$ M# [EnumWindows 枚举窗口列表中的所有父窗口 - |% T. B9 N: ~7 ?$ n& d3 }7 @
EqualRect 判断两个矩形结构是否相同 ! t$ ~0 D( Z9 v5 u+ Y# {$ C! @
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 5 C2 G/ g/ I4 z$ l# }
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 ; {- G' h) a- J; x1 {2 X
FlashWindow 闪烁显示指定窗口 2 f8 y; E) P( W6 j
GetActiveWindow 获得活动窗口的句柄
) z2 o3 R+ z2 J! W6 m# sGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
/ O& T1 R) M: GGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
3 b3 _0 i% |& c. r0 h8 TGetClassLong 取得窗口类的一个Long变量条目 9 B3 k/ ~1 F4 M* w9 R$ ?# |. `
GetClassName 为指定的窗口取得类名 6 O5 F8 ^, u* r+ q0 o
GetClassWord 为窗口类取得一个整数变量 ! s! r7 `% u. Q, f, D
GetClientRect 返回指定窗口客户区矩形的大小
/ y* {7 C& R0 p) Q" xGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
3 l7 P+ B" w. Y+ G! dGetFocus 获得拥有输入焦点的窗口的句柄 4 S& K7 S3 Y; C5 h' e7 o5 N6 l
GetForegroundWindow 获得前台窗口的句柄
9 Z0 j' i4 q# i+ Q9 iGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 + [  F+ H! C" a9 M
GetParent 判断指定窗口的父窗口
( z. {! ?  a1 R5 m  @GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄   q# Q! W2 M: k! A$ ]4 J
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
/ o; E8 k9 g9 g3 fGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 ! B; c4 J0 v: K( y( L; K
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID . j. _& d- Q4 R: k1 b$ a6 K" _' @
GetWindowLong 从指定窗口的结构中取得信息
! }7 ]0 D: b5 L4 h. B: j7 nGetWindowPlacement 获得指定窗口的状态及位置信息 0 R0 [, V1 A9 K
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 ! N9 b& d, f6 I6 e7 @3 @. w
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 ! B. m) T5 [* @5 V
GetWindowTextLength 调查窗口标题文字或控件内容的长短 5 i: [  ~" F% Y. ~3 U+ n
GetWindowWord 获得指定窗口结构的信息
4 U7 |. I) U& w$ SInflateRect 增大或减小一个矩形的大小 * N2 S/ `) i' p! c+ ~" x% Y
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 1 s/ f' p) }  s( X  }4 \
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
6 D- |2 q8 U# X4 Q5 YIsChild 判断一个窗口是否为另一窗口的子或隶属窗口 / n% {' G) b% y/ \: V2 n8 ]
IsIconic 判断窗口是否已最小化
( [# Q8 _& b4 y7 t7 o  n5 E0 WIsRectEmpty 判断一个矩形是否为空
6 j8 h3 q: M$ O$ BIsWindow 判断一个窗口句柄是否有效
# t* p4 u+ l3 U0 [5 ?3 ?* vIsWindowEnabled 判断窗口是否处于活动状态 / u' K/ ~4 C- p0 _2 }* Q0 s0 v
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
* G" k' k) g' ]- l- o# k0 m. W2 @  [IsWindowVisible 判断窗口是否可见
# y( U; g% x+ ?+ j4 I1 f/ [IsZoomed 判断窗口是否最大化 : ?) I! ?7 j: j8 w& N7 S
LockWindowUpdate 锁定指定窗口,禁止它更新 2 J. B" a6 G! S
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
' i" x: o  R% X# k2 s6 yMoveWindow 改变指定窗口的位置和大小 . p5 H- G: R, O- b+ I( l# h
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
2 H# k: `) s0 M/ c3 G5 Y3 NOpenIcon 恢复一个最小化的程序,并将其激活 % U! O, E9 _" w* o1 X1 {$ r: N2 T
PtInRect 判断指定的点是否位于矩形内部 ; J; O0 Y/ e& c8 _( D; H+ r
RedrawWindow 重画全部或部分窗口
: m0 ^: E0 w/ ~8 \ReleaseCapture 为当前的应用程序释放鼠标捕获
( |* s2 ]' n. z7 u5 N3 cScreenToClient 判断屏幕上一个指定点的客户区坐标
1 W, e7 b% m$ g# u  WScrollWindow 滚动窗口客户区的全部或一部分 " n7 o% V* ]2 R0 X9 c" u  T
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
$ _) Y2 n$ o  O7 K. ^  k; _4 kSetActiveWindow 激活指定的窗口 7 u" U- o! M0 q5 I  E) o/ c
SetCapture 将鼠标捕获设置到指定的窗口
& f1 u, L0 B8 QSetClassLong 为窗口类设置一个Long变量条目 6 S. k2 Y! h- O5 @
SetClassWord 为窗口类设置一个条目
9 ]  b6 i+ N! w" f; o2 x7 OSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
$ k5 p; _$ h9 jSetForegroundWindow 将窗口设为系统的前台窗口
" E9 t& u1 @. C9 X! i: b, vSetParent 指定一个窗口的新父
4 t+ ?; r: H+ K+ j/ p0 ?2 LSetRect 设置指定矩形的内容 9 z, S6 |. e. K& W; w
SetRectEmpty 将矩形设为一个空矩形
+ Z" g% j9 a/ I4 x) l9 _3 OSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
4 g' ^' U: {7 M; o% iSetWindowLong 在窗口结构中为指定的窗口设置信息
( z9 z  Y& m2 V! n  `SetWindowPlacement 设置窗口状态和位置信息
/ H3 ]& K3 s1 q' d- r2 N( vSetWindowPos 为窗口指定一个新位置和状态
7 X2 Y+ T- h" O* wSetWindowText 设置窗口的标题文字或控件的内容
* @4 U) L( H" K, BSetWindowWord 在窗口结构中为指定的窗口设置信息 & h% B% H2 K1 m) c4 y- R: D; `1 h' O
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 # g- |3 v! ?( a
ShowWindow 控制窗口的可见性 : ]# ]$ G; x9 k) S3 j/ C
ShowWindowAsync 与ShowWindow相似
( W5 D; @, N& c! f3 aSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
( J! j% l7 D. n7 N1 ^3 a& rTileWindows 以平铺顺序排列窗口
7 o  `7 M% ~6 |" d9 WUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 4 |6 S0 o/ M2 d) T" N3 B
UpdateWindow 强制立即更新窗口 % ~: n& v& U! l# I
ValidateRect 校验窗口的全部或部分客户区
0 U' E4 Y3 z; @: d# d3 S9 ^" BWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
& e0 Q9 `2 P; u  d高级音频函数—参看《VC++ 编程指南.chm》11.62 K2 j# V" k2 q- c3 m) V  E1 D
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。6 L! ?- [% A4 \; N  t2 ?, o  p8 P
     BOOL MessageBeep(UINT uType);9 d' R$ F! D3 h% m, @2 j
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。$ R& j7 u  o( R0 Y$ e' U: m
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。# U, k0 Q. \: P6 C7 f
级别
/ P' ^9 I6 D. X# a4 B6 C, J1 h! S
描述 1 O! X! m% F/ P$ S; q
-1 3 z! U1 C0 A5 H: z$ a- z+ {3 i
从机器的扬声器中发出蜂鸣声。
0 }5 L8 O/ p4 Q) ?6 `
MB_ICONASTERISK ' N# u) F$ w( E+ L
播放由SystemAsterisk定义的声音。
! r. F" |2 j3 w, S; V" {7 }
MB_ICONEXCLAMATION
; Z) D( P0 y* r) K0 r% v2 L1 S
播放由SystemExclamation定义的声音。 5 k' c2 S6 ]4 B1 F. ?
MB_ICONHAND ! {6 b) @6 H( i) X0 h/ k
播放由SystemHand定义的声音。   m! a7 {$ H6 I5 W$ V
MB_ICONQUESTION * J7 |+ {0 _/ J) t' }) i
播放由SystemQuestion定义的声音。 4 S2 D# }6 |8 v+ H. l
MB_OK
+ I7 N8 [( Q( r4 }
播放由SystemDefault定义的声音 % S2 _* b. a4 c) W$ G( `
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);/ X* `$ n& P  k
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
3 ]" n) Z- J/ b5 R7 ?5 p参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
1 N& F/ j  ~/ d参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。; ^9 f8 ~" R4 b  R/ e
标志
: @/ F) h1 k' H8 o7 _7 A+ W
含义
2 u, f# s& H) f# S+ X
SND_APPLICATION
6 m% Y, C+ d/ S
用应用程序指定的关联来播放声音。 " E" [1 g3 H$ [8 U. M) d% M6 |
SND_ALIAS
' V" ]! p) e3 i% t2 _6 n
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
# U3 W7 b# D5 B# i7 ]
SND_ALIAS_ID / V- ^9 `% z/ G7 R; c
pszSound参数指定了预定义的声音标识符。
5 G7 ~$ c5 {5 A1 K3 C7 c
SND_ASYNC % r# _. ]6 E" o0 X1 `
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
8 }; v( V0 J; u/ i
SND_FILENAME 6 \  i+ V# |) u( o: l
pszSound参数指定了WAVE文件名。
1 e0 J' y3 ]$ x* m  F+ O  O
SND_LOOP + V. c% \3 G$ M( t' W$ P3 q7 w. R
重复播放声音,必须与SND_ASYNC标志一块使用。 # a$ P) ]: d" X1 H2 w- y5 J, N
SND_MEMORY 3 X" _% I* @. K9 |' N) o; \# \
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 ) c) L9 d4 N) X' H1 F
SND_NODEFAULT
% Q$ {6 }, F2 I
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
% R4 o1 u( [8 K! E: A
SND_NOSTOP
/ i' y# `0 x( i' R# e- t
PlaySound不打断原来的声音播出并立即返回FALSE。 $ g1 \. u, f: H7 h# m
SND_NOWAIT - _# J+ J- Z1 Q' L/ y5 o/ O
如果驱动程序正忙则函数就不播放声音并立即返回。   v* j2 v/ T6 y7 a' z. N% Z2 ^
SND_PURGE
3 A2 Y# F: Z& t. S1 s' N, \( o
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
* e& ]% J# b1 p* W7 Y- A
SND_RESOURCE 4 X% C( I4 @9 I, g; m: z
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 1 J( X$ @7 s0 b. i  Z
SND_SYNC 6 N6 U6 q  J6 I0 V% d; I  |8 d% A
同步播放声音,在播放完后PlaySound函数才返回。 . f: M0 m; g1 u+ r, s6 b
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);; T6 {7 M* T7 v; O- w! \
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。* w+ B3 y  h5 D% H! S( S9 F# [
MCI播放- J5 p- ]7 D# z0 P! _& u
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:% @( L) H- @  n: Y
MCIERROR mciSendString(* a) Q+ Y& X& W4 A- ^- V3 ]
LPCTSTR lpszCommand, //MCI命令字符串' F" f* A. G# D# R9 W2 A3 h
LPTSTR lpszReturnString, //存放反馈信息的缓冲区$ ^0 m# B* |' e" \% {
UINT cchReturn, //缓冲区的长度
0 h. |5 s4 @6 b5 o+ B6 o5 z7 ^0 vHANDLE hwndCallback //回调窗口的句柄,一般为NULL( I/ q1 ^8 D% o- \6 m
); //若成功则返回0,否则返回错误码。/ \) M+ g# U3 V# ?5 |. P
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
3 v5 |; a' |; r/ \! yBOOL mciGetErrorString(
( P, q( z: z3 W1 l& WDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码/ W4 X3 n, c$ Z: m+ P5 u8 N
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区/ J" O5 K# [4 l6 {7 R' g
UINT cchErrorText //缓冲区的长度
* o+ U. J0 z9 l8 _  e);2 e- ]- a- A$ Q4 D9 F) d$ s; ~* W. B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 06:45 , Processed in 0.023063 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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