共用方式為


CHandle 類別

這個類別提供建立和使用 handle 物件的方法。

語法

class CHandle

成員

公用建構函式

名稱 描述
CHandle::CHandle 建構函式。
CHandle::~CHandle 解構函式。

公用方法

名稱 描述
CHandle::Attach 呼叫這個方法,將物件附加 CHandle 至現有的句柄。
CHandle::Close 呼叫這個方法以關閉 CHandle 物件。
CHandle::D etach 呼叫這個方法,從 物件卸離句柄 CHandle

公用運算子

名稱 描述
CHandle::operator HANDLE 傳回預存句柄的值。
CHandle::operator = 指派運算子。

公用資料成員

名稱 描述
CHandle::m_h 儲存句柄的成員變數。

備註

CHandle每當需要句柄時,就可以使用 物件:主要差異在於CHandle對象會自動刪除。

注意

某些 API 函式會使用 NULL 做為空白或無效的句柄,而其他函式則使用 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();

參數

小時
CHandle 會取得句柄 的擁有權 h

備註

CHandle 物件指派給 h 句柄,然後呼叫 h.Detach()。 在偵錯組建中,如果 h 為 NULL,則會引發 ATLASSERT。 沒有對句柄的有效性進行其他檢查。

CHandle::CHandle

建構函式。

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

參數

小時
現有的句柄或 CHandle

備註

使用現有的句柄或CHandle對象,選擇性地建立新的 CHandle 物件。

CHandle::~CHandle

解構函式。

~CHandle() throw();

備註

藉由呼叫 CHandle::Close 釋放CHandle物件。

CHandle::Close

呼叫這個方法以關閉 CHandle 物件。

void Close() throw();

備註

關閉開啟的物件句柄。 如果句柄為 NULL,如果 Close 已經呼叫,則會在偵錯組建中引發 ATLASSERT。

CHandle::D etach

呼叫這個方法,從 物件卸離句柄 CHandle

HANDLE Detach() throw();

傳回值

傳回要中斷連結的句柄。

備註

釋放句柄的擁有權。

CHandle::m_h

儲存句柄的成員變數。

HANDLE m_h;

CHandle::operator =

指派運算子。

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

參數

小時
CHandle 會取得句柄 的擁有權 h

傳回值

傳回新 CHandle 對象的參考。

備註

CHandle如果物件目前包含句柄,則會關閉它。 CHandle傳入的物件會將其句柄參考設定為 NULL。 這可確保兩個 CHandle 對象永遠不會包含相同的使用中句柄。

CHandle::operator HANDLE

傳回預存句柄的值。

operator HANDLE() const throw();

備註

傳回儲存在 CHandle::m_h 中的值。

另請參閱

類別概觀