Package org.apache.poi.hpsf
Class Variant
- java.lang.Object
-
- org.apache.poi.hpsf.Variant
-
- Direct Known Subclasses:
VariantSupport
public class Variant extends java.lang.Object
TheVariant
types 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 java.lang.Integer
LENGTH_0
Denotes a variant type with a length of 0 bytes.static java.lang.Integer
LENGTH_2
Denotes a variant type with a length of 2 bytes.static java.lang.Integer
LENGTH_4
Denotes a variant type with a length of 4 bytes.static java.lang.Integer
LENGTH_8
Denotes a variant type with a length of 8 bytes.static java.lang.Integer
LENGTH_UNKNOWN
Denotes a variant type with a length that is unknown to HPSF yet.static java.lang.Integer
LENGTH_VARIABLE
Denotes a variant type with a variable length.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] IDispatchstatic int
VT_EMPTY
[V][P] Nothing, i.e.static int
VT_ERROR
[V][T][S] SCODEstatic 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
static int
VT_ILLEGALMASKED
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
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
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] IUnknownstatic int
VT_USERDEFINED
[T] user defined type.static int
VT_VARIANT
[V][T][P][S] VARIANTstatic int
VT_VECTOR
[P] simple counted array.static int
VT_VERSIONED_STREAM
"MUST be a VersionedStream.static int
VT_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 int
getVariantLength(long variantType)
Returns a variant type's length.static java.lang.String
getVariantName(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 java.lang.Integer LENGTH_UNKNOWN
Denotes a variant type with a length that is unknown to HPSF yet.
-
LENGTH_VARIABLE
public static final java.lang.Integer LENGTH_VARIABLE
Denotes a variant type with a variable length.
-
LENGTH_0
public static final java.lang.Integer LENGTH_0
Denotes a variant type with a length of 0 bytes.
-
LENGTH_2
public static final java.lang.Integer LENGTH_2
Denotes a variant type with a length of 2 bytes.
-
LENGTH_4
public static final java.lang.Integer LENGTH_4
Denotes a variant type with a length of 4 bytes.
-
LENGTH_8
public static final java.lang.Integer LENGTH_8
Denotes a variant type with a length of 8 bytes.
-
-
Method Detail
-
getVariantName
public static java.lang.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.
-
-