public class Variant extends Object
The Variant types as defined by Microsoft's COM. I found this information in http://www.marin.clara.net/COM/variant_type_definitions.htm.
In the variant types descriptions the following shortcuts are used: [V] - may appear in a VARIANT, [T] - may appear in a TYPEDESC, [P] - may appear in an OLE property set, [S] - may appear in a Safe Array.
Modifier and Type | Field and Description |
---|---|
static Integer |
LENGTH_0
Denotes a variant type with a length of 0 bytes.
|
static Integer |
LENGTH_2
Denotes a variant type with a length of 2 bytes.
|
static Integer |
LENGTH_4
Denotes a variant type with a length of 4 bytes.
|
static Integer |
LENGTH_8
Denotes a variant type with a length of 8 bytes.
|
static Integer |
LENGTH_UNKNOWN
Denotes a variant type with a length that is unknown to HPSF yet.
|
static Integer |
LENGTH_VARIABLE
Denotes a variant type with a variable length.
|
private static Map |
numberToLength |
private static Map |
numberToName
Maps the numbers denoting the variant types to their corresponding
variant type names.
|
static int |
VT_ARRAY
[V] SAFEARRAY*.
|
static int |
VT_BLOB
[P] Length prefixed bytes.
|
static int |
VT_BLOB_OBJECT
[P] Blob contains an object.
|
static int |
VT_BOOL
[V][T][P][S] True=-1, False=0.
|
static int |
VT_BSTR
[V][T][P][S] OLE Automation string.
|
static int |
VT_BYREF
[V] void* for local use.
|
static int |
VT_CARRAY
[T] C style array.
|
static int |
VT_CF
[P] Clipboard format.
|
static int |
VT_CLSID
[P] A Class ID.
|
static int |
VT_CY
[V][T][P][S] currency.
|
static int |
VT_DATE
[V][T][P][S] date.
|
static int |
VT_DECIMAL
[V][T][S] 16 byte fixed point.
|
static int |
VT_DISPATCH
[V][T][P][S] IDispatch *.
|
static int |
VT_EMPTY
[V][P] Nothing, i.e.
|
static int |
VT_ERROR
[V][T][S] SCODE.
|
static int |
VT_FILETIME
[P] FILETIME.
|
static int |
VT_HRESULT
[T] Standard return type.
|
static int |
VT_I1
[T] signed char.
|
static int |
VT_I2
[V][T][P][S] 2 byte signed int.
|
static int |
VT_I4
[V][T][P][S] 4 byte signed int.
|
static int |
VT_I8
[T][P] signed 64-bit int.
|
static int |
VT_ILLEGAL
FIXME (3): Document this!
|
static int |
VT_ILLEGALMASKED
FIXME (3): Document this!
|
static int |
VT_INT
[T] signed machine int.
|
static int |
VT_LPSTR
[T][P] null terminated string.
|
static int |
VT_LPWSTR
[T][P] wide (Unicode) null terminated string.
|
static int |
VT_NULL
[V][P] SQL style Null.
|
static int |
VT_PTR
[T] pointer type.
|
static int |
VT_R4
[V][T][P][S] 4 byte real.
|
static int |
VT_R8
[V][T][P][S] 8 byte real.
|
static int |
VT_RESERVED
FIXME (3): Document this!
|
static int |
VT_SAFEARRAY
[T] (use VT_ARRAY in VARIANT).
|
static int |
VT_STORAGE
[P] Name of the storage follows.
|
static int |
VT_STORED_OBJECT
[P] Storage contains an object.
|
static int |
VT_STREAM
[P] Name of the stream follows.
|
static int |
VT_STREAMED_OBJECT
[P] Stream contains an object.
|
static int |
VT_TYPEMASK
FIXME (3): Document this!
|
static int |
VT_UI1
[V][T][P][S] unsigned char.
|
static int |
VT_UI2
[T][P] unsigned short.
|
static int |
VT_UI4
[T][P] unsigned int.
|
static int |
VT_UI8
[T][P] unsigned 64-bit int.
|
static int |
VT_UINT
[T] unsigned machine int.
|
static int |
VT_UNKNOWN
[V][T][S] IUnknown *.
|
static int |
VT_USERDEFINED
[T] user defined type.
|
static int |
VT_VARIANT
[V][T][P][S] VARIANT *.
|
static int |
VT_VECTOR
[P] simple counted array.
|
static int |
VT_VOID
[T] C style void.
|
Constructor and Description |
---|
Variant() |
Modifier and Type | Method and Description |
---|---|
static int |
getVariantLength(long variantType)
Returns a variant type's length.
|
static String |
getVariantName(long variantType)
Returns the variant type name associated with a variant type
number.
|
public static final int VT_EMPTY
[V][P] Nothing, i.e. not a single byte of data.
public static final int VT_NULL
[V][P] SQL style Null.
public static final int VT_I2
[V][T][P][S] 2 byte signed int.
public static final int VT_I4
[V][T][P][S] 4 byte signed int.
public static final int VT_R4
[V][T][P][S] 4 byte real.
public static final int VT_R8
[V][T][P][S] 8 byte real.
public static final int VT_CY
[V][T][P][S] currency. How long is this? How is it to be interpreted?
public static final int VT_DATE
[V][T][P][S] date. How long is this? How is it to be interpreted?
public static final int VT_BSTR
[V][T][P][S] OLE Automation string. How long is this? How is it to be interpreted?
public static final int VT_DISPATCH
[V][T][P][S] IDispatch *. How long is this? How is it to be interpreted?
public static final int VT_ERROR
[V][T][S] SCODE. How long is this? How is it to be interpreted?
public static final int VT_BOOL
[V][T][P][S] True=-1, False=0.
public static final int VT_VARIANT
[V][T][P][S] VARIANT *. How long is this? How is it to be interpreted?
public static final int VT_UNKNOWN
[V][T][S] IUnknown *. How long is this? How is it to be interpreted?
public static final int VT_DECIMAL
[V][T][S] 16 byte fixed point.
public static final int VT_I1
[T] signed char.
public static final int VT_UI1
[V][T][P][S] unsigned char.
public static final int VT_UI2
[T][P] unsigned short.
public static final int VT_UI4
[T][P] unsigned int.
public static final int VT_I8
[T][P] signed 64-bit int.
public static final int VT_UI8
[T][P] unsigned 64-bit int.
public static final int VT_INT
[T] signed machine int.
public static final int VT_UINT
[T] unsigned machine int.
public static final int VT_VOID
[T] C style void.
public static final int VT_HRESULT
[T] Standard return type. How long is this? How is it to be interpreted?
public static final int VT_PTR
[T] pointer type. How long is this? How is it to be interpreted?
public static final int VT_SAFEARRAY
[T] (use VT_ARRAY in VARIANT).
public static final int VT_CARRAY
[T] C style array. How long is this? How is it to be interpreted?
public static final int VT_USERDEFINED
[T] user defined type. How long is this? How is it to be interpreted?
public static final int VT_LPSTR
[T][P] null terminated string.
public static final int VT_LPWSTR
[T][P] wide (Unicode) null terminated string.
public static final int VT_FILETIME
[P] FILETIME. The FILETIME structure holds a date and time associated with a file. The structure identifies a 64-bit integer specifying the number of 100-nanosecond intervals which have passed since January 1, 1601. This 64-bit value is split into the two dwords stored in the structure.
public static final int VT_BLOB
[P] Length prefixed bytes.
public static final int VT_STREAM
[P] Name of the stream follows.
public static final int VT_STORAGE
[P] Name of the storage follows.
public static final int VT_STREAMED_OBJECT
[P] Stream contains an object. How long is this? How is it to be interpreted?
public static final int VT_STORED_OBJECT
[P] Storage contains an object. How long is this? How is it to be interpreted?
public static final int VT_BLOB_OBJECT
[P] Blob contains an object. How long is this? How is it to be interpreted?
public static final int VT_CF
[P] Clipboard format. How long is this? How is it to be interpreted?
public static final int VT_CLSID
[P] A Class ID.
It consists of a 32 bit unsigned integer indicating the size of the structure, a 32 bit signed integer indicating (Clipboard Format Tag) indicating the type of data that it contains, and then a byte array containing the data.
The valid Clipboard Format Tags are:
typedef struct tagCLIPDATA { // cbSize is the size of the buffer pointed to // by pClipData, plus sizeof(ulClipFmt) ULONG cbSize; long ulClipFmt; BYTE* pClipData; } CLIPDATA;
public static final int VT_VECTOR
[P] simple counted array. How long is this? How is it to be interpreted?
public static final int VT_ARRAY
[V] SAFEARRAY*. How long is this? How is it to be interpreted?
public static final int VT_BYREF
[V] void* for local use. How long is this? How is it to be interpreted?
public static final int VT_RESERVED
FIXME (3): Document this!
public static final int VT_ILLEGAL
FIXME (3): Document this!
public static final int VT_ILLEGALMASKED
FIXME (3): Document this!
public static final int VT_TYPEMASK
FIXME (3): Document this!
private static Map numberToName
Maps the numbers denoting the variant types to their corresponding variant type names.
private static Map numberToLength
public static final Integer LENGTH_UNKNOWN
Denotes a variant type with a length that is unknown to HPSF yet.
public static final Integer LENGTH_VARIABLE
Denotes a variant type with a variable length.
public static final Integer LENGTH_0
Denotes a variant type with a length of 0 bytes.
public static final Integer LENGTH_2
Denotes a variant type with a length of 2 bytes.
public static final Integer LENGTH_4
Denotes a variant type with a length of 4 bytes.
public static final Integer LENGTH_8
Denotes a variant type with a length of 8 bytes.
public static String getVariantName(long variantType)
Returns the variant type name associated with a variant type number.
variantType
- The variant type numberpublic static int getVariantLength(long variantType)
Returns a variant type's length.
variantType
- The variant type numberCopyright © 2015 Open Microscopy Environment