COM 数据类型
更新:2007 年 11 月
下表显示在 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 coclass 自动映射到同名的托管类。
COM 值类型 |
COM 引用类型 |
元素类型 |
---|---|---|
Typedef BaseTypeMyType |
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> |