Marshal メンバ
アンマネージ コードを扱うときに使用できるさまざまなメソッドを提供します。これらのメソッドを使用すると、アンマネージ メモリの割り当て、アンマネージ メモリ ブロックのコピー、マネージ型からアンマネージ型への変換などができます。
Marshal データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() ![]() | SystemMaxDBCSCharSize | 現在のオペレーティング システムでの 2 バイト文字セット (DBCS) サイズの上限をバイト単位で表します。このフィールドは読み取り専用です。 |

名前 | 説明 | |
---|---|---|
![]() | AddRef | 指定したインターフェイスの参照カウントをインクリメントします。 |
![]() | AllocCoTaskMem | COM タスク メモリ アロケータから、指定したサイズのメモリ ブロックを割り当てます。 |
![]() | AllocHGlobal | オーバーロードされます。 LocalAlloc を使用して、メモリ ブロックを割り当てます。 |
![]() | BindToMoniker | 指定したモニカによって識別されるインターフェイス ポインタを取得します。 |
![]() | ChangeWrapperHandleStrength | 格納しているオブジェクトの COM 呼び出し可能ラッパー (CCW: COM callable wrapper) のハンドルの強さを変更します。 |
![]() | Copy | オーバーロードされます。 マネージ配列からアンマネージ メモリ ポインタ、またはアンマネージ メモリ ポインタからマネージ配列にデータをコピーします。 |
![]() | CreateAggregatedObject | 指定した COM オブジェクトを使用してマネージ オブジェクトを集約します。 |
![]() | CreateWrapperOfType | 指定した型のオブジェクト内の、指定した COM オブジェクトをラップします。 |
![]() | DestroyStructure | 指定したアンマネージ メモリ ブロックが指す、すべてのサブ構造体を解放します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | FinalReleaseComObject | 提供されたランタイム呼び出し可能ラッパー (RCW: Runtime Callable Wrapper) の参照カウントを 0 に設定することによって、RCW へのすべての参照を解放します。 |
![]() | FreeBSTR | SysFreeString を使用して BSTR を解放します。 |
![]() | FreeCoTaskMem | Marshal.AllocCoTaskMem を使用して、アンマネージ COM タスク メモリ アロケータが割り当てたメモリ ブロックを解放します。 |
![]() | FreeHGlobal | 以前に AllocHGlobal を使用してプロセスのアンマネージ メモリから割り当てられたメモリを解放します。 |
![]() | GenerateGuidForType | 指定した型のグローバル一意識別子 (GUID: Globally Unique Identifier) を返すか、タイプ ライブラリ エクスポータ (Tlbexp.exe) で使用されるアルゴリズムを使用して GUID を生成します。 |
![]() | GenerateProgIdForType | 指定した型のプログラム ID (ProgID) を返します。 |
![]() | GetActiveObject | ランニング オブジェクト テーブルから指定したオブジェクトの実行中のインスタンスを取得します。 |
![]() | GetComInterfaceForObject | オブジェクトの指定したインターフェイスを表すインターフェイス ポインタを返します。 |
![]() | GetComInterfaceForObjectInContext | 呼び出し元がオブジェクトと同じコンテキストに存在する場合に、そのオブジェクトの指定したインターフェイスを表すインターフェイス ポインタを返します。 |
![]() | GetComObjectData | 指定した COM オブジェクトから、指定したキーで参照するデータを取得します。 |
![]() | GetComSlotForMethodInfo | COM への公開時に、指定した System.Reflection.MemberInfo の仮想関数テーブル (VTBL: Virtual Function Table) スロットを取得します。 |
![]() | GetDelegateForFunctionPointer | アンマネージ関数ポインタをデリゲートに変換します。 |
![]() | GetEndComSlot | COM への公開時に、型の仮想関数テーブル (VTBL) 内の最終スロットを取得します。 |
![]() | GetExceptionCode | 発生した例外の型を識別するコードを取得します。 |
![]() | GetExceptionForHR | オーバーロードされます。 HRESULT エラー コードを対応する Exception オブジェクトに変換します。 |
![]() | GetExceptionPointers | 例外発生時に、コンピュータに依存しない例外の記述、およびスレッドに対して存在した状態に関する情報を取得します。 |
![]() | GetFunctionPointerForDelegate | デサンクへのポインタ可能な関数ポインタに変換します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetHINSTANCE | 指定したモジュールのインスタンス ハンドル (HINSTANCE) を返します。 |
![]() | GetHRForException | 指定した例外を HRESULT に変換します。 |
![]() | GetHRForLastWin32Error | Marshal を使用して実行した Win32 コードが原因の最終エラーに対応する HRESULT を返します。 |
![]() | GetIDispatchForObject | マネージ オブジェクトから IDispatch インターフェイスを返します。 |
![]() | GetIDispatchForObjectInContext | 呼び出し元がマネージ オブジェクトと同じコンテキストに存在する場合に、そのマネージ オブジェクトから IDispatch インターフェイス ポインタを返します。 |
![]() | GetITypeInfoForType | マネージ型から ITypeInfo インターフェイスを返します。 |
![]() | GetIUnknownForObject | マネージ オブジェクトから IUnknown インターフェイスを返します。 |
![]() | GetIUnknownForObjectInContext | 呼び出し元がマネージ オブジェクトと同じコンテキストに存在しない場合に、そのマネージ オブジェクトから IUnknown インターフェイスを返します。 |
![]() | GetLastWin32Error | DllImportAttribute.SetLastError フラグを設定したプラットフォーム呼び出しを使用して呼び出した、最終アンマネージ関数によって返されるエラー コードを返します。 |
![]() | GetManagedThunkForUnmanagedMethodPtr | マネージ コードからアンマネージ コードに呼び出しをマーシャリングするサンクへのポインタを取得します。 |
![]() | GetMethodInfoForComSlot | 指定した仮想関数テーブル (VTBL) スロットの MethodInfo を取得します。 |
![]() | GetNativeVariantForObject | オブジェクトを COM VARIANT に変換します。 |
![]() | GetObjectForIUnknown | COM オブジェクトを IUnknown インターフェイスへのポインタによって表す型のインスタンスを返します。 |
![]() | GetObjectForNativeVariant | COM VARIANT をオブジェクトに変換します。 |
![]() | GetObjectsForNativeVariants | COM VARIANT の配列をオブジェクトの配列に変換します。 |
![]() | GetStartComSlot | ユーザー定義のメソッドを格納している、仮想関数テーブル (VTBL) の最初のスロットを取得します。 |
![]() | GetThreadFromFiberCookie | ファイバ cookie を対応する System.Threading.Thread インスタンスに変換します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | GetTypedObjectForIUnknown | COM オブジェクトを表す、指定した型のマネージ オブジェクトを返します。 |
![]() | GetTypeForITypeInfo | ITypeInfo をマネージ Type オブジェクトに変換します。 |
![]() | GetTypeInfoName | オーバーロードされます。 ITypeInfo で表される型の名前を取得します。 |
![]() | GetTypeLibGuid | オーバーロードされます。 タイプ ライブラリのライブラリ ID (LIBID) を取得します。 |
![]() | GetTypeLibGuidForAssembly | 指定したアセンブリからエクスポートされるときにタイプ ライブラリに割り当てられるライブラリ ID (LIBID) を取得します。 |
![]() | GetTypeLibLcid | オーバーロードされます。 タイプ ライブラリの LCID を取得します。 |
![]() | GetTypeLibName | オーバーロードされます。 タイプ ライブラリの名前を取得します。 |
![]() | GetTypeLibVersionForAssembly | 指定したアセンブリからエクスポートされるタイプ ライブラリのバージョン番号を取得します。 |
![]() | GetUniqueObjectForIUnknown | 指定した IUnknown の一意のランタイム呼び出し可能ラッパー (RCW: Runtime Callable Wrapper) オブジェクトを作成します。 |
![]() | GetUnmanagedThunkForManagedMethodPtr | アンマネージ コードからマネージ コードに呼び出しをマーシャリングするサンクへのポインタを取得します。 |
![]() | IsComObject | 指定したオブジェクトが COM オブジェクトを表すかどうかを示します。 |
![]() | IsTypeVisibleFromCom | 型が COM クライアントに表示されるかどうかを示します。 |
![]() | NumParamBytes | 指定したメソッドのパラメータを保持するために必要なアンマネージ メモリ内のバイト数を計算します。 |
![]() | OffsetOf | マネージ クラスのアンマネージ フォームのフィールド オフセットを返します。 |
![]() | Prelink | メソッドを呼び出さずに、一度だけ実行されるメソッド セットアップ タスクを実行します。 |
![]() | PrelinkAll | クラスのすべてのメソッドに対してリンク前の確認を実行します。 |
![]() | PtrToStringAnsi | オーバーロードされます。 マネージ String を割り当て、アンマネージ ANSI 文字列のすべてまたは一部をコピーします。 |
![]() | PtrToStringAuto | オーバーロードされます。 マネージ String を割り当て、アンマネージ文字列から指定された数の文字をコピーします。 |
![]() | PtrToStringBSTR | マネージ String を割り当て、アンマネージ メモリに格納されている BSTR 文字列をコピーします。 |
![]() | PtrToStringUni | オーバーロードされます。 マネージ String を割り当て、アンマネージ Unicode 文字列から指定された数の文字をコピーします。 |
![]() | PtrToStructure | オーバーロードされます。 アンマネージ メモリ ブロックからマネージ オブジェクトにデータをマーシャリングします。 |
![]() | QueryInterface | COM オブジェクトから指定したインターフェイスへのポインタを要求します。 |
![]() | ReadByte | オーバーロードされます。 アンマネージ ポインタから 1 バイトを読み取ります。 |
![]() | ReadInt16 | オーバーロードされます。 アンマネージ メモリから 16 ビット符号付き整数を読み取ります。 |
![]() | ReadInt32 | オーバーロードされます。 アンマネージ メモリから 32 ビット符号付き整数を読み取ります。 |
![]() | ReadInt64 | オーバーロードされます。 アンマネージ メモリから 64 ビット符号付き整数を読み取ります。 |
![]() | ReadIntPtr | オーバーロードされます。 アンマネージ メモリからプロセッサ ネイティブ サイズの整数を読み取ります。 |
![]() | ReAllocCoTaskMem | 以前に AllocCoTaskMem を使用して割り当てられたメモリ ブロックのサイズを変更します。 |
![]() | ReAllocHGlobal | 以前に AllocHGlobal を使用して割り当てられたメモリ ブロックのサイズを変更します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | Release | 指定したインターフェイスの参照カウントをデクリメントします。 |
![]() | ReleaseComObject | 提供されたランタイム呼び出し可能ラッパーの参照カウントをデクリメントします。 |
![]() | ReleaseThreadCache | スレッドのキャッシュを解放します。 |
![]() | SecureStringToBSTR | BSTR を割り当て、その BSTR にマネージ SecureString オブジェクトの内容をコピーします。 |
![]() | SecureStringToCoTaskMemAnsi | アンマネージ COM タスク アロケータから割り当てられたメモリ ブロックに、マネージ SecureString オブジェクトの内容をコピーします。 |
![]() | SecureStringToCoTaskMemUnicode | アンマネージ COM タスク アロケータから割り当てられたメモリ ブロックに、マネージ SecureString オブジェクトの内容をコピーします。 |
![]() | SecureStringToGlobalAllocAnsi | マネージ SecureString の内容をアンマネージ メモリにコピーし、コピー時に ANSI 形式に変換します。 |
![]() | SecureStringToGlobalAllocUnicode | マネージ SecureString の内容をアンマネージ メモリにコピーします。 |
![]() | SetComObjectData | 指定した COM オブジェクトに、指定したキーで参照するデータを設定します。 |
![]() | SizeOf | オーバーロードされます。 Marshal を使用して、クラスのアンマネージ サイズをバイト単位で返します。 |
![]() | StringToBSTR | BSTR を割り当て、それにマネージ String の内容をコピーします。 |
![]() | StringToCoTaskMemAnsi | アンマネージ COM タスク アロケータから割り当てられたメモリ ブロックに、マネージ String の内容をコピーします。 |
![]() | StringToCoTaskMemAuto | アンマネージ COM タスク アロケータから割り当てられたメモリ ブロックに、マネージ String の内容をコピーします。 |
![]() | StringToCoTaskMemUni | アンマネージ COM タスク アロケータから割り当てられたメモリ ブロックに、マネージ String の内容をコピーします。 |
![]() | StringToHGlobalAnsi | マネージ String の内容をアンマネージ メモリにコピーし、コピー時に ANSI 形式に変換します。 |
![]() | StringToHGlobalAuto | マネージ String の内容をアンマネージ メモリにコピーし、必要に応じて ANSI 形式に変換します。 |
![]() | StringToHGlobalUni | マネージ String の内容をアンマネージ メモリにコピーします。 |
![]() | StructureToPtr | マネージ オブジェクトからアンマネージ メモリ ブロックにデータをマーシャリングします。 |
![]() | ThrowExceptionForHR | オーバーロードされます。 特定の失敗 HRESULT 値を使用して例外をスローします。 |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
![]() | UnsafeAddrOfPinnedArrayElement | 指定した配列内の、指定したインデックス位置にある要素のアドレスを取得します。 |
![]() | WriteByte | オーバーロードされます。 1 バイト値をアンマネージ メモリに書き込みます。 |
![]() | WriteInt16 | オーバーロードされます。 アンマネージ メモリに 16 ビット符号付き整数を書き込みます。 |
![]() | WriteInt32 | オーバーロードされます。 アンマネージ メモリに 32 ビット符号付き整数を書き込みます。 |
![]() | WriteInt64 | オーバーロードされます。 アンマネージ メモリに 64 ビット符号付き整数を書き込みます。 |
![]() | WriteIntPtr | オーバーロードされます。 アンマネージ メモリにプロセッサ ネイティブ サイズの整数を書き込みます。 |
![]() | ZeroFreeBSTR | SecureStringToBSTR メソッドを使用して割り当てられた BSTR ポインタを解放します。 |
![]() | ZeroFreeCoTaskMemAnsi | SecureStringToCoTaskMemAnsi メソッドを使用して割り当てられたアンマネージ文字列ポインタを解放します。 |
![]() | ZeroFreeCoTaskMemUnicode | SecureStringToCoTaskMemUnicode メソッドを使用して割り当てられたアンマネージ文字列ポインタを解放します。 |
![]() | ZeroFreeGlobalAllocAnsi | SecureStringToGlobalAllocAnsi メソッドを使用して割り当てられたアンマネージ文字列ポインタを解放します。 |
![]() | ZeroFreeGlobalAllocUnicode | SecureStringToCoTaskMemUnicode メソッドを使用して割り当てられたアンマネージ文字列ポインタを解放します。 |

- Marshal メンバのページへのリンク