System.Runtime.InteropServices 名前空間

System.Runtime.InteropServices 名前空間は、COM 相互運用サービスとプラットフォーム呼び出しサービスをサポートする各種メンバを提供します。これらのサービスの詳細については、「 アンマネージ コードとの相互運用 」を参照してください。

この名前空間のメンバは、機能ごとにいくつかのカテゴリに分けることができます。カテゴリの一覧については、以下の表を参照してください。属性は、マーシャリングの動作 (構造体の配置、文字列の表現など) を制御します。特に重要な属性は、アンマネージ API にアクセスするために使用するプラットフォーム呼び出しメソッドを定義する DllImportAttribute と、マネージ メモリとアンマネージ メモリ間でデータをマーシャリングする方法を指定する MarshalAsAttribute です。

カテゴリ メンバ
属性 AutomationProxyAttributeBestFitMappingAttributeClassInterfaceAttributeComAliasNameAttributeComCompatibleVersionAttributeComConversionLossAttributeComImportAttributeComRegisterFunctionAttributeComSourceInterfacesAttributeComUnregisterFunctionAttributeComVisibleAttributeDispIdAttributeDllImportAttributeFieldOffsetAttributeGuidAttributeIDispatchImplTypeImportedFromTypeLibAttributeInAttributeInterfaceTypeAttributeLCIDConversionAttributeMarshalAsAttributeOptionalAttributeOutAttributePreserveSigAttributePrimaryInteropAssemblyAttributeProgIdAttributeStructLayoutAttributeTypeLibFuncAttributeTypeLibTypeAttributeTypeLibVarAttributeTypeLibVersionAttribute

関連する列挙体: ClassInterfaceTypeCallingConventionCharSetIDispatchImplTypeComInterfaceTypeVarEnumUnmanagedTypeLayoutKindTypeLibFuncFlagsTypeLibTypeFlagsTypeLibVarFlags

カスタム インスタンス化 ExtensibleClassFactoryICustomFactoryObjectCreationDelegate
カスタム マーシャリング ICustomAdapterICustomMarshaler
例外 COMExceptionExternalExceptionInvalidComObjectExceptionInvalidOleVariantTypeExceptionMarshalDirectiveExceptionSafeArrayRankMismatchExceptionSafeArrayTypeMismatchExceptionSEHException
ヘルパ クラス ArrayWithOffsetGCHandleHandleRefMarshalRuntimeEnvironment

関連する列挙体: ComMemberTypeGCHandleType

COM 型の .NET ベースの定義 COM インターフェイス: UCOMIBindCtxUCOMIConnectionPointUCOMIConnectionPointContainerUCOMIEnumConnectionPointsUCOMIEnumConnectionsUCOMIEnumMonikerUCOMIEnumStringUCOMIEnumVARIANTUCOMIMonikerUCOMIPersistFileUCOMIRunningObjectTableUCOMIStreamUCOMITypeCompUCOMITypeInfoUCOMITypeLib

COM 構造体と共用体: BINDPTRBIND_OPTSCONNECTDATADISPPARAMSELEMDESCEXCEPINFOFILETIMEFUNCDESCIDLDESCPARAMDESCSTATSTGTYPEATTRTYPEDESCTYPELIBATTRVARDESC

COM 列挙体: CALLCONVDESCKINDFUNCFLAGSFUNCKINDIDLFLAGIMPLTYPEFLAGSINVOKEKINDLIBFLAGSPARAMFLAGSYSKINDTYPEFLAGSTYPEKINDVarEnumVARFLAGS

ツール API タイプ ライブラリ インポータ: ImporterEventKindITypeLibConverterITypeLibImporterNotifySinkTypeLibConverterTypeLibImporterFlags

タイプ ライブラリ エクスポータ: ExporterEventKindITypeLibConverterITypeLibExporterNotifySinkTypeLibConverterTypeLibExporterFlags

アセンブリの登録: AssemblyRegistrationFlagsIRegistrationServicesRegistrationServices

VARIANT 型ラッパー CurrencyWrapperDispatchWrapperErrorWrapperUnknownWrapper

名前空間の階層構造

クラス

