COM のデータ型
COM で使用されるデータ型と、それに対応する .NET Framework の組み込みの値型またはクラスを次の表に示します。 この表に明示されていない型は、Int32 システム型に変換されます。 Visual Basic 2005、C#、および C++ の対応する型については、「.NET Framework クラス ライブラリの概要」を参照してください。
COM の値型 |
COM の参照型 |
システム型 |
---|---|---|
bool |
bool * |
|
char、 small |
char *、small * |
|
short |
short * |
|
long、int |
long *、int * |
|
Hyper |
hyper * |
|
unsigned char、byte |
unsigned char *、byte * |
|
wchar_t、unsigned short |
wchar_t *、unsigned short * |
|
unsigned long、unsigned int |
unsigned long *、unsigned int * |
|
unsigned hyper |
unsigned hyper * |
|
float |
float * |
|
double |
double * |
|
VARIANT_BOOL |
VARIANT_BOOL * |
|
void* |
void ** |
|
HRESULT |
HRESULT * |
System.Int16 または System.IntPtr |
SCODE |
SCODE * |
System.Int32 |
BSTR |
BSTR * |
|
LPSTR または [string, …] char * |
LPSTR * |
System.String |
LPWSTR または [string, …] wchar_t * |
LPWSTR * |
System.String |
VARIANT |
VARIANT * |
|
DECIMAL |
DECIMAL * |
|
DATE |
DATE * |
|
GUID |
GUID * |
|
CURRENCY |
CURRENCY * |
|
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> |