// ks.h
typedef enum VARENUM {
VT_EMPTY,
VT_NULL,
VT_I2,
VT_I4,
VT_R4,
VT_R8,
VT_CY,
VT_DATE,
VT_BSTR,
VT_DISPATCH,
VT_ERROR,
VT_BOOL,
VT_VARIANT,
VT_UNKNOWN,
VT_DECIMAL,
VT_I1,
VT_UI1,
VT_UI2,
VT_UI4,
VT_I8,
VT_UI8,
VT_INT,
VT_UINT,
VT_VOID,
VT_HRESULT,
VT_PTR,
VT_SAFEARRAY,
VT_CARRAY,
VT_USERDEFINED,
VT_LPSTR,
VT_LPWSTR,
VT_FILETIME,
VT_BLOB,
VT_STREAM,
VT_STORAGE,
VT_STREAMED_OBJECT,
VT_STORED_OBJECT,
VT_BLOB_OBJECT,
VT_CF,
VT_CLSID,
VT_VECTOR,
VT_ARRAY,
VT_BYREF,
VT_RESERVED,
VT_ILLEGAL,
VT_ILLEGALMASKED,
VT_TYPEMASK
} ;
View the official Windows Driver Kit DDI referenceNo description available.
Specifies the variant types.
VT_EMPTYNot specified.
VT_NULLNull.
VT_I2A 2-byte integer.
VT_I4A 4-byte integer.
VT_R4A 4-byte real.
VT_R8An 8-byte real.
VT_CYCurrency.
VT_DATEA date.
VT_BSTRA string.
VT_DISPATCHAn IDispatch pointer.
VT_ERRORAn SCODE value.
VT_BOOLA Boolean value. True is -1 and false is 0.
VT_VARIANTA variant pointer.
VT_UNKNOWNAn IUnknown pointer.
VT_DECIMALA 16-byte fixed-pointer value.
VT_I1A character.
VT_UI1An unsigned character.
VT_UI2An unsigned short.
VT_UI4An unsigned long.
VT_I8A 64-bit integer.
VT_UI8A 64-bit unsigned integer.
VT_INTAn integer.
VT_UINTAn unsigned integer.
VT_VOIDA C-style void.
VT_HRESULTAn HRESULT value.
VT_PTRA pointer type.
VT_SAFEARRAYA safe array. Use VT_ARRAY in VARIANT.
VT_CARRAYA C-style array.
VT_USERDEFINEDA user-defined type.
VT_LPSTRA null-terminated string.
VT_LPWSTRA wide null-terminated string.
VT_FILETIMEA FILETIME value.
VT_BLOBLength-prefixed bytes.
VT_STREAMThe name of the stream follows.
VT_STORAGEThe name of the storage follows.
VT_STREAMED_OBJECTThe stream contains an object.
VT_STORED_OBJECTThe storage contains an object.
VT_BLOB_OBJECTThe blob contains an object.
VT_CFA clipboard format.
VT_CLSIDA class ID.
VT_VECTORA simple counted array.
VT_ARRAYA SAFEARRAY pointer.
VT_BYREFA void pointer for local use.
VT_RESERVEDReserved.
VT_ILLEGALAn illegal value.
VT_ILLEGALMASKEDAn illegal masked value.
VT_TYPEMASKA type mask.
The following table shows where these values can be used.
| Value | VARIANT | TYPEDESC | Property set | Safe array |
|---|---|---|---|---|
| VT_ARRAY | X | |||
| VT_BLOB | X | |||
| VT_BLOB_OBJECT | X | |||
| VT_BOOL | X | X | X | X |
| VT_BSTR | X | X | X | X |
| VT_BYREF | X | |||
| VT_CARRAY | X | |||
| VT_CF | X | |||
| VT_CLSID | X | |||
| VT_CY | X | X | X | X |
| VT_DATE | X | X | X | X |
| VT_DECIMAL | X | X | X | |
| VT_DISPATCH | X | X | X | |
| VT_EMPTY | X | X | ||
| VT_ERROR | X | X | X | X |
| VT_FILETIME | X | |||
| VT_HRESULT | X | |||
| VT_I1 | X | X | X | X |
| VT_I2 | X | X | X | X |
| VT_I4 | X | X | X | X |
| VT_I8 | X | X | ||
| VT_ILLEGAL | X | |||
| VT_INT | X | X | X | X |
| VT_LPSTR | X | X | ||
| VT_LPWSTR | X | X | ||
| VT_NULL | X | X | ||
| VT_PTR | X | |||
| VT_R4 | X | X | X | X |
| VT_R8 | X | X | X | X |
| VT_SAFEARRAY | X | |||
| VT_STORAGE | X | |||
| VT_STORED_OBJECT | X | |||
| VT_STREAM | X | |||
| VT_STREAMED_OBJECT | X | |||
| VT_UI1 | X | X | X | X |
| VT_UI2 | X | X | X | X |
| VT_UI4 | X | X | X | X |
| VT_UI8 | X | X | ||
| VT_UINT | X | X | X | |
| VT_UNKNOWN | X | X | X | |
| VT_USERDEFINED | X | |||
| VT_VARIANT | X | X | X | X |
| VT_VECTOR | X | |||
| VT_VOID | X |