Marshal クラス

定義

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

public ref class Marshal abstract sealed
public ref class Marshal sealed
public static class Marshal
public sealed class Marshal
type Marshal = class
Public Class Marshal
Public NotInheritable Class Marshal
継承
Marshal

次の例は、 クラスで定義されているさまざまなメソッドを使用する方法を Marshal 示しています。

using namespace System;
using namespace System::Runtime::InteropServices;

public value struct Point
{
public:
    property int X;
    property int Y;
};
extern bool CloseHandle(IntPtr h);

int main()
{
    // Demonstrate the use of public static fields of the Marshal
    // class.
    Console::WriteLine(
        "SystemDefaultCharSize={0},SystemMaxDBCSCharSize={1}",
        Marshal::SystemDefaultCharSize,
        Marshal::SystemMaxDBCSCharSize);

    // Demonstrate the use of the SizeOf method of the Marshal
    // class.
    Console::WriteLine("Number of bytes needed by a Point object: {0}",
        Marshal::SizeOf(Point::typeid));
    Point point;
    Console::WriteLine("Number of bytes needed by a Point object: {0}",
        Marshal::SizeOf(point));

    // Demonstrate how to call GlobalAlloc and 
    // GlobalFree using the Marshal class.
    IntPtr hglobal = Marshal::AllocHGlobal(100);
    Marshal::FreeHGlobal(hglobal);

    // Demonstrate how to use the Marshal class to get the Win32
    // error code when a Win32 method fails.
    bool isCloseHandleSuccess = CloseHandle(IntPtr(-1));
    if (!isCloseHandleSuccess)
    {
        Console::WriteLine(
            "CloseHandle call failed with an error code of: {0}",
            Marshal::GetLastWin32Error());
    }
};

// This is a platform invoke prototype. SetLastError is true,
// which allows the GetLastWin32Error method of the Marshal class
// to work correctly.    
[DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
extern bool CloseHandle(IntPtr h);

// This code produces the following output.
// 
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6
using System;
using System.Text;
using System.Runtime.InteropServices;

public struct Point
{
    public Int32 x, y;
}

public sealed class App
{
    static void Main()
    {
        // Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}",
            Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize);

        // Demonstrate the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}",
            Marshal.SizeOf(typeof(Point)));
        Point p = new Point();
        Console.WriteLine("Number of bytes needed by a Point object: {0}",
            Marshal.SizeOf(p));

        // Demonstrate how to call GlobalAlloc and
        // GlobalFree using the Marshal class.
        IntPtr hglobal = Marshal.AllocHGlobal(100);
        Marshal.FreeHGlobal(hglobal);

        // Demonstrate how to use the Marshal class to get the Win32 error
        // code when a Win32 method fails.
        Boolean f = CloseHandle(new IntPtr(-1));
        if (!f)
        {
            Console.WriteLine("CloseHandle call failed with an error code of: {0}",
                Marshal.GetLastWin32Error());
        }
    }

    // This is a platform invoke prototype. SetLastError is true, which allows
    // the GetLastWin32Error method of the Marshal class to work correctly.
    [DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
    static extern Boolean CloseHandle(IntPtr h);
}

// This code produces the following output.
//
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.Security.Permissions



Public Structure Point
    Public x, y As Int32
End Structure



Public NotInheritable Class App

    <SecurityPermission(SecurityAction.LinkDemand, Unrestricted:=True)> _
    Shared Sub Main()
        ' Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}", Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize)
        ' Demonstrate the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(GetType(Point)))
        Dim p As New Point()
        Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(p))
        ' Demonstrate how to call GlobalAlloc and 
        ' GlobalFree using the Marshal class.
        Dim hglobal As IntPtr = Marshal.AllocHGlobal(100)
        Marshal.FreeHGlobal(hglobal)
        ' Demonstrate how to use the Marshal class to get the Win32 error 
        ' code when a Win32 method fails.
        Dim f As [Boolean] = CloseHandle(New IntPtr(-1))
        If Not f Then
            Console.WriteLine("CloseHandle call failed with an error code of: {0}", Marshal.GetLastWin32Error())
        End If

    End Sub


    ' This is a platform invoke prototype. SetLastError is true, which allows 
    ' the GetLastWin32Error method of the Marshal class to work correctly.    
    <DllImport("Kernel32", ExactSpelling:=True, SetLastError:=True)> _
    Shared Function CloseHandle(ByVal h As IntPtr) As [Boolean]

    End Function
