次の方法で共有


デュアル インターフェイスとイベント

イベント インターフェイスをデュアル インターフェイスとしてデザインすることはできますが、デュアル インターフェイスとしてデザインしない適切な理由があります。 基本的な理由は、イベントのソースが、vtable と Invoke の両方ではなく一方だけを通じてイベントを起動することです。 イベント ソースがイベントを直接的な vtable メソッド呼び出しとして起動する場合、IDispatch メソッドは使用されず、インターフェイスが純粋な vtable インターフェイスであったことは明らかです。 イベント ソースがイベントを Invoke の呼び出しとして起動する場合、vtable メソッドは使用されず、インターフェイスがディスパッチ インターフェイスであったことは明らかです。 イベント インターフェイスをデュアル インターフェイスとして定義する場合は、インターフェイスの決して使用されない部分を実装することをクライアントに要求することになります。

注意

この引数は、一般にデュアル インターフェイスには適用されません。 実装の観点から見た場合、デュアル インターフェイスは、広範なクライアントにアクセスできるインターフェイスを実装するための早くて簡単な、よくサポートされている方法です。

デュアル イベント インターフェイスを使用しない理由はほかにもあります。それは、Visual Basic と Internet Explorer ではデュアル イベント インターフェイスがサポートされないためです。

参照

概念

デュアル インターフェイスと ATL