InterfaceTypeAttribute InterfaceTypeAttribute InterfaceTypeAttribute InterfaceTypeAttribute Class

定義

COM への公開時に、マネージド インターフェイスがデュアル、ディスパッチ専用、または IUnknown 専用のいずれであるかを示します。Indicates whether a managed interface is dual, dispatch-only, or IUnknown -only when exposed to COM.

public ref class InterfaceTypeAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class InterfaceTypeAttribute : Attribute
type InterfaceTypeAttribute = class
    inherit Attribute
Public NotInheritable Class InterfaceTypeAttribute
Inherits Attribute
継承
InterfaceTypeAttributeInterfaceTypeAttributeInterfaceTypeAttributeInterfaceTypeAttribute
属性

次の例はどのようにInterfaceTypeAttributecom インターフェイスを公開する方法を制御します。The following example shows how InterfaceTypeAttribute controls how the interface is exposed to COM.

using namespace System::Runtime::InteropServices;

//Interface is exposed to COM as dual.
interface class IMyInterface1{};

//Insert code here.
//Interface is exposed to COM as IDispatch.

[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIDispatch)]
interface class IMyInterface2{};
//Insert code here.
using System.Runtime.InteropServices;

//Interface is exposed to COM as dual.
interface IMyInterface1 
{
    //Insert code here.
}

//Interface is exposed to COM as IDispatch.
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
interface IMyInterface2 
{
    //Insert code here.
}
Imports System.Runtime.InteropServices

'Interface is exposed to COM as dual.
Interface IMyInterface1
     'Insert code here.
End Interface

'Interface is exposed to COM as IDispatch.
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)> _
Interface IMyInterface2
    'Insert code here.
End Interface

注釈

インターフェイスには、この属性を適用できます。You can apply this attribute to interfaces.

既定で、 Tlbexp.exe (タイプ ライブラリ エクスポーター)遅延バインドの柔軟性や事前バインディングのパフォーマンスを提供する、デュアル インターフェイスとして COM にマネージ インターフェイスを公開します。By default, the Tlbexp.exe (Type Library Exporter) exposes a managed interface to COM as a dual interface, giving you the flexibility of late binding or the performance of early binding. ComInterfaceType列挙型では、既定の動作をオーバーライドし、遅延バインディングのみまたは事前バインディングのみを指定することができます。The ComInterfaceType enumeration enables you to override the default behavior and specify late binding only or early binding only. たとえば、適用InterfaceType (ComInterfaceType.InterfaceIsIDispatch)に遅延バインディングのみへの呼び出し元を制限するメタデータを生成するためのインターフェイス。For example, you can apply InterfaceType (ComInterfaceType.InterfaceIsIDispatch) to an interface to produce metadata to restrict callers to late binding only. 派生したインターフェイスが、IDispatchインターフェイスがデュアル、多くの場合、InterfaceIsIDispatch列挙型のメンバーがインターフェイス メソッドに遅延バインディング呼び出しのみを許可します。Although interfaces that derive from the IDispatch interface are often dual, the InterfaceIsIDispatch enumeration member allows only late-bound calls to the interface methods. この属性には、インターフェイスのマネージ ビューへの影響がありません。This attribute has no effect on the managed view of the interface. Com インターフェイスを公開する方法の詳細については、次を参照してください。型変換のエクスポートします。For additional information on how interfaces are exposed to COM, see Exported Type Conversion.

Tlbimp.exe (タイプ ライブラリ インポーター)もこの属性に適用されます nondual インターフェイスのインポート、;、インターフェイスがディスパッチ専用であることを示す適切な列挙型のメンバーを適用またはIUnknown-のみです。The Tlbimp.exe (Type Library Importer) also applies this attribute to imported, nondual interfaces; it applies the appropriate enumeration member to indicate that the interface is dispatch-only or IUnknown -only.

コンストラクター

InterfaceTypeAttribute(ComInterfaceType) InterfaceTypeAttribute(ComInterfaceType) InterfaceTypeAttribute(ComInterfaceType) InterfaceTypeAttribute(ComInterfaceType)

指定した InterfaceTypeAttribute 列挙体メンバーを使用して、ComInterfaceType クラスの新しいインスタンスを初期化します。Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

InterfaceTypeAttribute(Int16) InterfaceTypeAttribute(Int16) InterfaceTypeAttribute(Int16) InterfaceTypeAttribute(Int16)

指定した InterfaceTypeAttribute 列挙体メンバーを使用して、ComInterfaceType クラスの新しいインスタンスを初期化します。Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

プロパティ

TypeId TypeId TypeId TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)
Value Value Value Value

インターフェイスを COM に公開する方法を記述する ComInterfaceType 値を取得します。Gets the ComInterfaceType value that describes how the interface should be exposed to COM.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

適用対象

こちらもご覧ください