End Class


' This code produces the following output.
' 
' SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
' Number of bytes needed by a Point object: 8
' Number of bytes needed by a Point object: 8
' CloseHandle call failed with an error code of: 6

注釈

クラスで定義されているMarshalメソッドはstatic、アンマネージ コードを操作するために不可欠です。 このクラスで定義されているほとんどのメソッドは、通常、マネージド プログラミング モデルとアンマネージド プログラミング モデルの間のブリッジを提供する開発者によって使用されます。 たとえば、 メソッドは StringToHGlobalAnsi 、指定された文字列 (マネージド ヒープ内) からアンマネージド ヒープ内のバッファーに ANSI 文字をコピーします。 また、適切なサイズのターゲット ヒープも割り当てます。

共通言語ランタイムは、特定のマーシャリング機能を提供します。 マーシャリング動作の詳細については、「 相互運用マーシャリング」を参照してください。

クラスの メソッドと Write メソッドはReadMarshalアラインアクセスとアラインされていないアクセスの両方をサポートします。

フィールド

SystemDefaultCharSize

システムの既定の文字サイズを表します。Unicode システムの既定の文字サイズは 2 で、ANSI システムの場合は 1 です。 このフィールドは読み取り専用です。

SystemMaxDBCSCharSize

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

メソッド

AddRef(IntPtr)

指定したインターフェイスの参照カウントをインクリメントします。

AllocCoTaskMem(Int32)

COM タスク メモリ アロケーターから、指定したサイズのメモリ ブロックを割り当てます。

AllocHGlobal(Int32)

指定したバイト数を使用して、プロセスのアンマネージ メモリからメモリを割り当てます。

AllocHGlobal(IntPtr)

指定したバイト数へのポインターを使用して、プロセスのアンマネージ メモリからメモリを割り当てます。

AreComObjectsAvailableForCleanup()

任意のコンテキストからのランタイム呼び出し可能ラッパー (RCW: Runtime Callable Wrapper) をクリーンアップに使用できるかどうかを示します。

BindToMoniker(String)

指定したモニカーによって識別されるインターフェイス ポインターを取得します。

BufferToBSTR(Array, Int32)

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

ChangeWrapperHandleStrength(Object, Boolean)

オブジェクトの COM 呼び出し可能ラッパー (CCW) ハンドルの強度を変更します。

CleanupUnusedObjectsInCurrentContext()

現在のコンテキストで割り当てられたすべてのランタイム呼び出し可能ラッパー (RCW) をクリーンアップすることをランタイムに通知します。

Copy(Byte[], Int32, IntPtr, Int32)

1 次元の 8 ビット符号なし整数のマネージド配列のデータをアンマネージド メモリ ポインターにコピーします。

Copy(Char[], Int32, IntPtr, Int32)

1 次元の文字列のマネージド配列のデータをアンマネージド メモリ ポインターにコピーします。

Copy(Double[], Int32, IntPtr, Int32)

1 次元の倍精度浮動小数点数のマネージド配列のデータをアンマネージド メモリ ポインターにコピーします。

Copy(Int16[], Int32, IntPtr, Int32)

1 次元の 16 ビット符号付き整数のマネージド配列のデータをアンマネージド メモリ ポインターにコピーします。

Copy(Int32[], Int32, IntPtr, Int32)

1 次元の 32 ビット符号付き整数のマネージド配列のデータをアンマネージド メモリ ポインターにコピーします。

Copy(Int64[], Int32, IntPtr, Int32)

1 次元の 64 ビット符号付き整数のマネージド配列のデータをアンマネージド メモリ ポインターにコピーします。

Copy(IntPtr, Byte[], Int32, Int32)

アンマネージド メモリ ポインターのデータを 8 ビット符号なし整数のマネージド配列にコピーします。

Copy(IntPtr, Char[], Int32, Int32)

