CHandle 类

此类提供用于创建和使用句柄对象的方法。

语法

class CHandle

成员

公共构造函数

名称 描述
CHandle::CHandle 构造函数。
CHandle::~CHandle 析构函数。

公共方法

名称 描述
CHandle::Attach 调用此方法可将 CHandle 对象附加到现有句柄。
CHandle::Close 调用此方法可关闭 CHandle 对象。
CHandle::Detach 调用此方法可从 CHandle 对象分离句柄。

公共运算符

“属性” 描述
CHandle::operator HANDLE 返回存储的句柄的值。
CHandle::operator = 赋值运算符。

公共数据成员

“属性” 描述
CHandle::m_h 存储句柄的成员变量。

备注

每当需要句柄时,都可以使用 CHandle 对象:主要区别是 CHandle 对象将自动进行删除。

注意

某些 API 函数将使用 NULL 作为空句柄或无效句柄,而其他 API 函数则使用 INVALID_HANDLE_VALUE。 CHandle 仅使用 NULL 并将 INVALID_HANDLE_VALUE 视为实际句柄。 如果调用会返回 INVALID_HANDLE_VALUE 的 API,则应在调用 CHandle::Attach 或将其传递给 CHandle 构造函数之前检查此值,并改为传递 NULL。

要求

标头:atlbase.h

CHandle::Attach

调用此方法可将 CHandle 对象附加到现有句柄。

void Attach(HANDLE h) throw();

参数

h
CHandle 将取得句柄 h 的所有权。

备注

CHandle 对象分配给 h 句柄,然后调用 h.Detach()。 在调试版本中,如果 h 为 NULL,则会引发 ATLASSERT。 无其他句柄有效性检查。

CHandle::CHandle

构造函数。

CHandle() throw();
CHandle(CHandle& h) throw();
explicit CHandle(HANDLE h) throw();

参数

h
现有句柄或 CHandle

注解

可以使用现有句柄或 CHandle 对象创建新的 CHandle 对象。

CHandle::~CHandle

析构函数。

~CHandle() throw();

备注

通过调用 CHandle::Close 释放 CHandle 对象。

CHandle::Close

调用此方法可关闭 CHandle 对象。

void Close() throw();

备注

关闭打开的对象句柄。 如果句柄为 NULL(如果已调用 Close),则会在调试版本中引发 ATLASSERT。

CHandle::Detach

调用此方法可从 CHandle 对象分离句柄。

HANDLE Detach() throw();

返回值

返回要分离的句柄。

备注

释放句柄的所有权。

CHandle::m_h

存储句柄的成员变量。

HANDLE m_h;

CHandle::operator =

赋值运算符。

CHandle& operator=(CHandle& h) throw();

参数

h
CHandle 将取得句柄 h 的所有权。

返回值

返回对新 CHandle 对象的引用。

备注

如果 CHandle 对象当前包含句柄,将关闭该句柄。 要传入的 CHandle 对象的句柄引用将设置为 NULL。 这可确保两个 CHandle 对象不会包含相同的活动句柄。

CHandle::operator HANDLE

返回存储的句柄的值。

operator HANDLE() const throw();

备注

返回 CHandle::m_h 中存储的值。

另请参阅

类概述