Share via


ATL とフリー スレッド マーシャラー

ATL シンプル オブジェクト ウィザードのページの属性は、クラスがフリー スレッド マーシャラー (FTM) を集約できるようにするオプションです。

ウィザードは FinalConstruct のフリー スレッド マーシャラーのインスタンスを作成し、FinalReleaseのインスタンスを解放するコードを生成します。 COM_INTERFACE_ENTRY_AGGREGATE のマクロは COM マップに自動的に IMarshalQueryInterface の要求がフリー スレッド マーシャラーによって処理されるようにするために追加されます。

フリー スレッド マーシャラーは同じプロセスの各スレッドによるオブジェクトのインターフェイスへの直接アクセスを可能にし、アパートメント間呼び出しの時間を短縮できます。 このオプションは、どちらもスレッド モデルを使用するクラスのために用意されています。

このオプションを使用した場合、クラスはデータのスレッド セーフの責任を払う必要があります。 また、オブジェクト、フリー スレッド マーシャラーを集約する他のオブジェクトから派生したインターフェイス ポインターを使用するインターフェイスが正しくマーシャリングされるようにするために必要なの特別な手順を実行する必要があります。 通常、使用するたびへのインターフェイス ポインターをグローバル インターフェイス テーブルに格納し、GIT (GIT) からポインターを取得します。 ATL (GIT に格納されているインターフェイス ポインターを使用できるように CComGITPtr クラスを提供します。

参照

関連項目

CoCreateFreeThreadedMarshaler

IMarshal

When to Use the Global Interface Table

In-Process Server Threading Issues

その他の技術情報

ATL (Active Template Library) の概念