アンマネージド メモリ ポインターのデータを文字列のマネージド配列にコピーします。

Copy(IntPtr, Double[], Int32, Int32)

アンマネージド メモリ ポインターのデータを倍精度浮動小数点数のマネージド配列にコピーします。

Copy(IntPtr, Int16[], Int32, Int32)

アンマネージド メモリ ポインターのデータを 16 ビット符号付き整数のマネージド配列にコピーします。

Copy(IntPtr, Int32[], Int32, Int32)

アンマネージド メモリ ポインターのデータを 32 ビット符号付き整数のマネージド配列にコピーします。

Copy(IntPtr, Int64[], Int32, Int32)

アンマネージド メモリ ポインターのデータを 64 ビット符号付き整数のマネージド配列にコピーします。

Copy(IntPtr, IntPtr[], Int32, Int32)

アンマネージド メモリ ポインターのデータをマネージド IntPtr 配列にコピーします。

Copy(IntPtr, Single[], Int32, Int32)

アンマネージド メモリ ポインターのデータを単精度浮動小数点数のマネージド配列にコピーします。

Copy(IntPtr[], Int32, IntPtr, Int32)

1 次元の IntPtr マネージド配列のデータをアンマネージド メモリ ポインターにコピーします。

Copy(Single[], Int32, IntPtr, Int32)

1 次元の単精度浮動小数点数のマネージド配列のデータをアンマネージド メモリ ポインターにコピーします。

CreateAggregatedObject(IntPtr, Object)
互換性のために残されています。

指定した COM オブジェクトを使用してマネージド オブジェクトを集約します。

CreateAggregatedObject<T>(IntPtr, T)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定した COM オブジェクトを使用して、指定した型のマネージド オブジェクトを集約します。

CreateWrapperOfType(Object, Type)
互換性のために残されています。

指定した型のオブジェクト内の、指定した COM オブジェクトをラップします。

CreateWrapperOfType<T,TWrapper>(T)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定した型のオブジェクト内の、指定した COM オブジェクトをラップします。

DestroyStructure(IntPtr, Type)
互換性のために残されています。

指定したアンマネージ メモリ ブロックが指す、すべてのサブ構造体を解放します。

DestroyStructure<T>(IntPtr)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定したアンマネージ メモリ ブロックが指す、指定した型のすべてのサブ構造体を解放します。

FinalReleaseComObject(Object)

ランタイム呼び出し可能ラッパー (RCW) の参照カウントを 0 に設定することによって、RCW へのすべての参照を解放します。

FreeBSTR(IntPtr)

COM SysFreeString 関数を使用して、BSTR を解放します。

FreeCoTaskMem(IntPtr)

アンマネージ COM タスク メモリ アロケーターによって割り当てられたメモリ ブロックを解放します。

FreeHGlobal(IntPtr)

以前にプロセスのアンマネージ メモリから割り当てられたメモリを解放します。

GenerateGuidForType(Type)

指定した型のグローバル一意識別子 (GUID: Globally Unique Identifier) を返すか、タイプ ライブラリ エクスポーター (Tlbexp.exe) で使用されるアルゴリズムを使用して GUID を生成します。

GenerateProgIdForType(Type)

指定した型のプログラム ID (ProgID) を返します。

GetActiveObject(String)

ランニング オブジェクト テーブル (ROT: Running Object Table) から指定したオブジェクトの実行中のインスタンスを取得します。

GetComInterfaceForObject(Object, Type)
互換性のために残されています。

指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは既定で有効になっています。

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
互換性のために残されています。

指定したオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは、指定したカスタマイズ モードで制御されます。

GetComInterfaceForObject<T,TInterface>(T)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定した型のオブジェクトの指定したインターフェイスを表す IUnknown インターフェイスへのポインターを返します。 カスタム クエリ インターフェイス アクセスは既定で有効になっています。

GetComInterfaceForObjectInContext(Object, Type)

呼び出し元がオブジェクトと同じコンテキストに存在する場合に、そのオブジェクトの指定したインターフェイスを表すインターフェイス ポインターを返します。

GetComObjectData(Object, Object)

