OpenEvent是一个函式,可以用来执行返回事件对象的句柄。
函式功能
打开一个已经存在的命名事件对象
函式原型
HANDLEOpenEvent(
DWORD dwDesiredAccess,
BOOL bInheritHandle,
LPCTSTR lpName
);
参数说明
dwDesiredAccess 【in】指定对事件对象的请求访问许可权,如果安全描述符指定的对象不允许要求通过对调用该函式的过程,函式将返回失败。
该参数必须设定为以下值
EVENT_ALL_ACCESS 指定事件对象所有可能的许可权
bInheritHandle 【in】指定是否返回的句柄是否继承 。该参数必须设定为false
lpName 【in】指向一个以null结束的字元串,即将要打开的事件对象的名字。名称是区分大小写的。
返回值
函式执行成功则返回事件对象的句柄;失败则返回NULL,获取错误信息可以使用GetLastError.
VB声明
Declare Function OpenEvent Lib "kernel32" Alias "OpenEventA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long
参数表
参数表 | ||
参数 | 类型及说明 | |
dwDesiredAccess | Long,下述常数之一 | |
EVENT_ALL_ACCESS | 要求对事件对象进行完全访问 | |
EVENT_MODIFY_STATE | 允许SetEvent 和 ResetEvent函式 | |
SYNCHRONIZE | 允许事件对象的使用同步 | |
bInheritHandle | Long,如希望子进程能够继承句柄,则为TRUE | |
lpName | String,指定要打开的对象的名字 | |
注解 | ||
一旦不再需要,注意一定要用CloseHandle关闭事件句柄。如对象的所有句柄都已关闭,那幺对象也会删除 |
Remarks
The OpenEvent function enables multiple processes to open handles of the same event object. The function succeeds only if some process has already created the event using the CreateEvent function. The calling process can use the returned handle in any function that requires a handle to an event object, subject to the limitations of the access specified in the dwDesiredAccess parameter.
Use the DuplicateHandle function to duplicate the handle. Use the CloseHandle function to close the handle. The system closes the handle automatically when the process terminates. The event object is destroyed when its last handle has been closed.