System.Runtime.InteropServices 名前空間
System.Runtime.InteropServices 名前空間は、COM 相互運用サービスとプラットフォーム呼び出しサービスをサポートする各種メンバを提供します。これらのサービスの詳細については、「 アンマネージ コードとの相互運用 」を参照してください。
この名前空間のメンバは、機能ごとにいくつかのカテゴリに分けることができます。カテゴリの一覧については、以下の表を参照してください。属性は、マーシャリングの動作 (構造体の配置、文字列の表現など) を制御します。特に重要な属性は、アンマネージ API にアクセスするために使用するプラットフォーム呼び出しメソッドを定義する DllImportAttribute と、マネージ メモリとアンマネージ メモリ間でデータをマーシャリングする方法を指定する MarshalAsAttribute です。
クラス
クラス | 説明 |
---|---|
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 | 変数のプロパティを定義する定数を識別します。 |