An enumeration type used in VARIANT, TYPEDESC, OLE property sets, and safe arrays.
The following listing identifies the enumerations that apply to each.
// VARENUM usage key,
//
// [V] - May appear in a VARIANT.
// [T] - May appear in a TYPEDESC.
// [P] - May appear in an OLE property set.
// [S] - May appear in a safe array.
//
//
VT_EMPTY [V] [P] // Not specified.
VT_NULL [V] // SQL-style Null.
VT_I2 [V][T][P][S] // 2-byte signed int.
VT_I4 [V][T][P][S] // 4-byte-signed int.
VT_R4 [V][T][P][S] // 4-byte real.
VT_R8 [V][T][P][S] // 8-byte real.
VT_CY [V][T][P][S] // Currency.
VT_DATE [V][T][P][S] // Date.
VT_BSTR [V][T][P][S] // Automation string.
VT_DISPATCH [V][T] [S] // IDispatch.
VT_ERROR [V][T] [S] // Scodes.
VT_BOOL [V][T][P][S] // Boolean; True=-1, False=0.
VT_VARIANT [V][T][P][S] // VARIANT FAR*.
VT_UNKNOWN [V][T] [S] // IUnknown FAR*.
VT_I1 [T] // Signed char.
VT_UI1 [V][T] [S] // Unsigned char.
VT_UI2 [T] // Unsigned short.
VT_UI4 [T] // Unsigned short.
VT_I8 [T][P] // Signed 64-bit int.
VT_UI8 [T] // Unsigned 64-bit int.
VT_INT [T] // Signed machine int.
VT_UINT [T] // Unsigned machine int.
VT_VOID [T] // C-style void.
VT_HRESULT [T]
VT_PTR [T] // Pointer type.
VT_SAFEARRAY [T] // Use VT_ARRAY in VARIANT.
VT_CARRAY [T] // C-style array.
VT_USERDEFINED [T] // User-defined type.
VT_LPSTR [T][P] // Null-terminated string.
VT_LPWSTR [T][P] // Wide null-terminated string.
VT_FILETIME [P] // FILETIME.
VT_BLOB [P] // Length-prefixed bytes.
VT_STREAM [P] // Name of the stream follows.
VT_STORAGE [P] // Name of the storage follows.
VT_STREAMED_OBJECT [P] // Stream contains an object.
VT_STORED_OBJECT [P] // Storage contains an object.
VT_BLOB_OBJECT [P] // Blob contains an object.
VT_CF [P] // Clipboard format.
VT_CLSID [P] // A class ID.
VT_VECTOR [P] // Simple counted array.
VT_ARRAY [V] // SAFEARRAY*.
VT_BYREF [V]