指定した COM オブジェクトから、指定したキーによって参照されているデータを取得します。

GetComSlotForMethodInfo(MemberInfo)

指定した MemberInfo 型が COM に公開されたときの仮想関数テーブル (V テーブルまたは VTBL) のスロットを取得します。

GetDelegateForFunctionPointer(IntPtr, Type)
互換性のために残されています。

アンマネージ関数ポインターをデリゲートに変換します。

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

[.NET Framework 4.5.1 以降のバージョンでサポート]

アンマネージ関数ポインターを指定した型のデリゲートに変換します。

GetEndComSlot(Type)

型が COM に公開されたときの仮想テーブル (V テーブルまたは VTBL) の最後のスロットを取得します。

GetExceptionCode()
互換性のために残されています。

発生した例外の型を識別するコードを取得します。

GetExceptionForHR(Int32)

指定した HRESULT エラー コードを対応する Exception オブジェクトに変換します。

GetExceptionForHR(Int32, IntPtr)

例外オブジェクトの IErrorInfoインターフェイスに渡された追加エラー情報を使用して、指定した HRESULT エラー コードを対応する Exception オブジェクトに変換します。

GetExceptionPointers()

例外発生時に、コンピューターに依存しない例外の記述、およびスレッドに対して存在した状態に関する情報を取得します。

GetFunctionPointerForDelegate(Delegate)
互換性のために残されています。

アンマネージ コードから呼び出すことができる関数ポインターにデリゲートを変換します。

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定した型のデリゲートをアンマネージ コードから呼び出すことができる関数ポインターに変換します。

GetHINSTANCE(Module)

指定したモジュールのインスタンス ハンドル (HINSTANCE) を返します。

GetHRForException(Exception)

指定した例外を HRESULT に変換します。

GetHRForLastWin32Error()

Marshal を使用して実行した Win32 コードが原因の最終エラーに対応する HRESULT を返します。

GetIDispatchForObject(Object)

マネージド オブジェクトから IDispatch インターフェイスを返します。

GetIDispatchForObjectInContext(Object)

呼び出し元がマネージド オブジェクトと同じコンテキストに存在する場合に、そのマネージド オブジェクトから IDispatch インターフェイス ポインターを返します。

GetITypeInfoForType(Type)

マネージド型から ITypeInfo インターフェイスを返します。

GetIUnknownForObject(Object)

マネージド オブジェクトから IUnknown インターフェイスを返します。

GetIUnknownForObjectInContext(Object)

呼び出し元がマネージド オブジェクトと同じコンテキストに存在する場合に、そのマネージド オブジェクトから IUnknown インターフェイスを返します。

GetLastPInvokeError()

現在のスレッドで最後のプラットフォーム呼び出しエラーを取得します。

GetLastPInvokeErrorMessage()

最後の PInvoke エラー コードのシステム エラー メッセージを取得します。

GetLastSystemError()

現在のスレッドの最後のシステム エラーを取得します。

GetLastWin32Error()

SetLastError フラグが設定され、プラットフォーム呼び出しを使用して呼び出された、最終アンマネージ関数によって返されるエラー コードを返します。

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
互換性のために残されています。
互換性のために残されています。

マネージド コードからアンマネージド コードに呼び出しをマーシャリングする、ランタイムによって生成される関数へのポインターを取得します。

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

指定した仮想関数テーブル (V テーブルまたは VTBL) のスロットの MemberInfo オブジェクトを取得します。

GetNativeVariantForObject(Object, IntPtr)
互換性のために残されています。

オブジェクトを COM VARIANT に変換します。

GetNativeVariantForObject<T>(T, IntPtr)
互換性のために残されています。

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定した型のオブジェクトを COM VARIANT に変換します。

GetObjectForIUnknown(IntPtr)

COM オブジェクトを IUnknown インターフェイスへのポインターによって表す型のインスタンスを返します。

GetObjectForNativeVariant(IntPtr)
互換性のために残されています。

COM VARIANT をオブジェクトに変換します。

GetObjectForNativeVariant<T>(IntPtr)
互換性のために残されています。

[.NET Framework 4.5.1 以降のバージョンでサポート]

