次の方法で共有


ComEventInterfaceAttribute クラス

ソース インターフェイスと、コクラスが COM タイプ ライブラリからインポートされるときに生成されるイベント インターフェイスのメソッドを実装するクラスとを識別します。

この型のすべてのメンバの一覧については、ComEventInterfaceAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.Runtime.InteropServices.ComEventInterfaceAttribute

<AttributeUsage(AttributeTargets.Interface)>
NotInheritable Public Class ComEventInterfaceAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Interface)]
public sealed class ComEventInterfaceAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Interface)]
public __gc __sealed class ComEventInterfaceAttribute : public   Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.Interface)
class ComEventInterfaceAttribute extends Attribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

この属性は、タイプ ライブラリをインポートするときに タイプ ライブラリ インポータ (Tlbimp.exe) が基本的に自動適用しますが、インターフェイスに適用することもできます。

ソース インターフェイスがタイプ ライブラリからインポートされると、実装されているメソッドはすべて、生成されたイベント インターフェイスにイベントとして追加されます。 ComEventInterfaceAttribute は Tlbimp.exe によってイベント インターフェイスに適用されます。これによって、イベント インターフェイスのメソッドを実装し、元のソース インターフェイスを実装するマネージ クラスを識別します。共通言語ランタイムは実行時にこの属性を使用して以下の処理を行います。

  • インターフェイスによって公開されるイベントを、イベント プロバイダ クラス内のイベントの実装に関連付ける。
  • イベントを元の COM ソース インターフェイスにリンクする。

この属性を使用することはほとんどありません。ただし、Tlbimp.exe が生成するメタデータを詳しく再現するソース コードを作成する場合は、元のソース インターフェイスそれぞれにつきイベント インターフェイスを作成する必要があります。Tlbimp.exe によるイベントのインポートの詳細については、「 インポート メンバの変換 」を参照してください。COM のイベントを .NET クライアントに公開する方法については、「 COM ソースによって発生したイベントの処理 」を参照してください。

必要条件

名前空間: System.Runtime.InteropServices

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

ComEventInterfaceAttribute メンバ | System.Runtime.InteropServices 名前空間 | タイプ ライブラリ インポータ (Tlbimp.exe)