クラス 説明
AutomationProxyAttribute Automation Marshaler またはカスタムのプロキシとスタブを使用して、型をマーシャリングするかどうかを指定します。
BestFitMappingAttribute Unicode 文字を最も近い ANSI 文字に変換するかどうかを制御します。
ClassInterfaceAttribute インターフェイスが生成される場合に、COM に公開されるクラスに対して生成されるクラス インターフェイスの型を示します。
CoClassAttribute タイプ ライブラリからインポートされるコクラスのクラス ID を指定します。
ComAliasNameAttribute パラメータまたはフィールド型の COM エイリアスを示します。
ComCompatibleVersionAttribute 現在のバージョンのアセンブリ内のクラスはすべて、以前のバージョンのアセンブリ内のクラスと互換性があることを COM クライアントに対して示します。
ComConversionLossAttribute タイプ ライブラリからアセンブリにインポートしたときに、クラスまたはインターフェイスについての情報が失われたことを示します。
ComEventInterfaceAttribute ソース インターフェイスと、コクラスが COM タイプ ライブラリからインポートされるときに生成されるイベント インターフェイスのメソッドを実装するクラスとを識別します。
COMException COM メソッドの呼び出しによって、認識されない HRESULT が返された場合にスローされる例外です。
ComImportAttribute 属性の型が以前に COM で定義されたことを示します。
ComRegisterFunctionAttribute アセンブリを COM から使用できるように登録するときに呼び出すメソッドを指定します。これにより、登録処理中にユーザー記述のコードを実行できるようになります。
ComSourceInterfacesAttribute 属性付きクラスの COM イベント ソースとして公開されるインターフェイスのリストを識別します。
ComUnregisterFunctionAttribute COM で使用できるように登録したアセンブリの登録を解除するときに呼び出すメソッドを指定します。これにより、登録解除中にユーザー記述コードを実行できます。
ComVisibleAttribute 個々のマネージ型またはマネージ メンバ、またはアセンブリ内のすべての型の COM 参照可能範囲を制御します。
CurrencyWrapper マーシャラが VT_CY としてマーシャリングする必要があるオブジェクトをラップします。
DispatchWrapper マーシャラが VT_DISPATCH としてマーシャリングする必要があるオブジェクトをラップします。
DispIdAttribute メソッド、フィールド、またはプロパティの COM ディスパッチ ID (DISPID) を指定します。
DllImportAttribute 属性付きメソッドがアンマネージ DLL (Dynamic-Link Library) によって静的エントリ ポイントとして公開されることを示します。
ErrorWrapper マーシャラが VT_ERROR としてマーシャリングする必要があるオブジェクトをラップします。
ExtensibleClassFactory アンマネージ オブジェクトから拡張したマネージ オブジェクトの作成時に、そのオブジェクトをカスタマイズできるようにします。
ExternalException すべての COM 相互運用例外と構造化例外処理 (SEH) 例外の基本的な例外の種類。
FieldOffsetAttribute クラスまたは構造体のアンマネージ表現内にあるフィールドの物理的な位置を示します。
GuidAttribute 自動 GUID が望ましくない場合に、明示的な System.Guid を指定します。
IDispatchImplAttribute COM にデュアル インターフェイスと Dispinterface を公開する場合に、共通言語ランタイムが使用する IDispatch 実装を指定します。
ImportedFromTypeLibAttribute アセンブリ内で定義された型が、タイプ ライブラリで初めに定義されたことを示します。
InAttribute 呼び出し元から呼び出し先へデータをマーシャリングするが、逆方向にはマーシャリングしないことを示します。
InterfaceTypeAttribute COM への公開時に、マネージ インターフェイスがデュアル、ディスパッチ専用、または IUnknown 専用のいずれであるかを示します。
InvalidComObjectException 無効な COM オブジェクトを使用したときにスローされる例外です。
InvalidOleVariantTypeException マネージ コードにマーシャリングできないバリアント型の引数が見つかった場合に、マーシャラによってスローされる例外。
LCIDConversionAttribute メソッドのアンマネージ シグネチャにロケール識別子 (LCID) パラメータが必要であることを示します。
Marshal アンマネージ コードを扱うときに使用できるさまざまなメソッドを提供します。これらのメソッドを使用すると、アンマネージ メモリの割り当て、アンマネージ メモリ ブロックのコピー、マネージ型からアンマネージ型への変換などができます。
MarshalAsAttribute マネージ コードとアンマネージ コード間でデータをマーシャリングする方法を示します。
MarshalDirectiveException マーシャラが、サポートしていない MarshalAsAttribute を検出した場合にスローする例外。
OptionalAttribute パラメータが省略できることを示します。
OutAttribute 呼び出し先から呼び出し元へ、データをマーシャリングすることを示します。
PreserveSigAttribute COM 相互運用呼び出し中に発生する HRESULT または retval シグネチャ変換を中止することを示します。
PrimaryInteropAssemblyAttribute この属性が適用されたアセンブリが、プライマリ相互運用機能アセンブリであることを示します。
ProgIdAttribute ユーザーがクラスの ProgID を指定することを許可します。
RegistrationServices COM から使用できるようにマネージ アセンブリを登録および登録解除するための一連のサービスを提供します。
RuntimeEnvironment 共通言語ランタイム環境に関する情報を返す静的メソッド (Visual Basic では Shared メソッド) のコレクションを提供します。
SafeArrayRankMismatchException 着信 SAFEARRAY のランクが、マネージ シグネチャで指定したランクと一致しない場合にスローされる例外。
SafeArrayTypeMismatchException 着信 SAFEARRAY の型が、マネージ シグネチャで指定した型と一致しない場合にスローされる例外。
SEHException 構造化例外ハンドラ (SEH: Structured Exception Handler) エラーを表します。
StructLayoutAttribute StructLayoutAttribute クラスを使用すると、クラスまたは構造体のデータ フィールドの物理的なレイアウトを制御できます。
TypeLibConverter マネージ アセンブリと COM タイプ ライブラリ間の変換を実行する一連のサービスを提供します。
TypeLibFuncAttribute COM タイプ ライブラリからこのメソッド用に元来インポートされた FUNCFLAGS を格納します。
TypeLibTypeAttribute COM タイプ ライブラリからこの型用に元来インポートされた TYPEFLAGS を格納します。
TypeLibVarAttribute COM タイプ ライブラリからこのフィールド用に元来インポートされた VARFLAGS を格納します。
TypeLibVersionAttribute エクスポートされたタイプ ライブラリのバージョン番号を指定します。
UnknownWrapper マーシャラが VT_UNKNOWN としてマーシャリングする必要があるオブジェクトをラップします。

