COM のデータ型

更新 : 2007 年 11 月

COM で使用されるデータ型と、それに対応する .NET Framework の組み込みの値型またはクラスを次の表に示します。この表に明示されていない型は、Int32 システム型に変換されます。Visual Basic 2005、C#、および C++ の対応する型については、「.NET Framework クラス ライブラリの概要」を参照してください。

COM の値型

COM の参照型

システム型

bool

bool *

System.Int32

charsmall

char *small *

System.SByte

short

short *

System.Int16

longint

long *int *

System.Int32

Hyper

hyper *

System.Int64

unsigned charbyte

unsigned char *byte *

System.Byte

wchar_tunsigned short

wchar_t *unsigned short *

System.UInt16

unsigned longunsigned int

unsigned long *unsigned int *

System.UInt32

unsigned hyper

unsigned hyper *

System.UInt64

float

float *

System.Single

double

double *

System.Double

VARIANT_BOOL

VARIANT_BOOL *

System.Boolean

void*

void **

System.IntPtr

HRESULT

HRESULT *

System.Int16 または System.IntPtr

SCODE

SCODE *

System.Int32

BSTR

BSTR *

System.String

LPSTR または [string, …] char *

LPSTR *

System.String

LPWSTR または [string, …] wchar_t *

LPWSTR *

System.String

VARIANT

VARIANT *

System.Object

DECIMAL

DECIMAL *

System.Decimal

DATE

DATE *

System.DateTime

GUID

GUID *

System.Guid

CURRENCY

CURRENCY *

System.Decimal

IUnknown *

IUnknown **

System.Object

IDispatch *

IDispatch **

System.Object

SAFEARRAY(type)

SAFEARRAY(type) *

type[]

COM の値型と参照型がどの要素型に変換されるかを次の表に示します。たとえば、COM のコクラスは同じ名前を持つマネージ クラスに自動的に変換されます。

COM の値型

COM の参照型

要素型

Typedef BaseType MyType

ByRef BaseType

BaseType

MyStruct

ByRef VALUETYPE<MyStruct>

valuetype<MyStruct>

MyEnum

ByRef VALUETYPE<MyEnum>

valuetype<MyEnum>

MyInterface*

ByRef CLASS <MyInterface>

Class <MyInterface>

MyCoClass

ByRef CLASS <_Class>

Class <_Class>

参照

概念

COM 呼び出し可能ラッパーのカスタマイズ

ランタイム呼び出し可能ラッパーのカスタマイズ

その他の技術情報

COM 相互運用機能によるデータのマーシャリング