VBScript: What do VarType values 15 and 16 represent?

Viewed 121

For VBScript, the "VarType(x)" function returns values 0-14, 17 and 8192 where each value represents the variable type of the "x" param. In that sequence, there are obvious missing values 15 and 16.
What types do the missing values 15 and 16 represent? How far back into history or how deep into the bowels of VBScript do I have to go to find out?

  • Edit 30-Apr-2021

Here's what I came up with for an extended list of type numbers beyond what "VarType" and "TypeName" functions return:

CONST VT_EMPTY =              &h00000000&    '  0X0000      Not specified
CONST VT_NULL =               &h00000001&    '  0X0001      Null
CONST VT_I2 =                 &h00000002&    '  0X0002      A 2-byte integer
CONST VT_I4 =                 &h00000003&    '  0X0003      4-byte integer
CONST VT_R4 =                 &h00000004&    '  0X0004      4-byte real
CONST VT_R8 =                 &h00000005&    '  0X0005      8-byte real
CONST VT_CY =                 &h00000006&    '  0X0006      Currency
CONST VT_DATE =               &h00000007&    '  0X0007      Date
CONST VT_BSTR =               &h00000008&    '  0X0008      String
CONST VT_DISPATCH =           &h00000009&    '  0X0009      IDispatch pointer
CONST VT_ERROR =              &h0000000A&    '  0X000A      SCODE value
CONST VT_BOOL =               &h0000000B&    '  0X000B      Boolean value; True is -1 and false is 0
CONST VT_VARIANT =            &h0000000C&    '  0X000C      Variant pointer
CONST VT_UNKNOWN =            &h0000000D&    '  0X000D      IUnknown pointer
CONST VT_DECIMAL =            &h0000000E&    '  0X000E      16-byte fixed-pointer value
CONST VT_I1 =                 &h00000010&    '  0X0010      Character
CONST VT_UI1 =                &h00000011&    '  0X0011      Unsigned character
CONST VT_UI2 =                &h00000012&    '  0X0012      Unsigned short
CONST VT_UI4 =                &h00000013&    '  0X0013      Unsigned long
CONST VT_I8 =                 &h00000014&    '  0X0014      64-bit integer
CONST VT_UI8 =                &h00000015&    '  0X0015      64-bit unsigned integer
CONST VT_INT =                &h00000016&    '  0X0016      Integer
CONST VT_UINT =               &h00000017&    '  0X0017      Unsigned integer
CONST VT_VOID =               &h00000018&    '  0X0018      C-style void
CONST VT_HRESULT =            &h00000019&    '  0X0019      HRESULT value
CONST VT_PTR =                &h0000001A&    '  0X001A      Pointer type
CONST VT_SAFEARRAY =          &h0000001B&    '  0X001B      Safe array; Use VT_ARRAY in VARIANT
CONST VT_CARRAY =             &h0000001C&    '  0X001C      C-style array
CONST VT_USERDEFINED =        &h0000001D&    '  0X001D      User-defined type
CONST VT_LPSTR =              &h0000001E&    '  0X001E      Null-terminated string
CONST VT_LPWSTR =             &h0000001F&    '  0X001F      Wide null-terminated string
' 0x0020 - 0x0023
CONST VT_RECORD =             &h00000024&    '  0X0024      User-defined type
CONST VT_INT_PTR =            &h00000025&    '  0X0025      Signed machine register size width
CONST VT_UINT_PTR =           &h00000026&    '  0X0026      Unsigned machine register size width
' 0x27 - 0x3F
CONST VT_FILETIME =           &h00000040&    '  0X0040      FILETIME value
CONST VT_BLOB =               &h00000041&    '  0X0041      Length-prefixed bytes
CONST VT_STREAM =             &h00000042&    '  0X0042      The name of the stream follows
CONST VT_STORAGE =            &h00000043&    '  0X0043      The name of the storage follows
CONST VT_STREAMED_OBJECT =    &h00000044&    '  0X0044      The stream contains an object
CONST VT_STORED_OBJECT =      &h00000045&    '  0X0045      The storage contains an object
CONST VT_BLOB_OBJECT =        &h00000046&    '  0X0046      The blob contains an object
CONST VT_CF =                 &h00000047&    '  0X0047      Clipboard format
CONST VT_CLSID =              &h00000048&    '  0X0048      Class ID
CONST VT_VERSIONED_STREAM =   &h00000049&    '  0X0049      Stream with a GUID version
CONST VT_BSTR_BLOB =          &h00000FFF&    '  0X0FFF      Reserved
CONST VT_VECTOR =             &h00001000&    '  0X1000      Simple counted array
CONST VT_ARRAY =              &h00002000&    '  0X2000      SAFEARRAY pointer
CONST VT_BYREF =              &h00004000&    '  0X4000      Void pointer for local use
CONST VT_RESERVED =           &h00008000&    '  0X8000      Reserved
CONST VT_ILLEGAL =            &h0000FFFF&    '  0XFFFF      Illegal value
CONST VT_ILLEGALMASKED =      &h00000FFF&    '  0X0FFF      Illegal masked value
CONST VT_TYPEMASK =           &h00000FFF&    '  0X0FFF      Type mask
1 Answers
Related