在近期工作的过程中因为需要C++编写的ActiveX控件需要被C#调用,所以频繁地使用到Variant类型,而SafeArray的各种类型又是用枚举量标识的,所以需要经常查阅,就将MSDN的文档搬运至此。
VARENUM enumeration - MSDN
enum VARENUM {
VT_EMPTY = 0,
VT_NULL = 1,
VT_I2 = 2,
VT_I4 = 3,
VT_R4 = 4,
VT_R8 = 5,
VT_CY = 6,
VT_DATE = 7,
VT_BSTR = 8,
VT_DISPATCH = 9,
VT_ERROR = 10,
VT_BOOL = 11,
VT_VARIANT = 12,
VT_UNKNOWN = 13,
VT_DECIMAL = 14,
VT_I1 = 16,
VT_UI1 = 17,
VT_UI2 = 18,
VT_UI4 = 19,
VT_I8 = 20,
VT_UI8 = 21,
VT_INT = 22,
VT_UINT = 23,
VT_VOID = 24,
VT_HRESULT = 25,
VT_PTR = 26,
VT_SAFEARRAY = 27,
VT_CARRAY = 28,
VT_USERDEFINED = 29,
VT_LPSTR = 30,
VT_LPWSTR = 31,
VT_RECORD = 36,
VT_INT_PTR = 37,
VT_UINT_PTR = 38,
VT_FILETIME = 64,
VT_BLOB = 65,
VT_STREAM = 66,
VT_STORAGE = 67,
VT_STREAMED_OBJECT = 68,
VT_STORED_OBJECT = 69,
VT_BLOB_OBJECT = 70,
VT_CF = 71,
VT_CLSID = 72,
VT_VERSIONED_STREAM = 73,
VT_BSTR_BLOB = 0xfff,
VT_VECTOR = 0x1000,
VT_ARRAY = 0x2000,
VT_BYREF = 0x4000
};
VT_EMPTY
Not specified.
VT_NULL
Null.
VT_I2
A 2-byte integer.
VT_I4
A 4-byte integer.
VT_R4
A 4-byte real.
VT_R8
An 8-byte real.
VT_CY
Currency.
VT_DATE
A date.
VT_BSTR
A string.
VT_DISPATCH
An IDispatch pointer.
VT_ERROR
An SCODE value.
VT_BOOL
A Boolean value. True is -1 and false is 0.
VT_VARIANT
A variant pointer.
VT_UNKNOWN
An IUnknown pointer.
VT_DECIMAL
A 16-byte fixed-pointer value.
VT_I1
A character.
VT_UI1
An unsigned character.
VT_UI2
An unsigned short.
VT_UI4
An unsigned long.
VT_I8
A 64-bit integer.
VT_UI8
A 64-bit unsigned integer.
VT_INT
An integer.
VT_UINT
An unsigned integer.
VT_VOID
A C-style void.
VT_HRESULT
An HRESULT value.
VT_PTR
A pointer type.
VT_SAFEARRAY
A safe array. Use VT_ARRAY in VARIANT.
VT_CARRAY
A C-style array.
VT_USERDEFINED
A user-defined type.
VT_LPSTR
A null-terminated string.
VT_LPWSTR
A wide null-terminated string.
VT_RECORD
A user-defined type.
VT_INT_PTR
A signed machine register size width.
VT_UINT_PTR
An unsigned machine register size width.
VT_FILETIME
A FILETIME value.
VT_BLOB
Length-prefixed bytes.
VT_STREAM
The name of the stream follows.
VT_STORAGE
The name of the storage follows.
VT_STREAMED_OBJECT
The stream contains an object.
VT_STORED_OBJECT
The storage contains an object.
VT_BLOB_OBJECT
The blob contains an object.
VT_CF
VT_CLSID
A class ID.
VT_VERSIONED_STREAM
A stream with a GUID version.
VT_BSTR_BLOB
Reserved.
VT_VECTOR
A simple counted array.
VT_ARRAY
A SAFEARRAY pointer.
VT_BYREF
A void pointer for local use.