VARENUM

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]