次の方法で共有


CComCachedTearOffObject クラス

このクラスは、ティアオフ インターフェイスの IUnknown を実装します。

template <
   class contained
>
class CComCachedTearOffObject : public IUnknown,
   public CComObjectRootEx< contained::_ThreadModel::ThreadModelNoCS >

パラメーター

  • contained
    CComTearOffObjectBase と、そのティアオフ オブジェクトでサポートするインターフェイスから派生したティアオフ クラス。

解説

CComCachedTearOffObject は、ティアオフ インターフェイスの IUnknown を実装します。 CComTearOffObject クラスは、オーナー オブジェクトの IUnknown とは別に独自の IUnknown を持つ点で CComCachedTearOffObject とは異なります。オーナー オブジェクトとは、ティアオフが作成されているオブジェクトのことです。 CComCachedTearOffObject は、その IUnknown の参照カウントを独自に管理し、カウントが 0 になると自分自身を削除します。 しかし、そのティアオフ インターフェイスのいずれかに対して問い合わせが行われた場合は、オーナー オブジェクトの IUnknown の参照カウントがインクリメントされます。

ティアオフを実装している CComCachedTearOffObject オブジェクトが既にインスタンス化されている場合、そのティアオフ インターフェイスに対する問い合わせが再び行われると、同じ CComCachedTearOffObject オブジェクトが再利用されます。 一方、CComTearOffObject によって実装されているティアオフ インターフェイスに対してオーナー オブジェクト経由で再び問い合わせが行われた場合は、別の CComTearOffObject がインスタンス化されます。

オーナー クラスは FinalRelease を実装し、キャッシュに格納されている、CComCachedTearOffObject 独自の IUnknown に対して Release を呼び出す必要があります。これによって、この IUnknown の参照カウントがデクリメントされます。 この結果、CComCachedTearOffObjectFinalRelease が呼び出され、ティアオフが削除されます。

必要条件

**ヘッダー:**atlcom.h

参照

参照

CComTearOffObject クラス

CComObjectRootEx クラス

その他の技術情報

CComCachedTearOffObject のメンバー

ATL クラスの概要