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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
  i3 S7 @  \9 ~* z! Y& E# @: H1. API之网络函数 2 v7 O5 ^6 l2 @, U' T; F- k8 c
WNetAddConnection 创建同一个网络资源的永久性连接 # A' W! N% k( L- l9 y
WNetAddConnection2 创建同一个网络资源的连接 * ?. O; R7 o. k0 I7 F! Q' ^1 v! o  M
WNetAddConnection3 创建同一个网络资源的连接 " Z: e2 r0 Z7 n. V. @) p
WNetCancelConnection 结束一个网络连接
: b- H# g" b% K1 M5 OWNetCancelConnection2 结束一个网络连接
  Q4 Y3 C/ a7 [- ?WNetCloseEnum 结束一次枚举操作
5 w) d+ j7 x) x  A% s% hWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 * W* x* p0 v4 _. Y6 u
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 - ?5 ]; \, o, ^
WNetEnumResource 枚举网络资源
7 b# i7 c! c+ c4 ?. X( VWNetGetConnection 获取本地或已连接的一个资源的网络名称 " B. A, ^! V' u; f8 N; G
WNetGetLastError 获取网络错误的扩展错误信息 " H: O) h8 b$ w( D$ [% }) k, K( W8 R0 c( ]
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 5 @- x/ n: A1 k# [1 {' \( w
WNetGetUser 获取一个网络资源用以连接的名字
' E! y3 {7 ]: N: H  m4 yWNetOpenEnum 启动对网络资源进行枚举的过程
: i$ I* {$ F# o# n) K/ d* T2. API之消息函数
: N/ U5 F7 f$ u. h  ^$ p. DBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
, Y; q3 @* _" H  O: CGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 2 F9 G( v4 |, X
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
2 k6 N8 d$ M+ r/ F3 M2 fPostMessage 将一条消息投递到指定窗口的消息队列 : O2 U5 Z& k! v: B, M
PostThreadMessage 将一条消息投递给应用程序 + M' n! d% |9 y& O9 Q! _6 e3 }
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ) K; W0 {  X: q$ S7 `! v; h3 }5 _
ReplyMessage 答复一个消息 + R5 w, T. Q' X) e8 f( {# }$ G
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
9 ^& S% Y2 u: WSendMessageCallback 将一条消息发给窗口
7 `' d9 _/ l  A# [+ }SendMessageTimeout 向窗口发送一条消息
( y3 s& j' [3 c9 Z1 K' YSendNotifyMessage 向窗口发送一条消息
  d% |( l; w) Y  A. R0 ^" ^2 y3. API之文件处理函数
( V# i4 U  t/ n% Q/ pCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
# Z# V7 Q# V+ _) W8 U5 ^3 c" d& DCompareFileTime 对比两个文件的时间
" \3 d! h! I1 C2 @+ I: _* vCopyFile 复制文件 9 J. H% u& v* o
CreateDirectory 创建一个新目录 ' m2 p6 O, q" R3 J; s, B- }! `
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
6 a8 J) H+ U6 s- XCreateFileMapping 创建一个新的文件映射对象 0 y, y/ H' \8 k
DeleteFile 删除指定文件
2 X' q3 t6 m% }7 r8 X4 _, y' e  MDeviceIoControl 对设备执行指定的操作 9 a2 l: k* j$ s& R
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
# k4 x) ?) {1 i7 YFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
* C2 b% i( k" T& x; H% XFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 ) k2 M1 \% ^' b
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 # _$ s4 ]) `* [3 {" ~, ~
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
( ~2 F+ m' P: A) }& }FindFirstFile 根据文件名查找文件 ( A# u! @8 D$ j% y
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
) E8 w6 F* L9 c2 l# ]; t" G' K$ }" hFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
) X: }. _+ `1 P7 O/ KFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
  Y% F/ W6 S, q8 [- W1 uGetBinaryType 判断文件是否可以执行 % M5 W8 y, M3 D* U( E
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
$ c6 x! ?1 g: O2 q/ I/ k5 Q1 BGetCurrentDirectory 在一个缓冲区中装载当前目录
0 l/ d$ V! p9 J: E7 X8 A- t  C; \DWORD GetCurrentDirectory(0 h: k2 F, s' J! C# Y5 {' p
    DWORD nBufferLength,    //缓冲区大小
$ f0 w, k; @) X" J    LPSTR lpBuffer          //缓冲区的首地址- x( ^4 u, M7 E! n$ O
    );; e' |- e& u5 t: x6 j
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
/ A$ f6 w6 q6 i3 J0 p6 q, {GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
" E5 p7 Y! W. A+ vGetDriveType 判断一个磁盘驱动器的类型 # @5 t0 C2 S/ J
GetExpandedName 取得一个压缩文件的全名
9 e. ?4 f: X* a( g) i1 P3 rGetFileAttributes 判断指定文件的属性
, U* Q# r' \1 XGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 " S2 K; V$ q6 Y, C% a- j. |# B
GetFileSize 判断文件长度   x# ^9 E0 w- u! c8 `: ^4 l, y
GetFileTime 取得指定文件的时间信息 ' }& a- ]1 d" r1 v. o
GetFileType 在给出文件句柄的前提下,判断文件类型
& N/ V* e8 h* h6 S; A- l1 lGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 7 h5 h5 ~8 u2 {4 i( _
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
: }' J' ?. |# C+ g9 _GetFullPathName 获取指定文件的完整路径名
9 B# {, B1 n( \& Z* C4 k% ^% q% IGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
0 X  @: l' |* K' o' b# fGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 $ G+ E0 _2 y4 c
GetOverlappedResult 判断一个重叠操作当前的状态 + Y5 Z1 ~+ d  y6 l4 j
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 * V+ r& @* S# R0 R1 L+ j
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 " `# T% L2 ^  L" D
GetPrivateProfileString 为初始化文件中指定的条目取得字串
* I$ ?  C& C" T" aGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
: U* N- R$ |. p' E) H/ iGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
' W7 R' s; z( R* w; @* P$ ZGetProfileString 为win.ini初始化文件中指定的条目取得字串
7 \2 F/ f$ O) P2 B$ d' ~; @" gGetShortPathName 获取指定文件的短路径名
) ^0 G0 V6 @+ r: r% `GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 8 l$ Q& o- z( u; S
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 * B$ Q0 `8 w; y  c) [" {
GetTempPath 获取为临时文件指定的路径
) b, e9 s! i) C, e/ q  k# LGetVolumeInformation 获取与一个磁盘卷有关的信息
0 i. f- I& E3 BGetWindowsDirectory 获取Windows目录的完整路径名 / _6 I8 d' H$ A' w
hread 参考lread ( ~# h; m, d" X9 h
hwrite 参考lwrite函数 ; C, U, i4 Q0 b$ f
lclose 关闭指定的文件 % f0 B$ K! ^$ o
lcreat 创建一个文件
; @# Z" Y7 s( n% [# qllseek 设置文件中进行读写的当前位置 ) V1 g0 k1 M; G0 W
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
- R; H0 ^& y2 B4 Y2 k  d3 D( aLockFileEx 与LockFile相似,只是它提供了更多的功能
; _4 h9 C) W, r" |1 w/ Mlopen 以二进制模式打开指定的文件
$ G( c* t+ h( q' {5 ?' wlread 将文件中的数据读入内存缓冲区 " y. n; h" S' |: m% F
lwrite 将数据从内存缓冲区写入一个文件 $ g4 F* d% l3 T" j  Z0 j( R
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 . r. `# n2 m, ]; r
LZCopy 复制一个文件 * i* F& D; t! e: Q6 v/ q
LZInit 这个函数用于初始化内部缓冲区 9 P/ ~( o5 J: [5 M; i& q, O. ~
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 * w" d7 g! ]0 Y# Q& v1 t5 Z6 g% y
LZRead 将数据从文件读入内存缓冲区
( h% t* E4 j6 iLZSeek 设置一个文件中进行读写的当前位置 ( K; K) x) U$ F1 G1 k3 X- E
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
2 Q% b/ b; P. kMoveFile 移动文件 0 d! t! r) }+ l1 ]* d6 u% L
OpenFile 这个函数能执行大量不同的文件操作
2 Q$ p8 e' {5 D8 zOpenFileMapping 打开一个现成的文件映射对象 ; ~) \0 R: a* e$ V
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
/ G6 G- s* }" `( M$ X9 L- Y% iReadFile 从文件中读出数据 % j. a! [/ g2 Z4 l' y" T
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 / n$ C- _! m0 X8 R6 _
RegCloseKey 关闭系统注册表中的一个项(或键) 8 M4 ?) ?" u8 }
RegConnectRegistry 访问远程系统的部分注册表 8 i; z+ B$ N6 R7 n; I9 c) l
RegCreateKey 在指定的项下创建或打开一个项
/ [8 K4 ^0 G- e# Z" o3 PRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 + \6 n" ^% C6 O
RegDeleteKey 删除现有项下方一个指定的子项 * t! u4 b9 J7 h
RegDeleteValue 删除指定项下方的一个值
% d1 u" k  u# r" f+ F* J; k) p; @RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
" p7 N- Z& u& d; lRegEnumKeyEx 枚举指定项下方的子项 ) X6 X6 o) q6 t+ N3 P8 \
RegEnumValue 枚举指定项的值
# C7 v0 @) z$ y8 i# h6 @RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 4 ]" Z* b1 g; P
RegGetKeySecurity 获取与一个注册表项有关的安全信息 8 k6 w5 n3 D" ]. B) y* j% V* v* G& G4 j1 i
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 ) |! ?5 d  M- \6 `* }0 X
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 / Y2 j$ j8 b8 ], T' ?8 P+ n
RegOpenKey 打开一个现有的注册表项
9 U( C+ p+ x& g! {RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
+ O. t; c( l+ C) e0 `3 p- uRegQueryInfoKey 获取与一个项有关的信息
# z9 K* ^1 I, t* A+ L( nRegQueryValue 取得指定项或子项的默认(未命名)值
$ y; a1 y" r, t' i% M# M# m% c: sRegQueryValueEx 获取一个项的设置值
% M5 g$ x, N$ @RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
3 d7 _6 e( C- u$ f  QRegRestoreKey 从一个磁盘文件恢复注册表信息
* Z. s1 @' K. v7 M, l8 t; hRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 8 H2 U; X4 z  @' E/ w1 Q, v( ]
RegSetKeySecurity 设置指定项的安全特性
- I8 d+ i) @; x# r( cRegSetValue 设置指定项或子项的默认值 ' V! r4 u% u! R; U6 g, x6 i" A
RegSetValueEx 设置指定项的值
% ^$ I. S0 n, q8 W- ~8 b: r, [RegUnLoadKey 卸载指定的项以及它的所有子项 + @* h9 z% m8 p* e
RemoveDirectory 删除指定目录 ! |' i% `1 v% T( P7 u: @
SearchPath 查找指定文件
: M( a" n5 ^3 {) iSetCurrentDirectory 设置当前目录
4 u  V* P+ C4 X1 p' Z3 x8 ASetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
7 t1 K# T0 K1 ]! |# L7 cSetFileAttributes 设置文件属性 : r" J- P. x  _3 T/ Q
SetFilePointer 在一个文件中设置当前的读写位置 & a/ w$ U; r: c# P. ^2 b7 C
SetFileTime 设置文件的创建、访问及上次修改时间
" @& X+ F& E, d1 ]; ySetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 ( d8 W/ ?$ |+ U+ p& h
SetVolumeLabel 设置一个磁盘的卷标(Label)
& c  ]( n- g1 }& {# [SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 3 O( L1 {, z3 u7 O, Q- ?
UnlockFile 解除对一个文件的锁定 , X* F1 o  K2 {# a5 Y
UnlockFileEx 解除对一个文件的锁定 0 D9 w: \2 R7 S- A- R" M: J! l
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
; J- r4 |/ ^$ d" P; KVerFindFile 用这个函数决定一个文件应安装到哪里 $ ~* H2 Q( t3 W3 k7 `
VerInstallFile 用这个函数安装一个文件
3 ]! R0 k* X8 M, l; I) lVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 # A2 Q( U" D6 d- H7 C8 U
VerQueryValue 这个函数用于从版本资源中获取信息 0 P9 ?! u+ N* V. v$ @* t( s
WriteFile 将数据写入一个文件
/ i9 N- E& e3 h: ]( I9 c* |- C' n* fWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 * T* |' E3 w8 U
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
  k. B7 D* y( {# q) U2 H7 TWritePrivateProfileString 在初始化文件指定小节内设置一个字串
9 ]3 f) c1 V2 L- O8 N+ E. TWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 8 c; p$ o  X+ H" x5 `
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 0 i# X6 K$ y, d* F0 b5 x
4. API之打印函数 7 Q4 }/ B1 N) h- e! X4 K
AbortDoc 取消一份文档的打印 2 y% ~- f# @2 n& A1 i+ b
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
# J2 S; R; f- |# q& N0 r1 EAddForm 为打印机的表单列表添加一个新表单 " _6 y* t9 p% ]' p. P
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
8 _" }0 U+ v6 j0 {/ @( w$ q6 k' GAddMonitor 为系统添加一个打印机监视器
$ |: y) ?0 M9 `' {AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 # t3 ]8 x% A) d+ N7 R" ~
AddPrinter 在系统中添加一台新打印机 8 T$ U7 T( V; O) H
AddPrinterConnection 连接指定的打印机
. o/ E/ y9 j2 ?AddPrinterDriver 为指定的系统添加一个打印驱动程序 ; [+ ?: v+ ]2 ^4 C% z9 }/ U. w
AddPrintProcessor 为指定的系统添加一个打印处理器
5 m3 Q# q9 o. r/ x$ G0 i  F  QAddPrintProvidor 为系统添加一个打印供应商
. p0 K! ^4 J2 q  iAdvancedDocumentProperties 启动打印机文档设置对话框 % v1 P/ v8 [5 q) p/ r* q
ClosePrinter 关闭一个打开的打印机对象 2 P9 G& c, u& u+ r7 e% X% l; D
ConfigurePort 针对指定的端口,启动一个端口配置对话框
1 d: X! Q. E. P4 G1 x9 ?' B7 [0 A) SConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
0 O) g/ Y4 }$ \; _! G# y/ j. H" MDeleteForm 从打印机可用表单列表中删除一个表单
+ ^4 u& V" l5 ]* t  N. h, t2 B2 ODeleteMonitor 删除指定的打印监视器
4 d: ]4 L0 O: QDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
# z9 K+ U% n; y% \DeletePrinter 将指定的打印机标志为从系统中删除
' N, P, H; l6 ^DeletePrinterConnection 删除与指定打印机的连接 4 U2 c/ T- @- y; Q) [
DeletePrinterDriver 从系统删除一个打印机驱动程序 . I' h5 j2 C5 G. q* R3 E
DeletePrintProcessor 从指定系统删除一个打印处理器 , r8 v& E  i& h
DeletePrintProvidor 从系统中删除一个打印供应商
& I; y% T# R( L, s( mDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
# O$ d, j! E6 o5 T% B7 \! uDocumentProperties 打印机配置控制函数
* \( v6 U4 ^  Q: cEndDocAPI 结束一个成功的打印作业
% x, q6 h2 a. c% k- CEndDocPrinter 在后台打印程序的级别指定一个文档的结束 9 r9 @9 j; s( e0 k' {: \' X. Z
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 2 c! X/ |! G# ]: ?; r
EndPagePrinter 指定一个页在打印作业中的结尾
; [2 j( P( E# ~9 n  cEnumForms 枚举一台打印机可用的表单
  N' J/ Q- [9 N  \1 U8 }2 m- w- D  xEnumJobs 枚举打印队列中的作业 3 S2 M) \/ R0 i( Z! y
EnumMonitors 枚举可用的打印监视器
& l" r; i/ K. m: TEnumPorts 枚举一个系统可用的端口
# D$ G0 _! S- |EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 - Z- h1 ^9 m* r) V0 n% u, s% i
EnumPrinters 枚举系统中安装的打印机 + u: f# L( f/ R( I. j
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
% ]( B. E0 O7 w# I+ zEnumPrintProcessors 枚举系统中可用的打印处理器
+ X1 Z+ \( [1 s1 iEscape 设备控制函数
3 ^1 R0 L8 U: t  o7 l# q+ tFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 # E1 E# |$ v  I" T1 \' U
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
" J/ P+ N2 L4 D  l( ?FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
, Q. Q+ a9 i1 l5 x5 L8 c* I, c1 vFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
! N: G- o( |" S& S" \" Z; gGetForm 取得与指定表单有关的信息 & c$ p/ O! Z( _1 a
GetJob 获取与指定作业有关的信息
+ d- P- \: N, K8 F0 \GetPrinter 取得与指定打印机有关的信息 % }9 G& u) r8 b8 n5 Q- X+ T" |
GetPrinterData 为打印机设置注册表配置信息
1 m2 b. s6 o% `, ~GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 2 l8 U! h3 Y6 z
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
/ Y! F* z: a& q! ~9 f/ l! I* SGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
% O9 k( n% l# C1 n8 j  x( O) FOpenPrinter 打开指定的打印机,并获取打印机的句柄   v9 I  I0 A! R& W0 Z: t0 ~* Z' V
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
  D2 l4 a' B% M: A' vPrinterProperties 启动打印机属性对话框,以便对打印机进行配置
' m, B  v' j& s2 i/ k' w2 ~ReadPrinter 从打印机读入数据
0 f9 c; h9 r5 ?' a: _6 \% zResetDC 重设一个设备场景 0 @3 e/ D2 y. [, N; ~+ p# K( M
ResetPrinter 改变指定打印机的默认数据类型及文档设置 ) d& D  X, x: }% C* y" R" A
ScheduleJob 提交一个要打印的作业
2 z$ h9 x& R+ W' T- YSetAbortProc 为Windows指定取消函数的地址
  _; s* G: l5 l/ Q$ H. ^SetForm 为指定的表单设置信息
