次の方法で共有


ClassInterfaceType 列挙体

クラスに対して生成するクラス インターフェイスの型を識別します。

<Serializable>
Public Enum ClassInterfaceType
[C#]
[Serializable]
public enum ClassInterfaceType
[C++]
[Serializable]
__value public enum ClassInterfaceType
[JScript]
public
   Serializable
enum ClassInterfaceType

解説

この列挙体は、 ClassInterfaceAttribute と組み合わせて使用します。

メンバ

メンバ名 説明
AutoDispatch クラスが COM クライアントに対して遅延バインディングだけをサポートすることを示します。クラスのディスパッチ インターフェイスは、要求に応じて自動的に COM クライアントに公開されます。型 タイプ ライブラリ エクスポータ (Tlbexp.exe) によって生成されるタイプ ライブラリには、クライアントがこのディスパッチ インターフェイスの DISPID をキャッシュしないようにするために、そのインターフェイスの型情報は含まれません。クライアントがこのディスパッチ インターフェイスに対して実行できるのは遅延バインディングだけであるため、 ClassInterfaceAttribute で説明したようなバージョン管理の問題は、このインターフェイスでは発生しません。

これは、 ClassInterfaceAttribute の既定の設定です。

AutoDual クラスに対してデュアル クラス インターフェイスを自動的に生成し、COM に公開することを示します。型情報は、クラス インターフェイスに対して作成され、タイプ ライブラリで公開されます。 ClassInterfaceAttribute で説明したようなバージョン管理の制約があるため、 AutoDual は使用しないことを強くお勧めします。
None クラスに対してクラス インターフェイスを生成しないことを示します。インターフェイスを明示的に実装していないクラスには、 IDispatch インターフェイスを通じた遅延バインディングによってしかアクセスできません。これは、 ClassInterfaceAttribute の推奨値です。このクラスが明示的に実装しているインターフェイスを通じて機能を公開するには、 ClassInterfaceType.None の使用が唯一の方法です。

タイプ ライブラリ エクスポータ (Tlbexp.exe) は、クラスが 1 番目に実装しているパブリックで COM 参照可能なインターフェイスを、コクラスの既定のインターフェイスとして公開します。クラスが実装しているインターフェイスがない場合は、基本クラスが 1 番目に実装しているパブリックで COM 参照可能なインターフェイスが既定のインターフェイスとなります。このとき、最後に派生した基本クラスから逆順に検索されます。クラスもその基本クラスもインターフェイスを実装していない場合、Tlbexp.exe は _Object を既定のインターフェイスとして公開します。

必要条件

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

参照

System.Runtime.InteropServices 名前空間 | タイプ ライブラリ エクスポータ (Tlbexp.exe)