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
オブジェクトが自動的に削除されることです。
Note
一部の 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::Detach
CHandle
オブジェクトからハンドルをデタッチするには、このメソッドを呼び出します。
HANDLE Detach() throw();
戻り値
デタッチされているハンドルを返します。
解説
ハンドルの所有権を解放します。
CHandle::m_h
ハンドルを格納するメンバー変数です。
HANDLE m_h;
CHandle::operator =
代入演算子。
CHandle& operator=(CHandle& h) throw();
パラメーター
時
CHandle
は、ハンドル h の所有権を取得します。
戻り値
新しい CHandle
オブジェクトへの参照を返します。
解説
CHandle
オブジェクトに、現在ハンドルが含まれている場合は、閉じられます。 渡される CHandle
オブジェクトのハンドル参照が NULL に設定されます。 これにより、2 つの CHandle
オブジェクトに同じアクティブ ハンドルが含まれることがなくなります。
CHandle::operator HANDLE
格納されているハンドルの値を返します。
operator HANDLE() const throw();
解説
CHandle:: m_hに格納されている値を返します。