COM VARIANT を、指定した型のオブジェクトに変換します。

GetObjectsForNativeVariants(IntPtr, Int32)
互換性のために残されています。

COM VARIANTs の配列をオブジェクトの配列に変換します。

GetObjectsForNativeVariants<T>(IntPtr, Int32)
互換性のために残されています。

[.NET Framework 4.5.1 以降のバージョンでサポート]

COM VARIANT の配列を指定した型の配列に変換します。

GetPInvokeErrorMessage(Int32)

指定されたエラー コードのシステム エラー メッセージを取得します。

GetStartComSlot(Type)

ユーザー定義のメソッドを格納している、仮想関数テーブル (V テーブルまたは VTBL) の最初のスロットを取得します。

GetThreadFromFiberCookie(Int32)
互換性のために残されています。
互換性のために残されています。

ファイバー cookie を対応する Thread インスタンスに変換します。

GetTypedObjectForIUnknown(IntPtr, Type)

COM オブジェクトを表す、指定した型のマネージド オブジェクトを返します。

GetTypeForITypeInfo(IntPtr)

アンマネージド ITypeInfo オブジェクトをマネージド Type オブジェクトに変換します。

GetTypeFromCLSID(Guid)

指定したクラス ID (CLSID) に関連付けられている型を返します。

GetTypeInfoName(ITypeInfo)

ITypeInfo オブジェクトで表される型の名前を取得します。

GetTypeInfoName(UCOMITypeInfo)
互換性のために残されています。
互換性のために残されています。

ITypeInfo オブジェクトで表される型の名前を取得します。

GetTypeLibGuid(ITypeLib)

タイプ ライブラリのライブラリ ID (LIBID) を取得します。

GetTypeLibGuid(UCOMITypeLib)
互換性のために残されています。
互換性のために残されています。

タイプ ライブラリのライブラリ ID (LIBID) を取得します。

GetTypeLibGuidForAssembly(Assembly)

指定したアセンブリからエクスポートされるときにタイプ ライブラリに割り当てられるライブラリ ID (LIBID) を取得します。

GetTypeLibLcid(ITypeLib)

タイプ ライブラリの LCID を取得します。

GetTypeLibLcid(UCOMITypeLib)
互換性のために残されています。
互換性のために残されています。

タイプ ライブラリの LCID を取得します。

GetTypeLibName(ITypeLib)

タイプ ライブラリの名前を取得します。

GetTypeLibName(UCOMITypeLib)
互換性のために残されています。
互換性のために残されています。

タイプ ライブラリの名前を取得します。

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

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

GetUniqueObjectForIUnknown(IntPtr)

指定した IUnknown インターフェイスの一意のランタイム呼び出し可能ラッパー (RCW) オブジェクトを作成します。

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
互換性のために残されています。
互換性のために残されています。

アンマネージド コードからマネージド コードに呼び出しをマーシャリングする、ランタイムによって生成される関数へのポインターを取得します。

InitHandle(SafeHandle, IntPtr)

指定された値に対して新しく作成 SafeHandle された の基になるハンドルを初期化します。

IsComObject(Object)

指定したオブジェクトが COM オブジェクトを表すかどうかを示します。

IsTypeVisibleFromCom(Type)

型が COM クライアントに表示されるかどうかを示します。

NumParamBytes(MethodInfo)

指定したメソッドのパラメーターを保持するために必要なアンマネージ メモリ内のバイト数を計算します。

OffsetOf(Type, String)
互換性のために残されています。

マネージド クラスのアンマネージド フォームのフィールド オフセットを返します。

OffsetOf<T>(String)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定されたマネージド クラスのアンマネージド フォームのフィールド オフセットを返します。

Prelink(MethodInfo)

メソッドを呼び出さずに、一度だけ実行されるメソッド セットアップ タスクを実行します。

PrelinkAll(Type)

クラスのすべてのメソッドに対してリンク前の確認を実行します。

PtrToStringAnsi(IntPtr)

アンマネージド ANSI または UTF-8 文字列から最初の null 文字に遭遇するまでのすべての文字をマネージド String にコピーし、各文字を UTF-16 に拡張します。

