System.Runtime.InteropServices 名前空間

COM 相互運用機能とプラットフォーム呼び出しサービスをサポートするさまざまなメンバーを提供します。 これらのサービスに慣れていない場合は、「アンマネージ コードとの相互運用」を参照してください。

クラス

AllowReversePInvokeCallsAttribute

アンマネージ メソッドがマネージド メソッドを呼び出すことができます。

AutomationProxyAttribute

Automation マーシャラーまたはカスタム プロキシとスタブを使用して型をマーシャリングするかどうかを指定します。

BestFitMappingAttribute

Unicode 文字を最も近い一致する ANSI 文字に変換するかどうかを制御します。

BStrWrapper

マネージド コードからアンマネージド コードに VT_BSTR 型のデータをマーシャリングします。 このクラスは継承できません。

ClassInterfaceAttribute

インターフェイスがまったく生成された場合に、COM に公開されるクラスに対して生成されるクラス インターフェイスの型を示します。

CoClassAttribute

タイプ ライブラリからインポートされたコクラスのクラス識別子を指定します。

CollectionsMarshal

コレクションの基になるデータ表現にアクセスするための一連のメソッドを提供する安全でないクラス。

ComAliasNameAttribute

パラメーターまたはフィールド型の COM エイリアスを示します。

ComAwareEventInfo

イベント ハンドラーの遅延バインディング登録を許可します。

ComCompatibleVersionAttribute

アセンブリの現在のバージョンのすべてのクラスが、以前のバージョンのアセンブリのクラスと互換性があることを COM クライアントに示します。

ComConversionLossAttribute

タイプ ライブラリからアセンブリにインポートされたときに、クラスまたはインターフェイスに関する情報が失われたことを示します。

ComDefaultInterfaceAttribute

COM に公開する既定のインターフェイスを指定します。 このクラスは継承できません。

ComEventInterfaceAttribute

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

ComEventsHelper

COM オブジェクトに対するイベントの追加と削除を処理する .NET デリゲートを有効にするメソッドを提供します。

COMException

認識できない HRESULT が COM メソッド呼び出しから返されたときにスローされる例外。

ComImportAttribute

属性付き型が COM で以前に定義されたことを示します。

ComRegisterFunctionAttribute

COM から使用するアセンブリを登録するときに呼び出すメソッドを指定します。これにより、登録プロセス中にユーザーが記述したコードを実行できます。

ComSourceInterfacesAttribute

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

ComUnregisterFunctionAttribute

COM から使用するアセンブリの登録を解除するときに呼び出すメソッドを指定します。これにより、登録解除プロセス中にユーザーが記述したコードを実行できます。

ComVisibleAttribute

COM に対する個々のマネージド型またはメンバー、またはアセンブリ内のすべての型のアクセシビリティを制御します。

ComWrappers

COM IUnknown 型のラッパーを管理するためのクラス。

CriticalHandle

ハンドル リソースのラッパー クラスを表します。

CurrencyWrapper

マーシャラーが VT_CYとしてマーシャリングする必要があるオブジェクトをラップします。

DefaultCharSetAttribute

CharSet 列挙体の値を指定します。 このクラスは継承できません。

DefaultDllImportSearchPathsAttribute

プラットフォーム呼び出しの関数を提供する DLL の検索に使用するパスを指定します。

DefaultParameterValueAttribute

既定のパラメーターをサポートする言語から呼び出されたときのパラメーターの既定値を設定します。 このクラスは継承できません。

DispatchWrapper

マーシャラーが VT_DISPATCHとしてマーシャリングする必要があるオブジェクトをラップします。

DispIdAttribute

メソッド、フィールド、またはプロパティの COM ディスパッチ識別子 (DISPID) を指定します。

DllImportAttribute

属性付きメソッドが、アンマネージ ダイナミック リンク ライブラリ (DLL) によって静的エントリ ポイントとして公開されることを示します。

DynamicInterfaceCastableImplementationAttribute

GetInterfaceImplementation(RuntimeTypeHandle)によって返される任意の型で必要な属性。

ErrorWrapper

