最終更新:2017-12-12 (火) 21:23:28 (2326d)  

UnmanagedType
Top / UnmanagedType

Identifies how to marshal parameters or fields to unmanaged code

一覧

  • メンバー説明
    UnmanagedType.AnsiBStr?長さを示すプレフィックスを付けた&1; バイトの ANSI 文字列。 このメンバーは String データ型で使用できます。
    UnmanagedType.AsAny?実行時にオブジェクトの型を確認し、その型としてオブジェクトをマーシャリングする動的な型。 このメンバーは、プラットフォーム呼び出しメソッドにのみ有効です。
    UnmanagedType.Bool4 バイトの Boolean 値 (true != 0、false = 0)。 これは Win32 BOOL 型です。
    UnmanagedType.BStr?長さを示すプリフィックスを付けた&2; バイトの Unicode 文字列。 このメンバー (COM の既定の文字列) は、String データ型で使用できます。
    UnmanagedType.ByValArrayMarshalAsAttribute?.Value プロパティを ByValArray? に設定した場合、SizeConst? フィールドは、配列の要素数を示すように設定する必要があります。 ArraySubType? フィールドには、文字列型を区別する必要がある場合に、オプションとして配列要素の UnmanagedType を格納できます。 この UnmanagedType は、要素が構造体にフィールドとして定義されている配列でのみ使用できます。
    UnmanagedType.ByValTStr構造体に定義されているインライン固定長文字配列で使用します。 ByValTStr で使用する文字型は、格納される構造体に適用する System.Runtime.InteropServices?.StructLayoutAttribute? 属性の引数 System.Runtime.InteropServices?.CharSet によって決定されます。 配列のサイズを示す場合は、常に MarshalAsAttribute?.SizeConst? フィールドを使用します。
    UnmanagedType.Currency?通貨型。 10 進値を Decimal ではなく、COM 通貨型としてマーシャリングするために、System.Decimal で使用します。
    UnmanagedType.CustomMarshaler?MarshalAsAttribute?.MarshalType? または MarshalAsAttribute?.MarshalTypeRef? フィールドと共に使用する場合に、カスタム マーシャラー クラスを指定します。 MarshalAsAttribute?.MarshalCookie? フィールドは、カスタム マーシャラーに追加の情報を渡すために使用できます。 このメンバーは任意の参照型で使用できます。
    UnmanagedType.Error?I4 または U4 に関連付けられたネイティブな型。この型により、パラメーターはエクスポート先のタイプ ライブラリに HRESULT としてエクスポートされます。
    UnmanagedType.FunctionPtr?C スタイルの関数ポインターとして使用できる整数値。 このメンバーは、Delegate データ型または Delegate から継承した型で使用できます。
    UnmanagedType.HString?Windows ランタイム 文字列。 このメンバーは System.String データ型で使用できます。
    UnmanagedType.I1?1 バイト符号付き整数。 このメンバーを使用すると、Boolean 値を 1 バイトの C スタイル bool (true = 1、false = 0) に変換できます。
    UnmanagedType.I2?2 バイト符号付き整数。
    UnmanagedType.I4?4 バイト符号付き整数。
    UnmanagedType.I8?8 バイト符号付き整数。
    UnmanagedType.IDispatch?COM の IDispatch ポインター (Microsoft Visual Basic 6.0 では Object)。
    UnmanagedType.IInspectable?Windows ランタイム インターフェイス ポインター。 このメンバーは Object データ型で使用できます。
    UnmanagedType.Interface?COM インターフェイス ポインター。 インターフェイスの Guid は、クラス メタデータから取得します。 インターフェイス型を直接指定する場合、またはクラスに適用する場合は既定のインターフェイス型を指定する場合に、このメンバーを使用します。 このメンバーは、Object データ型に適用すると、UnmanagedType.IUnknown と同じ動作を生成します。
    UnmanagedType.IUnknown?COM IUnknown ポインター。 このメンバーは Object データ型で使用できます。
    UnmanagedType.LPArray?C スタイル配列の最初の要素へのポインター。 マネージ コードからアンマネージ コードにマーシャリングする場合、配列長はマネージ配列長によって決定されます。 アンマネージ コードからマネージ コードにマーシャリングする場合、配列の長さは MarshalAsAttribute?.SizeConst? フィールドと MarshalAsAttribute?.SizeParamIndex? フィールドによって決まります。文字列の型を区別する必要がある場合は、配列内の要素のアンマネージ型も考慮されます。
    UnmanagedType.LPStr終端が null の&1; バイトの ANSI 文字列。 このメンバーは、System.String データ型および System.Text.StringBuilder データ型で使用できます。
    UnmanagedType.LPStruct?マネージ書式指定クラスをマーシャリングするときに使用する C スタイル構造体へのポインター。 このメンバーは、プラットフォーム呼び出しメソッドにのみ有効です。
    UnmanagedType.LPTStrプラットフォームに依存する文字列。Windows 98 では ANSI、Windows NT と Windows XP では Unicode。 型 LPTStr の文字列のエクスポートがサポートされていないため、この値は COM 相互運用ではサポートされず、プラットフォーム呼び出しのみでサポートされます。
    UnmanagedType.LPUTF8Str?UTF-8 でエンコードされた文字列へのポインター。
    UnmanagedType.LPWStr?終端が null の 2 バイトの Unicode 文字列。
    UnmanagedType.R4?4 バイト浮動小数点数。
    UnmanagedType.R8?8 バイトの浮動小数点数。
    UnmanagedType.SafeArray?SafeArray? は、関連付けられた配列データの型、ランク、および境界を格納する自己記述型の配列です。 MarshalAsAttribute?.SafeArraySubType? フィールドと併せてこのメンバーを使用することによって、既定の要素の型をオーバーライドできます。
    UnmanagedType.Struct?マネージ書式指定クラスと値型をマーシャリングするために使用する VARIANT。
    UnmanagedType.SysInt?プラットフォーム依存、符号付き整数: 32 ビット Windows では 4 バイト、64 ビット Windows では 8 バイト。
    UnmanagedType.SysUInt?プラットフォーム依存、符号なし整数: 32 ビット Windows では 4 バイト、64 ビット Windows では 8 バイト。
    UnmanagedType.TBStr?長さを示すプレフィックスを付けた、プラットフォームに依存する char 文字列。Windows 98 では ANSI、Windows NT では Unicode。 この BSTR に似たメンバーを使用することはほとんどありません。
    UnmanagedType.U1?1 バイト符号なし整数。
    UnmanagedType.U2?2 バイト符号なし整数。
    UnmanagedType.U4?4 バイト符号なし整数。
    UnmanagedType.U8?8 バイト符号なし整数。
    UnmanagedType.VariantBool?2 バイトの OLE 定義 VARIANT_BOOL 型 (true = -1、false = 0)。
    UnmanagedType.VBByRefStr?Visual Basic で、アンマネージ コードの文字列を変更し、結果をマネージ コードに反映できるようにする値。 この値は、プラットフォーム呼び出しでだけサポートされます。