COM インターフェイスを作成する

Visual Studio には、COM オブジェクトとオートメーション クラスに向けたインターフェイスとディスパッチ インターフェイスを定義する COM を使用するプロジェクトを作成するためのウィザードとテンプレートが用意されています。

これらのウィザードを使用して、次の 3 つの一般的なタスクを実行できます。

  • MFC プロジェクトへの ATL サポートの追加

    MFC アプリケーション ウィザードを使用して MFC プロジェクトを作成し、MFC に ATL サポートを追加コード ウィザードを実行した後で、MFC アプリケーションに ATL サポートを追加します。 このサポートは、MFC の実行可能ファイルまたは DLL プロジェクトに追加された単純な COM オブジェクトにのみ適用されます。 このような ATL オブジェクトには複数のインターフェイスが存在することがあります。

  • MFC ActiveX コントロールの作成

    MFC ActiveX コントロール ウィザードを開き、それぞれ、.idl ファイルとコントロール クラスで定義されているディスパッチ インターフェイスとイベント マップを含む ActiveX コントロールを作成します。

  • ATL コントロールの追加

    ATL プロジェクト ウィザードATL コントロール ウィザードの組み合わせを使用して、ATL ActiveX コントロールを作成します。

    前述のとおり、ATL サポートを追加した MFC プロジェクトに ATL コントロールを追加することもできます。 さらに、[クラスの追加] ダイアログ ボックスで、ATL コントロールを選択し、ATL サポートを MFC プロジェクトに追加していない場合、Visual Studio で ATL サポートを MFC プロジェクトに追加することを確認するダイアログ ボックスが表示されます。

    このウィザードは、プロジェクト クラスに IDL ソースと COM マップを生成します。

ATL プロジェクトが開いたら、[クラスの追加] ダイアログ ボックスで、COM インターフェイスをプロジェクトに追加するための追加のウィザードおよびテンプレートを選択できます。 次のウィザードでは、オブジェクトの 1 つまたは複数のインターフェイスを確立できます。

また、COM コントロールに新しいインターフェイスを実装することもできます。 クラス ビューでオブジェクトのコントロール クラスを右クリックし、[インターフェイスの実装] を選択します。

注意

Visual Studio では、インターフェイスをプロジェクトに追加するウィザードは提供されません。 ATL シンプル オブジェクト ウィザードを使用してシンプル オブジェクトを追加することで、インターフェイスを ATL プロジェクトに追加するか、MFC プロジェクトに ATL サポートを追加できます。 また、プロジェクトの .idl ファイルを開き、次のように入力してインターフェイスを作成することもできます。

interface IMyInterface {
};

詳細については、「インターフェイスの実装」および「ATL プロジェクトへのオブジェクトやコントロールの追加」を参照してください。

Visual C++ では、いくつかの方法を使用して、プロジェクトに対して定義された COM インターフェイスを表示および編集できます。 クラス ビューには、C++ プロジェクトの .idl ファイルで定義されている任意のインターフェイスまたはディスパッチ インターフェイスのアイコンが表示されます。

ATL ベースの COM オブジェクト クラスの場合、クラス ビューは、ATL クラスの COM マップを読み込み、ATL クラスとそれが実装するインターフェイスの間の関係を表示します。

クラス ビューおよびそのショートカット メニューで、インターフェイスを次のように操作できます。

  • ATL オブジェクトを MFC ベースのアプリケーションに追加します。
  • メソッド、プロパティ、およびイベントを追加します。
  • アイテムをダブルクリックして、アイテムのインターフェイス コードに直接ジャンプします。

このセクションで

COM インターフェイスを編集する

クラス ビューのショートカット メニューからコマンドを使用することで、Visual Studio C++ プロジェクトで COM インターフェイスの新しいメソッドとプロパティを定義できます。 ツールボックスから、ActiveX コントロールのイベントを定義することもできます。

ATL ベースと MFC ベースの COM オブジェクト クラスでは、インターフェイスの編集と同時にクラス実装を編集することができます。

注意

[クラスの追加] ダイアログ ボックス外で定義されたインターフェイスの場合、Visual C++ はメソッドまたはプロパティを .idl ファイルに追加し、メソッドを実装するクラスにスタブを追加します。インターフェイスが手動で追加されている場合でも同様です。

次の 3 つのウィザードは、既存のインターフェイスをカスタマイズするのに役立ちます。 クラス ビューからは以下を利用できます。

ウィザード プロジェクトの種類
プロパティ追加ウィザード ATL をサポートする ATL プロジェクトまたは MFC プロジェクト。 プロパティを追加するインターフェイスを右クリックします。

Visual C++ ではプロジェクトの種類が検出され、適宜、プロパティ追加ウィザードでオプションが変更されます。

- MFC アプリケーション ウィザードを使用して作成されたプロジェクトのディスパッチ インターフェイスの場合、プロパティ追加ウィザードを起動すると、MFC に固有のオプションが提供されます。
- MFC ActiveX コントロール インターフェイスの場合、プロパティ追加ウィザードではストック メソッドとプロパティの一覧が提供されます。これをそのまま使用することも、ご利用のコントロール用にカスタマイズすることもできます。
- 他のすべてのインターフェイスの場合、プロパティ追加ウィザードではほとんどの状況で役立つオプションが提供されます。
メソッド追加ウィザード ATL をサポートする ATL プロジェクトまたは MFC プロジェクト。 メソッドを追加するインターフェイスを右クリックします。

Visual C++ ではプロジェクトの種類が検出され、適宜、メソッド追加ウィザードでオプションが変更されます。

- MFC アプリケーション ウィザードを使用して作成されたプロジェクトのディスパッチ インターフェイスの場合、メソッド追加ウィザードを使用すると、MFC に固有のオプションが提供されます。
- MFC ActiveX コントロール インターフェイスの場合、メソッド追加ウィザードではストック メソッドとプロパティの一覧が提供されます。これをそのまま使用することも、ご利用のコントロール用にカスタマイズすることもできます。
- 他のすべてのインターフェイスの場合、メソッド追加ウィザードではほとんどの状況で役立つオプションが提供されます。

また、COM コントロールに新しいインターフェイスを実装することもできます。 クラス ビューでオブジェクトのコントロール クラスを右クリックし、[インターフェイスの実装] を選択します。