マーシャラーが VT_ERRORとしてマーシャリングする必要があるオブジェクトをラップします。

ExtensibleClassFactory

作成時にアンマネージド オブジェクトから拡張されるマネージド オブジェクトのカスタマイズを有効にします。

ExternalException

すべての COM 相互運用例外と構造化例外処理 (SEH) 例外の基本例外の種類。

FieldOffsetAttribute

クラスまたは構造体のアンマネージ表現内でのフィールドの物理的な位置を示します。

GuidAttribute

自動 GUID が望ましくない場合に明示的な Guid を提供します。

HandleCollector

未処理のハンドルを追跡し、指定したしきい値に達したときにガベージ コレクションを強制します。

IDispatchImplAttribute

デュアル インターフェイスとディスパッチ インターフェイスを COM に公開するときに共通言語ランタイムが使用する IDispatch 実装を示します。

ImmutableCollectionsMarshal

不変コレクションの基になるデータ表現にアクセスするための一連のメソッドを提供する安全でないクラス。

ImportedFromTypeLibAttribute

アセンブリ内で定義された型が最初にタイプ ライブラリで定義されたことを示します。

InAttribute

呼び出し元から呼び出し先にデータをマーシャリングする必要がありますが、呼び出し元にはマーシャリングしないことを示します。

InterfaceTypeAttribute

マネージド インターフェイスが COM に公開されるときに、デュアル インターフェイス、ディスパッチ専用インターフェイス、または IUnknown -only かどうかを示します。

InvalidComObjectException

無効な COM オブジェクトが使用されている場合にスローされる例外。

InvalidOleVariantTypeException

マーシャラーがマネージド コードにマーシャリングできないバリアント型の引数を検出したときにスローされる例外。

JsonMarshal

COM 相互運用機能とプラットフォーム呼び出しサービスをサポートするさまざまなメンバーを提供します。 これらのサービスに慣れていない場合は、「アンマネージ コードとの相互運用」を参照してください。

LCIDConversionAttribute

メソッドのアンマネージ シグネチャでロケール識別子 (LCID) パラメーターが必要であることを示します。

LibraryImportAttribute

実行時に同等のマーシャリング関数を生成するためにランタイムに依存するのではなく、ソース ジェネレーターが引数をマーシャリングするための関数を作成する必要があることを示します。

ManagedToNativeComInteropStubAttribute

マネージドから COM への相互運用シナリオでの相互運用スタブのユーザーカスタマイズのサポートを提供します。

Marshal

アンマネージ メモリの割り当て、アンマネージ メモリ ブロックのコピー、マネージド型からアンマネージ型への変換、およびアンマネージ コードとの対話時に使用されるその他のその他のメソッドのコレクションを提供します。

MarshalAsAttribute

マネージド コードとアンマネージド コードの間でデータをマーシャリングする方法を示します。

MarshalDirectiveException

マーシャラーがサポートしていない MarshalAsAttribute が発生したときにスローされる例外。

MemoryMarshal

Memory<T>ReadOnlyMemory<T>Span<T>、および ReadOnlySpan<T>と相互運用するメソッドを提供します。

NativeLibrary

ネイティブ ライブラリを管理するための API を提供します。

NativeMemory

このクラスには、主にネイティブ メモリの管理に使用されるメソッドが含まれています。

OptionalAttribute

パラメーターが省略可能であることを示します。

OutAttribute

呼び出し先から呼び出し元にデータをマーシャリングする必要があることを示します。

PosixSignalContext

PosixSignalRegistration イベントのデータを提供します。

PosixSignalRegistration

PosixSignalを処理します。

PreserveSigAttribute

COM 相互運用呼び出し中に行われる HRESULT 署名変換を抑制する必要があることを示します。

PrimaryInteropAssemblyAttribute

属性付きアセンブリがプライマリ相互運用機能アセンブリであることを示します。

ProgIdAttribute

ユーザーがクラスの ProgID を指定できるようにします。

RegistrationServices

COM から使用するためにマネージド アセンブリを登録および登録解除するための一連のサービスを提供します。

RuntimeEnvironment