PtrToStringAnsi(IntPtr, Int32)

マネージド String を割り当て、アンマネージド ANSI または UTF-8 文字列から指定した文字数をコピーし、各文字を UTF-16 に拡張します。

PtrToStringAuto(IntPtr)

マネージド String を割り当て、最初の null 文字に遭遇するまでの文字をアンマネージド メモリに格納されている文字列からすべてコピーします。

PtrToStringAuto(IntPtr, Int32)

マネージド String を割り当て、アンマネージド メモリに格納されている文字列から指定された数の文字をそれにコピーします。

PtrToStringBSTR(IntPtr)

マネージド String を割り当て、アンマネージド メモリに格納されている バイナリ文字列 (BSTR) をコピーします。

PtrToStringUni(IntPtr)

マネージド String を割り当て、アンマネージド Unicode 文字列から最初の null 文字に遭遇するまでの文字をすべてコピーします。

PtrToStringUni(IntPtr, Int32)

マネージド String を割り当て、アンマネージド Unicode 文字列から指定された数の文字をコピーします。

PtrToStringUTF8(IntPtr)

マネージド String を割り当て、アンマネージド UTF-8 文字列から最初の null 文字に遭遇するまでの文字をすべてコピーします。

PtrToStringUTF8(IntPtr, Int32)

マネージド String を割り当て、アンマネージド UTF-8 文字列から指定されたバイト数をコピーします。

PtrToStructure(IntPtr, Object)
互換性のために残されています。

アンマネージド メモリ ブロックからマネージド オブジェクトにデータをマーシャリングします。

PtrToStructure(IntPtr, Type)
互換性のために残されています。

アンマネージド メモリ ブロックから、指定した型の、新しく割り当てられたマネージド オブジェクトにデータをマーシャリングします。

PtrToStructure<T>(IntPtr)

[.NET Framework 4.5.1 以降のバージョンでサポート]

アンマネージド メモリ ブロックから、ジェネリック型パラメーターによって指定された型の、新しく割り当てられたマネージド オブジェクトにデータをマーシャリングします。

PtrToStructure<T>(IntPtr, T)

[.NET Framework 4.5.1 以降のバージョンでサポート]

アンマネージド メモリ ブロックから、指定した型のマネージド オブジェクトにデータをマーシャリングします。

QueryInterface(IntPtr, Guid, IntPtr)

COM オブジェクトから指定したインターフェイスへのポインターを要求します。

ReadByte(IntPtr)

アンマネージ メモリから 1 バイトを読み取ります。

ReadByte(IntPtr, Int32)

アンマネージ メモリから、指定したオフセット (またはインデックス) の 1 バイトを読み取ります。

ReadByte(Object, Int32)
互換性のために残されています。

アンマネージ メモリから、指定したオフセット (またはインデックス) の 1 バイトを読み取ります。

ReadInt16(IntPtr)

アンマネージ メモリから 16 ビット符号付き整数を読み取ります。

ReadInt16(IntPtr, Int32)

アンマネージ メモリの指定されたオフセットから 16 ビット符号付き整数を読み取ります。

ReadInt16(Object, Int32)
互換性のために残されています。

アンマネージ メモリの指定されたオフセットから 16 ビット符号付き整数を読み取ります。

ReadInt32(IntPtr)

アンマネージ メモリから 32 ビット符号付き整数を読み取ります。

ReadInt32(IntPtr, Int32)

アンマネージ メモリの指定されたオフセットから 32 ビット符号付き整数を読み取ります。

ReadInt32(Object, Int32)
互換性のために残されています。

アンマネージ メモリの指定されたオフセットから 32 ビット符号付き整数を読み取ります。

ReadInt64(IntPtr)

アンマネージ メモリから 64 ビット符号付き整数を読み取ります。

ReadInt64(IntPtr, Int32)

アンマネージ メモリの指定されたオフセットから 64 ビット符号付き整数を読み取ります。

ReadInt64(Object, Int32)
互換性のために残されています。

アンマネージ メモリの指定されたオフセットから 64 ビット符号付き整数を読み取ります。

ReadIntPtr(IntPtr)