4 Y" ^: P, L4 y* k# z. f$ nSetJob 对一个打印作业的状态进行控制 1 ~1 X, T" c; f# A
SetPrinter 对一台打印机的状态进行控制
) p" F. ~5 C  N5 ^+ aSetPrinterData 设置打印机的注册表配置信息
, ~# u- |" n+ e. y7 NStartDoc 开始一个打印作业
+ p1 g" @6 e& C! r  tStartDocPrinter 在后台打印的级别启动一个新文档
% h" N. Y* r7 f" E) \StartPage 打印一个新页前要先调用这个函数 6 t( D. J( P/ H2 \! X
StartPagePrinter 在打印作业中指定一个新页的开始 " ~: f. v5 m8 l# x- S' D
WritePrinter 将发送目录中的数据写入打印机 3 w/ `/ W7 q' ~% h0 o
5. API之文本和字体函数 * P+ [& s( ^! G% T/ G" M% ^' ^# K
AddFontResource 在Windows系统中添加一种字体资源
& B4 A# O; u9 R; w# l! rCreateFont 用指定的属性创建一种逻辑字体
; \0 \# m2 V0 M) D/ XCreateFontIndirect 用指定的属性创建一种逻辑字体
/ O3 H! x* K5 P, d- w0 Y6 k8 ]CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
- P! _6 A- |; M0 B4 b9 _DrawText 将文本描绘到指定的矩形中
* Z! A, {- |$ R- b& [  O( o( }4 fDrawTextEx 与DrawText相似,只是加入了更多的功能
2 G, F5 E! k7 k; {" Z* H  N5 }EnumFontFamilies 列举指定设备可用的字体
9 r2 i4 b3 a, I* bEnumFontFamiliesEx 列举指定设备可用的字体
* @. p2 i/ a, D1 ^" A' t1 nEnumFonts 列举指定设备可用的字体
4 y8 \1 `) z/ Z( n" o. {& @- VExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 $ g2 D5 y) Z! Q) T- A; ]) d4 q
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 1 Q# F$ t9 R7 ^  \0 F' B
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
7 o, d8 v. ^1 ~/ Q4 l+ o0 q! k! vGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
1 T% T/ u' q$ k& G7 R3 |: tGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
) @% ~- k' e* d4 k( zGetCharWidth 调查字体中一个或多个字符的宽度
$ V  R$ ^8 D, X3 o, {- ]2 B. l8 P2 MGetFontData 接收一种可缩放字体文件的数据 " Y$ M% u* ]$ K5 w7 s1 x, ~% w
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
1 D4 ]  O& d5 [; p" V" FGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 9 s( K& d, f1 m6 t$ a
GetKerningPairs 取得指定字体的字距信息   Q, V7 ~5 b: U
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 $ F1 Y: B$ Z+ i  k
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 2 |& J+ _- z( f5 G- e
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
" o, L9 t% X1 M+ j" Z* a# \GetTextAlign 接收一个设备场景当前的文本对齐标志 - }! _  F: T5 J: F$ F. \
GetTextCharacterExtra 判断额外字符间距的当前值
5 a7 ^1 S8 e/ r- J$ c: nGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
: W1 {3 {" o4 u# Z8 \  {GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
6 I0 B/ s8 f  lGetTextColor 判断当前字体颜色。通常也称为"前景色"
! _/ t: Z2 m  \GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 0 I: |# e: o. R5 o! }( V4 E- O* t0 N4 C
GetTextExtentPoint 判断一个字串的大小(范围) 8 i/ j; ]$ X( j8 a8 l: D: V6 f  F; k
GetTextFace 获取一种字体的字样名
5 l$ k; X- x9 |9 O) n! b; XGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
0 h) P6 k- w# g+ F, Q0 j# KGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 - |+ C1 L3 I" V; }- }7 ]/ J
PolyTextOut 描绘一系列字串 4 h& S* s$ p* ~7 D
RemoveFontResource 从Windows系统中删除一种字体资源 ' s: X  D8 }) o; H1 o
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
" P" B5 S* M: a9 }) s' cSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 & M- \: A: Q5 z" B: f
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 : f2 S' n' Q' x4 F4 B% g. A
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
# M# v3 C8 r; r# @' I5 uSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 7 S/ w" e0 W$ u1 [
TabbedTextOut 支持制表站的一个文本描绘函数
- u  ~* \2 h& M0 @' \! z% p% O" YTextOut 文本绘图函数 * i- ~& F& q, K( A. U. x
WINGDIAPI BOOL  WINAPI TextOut(2 K# K( s, n! _" P; k- ^
HDC,     //输出设备; g# P( Z" w! m; W* x9 P# s
int,     //输出的横坐标
7 h# e, `  D/ t& Q1 I9 _' \' Zint,     //纵坐标: ~8 X  c9 P) [9 [4 d+ ~
LPCSTR, //输出的文本str/ G% T3 J* y4 q( C2 J5 o/ P9 y% b
int);    //文本的长度:lstrlen(str)/ p+ }0 e/ S6 W, V* V  s
6. API之菜单函数 6 S' M/ B- m: D, I! q  Y1 t
AppendMenu 在指定的菜单里添加一个菜单项
9 P  ?* f6 n: X! gCheckMenuItem 复选或撤消复选指定的菜单条目   ]: }! v) j, C9 z, R/ f" U
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
! L& J' l& E( T  a- L3 Z" MCreateMenu 创建新菜单
- I0 x/ N8 A) |% VCreatePopupMenu 创建一个空的弹出式菜单 6 ^3 ^1 P# y7 ~( N+ S! q
DeleteMenu 删除指定的菜单条目 $ `5 k; ^6 q0 Q1 X
DestroyMenu 删除指定的菜单
- A3 C, e9 V! u# y. i9 k; UDrawMenuBar 为指定的窗口重画菜单 " E; X# Z5 k+ g* v' i
EnableMenuItem 允许或禁止指定的菜单条目 . J0 f3 `2 @. V
GetMenu 取得窗口中一个菜单的句柄 7 J; c3 u" K- x: i# e( P6 [+ o$ F
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
1 j( n6 M- `$ M2 V: E* zGetMenuContextHelpId 取得一个菜单的帮助场景ID
$ o1 q' @8 n2 ^GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
8 _' c( z* H/ l2 HGetMenuItemCount 返回菜单中条目(菜单项)的数量
. J' ?6 A. f+ {& C. g2 B8 k3 UGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID / o2 {, e9 V  ^4 f& D
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 ( ]$ O8 {" f4 A7 O# v  l$ W+ o: p
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 6 r0 U: s/ A" I
GetMenuState 取得与指定菜单条目状态有关的信息
' K0 M" _* M# K/ E, y0 p/ N& QGetMenuString 取得指定菜单条目的字串
' L% W9 [% C, q  e  L/ Q5 iGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 / a# e' x: M  q, s6 ]
GetSystemMenu 取得指定窗口的系统菜单的句柄 ; v9 d0 I$ U7 |% x) }; k, i
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
6 [. e% N. q/ Q8 \- U) o7 mInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 2 @/ B: g7 X3 x
InsertMenuItem 插入一个新菜单条目 " k4 J3 ~4 L& {4 Z. E
IsMenu 判断指定的句柄是否为一个菜单的句柄 ( b- }8 o0 R; K+ t& p6 {- B
LoadMenu 从指定的模块或应用程序实例中载入一个菜单 - J( |2 p/ L7 R% S4 K' J
LoadMenuIndirect 载入一个菜单 ( m" u# X( Q0 C8 p
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
2 D5 M/ A, M  G* H! w- n8 nModifyMenu 改变菜单条目 5 \4 X" M$ ]3 p$ z
RemoveMenu 删除指定的菜单条目
+ L; X, d( G& oSetMenu 设置窗口菜单 7 j* W3 n5 d8 i( E3 n5 D
SetMenuContextHelpId 设置一个菜单的帮助场景ID
& K$ i5 l( q. V9 bSetMenuDefaultItem 将一个菜单条目设为默认条目
& a! x* M* T; n) g6 ]* G+ P) NSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
% z1 P, L' _; L  o* w$ fSetMenuItemInfo 为一个菜单条目设置指定的信息
# d% I7 {1 ^* D$ u0 Q) Y9 I; KTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 & ^4 d0 N( R: B, S# G1 P+ W2 C
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 + i% c+ Z4 `2 A! Q% H0 b
7. API之位图、图标和光栅运算函数
0 W3 S) u5 A+ O  n, f3 DBitBlt 将一幅位图从一个设备场景复制到另一个
- B( O: V9 r: n, E0 L" t) ]     WINGDIAPI BOOL  WINAPI BitBlt(7 W$ Z! W5 a: Q7 N
HDC,     //目标HDC4 O4 j) e  _" y# h% T
int,     //X1% k; Z: h. H' V7 [/ E4 P" C0 {
int,     //Y1
) h& C! }# l& e* xint,     //width
' z" W6 p: V3 X5 fint,     //height* X4 @5 E7 B2 g, ^/ {
HDC,     //源HDC
" x& I' I& R9 Uint,     //右边的距离
. W& H; B8 O6 T' J0 r) I0 Iint,     //??
- t# C& z# M8 B" {% k2 l8 U  }' k. f; mDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
9 W/ y  s9 z2 M( T+ F3 ^PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
  e+ y9 o: f1 I9 k5 ]& t2 [: U" {CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
1 L* f: g, F4 |% SCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 3 a+ |& t" F" O) T- ?, i
CreateBitmap 按照规定的格式创建一幅与设备有关位图 ! x; i) r  Q5 F$ t) m
CreateBitmapIndirect 创建一幅与设备有关位图
  e' S" e$ ?5 z/ LCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 1 [3 j* s2 A6 }& K* P
