次の方法で共有


ComSourceInterfacesAttribute クラス

属性付きクラスの COM イベント ソースとして公開されるインターフェイスのリストを識別します。

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

System.Object
   System.Attribute
      System.Runtime.InteropServices.ComSourceInterfacesAttribute

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

スレッドセーフ

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

解説

この属性は、クラスに適用できます。

この属性をマネージ クラスに適用すると、COM コネクション ポイントとしてクラスが公開しているイベント インターフェイスを識別できます。イベント インターフェイスは、クラスのイベント メンバに割り当てられるメソッドを格納しています。クラス イベント名とインターフェイス メソッド名は同じにする必要があります。この属性は、ソース インターフェイスの型を適切なコンストラクタに渡すことによって、クラスあたり最大 4 つのソース インターフェイスを受け入れることができます。コンストラクタは、1 つから 4 つの間の型引数を受け取ります。4 つを超えるソース インターフェイスを公開する必要があるクラスでは、文字列バージョンのコンストラクタを使用できます。.NET イベントを COM クライアントに公開する方法の詳細については、「 COM シンクによって処理されるイベントの発生 」を参照してください。

使用例

名前空間とイベント シンク インターフェイスを渡して ComSourceInterfacesAttribute を適用することにより、イベント シンク インターフェイスをクラスに接続する方法を次の例に示します。

 
Imports System.Runtime.InteropServices

<ComSourceInterfacesAttribute("ButtonEventsLib.ButtonEvents, ButtonEventsLib")> _
public Class Baz
    'Insert code here.
End Class

[C#] 
using System.Runtime.InteropServices;

[ComSourceInterfacesAttribute("ButtonEventsLib.ButtonEvents, ButtonEventsLib")]
public class Baz 
{
   //Insert code here.
}

[C++] 
using namespace System::Runtime::InteropServices;

[ComSourceInterfacesAttribute(S"ButtonEventsLib.ButtonEvents, ButtonEventsLib")]
public __gc class Baz 
{
   //Insert code here.
};

[JScript] 
import System.Runtime.InteropServices;

ComSourceInterfacesAttribute("ButtonEventsLib.ButtonEvents, ButtonEventsLib") public class Baz 
{
   //Insert code here.
}

必要条件

名前空間: 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 内)

参照

ComSourceInterfacesAttribute メンバ | System.Runtime.InteropServices 名前空間