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に格納されている値を返します。

関連項目

クラスの概要