Click here to visit our sponsor

Interface の継承


インターフェイスの継承

一度公開したインターフェイスの変更は出来ないお約束なので、変更するには、新しいインターフェイスを作って追加する形になります。


目次

  • 実装
    • インターフェイスの設計
    • CoClass の変更
    • ヘッダーの変更

実装

 インターフェイスの設計 

以下の様な基本があるとします。今時の通常は IDispatch から継承したDualインターフェイスです。

[
    uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
]
interface IInterface : IDispatch
{
    ....
}

新たな GUID で IInterface を基本とするインターフェイスを設けます。

[
    uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
]
interface IInterface2 : IInterface
{
    ....
}

 CoClass の変更 

インターフェイスを持たせたい COMオブジェクト に追加します。
[default] はデフォルトインターフェイスで、スクリプト言語の様な、1つのインターフェイスにしか接続できないクライアントからは、このデフォルトが使用されます。

[
    uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
]
coclass CoClassInterface
{
    [default] interface IInterface2;
              interface IInterface;
};

 ヘッダーの変更 

BEGIN_COM_MAP(cXXXX)
    COM_INTERFACE_ENTRY(IInterface2)
    COM_INTERFACE_ENTRY(IInterface)
    COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()

後は IDispatchImpl などを変更しておわり。


おわりに

このページの満足度は・・・

素晴らしい!
まあまあ、良いかも
自己満足感がよくわかるページですね
まったくもって説明不足


Visual C++ページトップ

HOME

兄弟ページ 姉妹ページ
Click here to visit our sponsor