2.2 PropertyType
The PropertyType enumeration represents the type of a property in a property set. The set of types supported depends on the version of the property set, which is indicated by the Version field of the PropertySetStream packet. In addition, the property types not supported in simple property sets are specified as such. PropertyType is an enumeration, which MUST be one of the following values:
This type is declared as follows:

typedef unsigned int PropertyType;
Value 
Meaning 

VT_EMPTY 0x0000 
Type is undefined, and the minimum property set version is 0. 
VT_NULL 0x0001 
Type is null, and the minimum property set version is 0. 
VT_I2 0x0002 
Type is 16bit signed integer, and the minimum property set version is 0. 
VT_I4 0x0003 
Type is 32bit signed integer, and the minimum property set version is 0. 
VT_R4 0x0004 
Type is 4byte (singleprecision) IEEE floatingpoint number, and the minimum property set version is 0. 
VT_R8 0x0005 
Type is 8byte (doubleprecision) IEEE floatingpoint number, and the minimum property set version is 0. 
VT_CY 0x0006 
Type is CURRENCY, and the minimum property set version is 0. 
VT_DATE 0x0007 
Type is DATE, and the minimum property set version is 0. 
VT_BSTR 0x0008 
Type is CodePageString, and the minimum property set version is 0. 
VT_ERROR 0x000A 
Type is HRESULT, and the minimum property set version is 0. 
VT_BOOL 0x000B 
Type is VARIANT_BOOL, and the minimum property set version is 0. 
VT_DECIMAL 0x000E 
Type is DECIMAL, and the minimum property set version is 0. 
VT_I1 0x0010 
Type is 1byte signed integer, and the minimum property set version is 1. 
VT_UI1 0x0011 
Type is 1byte unsigned integer, and the minimum property set version is 0. 
VT_UI2 0x0012 
Type is 2byte unsigned integer, and the minimum property set version is 0. 
VT_UI4 0x0013 
Type is 4byte unsigned integer, and the minimum property set version is 0. 
VT_I8 0x0014 
Type is 8byte signed integer, and the minimum property set version is 0. 
VT_UI8 0x0015 
Type is 8byte unsigned integer, and the minimum property set version is 0. 
VT_INT 0x0016 
Type is 4byte signed integer, and the minimum property set version is 1. 
VT_UINT 0x0017 
Type is 4byte unsigned integer, and the minimum property set version is 1. 
VT_LPSTR 0x001E 
Type is CodePageString, and the minimum property set version is 0. 
VT_LPWSTR 0x001F 
Type is UnicodeString, and the minimum property set version is 0. 
VT_FILETIME 0x0040 
Type is FILETIME, and the minimum property set version is 0. 
VT_BLOB 0x0041 
Type is binary large object (BLOB), and the minimum property set version is 0. 
VT_STREAM 0x0042 
Type is Stream, and the minimum property set version is 0. VT_STREAM is not allowed in a simple property set. 
VT_STORAGE 0x0043 
Type is Storage, and the minimum property set version is 0. VT_STORAGE is not allowed in a simple property set. 
VT_STREAMED_Object 0x0044 
Type is Stream representing an Object in an applicationspecific manner, and the minimum property set version is 0. VT_STREAMED_Object is not allowed in a simple property set. 
VT_STORED_Object 0x0045 
Type is Storage representing an Object in an applicationspecific manner, and the minimum property set version is 0. VT_STORED_Object is not allowed in a simple property set. 
VT_BLOB_Object 0x0046 
Type is BLOB representing an object in an applicationspecific manner. The minimum property set version is 0. 
VT_CF 0x0047 
Type is PropertyIdentifier, and the minimum property set version is 0. 
VT_CLSID 0x0048 
Type is CLSID, and the minimum property set version is 0. 
VT_VERSIONED_STREAM 0x0049 
Type is Stream with applicationspecific version GUID (VersionedStream). The minimum property set version is 0. VT_VERSIONED_STREAM is not allowed in a simple property set. 
VT_VECTOR  VT_I2 0x1002 
Type is Vector of 16bit signed integers, and the minimum property set version is 0. 
VT_VECTOR  VT_I4 0x1003 
Type is Vector of 32bit signed integers, and the minimum property set version is 0. 
VT_VECTOR  VT_R4 0x1004 
Type is Vector of 4byte (singleprecision) IEEE floatingpoint numbers, and the minimum property set version is 0. 
VT_VECTOR  VT_R8 0x1005 
Type is Vector of 8byte (doubleprecision) IEEE floatingpoint numbers, and the minimum property set version is 0. 
VT_VECTOR  VT_CY 0x1006 
Type is Vector of CURRENCY, and the minimum property set version is 0. 
VT_VECTOR  VT_DATE 0x1007 
Type is Vector of DATE, and the minimum property set version is 0. 
VT_VECTOR  VT_BSTR 0x1008 
Type is Vector of CodePageString, and the minimum property set version is 0. 
VT_VECTOR  VT_ERROR 0x100A 
Type is Vector of HRESULT, and the minimum property set version is 0. 
VT_VECTOR  VT_BOOL 0x100B 
Type is Vector of VARIANT_BOOL, and the minimum property set version is 0. 
VT_VECTOR  VT_VARIANT 0x100C 
Type is Vector of variabletyped properties, and the minimum property set version is 0. 
VT_VECTOR  VT_I1 0x1010 
Type is Vector of 1byte signed integers and the minimum property set version is 1. 
VT_VECTOR  VT_UI1 0x1011 
Type is Vector of 1byte unsigned integers, and the minimum property set version is 0. 
VT_VECTOR  VT_UI2 0x1012 
Type is Vector of 2byte unsigned integers, and the minimum property set version is 0. 
VT_VECTOR  VT_UI4 0x1013 
Type is Vector of 4byte unsigned integers, and the minimum property set version is 0. 
VT_VECTOR  VT_I8 0x1014 
Type is Vector of 8byte signed integers, and the minimum property set version is 0. 
VT_VECTOR  VT_UI8 0x1015 
Type is Vector of 8byte unsigned integers and the minimum property set version is 0. 
VT_VECTOR  VT_LPSTR 0x101E 
Type is Vector of CodePageString, and the minimum property set version is 0. 
VT_VECTOR  VT_LPWSTR 0x101F 
Type is Vector of UnicodeString, and the minimum property set version is 0. 
VT_VECTOR  VT_FILETIME 0x1040 
Type is Vector of FILETIME, and the minimum property set version is 0. 
VT_VECTOR  VT_CF 0x1047 
Type is Vector of PropertyIdentifier, and the minimum property set version is 0. 
VT_VECTOR  VT_CLSID 0x1048 
Type is Vector of CLSID, and the minimum property set version is 0. 
VT_ARRAY  VT_I2 0x2002 
Type is Array of 16bit signed integers, and the minimum property set version is 1. 
VT_ARRAY  VT_I4 0x2003 
Type is Array of 32bit signed integers, and the minimum property set version is 1. 
VT_ARRAY  VT_R4 0x2004 
Type is Array of 4byte (singleprecision) IEEE floatingpoint numbers, and the minimum property set version is 1. 
VT_ARRAY  VT_R8 0x2005 
Type is IEEE floatingpoint numbers, and the minimum property set version is 1. 
VT_ARRAY  VT_CY 0x2006 
Type is Array of CURRENCY, and the minimum property set version is 1. 
VT_ARRAY  VT_DATE 0x2007 
Type is Array of DATE, and the minimum property set version is 1. 
VT_ARRAY  VT_BSTR 0x2008 
Type is Array of CodePageString, and the minimum property set version is 1. 
VT_ARRAY  VT_ERROR 0x200A 
Type is Array of HRESULT, and the minimum property set version is 1. 
VT_ARRAY  VT_BOOL 0x200B 
Type is Array of VARIANT_BOOL, and the minimum property set version is 1. 
VT_ARRAY  VT_VARIANT 0x200C 
Type is Array of variabletyped properties, and the minimum property set version is 1. 
VT_ARRAY  VT_DECIMAL 0x200E 
Type is Array of DECIMAL, and the minimum property set version is 1. 
VT_ARRAY  VT_I1 0x2010 
Type is Array of 1byte signed integers, and the minimum property set version is 1. 
VT_ARRAY  VT_UI1 0x2011 
Type is Array of 1byte unsigned integers, and the minimum property set version is 1. 
VT_ARRAY  VT_UI2 0x2012 
Type is Array of 2byte unsigned integers, and the minimum property set version is 1. 
VT_ARRAY  VT_UI4 0x2013 
Type is Array of 4byte unsigned integers, and the minimum property set version is 1. 
VT_ARRAY  VT_INT 0x2016 
Type is Array of 4byte signed integers, and the minimum property set version is 1. 
VT_ARRAY  VT_UINT 0x2017 
Type is Array of 4byte unsigned integers, and the minimum property set version is 1. 