CreateCursor 创建一个鼠标指针
' p) {* k1 D' F. G8 G: aCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 & n# N1 R" m9 q( m
CreateDIBSection 创建一个DIBSection
" L! b; U' D+ zCreateIcon 创建一个图标
4 [1 P* x4 `$ m4 w: DCreateIconIndirect 创建一个图标 0 g, h! i8 r) o* Y2 R& W
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 * K' a: W3 Y$ N( f# z
DestroyIcon 清除图标 7 p2 S0 n& ]) H" f) M4 @: ~  |
DrawIcon 在指定的位置画一个图标 $ i7 \% h2 _2 C( K6 p1 a5 W
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
0 K' h) f2 L/ `3 D: E2 t2 KExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
0 E3 f- _3 z: }ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 / H6 W3 R# V* i8 D6 k3 K
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 1 g3 m1 U5 f2 Z& z
GetBitmapDimensionEx 取得一幅位图的宽度和高度 0 Z* t4 S. {" J) Z7 P
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 - _5 m" W+ \1 u/ O+ l5 P. R
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
) g- C2 g. I& PGetIconInfo 取得与图标有关的信息
: W! q: U5 H; v: eGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
7 K. \! S% p. h8 @- f; g! \LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
. n/ y* S4 `% l. r4 c% c1 QLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
+ r- h4 K  o) W8 z+ ]2 pLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 4 H! L) I" r! H2 y+ ]
LoadIcon 从指定的模块或应用程序实例中载入一个图标 # S  I) b- }, w4 c1 V, f, R* P' m
LoadImage 载入一个位图、图标或指针
6 \+ A, M9 X7 Z. R# CHANDLE LoadImageA(
* ]  l, D# ]5 T  N/ CHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()# V8 X7 u8 P$ Q( V
    LPCSTR,               //资源所在的目录:c:\help.bmp
* H7 U5 {7 o2 Y- b3 T# Y% |7 Y" h    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE- ?: i- \7 W+ O* s3 ]5 g
    int,                  /// U, g0 l  c" [! }: E
    int,                  //
* q' j! Q- v. z0 Q+ `( DUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
3 a; A) H8 L6 tR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|- h. M1 _- v, i9 r( H
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
/ X) A# x2 u$ w: m2 [1 z* _" [" rMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 ( }, R% B9 K" N; r
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
) @6 @% B1 ^8 z1 SPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
. b/ M' v  K5 T/ U! `' D. s; N5 U4 DSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
% q# T8 y9 g$ ~) f5 Y" z8 ZSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
4 k# I. o. f1 z2 v0 tSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
5 O; M5 K1 x9 N4 X) WSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
$ @, p; t: q) U$ x, m, W& ySetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
) u3 y( j2 d+ q. |: USetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
) }; ^9 O: g  Z* G7 }: CStretchBlt 将一幅位图从一个设备场景复制到另一个 + q4 \* N2 m; h4 x
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 5 Y: u+ e# |2 D+ E- L' h
8. API之绘图函数
" Q1 q# |/ a- `" y5 S/ T7 gAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
' S6 v# y2 W9 O% p3 TAngleArc 用一个连接弧画一条线
: P+ Y; u9 K* ~- W' R9 T& sArc 画一个圆弧 % o3 K* C) W( j6 |: {, v0 P
BeginPath 启动一个路径分支 ( @) G* J- i5 Q% C
CancelDC 取消另一个线程里的长时间绘图操作
% e% @; ~. v6 _- J3 `Chord 画一个弦 4 k9 A0 e% ^. l6 _
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
/ n( i5 P& F  `9 A0 k+ [8 c4 {CloseFigure 描绘到一个路径时,关闭当前打开的图形
. z( \7 ?5 t9 sCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 * Z2 H' R  {' y: o$ Q
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
7 u- {! ~. G' XCopyMetaFile 制作指定(标准)图元文件的一个副本
! @6 ~: @: z& N+ _! y+ XCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
! D# D, }8 t0 ]) m9 ZCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) * M/ M7 e, z8 s% v2 U" h# K, ^
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 $ n3 S9 p% n& B
CreateHatchBrush 创建带有阴影图案的一个刷子 # D3 d. k' E0 v1 d+ T
CreateMetaFile 创建一个图元文件设备场景
9 w0 Z4 J9 X. s2 Q. qCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
$ ?' B  i4 E: L7 b* P& dCreatePen 用指定的样式、宽度和颜色创建一个画笔
( E. m) u/ |" T2 E% s  v8 {: FCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 4 U% L- H, m  R2 E& h* U8 M3 k, ]
CreateSolidBrush 用纯色创建一个刷子
8 c: ?2 z  e3 nDeleteEnhMetaFile 删除指定的增强型图元文件 - }% B, l% ~: P% S5 S: ~8 A5 k
DeleteMetaFile 删除指定的图元文件
8 Q# m6 {: c! \WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放* S( o$ J& n! d! n* r, d1 i
DrawEdge 用指定的样式描绘一个矩形的边框 & L" [# j, p: N; B; p( |3 U
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
, ~9 `" M- @! x! aDrawFocusRect 画一个焦点矩形 0 `9 D0 L! s9 T% X: X- O
DrawFrameControl 描绘一个标准控件
0 n$ _$ g9 H: [  v( ^7 ~DrawState 为一幅图象或绘图操作应用各式各样的效果 * A- [1 ~* q* S! d5 o! d. d9 z
Ellipse 描绘一个椭圆,由指定的矩形围绕
" R: g6 Z% s" x4 V( W; aEndPath 停止定义一个路径
5 E# L" _6 U1 R9 j+ SEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 1 F/ D, W5 n: F) b
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
! W, \' g! g" r- W& L8 iEnumObjects 枚举可随同指定设备场景使用的画笔和刷子
5 B+ Q( }& l  T0 ^) c, ^& b1 lExtCreatePen 创建一个扩展画笔(装饰或几何) - J' v. G" m& n
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
7 b0 l  c) o( j# y+ O4 C2 NFillPath 关闭路径中任何打开的图形,并用当前刷子填充 5 A# A! `" g: b0 T# g
FillRect 用指定的刷子填充一个矩形
- k5 Y# B1 Y0 @( M  Z7 mFlattenPath 将一个路径中的所有曲线都转换成线段
7 M5 [( r7 M* N( F$ }" O% iFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
7 m# n& N- k9 v2 _( qFrameRect 用指定的刷子围绕一个矩形画一个边框
, z6 t7 ^1 O4 E. x# _1 ~. mGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 0 V5 x  G! Z! S- _" i3 u3 @, `
GdiFlush 执行任何未决的绘图操作 1 k8 ?% ]3 I6 Q+ N& ?# `9 h4 c
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
, \; ?; H! @, G. u0 G/ y! I% M: D2 M; lGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
. }1 I8 V7 K2 kGetArcDirection 画圆弧的时候,判断当前采用的绘图方向 0 M1 U, Q, `0 L6 b) Z
GetBkColor 取得指定设备场景当前的背景颜色
6 j2 q3 ]$ M- R  {GetBkMode 针对指定的设备场景,取得当前的背景填充模式
: ]- V& u6 u0 W" vGetBrushOrgEx 判断指定设备场景中当前选定刷子起点 2 ?1 s- u* `2 Q/ O/ @5 Y
GetCurrentObject 获得指定类型的当前选定对象 ! O. b0 Y, |6 N
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 - S* A/ K, z3 v: m
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
6 j+ v  x' b  m$ u! g! @GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
. Q  f+ F$ g9 k' Z1 Q. O" p& X9 mGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
& Y* [1 B5 P# c: e8 S# w* W' sGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 9 W0 L+ [7 C' G) N8 F2 V$ a
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 ( ?& k7 F' D1 i/ o8 \& _
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 8 E2 T' v" Q% |
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
4 N7 U, Q. g( @GetMiterLimit 取得设备场景的斜率限制(Miter)设置 9 p1 _" h1 k" ?8 J! u
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
( U# @3 W: o% W$ t- iGetObjectAPI 取得对指定对象进行说明的一个结构 ! s# M2 F: ~: n0 i
GetObjectType 判断由指定句柄引用的GDI对象的类型 1 T7 Q$ p! R, B& x3 d
GetPath 取得对当前路径进行定义的一系列数据
; S: f- g, c7 X+ h7 gGetPixel 在指定的设备场景中取得一个像素的RGB值
! K4 D- L2 I! C! LGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
- v& g# Q, C* h9 h1 a: F: ^" CGetROP2 针对指定的设备场景,取得当前的绘图模式
! X7 A3 v$ X5 {GetStockObject 取得一个固有对象(Stock)
8 v( n2 e! D0 o7 G. HGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
- G4 g- C" j- e$ G. GGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 * l% z& l- Z9 c! Y
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
7 {2 S: G1 t& T. K4 U2 x; dLineDDA 枚举指定线段中的所有点
( D/ a5 R9 O  ^3 Z/ x; Z3 QLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 ! g7 ^7 r# B/ j  l/ w6 e4 @
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
# x* O  m; h* S# g1 g! x* g+ uPaintDesk 在指定的设备场景中描绘桌面墙纸图案
7 P* c) D5 d5 K1 u+ o. S' a4 ?! pPathToRegion 将当前选定的路径转换到一个区域里
  q- o2 H# I$ |8 E5 c& iPie 画一个饼图 7 E$ E1 C9 q( u% @' t1 c3 {, f
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 ' |% W9 X5 D; [  Y% Z2 N
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 9 h- p7 _: p: O# g! x1 x* G# B
PlayMetaFile 在指定的设备场景中回放一个图元文件
5 \7 ^, ^3 A: h! B- Y. SPlayMetaFileRecord 回放来自图元文件的单条记录 , P. R: O% x& A* C- Q& _
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
: F9 A- Y4 q; B7 ]# UPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 ; I6 F8 ]. j/ L2 I  v/ X/ Z
Polygon 描绘一个多边形 & ]4 w5 p! K: G; r4 {6 a' w' M+ D
Polyline 用当前画笔描绘一系列线段
' W' z0 z+ i( P9 [1 T7 v$ \PolyPolygon 用当前选定画笔描绘两个或多个多边形 - l# o) v& @- A3 c" R' |1 j
PolyPolyline 用当前选定画笔描绘两个或多个多边形
. R: ]9 z5 Y' eRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 $ l8 n5 p' a1 W
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
  R/ G/ a9 |+ e2 \/ MSelectClipPath 将设备场景当前的路径合并到剪切区域里 6 ?/ O4 ]5 T. q& L+ ?2 R9 @) n
SelectObject 为当前设备场景选择图形对象 - F1 u2 r* g% h
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
/ a& A, G0 ?- d$ R# k" N9 l. |SetArcDirection 设置圆弧的描绘方向
  g! Z' b$ K/ wSetBkColor 为指定的设备场景设置背景颜色 0 \( n( o4 T/ I
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 3 r8 [# E7 u: \8 k+ n' m4 d
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 5 [( l. S. e3 P$ n2 A. I$ C8 ]
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 3 f( V/ o  Q1 _: m$ q
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
5 o+ d# D2 p2 R# Q* @/ j! JSetMiterLimit 设置设备场景当前的斜率限制 0 h5 y/ h1 G- u: d, B
SetPixel 在指定的设备场景中设置一个像素的RGB值 , p: d! L& F/ q* g1 S; C, U, S
SetPixelV 在指定的设备场景中设置一个像素的RGB值 " @/ x7 S) T) X0 V1 r6 t) M% M: l
SetPolyFillMode 设置多边形的填充模式
* u! I- H, i: r% ?6 @6 USetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
- |5 b) z+ z: U6 _) NSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 $ _0 {  c$ b( _9 X
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
  L" l! Y& `4 t: Y1 r8 f4 bStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
6 d# P  a3 ]6 H0 z0 o  h& d' OUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
; i& l1 L5 T* Q  c9 |. PWidenPath 根据选定画笔的宽度,重新定义当前选定的路径
& S& \2 Y: A3 H9. API之设备场景函数
* |+ C' H; e! |' Q* |9 sCombineRgn 将两个区域组合为一个新区域
/ Y! O( O6 h) ^5 Z/ `3 TCombineTransform 驱动世界转换。它相当于依顺序进行两次转换
- l8 L+ |6 \. }: ?& e4 t: ACreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
! T0 `% a1 K# D6 z( N. ]CreateDC 为专门设备创建设备场景
7 b& M% S  U2 w' DCreateEllipticRgn 创建一个椭圆 6 a9 D. s( ^9 E8 W
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
- M$ o/ q$ i. OCreateIC 为专用设备创建一个信息场景 9 _" @) z9 ]: I
CreatePolygonRgn 创建一个由一系列点围成的区域 6 z( b, H6 d1 K3 B
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 + \2 n! }0 I1 G0 N8 S- g* t( V
CreateRectRgn 创建一个矩形区域
4 r, F/ Q; b$ L# W7 H! WCreateRectRgnIndirect 创建一个矩形区域
5 G5 O/ `& F: Q* n; |$ {CreateRoundRectRgn 创建一个圆角矩形 ; p+ L& H9 y3 _6 C  ^5 a
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
, u) |& _- J* lDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
. ]/ e& U. U( ^0 QEqualRgn 确定两个区域是否相等
* ^9 F" A6 H* TExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 . o0 h4 }6 a. E# I+ s
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
! y5 {* o6 d0 N2 GExtCreateRegion 根据世界转换修改区域
# R+ w4 x& @! [+ i0 j  G# `. |ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 ) H) |' a5 L1 M$ A
FillRgn 用指定刷子填充指定区域
/ l9 j0 {+ k9 @  G" EFrameRgn 用指定刷子围绕指定区域画一个外框 # g6 }8 z. z/ e7 K+ O
GetBoundsRect 获取指定设备场景的边界矩形 ! b1 G0 Y: E! l" }6 a$ n) p
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
- B  a4 Q! d/ T3 SGetClipRgn 获取设备场景当前剪裁区 6 Q0 d8 `  I6 d# }. e) ^+ m' L
GetDC 获取指定窗口的设备场景
: b4 ~6 ^4 {9 v' X* {: kGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 9 a! _. |4 H0 q& S* |
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) $ P+ S: _8 v, R$ H3 H- b1 e$ h
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
/ L' F" e( ^6 j" ^" _GetGraphicsMode 确定是否允许增强图形模式(世界转换) , Q1 Z' v3 ~. o* d
GetMapMode 为特定设备场景调入映象模式 ; ^  o+ v8 }4 R. Q, L
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 3 K% O4 [9 @! P$ |) j2 N% D; ]8 n
GetRgnBox 获取完全包含指定区域的最小矩形 : }- K0 S/ K9 }7 Z/ R
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
+ D8 L) F/ [( V, i/ y8 p/ ]GetViewportExtEx 获取设备场景视口(viewport)范围 4 W) B0 N9 b. I1 G1 H  ~
GetViewportOrgEx 获取设备场景视口起点 & ~) y" C: b. f4 v. Y. t* ^
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
8 j3 v2 x# ]3 k, S5 R( i; d( ?GetWindowExtEx 获取指定设备场景的窗口范围
* z# E' j4 P: x" d" S) c% SGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 5 B  O8 P5 r! k$ Z" f
GetWindowRgn 获取窗口区域
6 ?# ^& X: B0 S* H& @$ R8 c; U4 E2 qGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
: B9 @- h/ n. i  |. aIntersectClipRect 为指定设备定义一个新的剪裁区
/ l# L5 ~# |$ K& K3 x- v: Y7 BInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 : h, b9 T6 |0 u5 U1 f
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
9 m3 K. v% @$ a  P* g1 P" L+ oLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
1 a8 z3 t; v9 h' m0 g% E( T/ @ModifyWorldTransform 根据指定的模式修改世界转换
  M; b; |/ S/ _: j  MOffsetClipRgn 按指定量平移设备场景剪裁区
5 ]" j4 }, |7 G* ~( {# C; OOffsetRgn 按指定偏移量平移指定区域 6 N! B1 c9 h. D- w' H3 u, m
OffsetViewportOrgEx 平移设备场景视口区域 6 {* m4 E4 v& S1 p5 s1 I# O. b
OffsetWindowOrgEx 平移指定设备场景窗口起点 ' o6 t$ z/ T/ H. o
PaintRgn 用当前刷子背景色填充指定区域
, f& M8 v+ i7 H' ]8 o& `: W! F5 h0 uPtInRegion 确定点是否在指定区域内
; S( ~" X! e# Q5 T$ f' K" HPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) * y) r) R2 Z6 m' [( h+ t
RectInRegion 确定矩形是否有部分在指定区域内 9 c2 `5 A" D' ?6 m0 {
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) % v' |# P, P1 L9 c. W
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 2 D. t. I% r2 L* I* w
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
5 @% C& z4 I: t" CSaveDC 将指定设备场景状态保存到Windows设备场景堆栈 1 Q5 I; b2 M; P6 k
ScaleViewportExtEx 缩放设备场景视口的范围 $ P9 d- r2 y, M$ Z% I: ]/ L
ScaleWindowExtEx 缩放指定设备场景窗口范围   ^0 E- r; x; F) f
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
3 [" Z0 A( t3 _5 D2 F. X" }! A( S, ISelectClipRgn 为指定设备场景选择新的剪裁区 % K; `$ B7 v3 w8 x
SetBoundsRect 设置指定设备场景的边界矩形 , P! X9 Y$ ^% J4 f3 M
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 6 F7 ^$ |9 Q, t& c$ _' a
SetMapMode 设置指定设备场景的映射模式 9 E* E$ p$ b  \+ J/ [
SetRectRgn 设置区域为指定的矩形
0 S! `) T3 r+ s9 {' X' x% M: O0 J  B7 }. Z4 USetViewportExtEx 设置设备场景视口范围   F( A+ @: x  D; L  v7 O9 q3 p" S
SetViewportOrgEx 设置设备场景视口起点 ) g; x" \0 ]/ C& ?% W+ n1 b
SetWindowExtEx 设置指定设备场景窗口范围 9 b4 @, U- N0 q$ ?4 g) Z
SetWindowOrgEx 设置指定设备场景窗口起点
0 J+ C$ `0 r8 j/ ~  WSetWindowRgn 设置窗口区域
# j) k0 E7 U3 o/ n; n" L; l4 t$ _# wSetWorldTransform 设置世界转换
+ ~0 V" i& [6 N/ j; U, _/ c5 l. K, PValidateRgn 激活窗口中指定区域,把它从刷新区移走 7 m" h9 j: o: E- M
WindowFromDC 取回与某一设备场景相关的窗口的句柄
# a4 l& ~7 Y# x  ^& e$ c& p10. API之硬件与系统函数
$ h" l, }- @' t. \: n& ]0 M6 EActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
: r+ R: g% D. C, a' f- rBeep 用于生成简单的声音   V' G1 F1 L3 j7 l6 D& u+ a
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
4 J- D2 w) K1 pClipCursor 将指针限制到指定区域
9 p8 l- D! C! g: aConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID $ v% R! h& c: V, C+ }, l2 O+ y
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
8 s* k' `6 I8 [3 TDestroyCaret 清除(破坏)一个插入符
, Z0 F6 ^% n1 e" T5 e7 l) G0 QEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
; J3 t; _5 A* \. R5 D2 CEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
3 A7 l) I0 _0 [8 c1 {EnumSystemCodePages 枚举系统中已安装或支持的代码页
3 V# v& x; w3 ~5 N* z) ^# }' g9 dEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
% q% B; p7 \! z# C. j2 X' t0 {EnumTimeFormats 枚举一个指定的地方适用的时间格式
$ j) V& u. k4 c0 R! X6 q2 H" cExitWindowsEx 退出windows,并用特定的选项重新启动 2 ?9 E' b3 V( t' U$ R; ~  J
     WINUSERAPI BOOL WINAPI ExitWindowsEx(3 U" a4 j: Y5 X- @
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG5 ?1 t" p& d* a1 r* D7 b3 j
     DWORD dwReserved); //0' z( J/ o- @# |% N4 K
ExpandEnvironmentStrings 扩充环境字串
% m' B- p& t' j. w, R+ M* b" @FreeEnvironmentStrings 翻译指定的环境字串块
6 p( T' _/ `% R: ~# UGetACP 判断目前正在生效的ANSI代码页
9 q" I1 y2 a1 h  O  m+ v8 w8 LGetAsyncKeyState 判断函数调用时指定虚拟键的状态
$ W# a+ y& c# J5 B, P1 l) RGetCaretBlinkTime 判断插入符光标的闪烁频率 2 F% `) t8 `' G* l$ E
GetCaretPos 判断插入符的当前位置
' H1 W5 O0 P$ L% Q( QGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
- J' G' W% c4 O0 J  X4 |* lGetCommandLine 获得指向当前命令行缓冲区的一个指针
- l, w( R2 g: e1 |4 L: ]GetComputerName 取得这台计算机的名称
4 h2 q3 k0 s# t( a3 O1 e8 B* d0 hGetCPInfo 取得与指定代码页有关的信息
- ^, K1 O: M6 K% K) _4 ~" sGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 ( s1 e) d; C; \9 X+ I9 M
GetCursor 获取目前选择的鼠标指针的句柄
. p+ J, f7 M7 \: D* ~0 VGetCursorPos 获取鼠标指针的当前位置 # \# ^& p9 R5 C1 Z+ Q0 l$ ~( ]
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
% s( X  R2 n+ V8 R& FGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 - X" k8 J# ]& j5 N6 K
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 + r: C5 {1 k: _; \" D, Q
GetEnvironmentVariable 取得一个环境变量的值 2 m! q9 o& ]+ u" x2 f# f  \
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 % i5 b; N, {: k  o
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
" T5 G2 y5 m$ m# P* t; X6 N* ]5 rGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
; H0 k7 N  t) O4 T% rGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 ( C( T7 N  B0 D
GetKeyboardLayoutName 取得当前活动键盘布局的名称
7 J& c. f) e9 h0 v( I+ ^% TGetKeyboardState 取得键盘上每个虚拟键当前的状态
6 \, ^, S, N; d7 PGetKeyboardType 了解与正在使用的键盘有关的信息 . p; Y) ]& }2 N" y, c
GetKeyNameText 在给出扫描码的前提下,判断键名 7 e, C9 T6 n* c: y& x. j7 |
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
4 p, z0 T4 N. a7 }/ y  {GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
# O, g6 m& p. JGetLocaleInfo 取得与指定"地方"有关的信息
$ C; j  Z7 o' G; i+ f% FGetLocalTime 取得本地日期和时间
) @6 s' Z+ w8 ^" AGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 8 _. B) ~) Y4 L% P
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 ! X! T  @" t2 u  [& h( @* b
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
2 N2 W8 e4 @$ S; }GetSysColor 判断指定windows显示对象的颜色 ( z8 A' Q$ Q: B$ d+ j+ p2 ]8 w  c
GetSystemDefaultLangID 取得系统的默认语言ID $ @2 V5 n" g) D  R, w
GetSystemDefaultLCID 取得当前的默认系统"地方"
  |4 ?- W" z" E! _% gGetSystemInfo 取得与底层硬件平台有关的信息 - a1 Q+ t( i  p  n& P! c, [
GetSystemMetrics 返回与windows环境有关的信息 # t1 G) r2 C: N. U
GetSystemPowerStatus 获得与当前系统电源状态有关的信息
+ K* @6 z) A9 ]GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 - {0 x% p' o% i
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
1 V0 g' }  ~! RGetThreadLocale 取得当前线程的地方ID & q* a! y: E' O* C
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
, n) |( q4 f- f& |2 qGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
: N: j4 a+ t3 i1 B: KGetTimeZoneInformation 取得与系统时区设置有关的信息
! @6 ^5 v' Q/ b- m4 P. MGetUserDefaultLangID 为当前用户取得默认语言ID & j( x8 y7 Q  W. {* v+ A) [
GetUserDefaultLCID 取得当前用户的默认"地方"设置
" W% j' i& v. q- PGetUserName 取得当前用户的名字
' e4 l0 c) S' H( M. ]0 ^GetVersion 判断当前运行的Windows和DOS版本
# F% F( }5 F4 B0 j6 iGetVersionEx 取得与平台和操作系统有关的版本信息 # b" i+ X/ s4 d6 d! h
HideCaret 在指定的窗口隐藏插入符(光标)
& a- ^9 p& o/ D9 Y5 n% S/ oIsValidCodePage 判断一个代码页是否有效
" B: H! S& h/ W0 r# k, A1 b" PIsValidLocale 判断地方标识符是否有效
8 @9 t% W8 N, w! qkeybd_event 这个函数模拟了键盘行动
  Y- L$ p* G6 c9 xLoadKeyboardLayout 载入一个键盘布局
- Q* b/ T8 T$ C# GMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 5 H  D0 H; E' p7 K& }$ E  l9 ]
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 + @1 Q. C  }3 _- x
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
2 u1 q* w& P- o; d4 d* Wmouse_event 模拟一次鼠标事件 5 s+ N; Q, b. a* K. ~' c7 N
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 9 i/ ~& u3 Q1 s3 _. T
OemToChar 将OEM字符集的一个字串转换到ANSI字符集   U0 X3 T) p2 D) h
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
2 X" H: u  J7 }  lSetCaretPos 指定插入符的位置
' y+ o1 a5 z2 Z& FSetComputerName 设置新的计算机名
$ U; Q* }/ o0 F' MSetCursor 将指定的鼠标指针设为当前指针
) L& v) C3 G9 M6 ?$ ?" c( R6 ?9 eSetCursorPos 设置指针的位置 % x6 `5 A0 A7 O; v! [- r& ~% A% M4 {( M
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
" T) [% A& O+ [/ lSetEnvironmentVariable 将一个环境变量设为指定的值
* t$ u9 ]1 M, \+ s. [+ _; VSetKeyboardState 设置每个虚拟键当前在键盘上的状态
3 [* q' S* O/ z; |# h" OSetLocaleInfo 改变用户"地方"设置信息
; e" i- i3 V: X# i- hSetLocalTime 设置当前地方时间
( Y: h; H7 K7 C8 a: P& ZSetSysColors 设置指定窗口显示对象的颜色 ) T3 ~2 C! \4 i) F/ O( N
SetSystemCursor 改变任何一个标准系统指针 : |: f# j  _" l2 h" g+ U1 w
SetSystemTime 设置当前系统时间
3 i3 V, v* Y  Q+ KSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
# V, v" e; e, u: bSetThreadLocale 为当前线程设置地方
- h  p3 b3 g5 R. M; ASetTimeZoneInformation 设置系统时区信息 # a1 |$ H' N) X  z
ShowCaret 在指定的窗口里显示插入符(光标) # i$ U1 f# z3 z1 [/ C
ShowCursor 控制鼠标指针的可视性
1 _1 |  Z% i; \" qSwapMouseButton 决定是否互换鼠标左右键的功能
6 u! U- _% k; B, P; A7 fSystemParametersInfo 获取和设置数量众多的windows系统参数
* a5 X0 _# [0 O) f& b6 TSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 - o3 c2 G) G3 p3 H$ I  s" j
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 ; f" e8 X9 g" L, _
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 " a1 Y/ z4 @1 q) m5 f) r
UnloadKeyboardLayout 卸载指定的键盘布局
# `% T4 u+ i! X% Z3 }4 {$ F, `VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 / i+ q, h- B: B3 M; v+ ^/ P4 I5 ^
11. API之进程和线程函数
" f" ~3 B/ R4 [CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
' \* n4 W$ P; g! }0 f3 ACallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 , T, B! }& U/ k2 v$ a% {/ z% k
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
8 ]" S8 t) J. G7 j3 c9 Q7 _CreateEvent 创建一个事件对象 1 q( T9 U! j* Z2 \/ ^( Q8 O
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
3 Y& V* y+ c( u2 U3 A1 D' O+ bCreateMutex 创建一个互斥体(MUTEX)
! \; L5 a5 W" ~! H. R9 UCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
4 v7 O9 Y  X+ w. d8 ~CreatePipe 创建一个匿名管道 ! R- M+ w% H0 P; V+ f7 P) `
CreateProcess 创建一个新进程(比如执行一个程序)
% U1 I; l/ c, A& SCreateSemaphore 创建一个新的信号机 0 u* ?/ D" x5 x& g% s
CreateWaitableTimer 创建一个可等待的计时器对象
) d0 W6 }' f% L: y9 l; ~1 G( N8 CDisconnectNamedPipe 断开一个客户与一个命名管道的连接 " ^2 _! e. X. [1 m  p6 h+ |6 ?
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 % l1 d4 [- q* k, D1 S
ExitProcess 中止一个进程
5 F$ |1 q9 C( N  r8 cFindCloseChangeNotification 关闭一个改动通知对象 8 N& Q8 v+ _6 `5 b& `+ Y* j' e& H
FindExecutable 查找与一个指定文件关联在一起的程序的文件名
; J4 g' I; A6 y8 v3 m0 lFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
) G) ~' q% i2 B" Z$ @) _  B0 eFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 3 ^7 J: d* o3 r0 y9 \$ ^
FreeLibrary 释放指定的动态链接库
, U( _, q7 S: U6 |4 GGetCurrentProcess 获取当前进程的一个伪句柄
' L+ D9 c; V" Z- tGetCurrentProcessId 获取当前进程一个唯一的标识符 $ \! Y' i2 |  M3 D: c$ U5 P& c8 X
GetCurrentThread 获取当前线程的一个伪句柄
, Y& v  O0 _/ ~9 D: T& C% e. p# T6 F( IGetCurrentThreadId 获取当前线程一个唯一的线程标识符
$ e2 j9 U. N2 x' rGetExitCodeProces 获取一个已中断进程的退出代码
- c5 U$ ?1 S6 G0 rGetExitCodeThread 获取一个已中止线程的退出代码
; D: k5 w4 E: {2 z8 i& \+ ^) Q7 }GetHandleInformation 获取与一个系统对象句柄有关的信息
- ]% H. |/ H9 v) SGetMailslotInfo 获取与一个邮路有关的信息 # ^; h$ p3 O* t. O; u
GetModuleFileName 获取一个已装载模板的完整路径名称 4 ^. {, k1 A! m7 I% ?" E1 q
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 % ^4 w1 B8 n& G
     GetModuleHandleA(LPCSTR lpModuleName);
! x- ^1 Y7 T1 H& H5 sGetPriorityClass 获取特定进程的优先级别 3 P$ r' {: q3 @5 D8 a) v5 A+ `
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
. P# ^' A5 }4 l! aGetProcessTimes 获取与一个进程的经过时间有关的信息 . B! r/ r, w2 T: g6 E% {7 p5 {7 M7 o
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
6 }! S/ ~" r3 L5 u# p& PGetSartupInfo 获取一个进程的启动信息 5 x% z. A! v1 _( j. z
GetThreadPriority 获取特定线程的优先级别 2 Y! ]0 d8 g) A- G3 F9 m
GetTheardTimes 获取与一个线程的经过时间有关的信息 4 O$ q. ~. A! p) A# p
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
( e! C- _, H: b7 t$ Z* w, Z/ BLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
' c- j, I  x0 E' XLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 0 y$ V7 s8 M8 O# P( |: J' E- e
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 6 T9 b: e* P3 V7 I( ?& H
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
/ B! m* \- b/ r4 R! g/ D8 uSetPriorityClass 设置一个进程的优先级别
( A6 f, A1 t) }1 sSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 . ^" X+ M9 k- M
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
6 c( p) a+ d  t* U8 x/ P3 S2 ]$ ySetThreadPriority 设定线程的优先级别
! P" u* g: \# @6 ~5 G2 u/ c7 yShellExecute 查找与指定文件关联在一起的程序的文件名 ( Z* j& U- D% H* |7 [/ [
TerminateProcess 结束一个进程 9 i) V( G* b/ W3 v% K
WinExec 运行指定的程序
* o6 V/ c, q* s2 ?2 N12. API之控件与消息函数
0 [$ }4 [$ }) P  C; JAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 . ], S' e; k; E' t) g: f8 ~. H
AnyPopup 判断屏幕上是否存在任何弹出式窗口 2 \6 m1 {9 o$ p: C$ Z
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
' ^+ p4 Q0 O0 vAttachThreadInput 连接线程输入函数 * S( H5 C4 ]# h! p
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 + S  Q/ |6 s* Q9 M& X  g
BringWindowToTop 将指定的窗口带至窗口列表顶部
3 y# n2 J9 C. GCascadeWindows 以层叠方式排列窗口 8 W* C+ b4 e! e( A7 f- X
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 * l  O# j0 z# j; L* v
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
; _( H" e/ Z% D. l; j7 }1 E$ s' WCloseWindow 最小化指定的窗口 4 T1 j6 V1 ]2 A
CopyRect 矩形内容复制 + J1 T. d1 C4 w* [- Y6 ^
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
' s& O/ V/ T- D  x9 n) NDestroyWindow 清除指定的窗口以及它的所有子窗口
6 F! }$ ?4 q) V# X8 i( b' y/ EDrawAnimatedRects 描绘一系列动态矩形 3 `8 ?/ G* \6 I/ q; [% o! L- m
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
; B' C- A7 a) G1 z3 w& I" {EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 . D4 {8 @9 u+ L9 P/ Q
EnumChildWindows 为指定的父窗口枚举子窗口
. o/ s2 b* g+ L7 K2 _5 ^0 {$ UEnumThreadWindows 枚举与指定任务相关的窗口
/ J1 B4 m, t* }EnumWindows 枚举窗口列表中的所有父窗口
0 k2 W8 d2 N& S- f) M# kEqualRect 判断两个矩形结构是否相同 6 P4 F$ p* E" \9 R8 m
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 ) U% x6 N8 \3 `7 D
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
: `) y& ?. A1 w, D0 b4 Z# cFlashWindow 闪烁显示指定窗口 7 r9 A. W8 @+ p; ]9 t5 c
GetActiveWindow 获得活动窗口的句柄   v' O5 v: E6 t" T& x* S
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
6 \) D: V# c' C$ V, WGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 1 T2 J7 i1 h7 j! r" o5 A+ R
GetClassLong 取得窗口类的一个Long变量条目 4 p/ h% U8 n+ q( W" o- a' @/ O% g
GetClassName 为指定的窗口取得类名 4 w0 B- M7 g, c8 o8 p" D5 T. J
GetClassWord 为窗口类取得一个整数变量
: }/ f/ v/ R, W# A' d2 OGetClientRect 返回指定窗口客户区矩形的大小 0 Y9 D% T6 A- {; F$ \( v
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
- T* p: U* C# q* T6 G+ P. E! MGetFocus 获得拥有输入焦点的窗口的句柄 + `3 _1 A" U# Y) y, _8 _0 @! e
GetForegroundWindow 获得前台窗口的句柄
- A* f0 {+ {9 F1 S" LGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 6 d& s0 s0 ^: N, s0 T
GetParent 判断指定窗口的父窗口 0 Q, [- L' z6 L& E! x( R
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 ' V5 x. X& w2 q
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 % t5 F5 d" ]. ?, q2 K+ L% L
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
, i4 k6 E& w+ B9 k8 l9 Y. Q! I6 WGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID 0 k7 q* s2 _4 }# |5 S# @/ H& w
GetWindowLong 从指定窗口的结构中取得信息
. Y2 s. p/ c2 g+ R, {# iGetWindowPlacement 获得指定窗口的状态及位置信息
- O/ X7 E6 q& W) ^4 A* u7 U- c# g4 [GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 9 K2 p( G6 P! E
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 ; Q$ s, }( R1 l" z
GetWindowTextLength 调查窗口标题文字或控件内容的长短 * Q' ?( m1 [, W* D3 p
GetWindowWord 获得指定窗口结构的信息 % B; v' L3 a5 e; B; j4 }9 n7 G1 @8 f
InflateRect 增大或减小一个矩形的大小 4 t  K* l: o8 B" m
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 % _! K; u9 Y3 Q; H- }% g
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 6 m; u" Y4 W' @
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口 9 [# R9 h& C4 M! B& A
IsIconic 判断窗口是否已最小化 7 B/ ?3 d3 g2 G0 u( o" a( C  X
IsRectEmpty 判断一个矩形是否为空
* R! h# ^* ?0 ?" Q3 @( E+ gIsWindow 判断一个窗口句柄是否有效 & H4 m5 w2 w! g9 @9 c1 e- \4 C& m
IsWindowEnabled 判断窗口是否处于活动状态 # j( M* B6 b% p- ^' c& }+ C
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 % G: z. _! u$ I2 U" [# Y
IsWindowVisible 判断窗口是否可见
3 r' W' ?/ w2 ^2 BIsZoomed 判断窗口是否最大化 8 W9 P) m; z+ Y
LockWindowUpdate 锁定指定窗口,禁止它更新 % P! s3 e0 w& z8 E- b3 u
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
3 q) i7 a" G, Q6 g: P9 l8 HMoveWindow 改变指定窗口的位置和大小 3 C* f- W, K9 K2 `: ~2 [
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
4 T% V1 t" m1 p# r6 HOpenIcon 恢复一个最小化的程序,并将其激活 % E  l6 V/ Y) A
PtInRect 判断指定的点是否位于矩形内部
3 O1 T! Y* [: t$ rRedrawWindow 重画全部或部分窗口
) }2 {9 s7 o; d) B$ @! aReleaseCapture 为当前的应用程序释放鼠标捕获 , U0 s# {$ ]4 g# Y" i8 M' C
ScreenToClient 判断屏幕上一个指定点的客户区坐标 ' @) _9 n6 O+ k* ?( T
ScrollWindow 滚动窗口客户区的全部或一部分
% `- e) S' O& SScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 8 w& ~9 O  f  I! p- x, k& |
SetActiveWindow 激活指定的窗口 4 Q5 ]; a3 `; w) o5 d/ @: L
SetCapture 将鼠标捕获设置到指定的窗口 " a; y. ~) j6 F. O" y* _2 T* m  C! S
SetClassLong 为窗口类设置一个Long变量条目
, `$ C# j0 }: z: j+ VSetClassWord 为窗口类设置一个条目 7 t$ ^" w# j8 V0 o) v7 {* T
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 1 W: `, O4 r* A0 f
SetForegroundWindow 将窗口设为系统的前台窗口 * l5 w4 }4 ]# \! P( H
SetParent 指定一个窗口的新父 3 N  t# `9 C  L/ ?+ o
SetRect 设置指定矩形的内容 $ }( o- l" l5 Q# M5 u2 ^0 S7 L9 l" k
SetRectEmpty 将矩形设为一个空矩形
( e. F) z5 ?9 P% m, ~1 RSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
0 _  {+ u9 ~$ W+ g% O6 lSetWindowLong 在窗口结构中为指定的窗口设置信息
9 F. N6 b* {2 Q: S3 ~9 j  `SetWindowPlacement 设置窗口状态和位置信息 , k# q: [) N  I3 C+ |0 u0 a
SetWindowPos 为窗口指定一个新位置和状态
/ {8 N% m; K) t2 mSetWindowText 设置窗口的标题文字或控件的内容
9 u; Z& N) P& ?: G$ F2 m% }5 RSetWindowWord 在窗口结构中为指定的窗口设置信息 9 }7 O' f# E. r
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
. p+ ?! ^& q; `ShowWindow 控制窗口的可见性 # R, N0 r( A: \: j- I1 M  G8 z
ShowWindowAsync 与ShowWindow相似
. q8 w/ W+ M) j: }; C, ISubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
# }+ o. @- @8 v5 ]6 ITileWindows 以平铺顺序排列窗口 ! s, T2 ?( a- s2 ~9 d9 Y
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
& i7 w, ~# G1 E; W( ], EUpdateWindow 强制立即更新窗口
2 `) k1 D7 W/ C* E8 j1 X+ f4 I! S# U9 FValidateRect 校验窗口的全部或部分客户区 7 s& q# S) I% Z, j2 c8 o  k! q% C+ C
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
  ?# m- _9 y: [高级音频函数—参看《VC++ 编程指南.chm》11.6
9 R1 L, v) R: l: |8 I     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。0 n, v% j7 \7 |
     BOOL MessageBeep(UINT uType);( a" f) o* k4 j& a4 c4 a9 X
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。1 J" Q# v  C6 c/ e8 _4 ]6 i
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。: J  g& q; `: A
级别 7 C# I5 B* m6 \: Z6 E1 q
描述 ) h9 T2 y/ O" X" @
-1
" D, j# x) D* l, @- R5 }& Q% ]
从机器的扬声器中发出蜂鸣声。
8 t- _$ F# L, u$ i  z
MB_ICONASTERISK ( i2 G: B# ~) i% K/ s/ q" D
播放由SystemAsterisk定义的声音。 0 W2 l' s2 M$ ^0 v
MB_ICONEXCLAMATION 6 U. H& g6 F9 I0 T' R6 s% {
播放由SystemExclamation定义的声音。 * ?( a& p4 d) U. S; \
MB_ICONHAND
% ^5 [& J, ]- o# m: [" g$ b; g2 j
播放由SystemHand定义的声音。 + s* i. {( m% |3 K7 J' H
MB_ICONQUESTION % p: p' o  j! ~; z- M8 w) w# Y
播放由SystemQuestion定义的声音。 4 |# M3 p- i* U
MB_OK
% L; _8 @& d- B5 q* O* e4 p- K
播放由SystemDefault定义的声音
8 R: R$ K2 v" M' b
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);7 c+ @0 T3 X: e7 q5 L
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。  `9 F; p6 P9 E- R  z
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。( n; P  s* P. N1 l0 K
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。% G' }% v* |( j) B
标志 6 u" k0 g; j  Z2 j7 Q1 l' ]( K0 u
含义
5 ]3 m# d! m6 b+ U* M& g$ L) k
SND_APPLICATION & u$ d) f2 O& I
用应用程序指定的关联来播放声音。
1 @& h$ N$ H2 V4 F+ s3 U! D- {% v
SND_ALIAS
  T# J1 I, G) ]! W6 y+ F
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
; r! K3 G) ~* \% v/ N3 k
SND_ALIAS_ID
1 o/ p% D9 {, g2 j
pszSound参数指定了预定义的声音标识符。 4 ~) F" n# C: `& p! ]- e+ M+ K! r
SND_ASYNC
0 G% E( V3 ]. q
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
/ f8 t! {6 }* A! y, ]  ]- G
SND_FILENAME
& W  b0 O- e: U; y: \. F# ^
pszSound参数指定了WAVE文件名。 5 a" g( L) ^2 ~
SND_LOOP
. X, o, i; M( H/ T6 i
重复播放声音,必须与SND_ASYNC标志一块使用。
3 `- x3 y- b6 z5 z3 o( W% [
SND_MEMORY - T% N5 R. F) n& `
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 8 K( d  s9 {+ G0 T+ \
SND_NODEFAULT : E+ k3 b: K. D4 k4 w
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 ( ~% a- X: H: Z2 ~
SND_NOSTOP 5 Z2 Z# S; `& V! R" ]$ E7 O: `  P
PlaySound不打断原来的声音播出并立即返回FALSE。
5 f+ s# K0 I/ o  O5 [4 g' c4 ^9 a" r
SND_NOWAIT
0 _; e! b" ]& @' _! H
如果驱动程序正忙则函数就不播放声音并立即返回。 " u# g8 t. e# o" Q/ D
SND_PURGE
2 K4 w; e: x  Q0 _$ M: U
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 $ M  }5 d1 A+ r- ]& p. f
SND_RESOURCE
' W3 w5 z' C' b7 X; `( C7 ?3 e
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 : {; i$ Q/ w8 |9 I0 Q& I8 C% T
SND_SYNC
+ V. ~& x; s& \4 g3 g
同步播放声音,在播放完后PlaySound函数才返回。 9 V" L/ K) {% t8 c" n$ i) @
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
9 b0 {# g5 O8 Y2 A: F# l/ O, O函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
$ R, p! A6 I" L2 L9 a+ nMCI播放) B* D8 \% ]8 I  N" K& Q$ z! K
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
2 U8 ]9 w5 a" @# i: F( RMCIERROR mciSendString(
) K/ e/ H9 z+ }LPCTSTR lpszCommand, //MCI命令字符串: W' y( Z: b- S6 `! b$ y* f3 F
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
/ t$ a$ |5 C; S3 l- p3 \UINT cchReturn, //缓冲区的长度& k& f2 O- ?7 n( k% g6 B+ E; c- i
HANDLE hwndCallback //回调窗口的句柄,一般为NULL
6 d" w- b, u6 `6 s2 B, k3 b) T); //若成功则返回0,否则返回错误码。
$ v3 |! m" }7 h该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
! n" u( Q/ g1 Q! zBOOL mciGetErrorString(
, f+ p0 ~/ s" j! eDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码4 P; u8 J1 E' B) x# o2 U
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区6 E# t: X. N& x
UINT cchErrorText //缓冲区的长度9 |# M0 n; h3 x- o9 k
);- P5 L( E7 d' z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-13 08:22 , Processed in 0.024669 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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