アンマネージ メモリからプロセッサ ネイティブ サイズの整数を読み取ります。

ReadIntPtr(IntPtr, Int32)

アンマネージ メモリの指定されたオフセットからプロセッサ ネイティブ サイズの整数を読み取ります。

ReadIntPtr(Object, Int32)
互換性のために残されています。

アンマネージ メモリからプロセッサ ネイティブ サイズの整数を読み取ります。

ReAllocCoTaskMem(IntPtr, Int32)

以前に AllocCoTaskMem(Int32) を使用して割り当てられたメモリ ブロックのサイズを変更します。

ReAllocHGlobal(IntPtr, IntPtr)

以前に AllocHGlobal(IntPtr) を使用して割り当てられたメモリ ブロックのサイズを変更します。

Release(IntPtr)

指定したインターフェイスの参照カウントをデクリメントします。

ReleaseComObject(Object)

指定した COM オブジェクトに関連付けられている指定したランタイム呼び出し可能ラッパー (RCW) の参照カウントをデクリメントします。

ReleaseThreadCache()
互換性のために残されています。
互換性のために残されています。

スレッドのキャッシュを解放します。

SecureStringToBSTR(SecureString)

アンマネージドの バイナリ文字列 (BSTR) を割り当て、それにマネージド SecureString オブジェクトの内容をコピーします。

SecureStringToCoTaskMemAnsi(SecureString)

アンマネージド COM タスク アロケーターから割り当てられたメモリ ブロックに、マネージド SecureString オブジェクトの内容をコピーします。

SecureStringToCoTaskMemUnicode(SecureString)

アンマネージド COM タスク アロケーターから割り当てられたメモリ ブロックに、マネージド SecureString オブジェクトの内容をコピーします。

SecureStringToGlobalAllocAnsi(SecureString)

マネージド SecureString の内容をアンマネージド メモリにコピーし、コピー時に ANSI 形式に変換します。

SecureStringToGlobalAllocUnicode(SecureString)

マネージド SecureString オブジェクトの内容をアンマネージド メモリにコピーします。

SetComObjectData(Object, Object, Object)

指定した COM オブジェクトに、指定したキーで参照するデータを設定します。

SetLastPInvokeError(Int32)

現在のスレッドで最後のプラットフォーム呼び出しエラーを設定します。

SetLastSystemError(Int32)

現在のスレッドの最後のシステム エラーを設定します。

SizeOf(Object)
互換性のために残されています。

オブジェクトのアンマネージ サイズをバイト単位で返します。

SizeOf(Type)
互換性のために残されています。

アンマネージ型のサイズを返します (バイト単位)。

SizeOf<T>()

[.NET Framework 4.5.1 以降のバージョンでサポート]

アンマネージ型のサイズを返します (バイト単位)。

SizeOf<T>(T)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定された型のオブジェクトのアンマネージのサイズをバイト数で返します。

StringToBSTR(String)

BSTR を割り当て、それにマネージド String の内容をコピーします。

StringToCoTaskMemAnsi(String)

アンマネージド COM タスク アロケーターから割り当てられたメモリ ブロックに、マネージド String の内容をコピーします。

StringToCoTaskMemAuto(String)

アンマネージド COM タスク アロケーターから割り当てられたメモリ ブロックに、マネージド String の内容をコピーします。

StringToCoTaskMemUni(String)

アンマネージド COM タスク アロケーターから割り当てられたメモリ ブロックに、マネージド String の内容をコピーします。

StringToCoTaskMemUTF8(String)

アンマネージド COM タスク アロケーターから割り当てられたメモリ ブロックに、マネージド String の内容をコピーします。

StringToHGlobalAnsi(String)

マネージド String の内容をアンマネージド メモリにコピーし、コピー時に ANSI 形式に変換します。

StringToHGlobalAuto(String)

マネージド String の内容をアンマネージド メモリにコピーし、必要に応じて ANSI 形式に変換します。

StringToHGlobalUni(String)

マネージド String の内容をアンマネージド メモリにコピーします。

StructureToPtr(Object, IntPtr, Boolean)
互換性のために残されています。

