更新: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> |