共通言語ランタイム環境に関する情報を返す static メソッドのコレクションを提供します。

RuntimeInformation

.NET ランタイムのインストールに関する情報を提供します。

SafeArrayRankMismatchException

受信 SAFEARRAY のランクがマネージド シグネチャで指定されたランクと一致しない場合にスローされる例外。

SafeArrayTypeMismatchException

受信 SAFEARRAY の型がマネージド 署名で指定された型と一致しない場合にスローされる例外。

SafeBuffer

読み取りと書き込みに使用できる制御されたメモリ バッファーを提供します。 制御されたバッファー (アンダーランとオーバーラン) の外部のメモリにアクセスしようとすると、例外が発生します。

SafeHandle

オペレーティング システム ハンドルのラッパー クラスを表します。 このクラスは継承する必要があります。

SEHException

構造化例外処理 (SEH) エラーを表します。

SequenceMarshal

ReadOnlySequence<T>と相互運用するためのメソッドのコレクションを提供します。

SetWin32ContextInIDispatchAttribute

この属性は非推奨になりました。

StandardOleMarshalObject

標準共通言語ランタイム (CLR) のフリー スレッド マーシャラーを標準の OLE STA マーシャラーに置き換えます。

StructLayoutAttribute

メモリ内のクラスまたは構造体のデータ フィールドの物理的なレイアウトを制御できます。

SuppressGCTransitionAttribute

アンマネージ関数呼び出しが行われたときに、ガベージ コレクションの遷移をスキップする必要があることを示します。

TypeIdentifierAttribute

型の等価性をサポートします。

TypeLibConverter

マネージド アセンブリを COM タイプ ライブラリに変換し、その逆を行う一連のサービスを提供します。

TypeLibFuncAttribute

COM タイプ ライブラリからこのメソッド用に最初にインポートされた FUNCFLAGS を格納します。

TypeLibImportClassAttribute

インターフェイスを排他的に使用する Type を指定します。 このクラスは継承できません。

TypeLibTypeAttribute

COM タイプ ライブラリからこの型に対して最初にインポートされた TYPEFLAGS を格納します。

TypeLibVarAttribute

COM タイプ ライブラリからこのフィールドに対して最初にインポートされた VARFLAGS を格納します。

TypeLibVersionAttribute

エクスポートされたタイプ ライブラリのバージョン番号を指定します。

UnknownWrapper

マーシャラーが VT_UNKNOWNとしてマーシャリングする必要があるオブジェクトをラップします。

UnmanagedCallConvAttribute

アンマネージ コードで実装された P/Invoke メソッドを呼び出すために必要な呼び出し規則を指定します。

UnmanagedCallersOnlyAttribute

UnmanagedCallersOnlyAttribute でマークされたメソッドは、ネイティブ コードから直接呼び出すことができます。 関数トークンは、C# の address-of 演算子を使用してローカル変数に読み込み、ネイティブ メソッドへのコールバックとして渡すことができます。

UnmanagedFunctionPointerAttribute

アンマネージ コードとの間でアンマネージ関数ポインターとして渡されるデリゲート シグネチャのマーシャリング動作を制御します。 このクラスは継承できません。

VariantWrapper

マネージド コードからアンマネージド コードに VT_VARIANT | VT_BYREF 型のデータをマーシャリングします。 このクラスは継承できません。

WasmImportLinkageAttribute

この属性でマークされた P/Invoke を WASM インポートとしてリンクするように指定します。

構造体

ArrayWithOffset

指定した配列内の配列とオフセットをカプセル化します。

BIND_OPTS

代わりに BIND_OPTS を使用してください。

BINDPTR

代わりに BINDPTR を使用してください。

CLong

CLong は、C および C++ の long 型を表す不変の値型です。 これは、マネージド/アンマネージド境界で交換型として使用され、long 型を使用するマネージド コードのアンマネージ API で正確に表されます。 この型には、すべての Windows プラットフォームと 32 ビット Unix ベースのプラットフォームで 32 ビットのストレージがあります。 64 ビット Unix プラットフォーム上に 64 ビットのストレージがあります。

