System.Runtime.InteropServices 名前空間

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

クラス

AllowReversePInvokeCallsAttribute

アンマネージド メソッドがマネージド メソッドを呼び出せるようにします。

AutomationProxyAttribute

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

BestFitMappingAttribute

Unicode 文字を、その文字に一番近い ANSI 文字に変換するかどうかを制御します。

BStrWrapper

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

ClassInterfaceAttribute

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

CoClassAttribute

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

CollectionsMarshal

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

ComAliasNameAttribute

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

ComAwareEventInfo

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

ComCompatibleVersionAttribute

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

ComConversionLossAttribute

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

ComDefaultInterfaceAttribute

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

ComEventInterfaceAttribute

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

ComEventsHelper

イベントを処理する .NET デリゲートについて、COM オブジェクトとの間でその追加および削除を行うためのメソッドを提供します。

COMException

COM メソッドの呼び出しによって、認識されない HRESULT が返された場合にスローされる例外。

ComImportAttribute

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

ComRegisterFunctionAttribute

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

ComSourceInterfacesAttribute

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

ComUnregisterFunctionAttribute

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

ComVisibleAttribute

個々のマネージド型またはマネージド メンバーから COM への、またはアセンブリ内のすべての型から 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 にデュアル インターフェイスと Dispinterface を公開する場合に、共通言語ランタイムが使用する IDispatch 実装を指定します。

ImmutableCollectionsMarshal

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

ImportedFromTypeLibAttribute

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

InAttribute

呼び出し元から呼び出し先へデータをマーシャリングするものの、逆方向にはマーシャリングしないことを示します。

InterfaceTypeAttribute

COM への公開時に、マネージド インターフェイスがデュアル、ディスパッチ専用、または IUnknown 専用のいずれであるかを示します。

InvalidComObjectException

無効な COM オブジェクトを使用したときにスローされる例外。

InvalidOleVariantTypeException

マネージド コードにマーシャリングできないバリアント型の引数が見つかった場合に、マーシャラーによってスローされる例外。

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

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

構造体

ArrayWithOffset

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

BIND_OPTS

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

BINDPTR

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

CLong

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

ComWrappers.ComInterfaceDispatch

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

ComWrappers.ComInterfaceEntry

インターフェイスの種類と対象となる VTable へのポインター。

CONNECTDATA

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

CULong

CULong は、C および C++ の型を unsigned long 表す不変の値型です。 型を使用するマネージド コードのアンマネージド API で正確に表すために、マネージド/アンマネージド境界で交換型として使用 unsigned long することを目的とします。 この種類には、すべての 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 ビット プラットフォームまたは 64 ビット プラットフォーム (Apple が提供するライブラリの CGFloat 型など) で C または double C++ float の型エイリアスを使用するマネージ コードのアンマネージド API で正確に表されます。

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アンマネージド メモリの間でデータをマーシャリングする方法を指定するために使用する 属性です。