[ATL]
[<プロジェクト名> のプロジェクト オプション]ダイアログ ボックス への移動
[プロジェクト|オプション...|ATL]
このダイアログ ボックスを使用して、ATL(アクティブ テンプレート ライブラリ)関連オプションを指定することができます。ここで指定したオプションは、プロジェクト内のすべての COM サーバーに適用されます。
メモ: C++Builder XE 以降の C++ ActiveX プロジェクトおよび COM プロジェクトでは、ATL の代わりに DAX(Delphi ActiveX フレームワーク)が使われるようになっています。そのため、この[ATL]ページは、ATL を使用している既存プロジェクトを開いた場合にしか[<プロジェクト名> のプロジェクト オプション]に表示されません。C++Builder XE で引き続き ATL を使用する方法は、「C++Builder では ActiveX と COM に DAX を使用」を参照してください。
項目 | 説明 |
---|---|
[単一インスタンス] |
クライアントごとに COM サーバー オブジェクトのインスタンスが 1 つ作成されます。 |
[多重インスタンス] |
すべてのクライアントが 1 つの COM サーバー オブジェクトのインスタンスに対して動作します。 |
[APARTMENTTHREADED] |
オブジェクトは、そのオブジェクトを作成したスレッドからしか参照されません。このオプションは、シングル スレッド オブジェクトおよびアパートメント スレッド オブジェクトだけを含むプロジェクトで使用します。 |
[MULTITHREADED] |
オブジェクトは、任意のスレッドから参照することができます。このオプションは、フリー スレッド オブジェクト、フリー/アパートメント両用オブジェクト、ニュートラル スレッド オブジェクトを含むプロジェクトで使用します。 |
[シングル スレッド モデル] |
すべての COM サーバー オブジェクトは、1 つのスレッドを使って実装されます。 |
[アパートメント スレッド モデル] |
プロジェクトをマルチスレッド対応にすることができますが、COM サーバー オブジェクトの各インスタンスは、OLE 呼び出し用に独自の専用スレッドを持つ必要があります。 |
[フリー スレッド モデル] |
プロジェクトをマルチスレッド対応にすることができ、COM サーバー オブジェクトの各インスタンスは、複数のスレッドから同時に要求を受け取ることができます。コードでは、スレッドの同時実行をサポートする必要があります。 |
[フリー/アパートメント両用] |
[フリー スレッド モデル]と同じですが、外へ向かう呼び出し(コールバックなど)が同じスレッド内で実行されると保証されている点が異なります。 |
[ニュートラル] |
複数のクライアントから異なるスレッドで同じオブジェクトを同時に呼び出すことができますが、2 つの呼び出しが衝突しないことが COM によって保証されます。 |
[クエリ インターフェイスを追跡] |
クライアントが QueryInterface を呼び出すたびに、イベント ログにメッセージが送信されます。イベント ログには呼び出しのステータスも表示されます。 |
[参照カウントを確認] |
COM サーバー オブジェクトの参照カウントが増減するたびに、イベント ログにメッセージが送信されます。[参照カウントを確認]を有効にしていると、参照カウントが 0 でないオブジェクトをプロジェクトがメモリから解放しようとしたときにアサーションが発生します。 |
[一般機能を追跡] |
ATL 関数が呼び出されると、イベント ログにメッセージが送信されます。 |
メモ: [スレッド モデル]オプションは、下位互換性を保つために提供されているだけです。現在は、オブジェクトごとにスレッド モデルを指定するようになっています。