ComWrappers.ComInterfaceDispatch

COM インターフェイスの関数ディスパッチ用のアプリケーション バイナリ インターフェイス。

ComWrappers.ComInterfaceEntry

インターフェイスの種類とターゲット VTable へのポインター。

CONNECTDATA

代わりに CONNECTDATA を使用してください。

CULong

CULong は、C および C++ の unsigned long 型を表す不変の値型です。 これは、マネージド/アンマネージド境界で交換型として使用され、unsigned long 型を使用するマネージド コードのアンマネージ API で正確に表されます。 この型には、すべての Windows プラットフォームと 32 ビット Unix ベースのプラットフォームで 32 ビットのストレージがあります。 64 ビット Unix プラットフォーム上に 64 ビットのストレージがあります。

DISPPARAMS

代わりに DISPPARAMS を使用してください。

ELEMDESC

代わりに ELEMDESC を使用してください。

ELEMDESC.DESCUNION

代わりに ELEMDESC.DESCUNION を使用してください。

EXCEPINFO

代わりに EXCEPINFO を使用してください。

FILETIME

代わりに FILETIME を使用してください。

FUNCDESC

代わりに FUNCDESC を使用してください。

GCHandle

アンマネージ メモリからマネージド オブジェクトにアクセスする方法を提供します。

HandleRef

プラットフォーム呼び出しを使用してアンマネージ コードに渡されるリソースへのハンドルを保持するマネージド オブジェクトをラップします。

IDLDESC

代わりに IDLDESC を使用してください。

NFloat

NFloat は、ネイティブ整数サイズと同じサイズの浮動小数点型を表す不変の値型です。 これは、マネージド/アンマネージド境界で交換型として使用され、32 ビット プラットフォーム上の C または C++ の float の型エイリアスを使用するマネージド コードのアンマネージ API、または Apple が提供するライブラリの CGFloat 型など、64 ビット プラットフォーム上の double を正確に表します。

OSPlatform

オペレーティング システム プラットフォームを表します。

PARAMDESC

代わりに PARAMDESC を使用してください。

STATSTG

代わりに STATSTG を使用してください。

TYPEATTR

代わりに TYPEATTR を使用してください。

TYPEDESC

代わりに TYPEDESC を使用してください。

TYPELIBATTR

代わりに TYPELIBATTR を使用してください。

VARDESC

代わりに VARDESC を使用してください。

VARDESC.DESCUNION

代わりに VARDESC.DESCUNION を使用してください。

インターフェイス

_Activator

Activator クラスをアンマネージ コードに公開します。

_Assembly

Assembly クラスのパブリック メンバーをアンマネージ コードに公開します。

_AssemblyBuilder

AssemblyBuilder クラスをアンマネージ コードに公開します。

_AssemblyName

AssemblyName クラスをアンマネージ コードに公開します。

_Attribute

Attribute クラスをアンマネージ コードに公開します。

_ConstructorBuilder

ConstructorBuilder クラスをアンマネージ コードに公開します。

_ConstructorInfo

ConstructorInfo クラスのパブリック メンバーをアンマネージ コードに公開します。

_CustomAttributeBuilder

CustomAttributeBuilder クラスをアンマネージ コードに公開します。

_EnumBuilder

EnumBuilder クラスをアンマネージ コードに公開します。

_EventBuilder

EventBuilder クラスをアンマネージ コードに公開します。

_EventInfo

EventInfo クラスのパブリック メンバーをアンマネージ コードに公開します。

_Exception

Exception クラスのパブリック メンバーをアンマネージ コードに公開します。

_FieldBuilder

FieldBuilder クラスをアンマネージ コードに公開します。

_FieldInfo

FieldInfo クラスのパブリック メンバーをアンマネージ コードに公開します。

_ILGenerator

ILGenerator クラスをアンマネージ コードに公開します。

_LocalBuilder

LocalBuilder クラスをアンマネージ コードに公開します。

_MemberInfo

MemberInfo クラスのパブリック メンバーをアンマネージ コードに公開します。

_MethodBase

MethodBase クラスのパブリック メンバーをアンマネージ コードに公開します。

