Package org.apache.poi.hpsf
Class Variant
- java.lang.Object
-
- org.apache.poi.hpsf.Variant
-
- Direct Known Subclasses:
VariantSupport
public class Variant extends Object
TheVarianttypes as defined by Microsoft's COM. 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
-
-
Field Summary
Fields Modifier and Type Field Description static IntegerLENGTH_0Denotes a variant type with a length of 0 bytes.static IntegerLENGTH_2Denotes a variant type with a length of 2 bytes.static IntegerLENGTH_4Denotes a variant type with a length of 4 bytes.static IntegerLENGTH_8Denotes a variant type with a length of 8 bytes.static IntegerLENGTH_UNKNOWNDenotes a variant type with a length that is unknown to HPSF yet.static IntegerLENGTH_VARIABLEDenotes a variant type with a variable length.static intVT_ARRAY[V] SAFEARRAY*.static intVT_BLOB[P] Length prefixed bytes.static intVT_BLOB_OBJECT[P] Blob contains an object.static intVT_BOOL[V][T][P][S] True=-1, False=0.static intVT_BSTR[V][T][P][S] OLE Automation string.static intVT_BYREF[V] void* for local use.static intVT_CARRAY[T] C style array.static intVT_CF[P] Clipboard format.static intVT_CLSID[P] A Class ID.static intVT_CY[V][T][P][S] currency.static intVT_DATE[V][T][P][S] date.static intVT_DECIMAL[V][T][S] 16 byte fixed point.static intVT_DISPATCH[V][T][P][S] IDispatchstatic intVT_EMPTY[V][P] Nothing, i.e.static intVT_ERROR[V][T][S] SCODEstatic intVT_FILETIME[P] FILETIME.static intVT_HRESULT[T] Standard return type.static intVT_I1[T] signed char.static intVT_I2[V][T][P][S] 2 byte signed int.static intVT_I4[V][T][P][S] 4 byte signed int.static intVT_I8[T][P] signed 64-bit int.static intVT_ILLEGALstatic intVT_ILLEGALMASKEDstatic intVT_INT[T] signed machine int.static intVT_LPSTR[T][P] null terminated string.static intVT_LPWSTR[T][P] wide (Unicode) null terminated string.static intVT_NULL[V][P] SQL style Null.static intVT_PTR[T] pointer type.static intVT_R4[V][T][P][S] 4 byte real.static intVT_R8[V][T][P][S] 8 byte real.static intVT_RESERVEDstatic intVT_SAFEARRAY[T] (use VT_ARRAY in VARIANT).static intVT_STORAGE[P] Name of the storage follows.static intVT_STORED_OBJECT[P] Storage contains an object.static intVT_STREAM[P] Name of the stream follows.static intVT_STREAMED_OBJECT[P] Stream contains an object.static intVT_TYPEMASKstatic intVT_UI1[V][T][P][S] unsigned char.static intVT_UI2[T][P] unsigned short.static intVT_UI4[T][P] unsigned int.static intVT_UI8[T][P] unsigned 64-bit int.static intVT_UINT[T] unsigned machine int.static intVT_UNKNOWN[V][T][S] IUnknownstatic intVT_USERDEFINED[T] user defined type.static intVT_VARIANT[V][T][P][S] VARIANTstatic intVT_VECTOR[P] simple counted array.static intVT_VERSIONED_STREAM"MUST be a VersionedStream.static intVT_VOID[T] C style void.
-
Constructor Summary
Constructors Constructor Description Variant()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static intgetVariantLength(long variantType)Returns a variant type's length.static StringgetVariantName(long variantType)Returns the variant type name associated with a variant type number.
-
-
-
Field Detail
-
VT_EMPTY
public static final int VT_EMPTY
[V][P] Nothing, i.e. not a single byte of data.- See Also:
- Constant Field Values
-
VT_NULL
public static final int VT_NULL
[V][P] SQL style Null.- See Also:
- Constant Field Values
-
VT_I2
public static final int VT_I2
[V][T][P][S] 2 byte signed int.- See Also:
- Constant Field Values
-
VT_I4
public static final int VT_I4
[V][T][P][S] 4 byte signed int.- See Also:
- Constant Field Values
-
VT_R4
public static final int VT_R4
[V][T][P][S] 4 byte real.- See Also:
- Constant Field Values
-
VT_R8
public static final int VT_R8
[V][T][P][S] 8 byte real.- See Also:
- Constant Field Values
-
VT_CY
public static final int VT_CY
[V][T][P][S] currency.- See Also:
- Constant Field Values
-
VT_DATE
public static final int VT_DATE
[V][T][P][S] date.- See Also:
- Constant Field Values
-
VT_BSTR
public static final int VT_BSTR
[V][T][P][S] OLE Automation string.- See Also:
- Constant Field Values
-
VT_DISPATCH
public static final int VT_DISPATCH
[V][T][P][S] IDispatch- See Also:
- Constant Field Values
-
VT_ERROR
public static final int VT_ERROR
[V][T][S] SCODE- See Also:
- Constant Field Values
-
VT_BOOL
public static final int VT_BOOL
[V][T][P][S] True=-1, False=0.- See Also:
- Constant Field Values
-
VT_VARIANT
public static final int VT_VARIANT
[V][T][P][S] VARIANT- See Also:
- Constant Field Values
-
VT_UNKNOWN
public static final int VT_UNKNOWN
[V][T][S] IUnknown- See Also:
- Constant Field Values
-
VT_DECIMAL
public static final int VT_DECIMAL
[V][T][S] 16 byte fixed point.- See Also:
- Constant Field Values
-
VT_I1
public static final int VT_I1
[T] signed char.- See Also:
- Constant Field Values
-
VT_UI1
public static final int VT_UI1
[V][T][P][S] unsigned char.- See Also:
- Constant Field Values
-
VT_UI2
public static final int VT_UI2
[T][P] unsigned short.- See Also:
- Constant Field Values
-
VT_UI4
public static final int VT_UI4
[T][P] unsigned int.- See Also:
- Constant Field Values
-
VT_I8
public static final int VT_I8
[T][P] signed 64-bit int.- See Also:
- Constant Field Values
-
VT_UI8
public static final int VT_UI8
[T][P] unsigned 64-bit int.- See Also:
- Constant Field Values
-
VT_INT
public static final int VT_INT
[T] signed machine int.- See Also:
- Constant Field Values
-
VT_UINT
public static final int VT_UINT
[T] unsigned machine int.- See Also:
- Constant Field Values
-
VT_VOID
public static final int VT_VOID
[T] C style void.- See Also:
- Constant Field Values
-
VT_HRESULT
public static final int VT_HRESULT
[T] Standard return type.- See Also:
- Constant Field Values
-
VT_PTR
public static final int VT_PTR
[T] pointer type.- See Also:
- Constant Field Values
-
VT_SAFEARRAY
public static final int VT_SAFEARRAY
[T] (use VT_ARRAY in VARIANT).- See Also:
- Constant Field Values
-
VT_CARRAY
public static final int VT_CARRAY
[T] C style array. How long is this? How is it to be interpreted?- See Also:
- Constant Field Values
-
VT_USERDEFINED
public static final int VT_USERDEFINED
[T] user defined type.- See Also:
- Constant Field Values
-
VT_LPSTR
public static final int VT_LPSTR
[T][P] null terminated string.- See Also:
- Constant Field Values
-
VT_LPWSTR
public static final int VT_LPWSTR
[T][P] wide (Unicode) null terminated string.- See Also:
- Constant Field Values
-
VT_FILETIME
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.- See Also:
- Constant Field Values
-
VT_BLOB
public static final int VT_BLOB
[P] Length prefixed bytes.- See Also:
- Constant Field Values
-
VT_STREAM
public static final int VT_STREAM
[P] Name of the stream follows.- See Also:
- Constant Field Values
-
VT_STORAGE
public static final int VT_STORAGE
[P] Name of the storage follows.- See Also:
- Constant Field Values
-
VT_STREAMED_OBJECT
public static final int VT_STREAMED_OBJECT
[P] Stream contains an object.- See Also:
- Constant Field Values
-
VT_STORED_OBJECT
public static final int VT_STORED_OBJECT
[P] Storage contains an object.- See Also:
- Constant Field Values
-
VT_BLOB_OBJECT
public static final int VT_BLOB_OBJECT
[P] Blob contains an object.- See Also:
- Constant Field Values
-
VT_CF
public static final int VT_CF
[P] Clipboard format.- See Also:
- Constant Field Values
-
VT_CLSID
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;- See Also:
- PROPVARIANT structure, Constant Field Values
-
VT_VERSIONED_STREAM
public static final int VT_VERSIONED_STREAM
"MUST be a VersionedStream. The storage representing the (non-simple) property set MUST have a stream element with the name in the StreamName field." -- [MS-OLEPS] -- v20110920; Object Linking and Embedding (OLE) Property Set Data Structures; page 24 / 63- See Also:
- Constant Field Values
-
VT_VECTOR
public static final int VT_VECTOR
[P] simple counted array. How long is this? How is it to be interpreted?- See Also:
- Constant Field Values
-
VT_ARRAY
public static final int VT_ARRAY
[V] SAFEARRAY*. How long is this? How is it to be interpreted?- See Also:
- Constant Field Values
-
VT_BYREF
public static final int VT_BYREF
[V] void* for local use. How long is this? How is it to be interpreted?- See Also:
- Constant Field Values
-
VT_RESERVED
public static final int VT_RESERVED
- See Also:
- Constant Field Values
-
VT_ILLEGAL
public static final int VT_ILLEGAL
- See Also:
- Constant Field Values
-
VT_ILLEGALMASKED
public static final int VT_ILLEGALMASKED
- See Also:
- Constant Field Values
-
VT_TYPEMASK
public static final int VT_TYPEMASK
- See Also:
- Constant Field Values
-
LENGTH_UNKNOWN
public static final Integer LENGTH_UNKNOWN
Denotes a variant type with a length that is unknown to HPSF yet.
-
LENGTH_VARIABLE
public static final Integer LENGTH_VARIABLE
Denotes a variant type with a variable length.
-
LENGTH_0
public static final Integer LENGTH_0
Denotes a variant type with a length of 0 bytes.
-
LENGTH_2
public static final Integer LENGTH_2
Denotes a variant type with a length of 2 bytes.
-
LENGTH_4
public static final Integer LENGTH_4
Denotes a variant type with a length of 4 bytes.
-
LENGTH_8
public static final Integer LENGTH_8
Denotes a variant type with a length of 8 bytes.
-
-
Method Detail
-
getVariantName
public static String getVariantName(long variantType)
Returns the variant type name associated with a variant type number.- Parameters:
variantType- The variant type number- Returns:
- The variant type name or the string "unknown variant type"
-
getVariantLength
public static int getVariantLength(long variantType)
Returns a variant type's length.- Parameters:
variantType- The variant type number- Returns:
- The length of the variant type's data in bytes. If the length is variable, i.e. the length of a string, -1 is returned. If HPSF does not know the length, -2 is returned. The latter usually indicates an unsupported variant type.
-
-