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