COM 資料類型
下表顯示在 COM 中使用的資料型別,以及其對應的 .NET Framework 內建實值型別 (Value type) 或類別。 任何未明確定義在這個表格中的型別會轉換為 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 會自動對應到同名的 Managed 類別。
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> |