インターフェイス

インターフェイス 説明
ICustomAdapter クライアントが、カスタム マーシャラによって渡されるアダプタ オブジェクトではなく、実際のオブジェクトにアクセスできるようにします。
ICustomFactory MarshalByRefObject を拡張するマネージ オブジェクトのアクティベーション コードを、ユーザーが書き込むことができるようにします。
ICustomMarshaler メソッド呼び出しを処理するためのカスタム ラッパーの提供を目的としています。
IRegistrationServices COM から使用できるようにマネージ アセンブリを登録および登録解除するための一連のサービスを提供します。
ITypeLibConverter マネージ アセンブリと COM タイプ ライブラリ間の変換を実行する一連のサービスを提供します。
ITypeLibExporterNameProvider タイプ ライブラリにエクスポートするときに名前の大文字と小文字を区別する制御を提供します。
ITypeLibExporterNotifySink アセンブリ コンバータに対してコールバック機構を提供し、呼び出し元に変換の状態を通知し、その呼び出し元を変換処理そのものに関与させます。
ITypeLibImporterNotifySink タイプ ライブラリ コンバータに対してコールバック機構を提供し、呼び出し元に変換の状態を通知し、その呼び出し元を変換処理そのものに関与させます。
UCOMIBindCtx IBindCtx インターフェイスのマネージ定義。
UCOMIConnectionPoint IConnectionPoint インターフェイスのマネージ定義。
UCOMIConnectionPointContainer IConnectionPointContainer インターフェイスのマネージ定義。
UCOMIEnumConnectionPoints IEnumConnectionPoints インターフェイスの定義を管理します。
UCOMIEnumConnections IEnumConnections インターフェイスの定義を管理します。
UCOMIEnumMoniker IEnumMoniker インターフェイスの定義を管理します。
UCOMIEnumString IEnumString インターフェイスの定義を管理します。
UCOMIEnumVARIANT IEnumVARIANT インターフェイスの定義を管理します。
UCOMIMoniker IPersist および IPersistStream の COM 機能を備えた IMoniker インターフェイスのマネージ定義。
UCOMIPersistFile IPersist 機能を備えた IPersistFile インターフェイスのマネージ定義。
UCOMIRunningObjectTable IRunningObjectTable インターフェイスのマネージ定義。
UCOMIStream ISequentialStream 機能を備えた IStream インターフェイスのマネージ定義。
UCOMITypeComp ITypeComp インターフェイスのマネージ定義。
UCOMITypeInfo ITypeInfo インターフェイスのマネージ定義。
UCOMITypeLib ITypeLib インターフェイスのマネージ定義。

構造体

