次の方法で共有


CComCachedTearOffObject クラス

更新 : 2007 年 11 月

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

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

パラメータ

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

解説

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

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

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

必要条件

ヘッダー : atlcom.h

参照

参照

CComTearOffObject クラス

CComObjectRootEx クラス

その他の技術情報

CComCachedTearOffObject のメンバ

ATL クラスの概要