UnmanagedType 列挙体

パラメータまたはフィールドをアンマネージ コードにマーシャリングする方法を示します。

<Serializable>
Public Enum UnmanagedType
[C#]
[Serializable]
public enum UnmanagedType
[C++]
[Serializable]
__value public enum UnmanagedType
[JScript]
public
   Serializable
enum UnmanagedType

解説

この列挙体は、 ArrayBooleanString の各データ型に既定値以外の値を指定するとき、または既定の動作を明示的に適用するときに、 System.Runtime.InteropServices.MarshalAsAttribute で使用します。また、この列挙体メンバを使用すると、単純値型 (I1、I2、I4、I8、R4、R8、U2、U4、U8)、.NET Framework で使用できないアンマネージ型などのさまざまな型を指定できます。プラットフォーム呼び出しのメソッドでだけ使用できる型を表すメンバもあります。

メンバ

メンバ名 説明
AnsiBStr

.NET Compact Framework でもサポート。

長さを示すプリフィックスを付けた 1 バイトの ANSI 文字列。このメンバは String データ型で使用できます。
AsAny

.NET Compact Framework でもサポート。

実行時にオブジェクトの型を確認し、その型としてオブジェクトをマーシャリングする動的な型。プラットフォーム呼び出しのメソッドでだけ有効です。
Bool

.NET Compact Framework でもサポート。

4 バイトの Boolean 値 (true != 0、 false = 0)。これは Win32 BOOL 型です。
BStr

.NET Compact Framework でもサポート。

長さを示すプリフィックスを付けた 2 バイトの Unicode 文字列。このメンバ (COM の既定の文字列) は、 String データ型で使用できます。
ByValArray

.NET Compact Framework でもサポート。

MarshalAsAttribute.ValueByValArray に設定した場合、 SizeConst は、配列の要素数を示すように設定する必要があります。 ArraySubType フィールドには、文字列型を区別する必要がある場合に、オプションとして配列要素の UnmanagedType を格納できます。この UnmanagedType は、構造体にフィールドとして定義されている配列だけで使用できます。
ByValTStr

.NET Compact Framework でもサポート。

構造体に定義されているインライン固定長文字配列で使用します。 ByValTStr で使用する文字型は、格納される構造体に適用する System.Runtime.InteropServices.StructLayoutAttribute の引数 System.Runtime.InteropServices.CharSet によって決定されます。配列のサイズを示す場合は、常に MarshalAsAttribute.SizeConst フィールドを使用します。

.NET Framework の ByValTStr 型は、構造体内の C スタイルの固定サイズ文字列 (char s[5] など) と同様に機能します。マネージ コードでのこの動作は、Microsoft Visual Basic 6.0 の動作 (終端が null でない。例: MyString As String * 5) とは異なります。

Currency 10 進値を Decimal ではなく、COM 通貨型としてマーシャリングするために、 System.Decimal で使用します。
CustomMarshaler

.NET Compact Framework でもサポート。

MarshalAsAttribute.MarshalType または MarshalAsAttribute.MarshalTypeRef と共に使用する場合に、カスタム マーシャラ クラスを指定します。 MarshalAsAttribute.MarshalCookie フィールドは、カスタム マーシャラに追加の情報を渡すために使用できます。このメンバは任意の参照型で使用できます。
Error

.NET Compact Framework でもサポート。

I4 または U4 に関連付けられたこのネイティブな型によって、パラメータはエクスポート先のタイプ ライブラリに HRESULT としてエクスポートされます。
FunctionPtr

.NET Compact Framework でもサポート。

C スタイルの関数ポインタとして使用できる整数値。このメンバは、 Delegate データ型または Delegate から継承した型で使用できます。
I1

.NET Compact Framework でもサポート。

1 バイト符号付き整数。このメンバを使用すると、Boolean 値を 1 バイトの C スタイル bool (true = 1、 false = 0) に変換できます。
I2

.NET Compact Framework でもサポート。

2 バイト符号付き整数。
I4

.NET Compact Framework でもサポート。

4 バイト符号付き整数。
I8

.NET Compact Framework でもサポート。

8 バイト符号付き整数。
IDispatch

.NET Compact Framework でもサポート。

COM の IDispatch ポインタ (Microsoft Visual Basic 6.0 では Object)。
Interface

.NET Compact Framework でもサポート。

COM インターフェイス ポインタ。インターフェイスの Guid は、クラス メタデータから取得します。インターフェイス型を直接指定する場合、またはクラスに適用する場合は既定のインターフェイス型を指定する場合に、このメンバを使用します。このメンバは、 Object データ型に適用すると、 UnmanagedType.IUnknown 動作を生成します。
IUnknown

.NET Compact Framework でもサポート。

COM IUnknown ポインタ。このメンバは Object データ型で使用できます。
LPArray

.NET Compact Framework でもサポート。

C スタイル配列の最初の要素へのポインタ。マネージからアンマネージにマーシャリングする場合、配列長はマネージ配列長によって決定されます。アンマネージからマネージにマーシャリングする場合、配列の長さは MarshalAsAttribute.SizeConst フィールドと MarshalAsAttribute.SizeParamIndex フィールドによって決まります。文字列の型を区別する必要がある場合は、配列内の要素のアンマネージ型も考慮されます。
LPStr

.NET Compact Framework でもサポート。

終端が null の 1 バイトの ANSI 文字列。このメンバは、 System.String データ型または System.Text.StringBuilder データ型で使用できます。
LPStruct

.NET Compact Framework でもサポート。

マネージ書式指定クラスをマーシャリングするときに使用する C スタイル構造体へのポインタ。プラットフォーム呼び出しのメソッドでだけ有効です。
LPTStr

.NET Compact Framework でもサポート。

プラットフォームに依存する文字列。Windows 98 では ANSI、Windows NT と Windows XP では Unicode。型 LPTStr の文字列のエクスポートがサポートされていないため、この値は COM 相互運用ではサポートされず、プラットフォーム呼び出しだけでサポートされます。
LPWStr

.NET Compact Framework でもサポート。

終端が null の 2 バイトの Unicode 文字列。
R4

.NET Compact Framework でもサポート。

4 バイトの浮動小数点数。
R8

.NET Compact Framework でもサポート。

8 バイトの浮動小数点数。
SafeArray

.NET Compact Framework でもサポート。

SafeArray は、関連付けられた配列データの型、ランク、および境界を格納する自己記述型の配列です。 MarshalAsAttribute.SafeArraySubType フィールドと併せてこのメンバを使用することによって、既定の要素の型をオーバーライドできます。
Struct

.NET Compact Framework でもサポート。

マネージ書式指定クラスと値型をマーシャリングするために使用する VARIANT。
SysInt

.NET Compact Framework でもサポート。

プラットフォームに依存する符号付き整数。32 ビット Windows では 4 バイト、64 ビット Windows では 8 バイト。
SysUInt

.NET Compact Framework でもサポート。

プラットフォームに依存する符号なし整数。32 ビット Windows では 4 バイト、64 ビット Windows では 8 バイト。
TBStr

.NET Compact Framework でもサポート。

長さを示すプリフィックスを付けた、プラットフォームに依存する char 文字列。Windows 98 では ANSI、Windows NT では Unicode。この BSTR に似たメンバを使用することはほとんどありません。
U1

.NET Compact Framework でもサポート。

1 バイト符号なし整数。
U2

.NET Compact Framework でもサポート。

2 バイト符号なし整数。
U4

.NET Compact Framework でもサポート。

4 バイト符号なし整数。
U8

.NET Compact Framework でもサポート。

8 バイト符号なし整数。
VariantBool

.NET Compact Framework でもサポート。

2 バイトの OLE 定義 VARIANT_BOOL 型 (true = -1、 false = 0)。
VBByRefStr

.NET Compact Framework でもサポート。

Visual Basic .NET で、アンマネージ コードの文字列を変更し、結果をマネージ コードに反映させることを許可します。この値は、プラットフォーム呼び出しでだけサポートされます。

必要条件

名前空間: System.Runtime.InteropServices

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

System.Runtime.InteropServices 名前空間 | MarshalAsAttribute | ComImportAttribute