CComObjectThreadModel

使用しているスレッド モデルに関係なく、適切なスレッド モデル メソッドを呼び出します。

#if defined( _ATL_SINGLE_THREADED )
   typedef CComSingleThreadModel CComObjectThreadModel;
#elif defined( _ATL_APARTMENT_THREADED )
   typedef CComSingleThreadModel CComObjectThreadModel;
#elif defined( _ATL_FREE_THREADED )
   typedef CComMultiThreadModel CComObjectThreadModel;
#else
   #pragma message ("No global threading model defined")
#endif

解説

アプリケーションで使用するスレッド化モデルに応じて、typedef 名 CComObjectThreadModelCComSingleThreadModel または CComMultiThreadModel のどちらかを参照します。 これらのクラスは、追加の typedef 名を提供して、クリティカル セクション クラスを参照できるようにします。

注意

CComObjectThreadModel は、CComMultiThreadModelNoCS クラスを参照しません。

CComObjectThreadModel を使用すると、特定のスレッド化モデル クラスを指定しなくても済みます。 使用中のスレッド化モデルに関係なく、適切なメソッドが呼び出されます。

CComObjectThreadModel のほかに、ATL は typedef 名 CComGlobalsThreadModel も提供します。 各 typedef が参照するクラスは、使用するスレッド化モデルによって異なります。次の表はその状況を示します。

typedef

シングルスレッド

アパートメント スレッド

フリー スレッド

CComObjectThreadModel

S

S

M

CComGlobalsThreadModel

S

M

M

S=CComSingleThreadModel; M=CComMultiThreadModel

単一のオブジェクト クラス内では、CComObjectThreadModel を使用します。 プログラムでグローバルに使用できるオブジェクトの場合、または複数のスレッド間でモジュールのリソースを保護する場合は、CComGlobalsThreadModel を使用します。

必要条件

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

参照

参照

CComObjectRootEx クラス

その他の技術情報

ATL クラスの概要

ATL typedef