|
The VARIANTVT function returns the internal
VT data type stored in the Variant. The entire range of %VT_ prefixed
values are documented by the OLE (COM)
specification and are available in WIN32API.INC.
The most important values in this limited context
include %VT_EMPTY (=0) and %VT_BSTR (=8), since most of the others are
numeric formats
automatically resolved by the LET statement and
VARIANT# function.
Result |
Equate |
Content Type |
|
0 |
%VT_EMPTY |
0 or Empty string |
|
1 |
%VT_NULL |
Null string |
|
2 |
%VT_I2 |
Integer |
|
3 |
%VT_I4 |
Long-Integer |
|
4 |
%VT_R4 |
Single |
|
5 |
%VT_R8 |
Double |
|
6 |
%VT_CY |
Currency |
|
7 |
%VT_DATE |
Date |
|
8 |
%VT_BSTR |
Dynamic
String |
|
9 |
%VT_DISPATCH |
Interface
reference |
|
10 |
%VT_ERROR |
Error Code |
|
11 |
%VT_BOOL |
Boolean |
|
12 |
%VT_VARIANT |
Variant |
|
13 |
%VT_UNKNOWN |
|
|
16 |
%VT_I1 |
Byte |
|
17 |
%VT_UI1 |
Byte |
|
18 |
%VT_UI2 |
Word |
|
19 |
%VT_UI4 |
DWORD |
|
20 |
%VT_I8 |
Quad
(signed) |
|
21 |
%VT_UI8 |
Quad (unsigned) |
|
22 |
%VT_INT |
Integer |
|
23 |
%VT_UNIT |
Word |
|
24 |
%VT_VOID |
|
|
25 |
%VT_HRESULT |
COM
result code |
|
26 |
%VT_PTR |
Pointer |
|
27 |
%VT_SAFEARRAY |
VB Array |
|
28 |
%VT_CARRAY |
|
|
29 |
%VT_USERDEFINED |
|
|
30 |
%VT_LPSTR |
ANSI
string |
|
31 |
%VT_LPWSTR |
Unicode
string |
|
64 |
%VT_FILETIME |
|
|
65 |
%VT_BLOB |
|
|
66 |
%VT_STREAM |
|
|
67 |
%VT_STORAGE |
|
|
68 |
%VT_STREAMED_OBJECT |
|
|
69 |
%VT_STORED_OBJECT |
|
|
70 |
%VT_BLOB_OBJECT |
|
|
71 |
%VT_CF |
|
|
72 |
%VT_CLSID |
Class ID |
|
&H1000 |
%VT_VECTOR |
|
|
&H2000 |
%VT_ARRAY |
Array |
|
&H4000 |
%VT_BYREF |
|
If a Variant contains a complete array,
the Variant type is determined by adding the base type to the array modifier.
That is, for a
string array,
it would be %VT_BSTR plus %VT_ARRAY (= &H2008).
Quad arrays
within Variants are not supported by most versions of Windows. The result
from VARIANTVT can be used to see whether such an array was created properly. |