ATL とフリー スレッド マーシャラー
ATL シンプル オブジェクト ウィザードのページの属性は、クラスがフリー スレッド マーシャラー (FTM) を集約できるようにするオプションです。
ウィザードは FinalConstruct のフリー スレッド マーシャラーのインスタンスを作成し、FinalReleaseのインスタンスを解放するコードを生成します。COM_INTERFACE_ENTRY_AGGREGATE のマクロは COM マップに自動的に IMarshal の QueryInterface の要求がフリー スレッド マーシャラーによって処理されるようにするために追加されます。
フリー スレッド マーシャラーは同じプロセスの各スレッドによるオブジェクトのインターフェイスへの直接アクセスを可能にし、アパートメント間呼び出しの時間を短縮できます。このオプションは、どちらもスレッド モデルを使用するクラスのために用意されています。
このオプションを使用した場合、クラスはデータのスレッド セーフの責任を払う必要があります。また、オブジェクト、フリー スレッド マーシャラーを集約する他のオブジェクトから派生したインターフェイス ポインターを使用するインターフェイスが正しくマーシャリングされるようにするために必要なの特別な手順を実行する必要があります。通常、使用するたびへのインターフェイス ポインターをグローバル インターフェイス テーブルに格納し、GIT (GIT) からポインターを取得します。ATL (GIT に格納されているインターフェイス ポインターを使用できるように CComGITPtr クラスを提供します。
参照
関連項目
When to Use the Global Interface Table
In-Process Server Threading Issues