構造体 説明
ArrayWithOffset 配列とオフセットを、指定した配列内にカプセル化します。
BINDPTR FUNCDESC または VARDESC にバインドされたインターフェイス、または ITypeComp インターフェイスへのポインタを格納します。
BIND_OPTS モニカ バインディング操作中に使用するパラメータを格納します。
CONNECTDATA 指定したコネクション ポイントに存在する接続を記述します。
DISPPARAMS IDispatch::Invoke によってメソッドまたはプロパティに渡された引数を格納します。
ELEMDESC 変数、関数、または関数パラメータの、型の説明およびプロセス転送情報を格納します。
ELEMDESC.DESCUNION 要素に関する情報を格納します。
EXCEPINFO IDispatch::Invoke 中に発生する例外を記述します。
FILETIME この構造体は、1601 年 1 月 1 日以降の 100 ナノ秒間隔の数を表す 64 ビット値です。
FUNCDESC 関数の記述を定義します。
GCHandle アンマネージ メモリからマネージ オブジェクトにアクセスできるようにします。
HandleRef プラットフォームの呼び出しを使用して、アンマネージ コードに渡されるリソースへのハンドルを保持しているマネージ オブジェクトをラップします。
IDLDESC 構造体の要素、パラメータ、または関数の戻り値をプロセス間で転送するために必要な情報を格納します。
PARAMDESC 構造体の要素、パラメータ、または関数の戻り値をプロセス間で転送する方法に関する情報を格納します。
STATSTG 開いているストレージ、ストリーム、またはバイト配列オブジェクトに関する統計情報を格納します。
TYPEATTR UCOMITypeInfo の属性を格納します。
TYPEDESC 変数の型、関数の戻り値の型、関数パラメータの型を記述します。
TYPELIBATTR 特定のタイプ ライブラリを識別し、メンバ名に対するローカリゼーション サポートを提供します。
VARDESC 変数、定数、またはデータの各メンバを記述します。
VARDESC.DESCUNION 変数に関する情報を格納します。

デリゲート

デリゲート 説明
ObjectCreationDelegate COM オブジェクトを作成します。

列挙体

列挙体 説明
AssemblyRegistrationFlags アセンブリの登録時に使用される一連のフラグを定義します。
CALLCONV METHODDATA 構造体で記述されたメソッドが使用する呼び出し規約を識別します。
CallingConvention アンマネージ コードで実装されたメソッドを呼び出すために必要な呼び出し規約を指定します。
CharSet マーシャリングされた文字列で使用する文字セットを指定します。
ClassInterfaceType クラスに対して生成するクラス インターフェイスの型を識別します。
ComInterfaceType インターフェイスを COM に公開する方法を識別します。
ComMemberType COM メンバの型について説明します。
DESCKIND バインドされている型の説明を識別します。
ExporterEventKind タイプ ライブラリをエクスポートするときにタイプ ライブラリ エクスポータが実行するコールバックを記述します。
FUNCFLAGS 関数のプロパティを定義する定数を識別します。
FUNCKIND 関数にアクセスする方法を定義します。
GCHandleType GCHandle クラスが割り当てることのできるハンドルの種類を表します。
IDispatchImplType 特定のクラスで使用する IDispatch 実装を示します。
IDLFLAG 構造体要素、パラメータ、または関数の戻り値をプロセス間で転送する方法を記述します。
IMPLTYPEFLAGS 実装された型のインターフェイスまたは継承された型のインターフェイスの属性を定義します。
ImporterEventKind タイプ ライブラリをインポートするときにタイプ ライブラリ インポータが実行するコールバックを記述します。
INVOKEKIND IDispatch::Invoke で関数を呼び出す方法を指定します。
LayoutKind アンマネージ コードにエクスポートするときにオブジェクトのレイアウトを制御します。
LIBFLAGS タイプ ライブラリに適用するフラグを定義します。
PARAMFLAG 構造体要素、パラメータ、または関数の戻り値をプロセス間で転送する方法を記述します。
SYSKIND 対象オペレーティング システム プラットフォームを識別します。
TYPEFLAGS 型の説明のプロパティと属性を定義します。
TYPEKIND データおよび関数のさまざまな型を指定します。
TypeLibExporterFlags タイプ ライブラリの生成方法を示します。
TypeLibFuncFlags このメソッドがインポートされた COM タイプ ライブラリに FUNCFLAGS の元の設定を記述します。
TypeLibImporterFlags アセンブリの生成方法を示します。
TypeLibTypeFlags この型がインポートされた COM タイプ ライブラリに TYPEFLAGS の元の設定を記述します。
TypeLibVarFlags この変数がインポートされた COM タイプ ライブラリに VARFLAGS の元の設定を記述します。
UnmanagedType パラメータまたはフィールドをアンマネージ コードにマーシャリングする方法を示します。
VarEnum 配列が UnmanagedType.SafeArray としてマネージ コードからアンマネージ コードにマーシャリングされる場合の、配列要素のマーシャリング方法を示します。
VARFLAGS 変数のプロパティを定義する定数を識別します。

参照

.NET Framework クラス ライブラリ