マネージド オブジェクトからアンマネージド メモリ ブロックにデータをマーシャリングします。

StructureToPtr<T>(T, IntPtr, Boolean)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定した型のマネージド オブジェクトから、アンマネージド メモリ ブロックにデータをマーシャリングします。

ThrowExceptionForHR(Int32)

特定の失敗 HRESULT 値を使用して例外をスローします。

ThrowExceptionForHR(Int32, IntPtr)

指定した IErrorInfo インターフェイスに基づいて、特定のエラー HRESULT を使用して例外をスローします。

UnsafeAddrOfPinnedArrayElement(Array, Int32)
互換性のために残されています。

指定した配列内の、指定したインデックス位置にある要素のアドレスを取得します。

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

[.NET Framework 4.5.1 以降のバージョンでサポート]

指定された型の配列内の、指定したインデックス位置にある要素のアドレスを取得します。

WriteByte(IntPtr, Byte)

1 バイト値をアンマネージ メモリに書き込みます。

WriteByte(IntPtr, Int32, Byte)

1 バイトをアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteByte(Object, Int32, Byte)
互換性のために残されています。

1 バイトをアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteInt16(IntPtr, Char)

文字を 16 ビット整数としてアンマネージ メモリに書き込みます。

WriteInt16(IntPtr, Int16)

アンマネージ メモリに 16 ビット整数を書き込みます。

WriteInt16(IntPtr, Int32, Char)

16 ビット符号付き整数値をアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteInt16(IntPtr, Int32, Int16)

16 ビット符号付き整数をアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteInt16(Object, Int32, Char)
互換性のために残されています。

16 ビット符号付き整数値をアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteInt16(Object, Int32, Int16)
互換性のために残されています。

16 ビット符号付き整数値をアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteInt32(IntPtr, Int32)

アンマネージ メモリに 32 ビット符号付き整数を書き込みます。

WriteInt32(IntPtr, Int32, Int32)

32 ビット符号付き整数をアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteInt32(Object, Int32, Int32)
互換性のために残されています。

32 ビット符号付き整数値をアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteInt64(IntPtr, Int32, Int64)

64 ビット符号付き整数値をアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteInt64(IntPtr, Int64)

アンマネージ メモリに 64 ビット符号付き整数を書き込みます。

WriteInt64(Object, Int32, Int64)
互換性のために残されています。

64 ビット符号付き整数値をアンマネージ メモリの指定されたオフセット位置に書き込みます。

WriteIntPtr(IntPtr, Int32, IntPtr)

アンマネージ メモリの指定されたオフセット位置にプロセッサ ネイティブ サイズの整数値を書き込みます。

WriteIntPtr(IntPtr, IntPtr)

アンマネージ メモリにプロセッサ ネイティブ サイズの整数を書き込みます。

WriteIntPtr(Object, Int32, IntPtr)
互換性のために残されています。

アンマネージ メモリにプロセッサ ネイティブ サイズの整数を書き込みます。

ZeroFreeBSTR(IntPtr)

SecureStringToBSTR(SecureString) メソッドを使用して割り当てられた BSTR ポインターを解放します。

ZeroFreeCoTaskMemAnsi(IntPtr)

SecureStringToCoTaskMemAnsi(SecureString) メソッドを使用して割り当てられたアンマネージ文字列ポインターを解放します。

ZeroFreeCoTaskMemUnicode(IntPtr)

SecureStringToCoTaskMemUnicode(SecureString) メソッドを使用して割り当てられたアンマネージ文字列ポインターを解放します。

ZeroFreeCoTaskMemUTF8(IntPtr)

StringToCoTaskMemUTF8(String) メソッドを使用して割り当てられたアンマネージ文字列ポインターを解放します。

ZeroFreeGlobalAllocAnsi(IntPtr)

SecureStringToGlobalAllocAnsi(SecureString) メソッドを使用して割り当てられたアンマネージ文字列ポインターを解放します。

ZeroFreeGlobalAllocUnicode(IntPtr)

SecureStringToGlobalAllocUnicode(SecureString) メソッドを使用して割り当てられたアンマネージ文字列ポインターを解放します。

適用対象