[COM オブジェクト ウィザード]

提供: RAD Studio
移動先: 案内検索

[ファイル]メニュー への移動

ファイル > 新規作成 > その他... > ActiveX > COM オブジェクト

新しい COM オブジェクト ウィザード で、シェル エクステンションなどの単純 COM オブジェクトを作成します。 COM オブジェクトを作成する前に、実装する機能を含むアプリケーションのプロジェクトを作成するか開きます。 ニーズに応じて、VCL アプリケーションと ActiveX ライブラリのどちらかをプロジェクトにすることができます。

項目 説明

[CoClass 名]

クライアント アプリケーションに公開するプロパティおよびメソッドのクラスを指定します。 これが CoClass 名です。 実装クラスは、これと同じ名前で先頭に 'T' が付きます。

[説明]

作成中の COM オブジェクトの説明を入力します。

[スレッド モデル]

スレッドモデルは、クライアント アプリケーションが COM オブジェクトのインターフェイスを呼び出す方法を指定します。 選択したスレッドモデルによって、オブジェクトの登録方法が決まります。 選択したモデルに従ったオブジェクト実装を行う必要があります。

[インスタンス生成]

COM オブジェクトの起動方法を示すインスタンス生成モードを指定します。 COM オブジェクトがインプロセス サーバーとしてのみ使用される場合、インスタンス生成は無視されます。

[インターフェイス]

COM オブジェクトのデフォルト インターフェイスの名前を示します。 デフォルトでは、COM オブジェクトのインターフェイスは CoClass と同じ名前で先頭に 'I' が付きます。 デフォルトのインスタンスを使用する場合、オブジェクトは IUnknown から派生する新しいインスタンスを取得するため、タイプ ライブラリ エディタを使用して定義します。 インターフェイスのデフォルト名を変更するには、編集ボックスに名前を入力します。 新しいインターフェイスを実装せずに、システムに登録されているタイプ ライブラリ内のデュアルまたはカスタム インターフェイスにオブジェクトを実装させることができます。 実装するインターフェイスを選択するには、... ボタンをクリックして、インターフェイス選択ウィザード を表示します。 システムに登録されているタイプ ライブラリに定義されているすべてのインターフェイスを見つける必要があるため、このウィザードのロードには少し時間がかかります。 既存のインターフェイスを実装するには、[インターフェイス選択ウィザード] を使用する必要があることに注意してください。 既存のインターフェイスの名前を入力すると、これは既存のインターフェイスとしてウィザードによって認識されず、単に別のインターフェイス名を持つオブジェクトを指定したものと見なされます。

[タイプ ライブラリをインクルードする]

(Delphi のみ)このボックスをオンにして、このオブジェクトのタイプ ライブラリを生成します。 タイプ ライブラリには、クライアント アプリケーションにオブジェクト インターフェイスとそのメソッド、およびプロパティを公開できるようにするためのタイプ情報が含まれています。 このオプションをオフにすると、Delphi コンパイラはプロジェクト ソースに {$ *.tlb} を追加せず、生成された .tlb ファイルはプロジェクトとリンクしません。

[インターフェイスを Oleautomation に設定]

このボックスをオンにすると、タイプ ライブラリのマーシャリングを行うことができます。 このフラグによって、カスタム マーシャリングのために独自のプロキシおよびスタブ DLL を記述せずに済みます。 インターフェイスを OleAutomation としてマークする場合は、インターフェイスが必ず OLE オートメーション対応のタイプを使用するようにする必要があります。

既存のインターフェイスを実装する[...]

システムに登録されている既存のインターフェイスを実装する場合、... をクリックして、インターフェイス選択ウィザード から利用可能なインターフェイスを選択します。 それらのインターフェイスのいずれかを選択してから、既存のインターフェイスを実装する チェック ボックスをオンにします。 ウィザードによって CoClass のコードが生成されると、選択されたインターフェイスが実装されます。

[イベント サポートのためのコードを生成]

このボックスをオンにすると、オートメーション オブジェクトでイベントを管理するために別個のインターフェイスを実装することができます。 このインターフェイスの名前は ICoClassNameEvents であり、クライアントによって実装される必要があるイベント ハンドラを定義します。 アプリケーションはこのインターフェイスを実装しません。

関連項目