_MethodBuilder

MethodBuilder クラスをアンマネージ コードに公開します。

_MethodInfo

MethodInfo クラスのパブリック メンバーをアンマネージ コードに公開します。

_MethodRental

MethodRental クラスをアンマネージ コードに公開します。

_Module

Module クラスをアンマネージ コードに公開します。

_ModuleBuilder

ModuleBuilder クラスをアンマネージ コードに公開します。

_ParameterBuilder

ParameterBuilder クラスをアンマネージ コードに公開します。

_ParameterInfo

ParameterInfo クラスをアンマネージ コードに公開します。

_PropertyBuilder

PropertyBuilder クラスをアンマネージ コードに公開します。

_PropertyInfo

PropertyInfo クラスのパブリック メンバーをアンマネージ コードに公開します。

_SignatureHelper

SignatureHelper クラスをアンマネージ コードに公開します。

_Thread

Thread クラスをアンマネージ コードに公開します。

_Type

Type クラスのパブリック メンバーをアンマネージ コードに公開します。

_TypeBuilder

TypeBuilder クラスをアンマネージ コードに公開します。

ICustomAdapter

クライアントがカスタム マーシャラーによって渡されるアダプター オブジェクトではなく、実際のオブジェクトにアクセスする方法を提供します。

ICustomFactory

ユーザーが、MarshalByRefObjectを拡張するマネージド オブジェクトのアクティブ化コードを記述できるようにします。

ICustomMarshaler

メソッド呼び出しを処理するためのカスタム ラッパーを提供します。

ICustomQueryInterface

開発者は、IUnknown::QueryInterface(REFIID riid, void **ppvObject) メソッドのカスタムのマネージド実装を提供できます。

IDynamicInterfaceCastable

型キャストエラーに参加するために使用されるインターフェイス。

IRegistrationServices

COM から使用するためにマネージド アセンブリを登録および登録解除するための一連のサービスを提供します。

ITypeLibConverter

マネージド アセンブリを COM タイプ ライブラリに変換し、その逆を行う一連のサービスを提供します。

ITypeLibExporterNameProvider

タイプ ライブラリにエクスポートするときの名前の大文字と小文字の区別を制御します。

ITypeLibExporterNotifySink

アセンブリ コンバーターが変換の状態を呼び出し元に通知し、呼び出し元を変換プロセス自体に含めるコールバック メカニズムを提供します。

ITypeLibImporterNotifySink

型ライブラリ コンバーターが変換の状態を呼び出し元に通知し、呼び出し元を変換プロセス自体に関与させるコールバック メカニズムを提供します。

UCOMIBindCtx

代わりに BIND_OPTS を使用してください。

UCOMIConnectionPoint

代わりに IConnectionPoint を使用してください。

UCOMIConnectionPointContainer

代わりに IConnectionPointContainer を使用してください。

UCOMIEnumConnectionPoints

代わりに IEnumConnectionPoints を使用してください。

UCOMIEnumConnections

代わりに IEnumConnections を使用してください。

UCOMIEnumMoniker

代わりに IEnumMoniker を使用してください。

UCOMIEnumString

代わりに IEnumString を使用してください。

UCOMIEnumVARIANT

代わりに IEnumVARIANT を使用してください。

UCOMIMoniker

代わりに IMoniker を使用してください。

UCOMIPersistFile

代わりに IPersistFile を使用してください。

UCOMIRunningObjectTable

代わりに IRunningObjectTable を使用してください。

UCOMIStream

代わりに IStream を使用してください。

UCOMITypeComp

代わりに ITypeComp を使用してください。

UCOMITypeInfo

代わりに ITypeInfo を使用してください。

UCOMITypeLib

代わりに ITypeLib を使用してください。

列挙型

Architecture

プロセッサ アーキテクチャを示します。

AssemblyRegistrationFlags

アセンブリの登録時に使用されるフラグのセットを定義します。

CALLCONV

代わりに CALLCONV を使用してください。

CallingConvention

アンマネージ コードで実装されているメソッドを呼び出すために必要な呼び出し規則を指定します。

