精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓.VB电子文档集锦.〓〓>>《老猫:VB声明API》>>VB API:同步函数 (完)

主题:VB API:同步函数 (完)
发信人: winsy(鹰派)
整理人: winsy(2003-03-16 10:34:40), 站内信件
DuplicateHandle 

VB声明 
Declare Function DuplicateHandle Lib "kernel32" Alias "DuplicateHandle" (ByVal hSourceProcessHandle As Long, ByVal hSourceHandle As Long, ByVal hTargetProcessHandle As Long, lpTargetHandle As Long, ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwOptions As Long) As Long 
说明 
  在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄。当前句柄可能为于一个不同的进程 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hSourceProcessHandle Long,拥有源句柄的那个进程的句柄。 
hSourceHandle Long,指定对象的现有句柄。 
hTargetProcessHandle Long,即将拥有新句柄的一个进程句柄。 
lpTargetHandle Long,指定用于装载新句柄的一个长整型变量 
dwDesiredAccess Long,新句柄要求的安全访问级别。 
bInheritHandle Long,如新句柄可由hSourceProcessHandle的子进程继承,则为TRUE 
dwOptions Long,下列常数的一个或两个: 
DUPLICATE_SAME_ACCESS:新句柄拥有与原始句柄相同的安全访问特征 
DUPLICATE_CLOSE_SOURCE:原始句柄已经关闭。即使发生错误。它也要关闭  
注解 
  在一个进程中,这个函数可根据位于不同进程内的现有句柄创建一个新句柄。可以从这两个进程中发出对这个函数的调用。进程必须提供PROCESS_DUP_HANDLE访问权限,否则函数执行不能成功。
 

GetHandleFormation 

VB声明 
Declare Function GetHandleInformation Lib "kernel32" Alias "GetHandleInformation" (ByVal hObject As Long, lpdwFlags As Long) As Long 
说明 
  获取与一个系统对象句柄有关的信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hObject Long,要测试的句柄 
lpdwFlags Long,设置了下述一个或多个常数的位标志: 
HANDLE_FLAG_INHERIT:对象可由一个子进程继承 
HANDLE_FLAG_PROTECT_FROM_CLOSE:句柄不可用CloseHandle函数关闭 
适用平台 
Windows NT
 

MsgWaitForMultipleObjects 

VB声明 
Declare Function MsgWaitForMultipleObjects Lib "user32" Alias "MsgWaitForMultipleObjects" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long 
说明 
等侯单个对象或一系列对象发出信号---标志着规定的超时已经过去,或特定类型的消息已抵达线程的输入队列。如返回条件已经满足,则立即返回 
返回值 
Long,如fWaitAll设为TRUE,则下述任何一个常数都标志着成功: 
WAIT_ABANDONED_0:所有对象都发出消息,而且其中一个或多个属于互斥体(一但拥有它门的进程中止,就会发出信号)。 
WAIT_TIMEOUT:对象保持未发信号的状态,但规定的等待超时时间已经超过 
WAIT_OBJECT_0:所有的对象都发出信号 
WAIT_TO_COMPLETION(仅适用于WaitForSingleObjectEx),由于一个I/O完成操作已准备好执行,从而造成了函数的返回。 
返回WAIT_FALIED表示函数执行失败。会设置GetLastError 
如fWaitAll设为FALSE,那返回结果与前面说的相似,只是可能还会返回相对于WAIT_ABANDONED_0或WAIT_OBJECT_0的一个正偏移量,指出哪个对象是被抛弃还是发出信号。 
如果是由于dwWakeMask指定的,符合特殊标准的一条消息的到达而造成了函数的返回,则返回WAIT_OBJECT_0 + nCount 
参数表 
参数 类型及说明 
nCount Long,指定列表中的句柄数量 
pHandles Long,指定对象句柄组合中的第一个元素 
fWaitAll Long,如果为TRUE,表示除非对象同时发出信号,否则就等待下去。如果为FALSE,表示任何对象发出信号即可。 
dwMilliseconds Long,指定要等待的毫秒数。 
dwWakeMask Long,带有QS_??前缀的一个或多个常数,用于标识特定的消息类型。 
注解 
如果函数是由于对象发出信号而返回,这个函数还会得到一些额外的效果:
 
信号机:递增信号机计数 
互斥体:将互斥体的所有权限赋于发出调用的线程 
自动重设事件:将事件发信状态设为FALSE 
自动重设可等待计时器:将计时器状态设为FALSE 

[关闭][返回]