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 中的值。