CharSet

マーシャリングされた文字列を使用する文字セットを指定します。

ClassInterfaceType

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

ComInterfaceType

COM にインターフェイスを公開する方法を識別します。

ComMemberType

COM メンバーの型について説明します。

CreateComInterfaceFlags

GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags) メソッドのフラグを指定します。

CreateObjectFlags

GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) メソッドのフラグを指定します。

CustomQueryInterfaceMode

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) メソッドの IUnknown::QueryInterface 呼び出しで ICustomQueryInterface インターフェイスを使用できるかどうかを示します。

CustomQueryInterfaceResult

GetInterface(Guid, IntPtr) メソッドの戻り値を提供します。

DESCKIND

代わりに DESCKIND を使用してください。

DllImportSearchPath

プラットフォーム呼び出しの関数を提供する DLL の検索に使用するパスを指定します。

ExporterEventKind

タイプ ライブラリ エクスポーターがタイプ ライブラリをエクスポートするときに行うコールバックについて説明します。

FUNCFLAGS

代わりに FUNCFLAGS を使用してください。

FUNCKIND

代わりに FUNCKIND を使用してください。

GCHandleType

GCHandle 型が割り当てることができるハンドルの種類を表します。

IDispatchImplType

特定のクラス IDispatch 使用する実装を示します。

IDLFLAG

代わりに IDLFLAG を使用してください。

IMPLTYPEFLAGS

代わりに IMPLTYPEFLAGS を使用してください。

ImporterEventKind

タイプ ライブラリ インポーターがタイプ ライブラリをインポートするときに行うコールバックについて説明します。

INVOKEKIND

代わりに INVOKEKIND を使用してください。

LayoutKind

アンマネージ コードにエクスポートするときのオブジェクトのレイアウトを制御します。

LIBFLAGS

代わりに LIBFLAGS を使用してください。

PARAMFLAG

代わりに PARAMFLAG を使用してください。

PosixSignal

POSIX シグナル番号を指定します。

RegistrationClassContext

インスタンスを構築する要求でクラス オブジェクトを使用できるようにする実行コンテキストのセットを指定します。

RegistrationConnectionType

クラス オブジェクトへの接続の種類を定義します。

StringMarshalling

生成された p/invoke に対して文字列をマーシャリングする方法を指定します

SYSKIND

代わりに SYSKIND を使用してください。

TYPEFLAGS

代わりに TYPEFLAGS を使用してください。

TYPEKIND

代わりに TYPEKIND を使用してください。

TypeLibExporterFlags

タイプ ライブラリを生成する方法を示します。

TypeLibFuncFlags

このメソッドがインポートされた COM タイプ ライブラリの FUNCFLAGS の元の設定について説明します。

TypeLibImporterFlags

アセンブリを生成する方法を示します。

TypeLibTypeFlags

型がインポートされた COM タイプ ライブラリの TYPEFLAGS の元の設定について説明します。

TypeLibVarFlags

変数のインポート元の COM タイプ ライブラリの VARFLAGS の元の設定について説明します。

UnmanagedType

パラメーターまたはフィールドをアンマネージ コードにマーシャリングする方法を識別します。

VarEnum

配列がマネージド コードからアンマネージ コードに SafeArrayとしてマーシャリングされるときに、配列要素をマーシャリングする方法を示します。

VARFLAGS

代わりに VARFLAGS を使用してください。

代理人

DllImportResolver

コールバックを使用してネイティブ ライブラリを解決するために使用されるデリゲートを提供します。

ObjectCreationDelegate

COM オブジェクトを作成します。

注釈

この名前空間のメンバーは、次の表に示すように、いくつかのカテゴリの機能を提供します。 属性は、構造体の配置方法や文字列の表現方法など、マーシャリング動作を制御します。 最も重要な属性は、DllImportAttributeです。この属性は、アンマネージ API にアクセスするためのプラットフォーム呼び出しメソッドを定義するために使用します。MarshalAsAttributeは、マネージド メモリとアンマネージド メモリの間でデータをマーシャリングする方法を指定するために使用します。