Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

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.

Author:
  Rainer Klute (klute@rainer-klute.de)

Field Summary
`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] 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_VERSIONED_STREAM` "MUST be a VersionedStream.
`static int` | `VT_VOID` [T] C style void.

Constructor Summary
`Variant()`

Method Summary
`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.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_DATE

    public static final int VT_DATE

  [V][T][P][S] date. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_BSTR

    public static final int VT_BSTR

  [V][T][P][S] OLE Automation string. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_DISPATCH

    public static final int VT_DISPATCH

  [V][T][P][S] IDispatch *. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_ERROR

    public static final int VT_ERROR

  [V][T][S] SCODE. How long is this? How is it to be interpreted?

  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 *. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_UNKNOWN

    public static final int VT_UNKNOWN

  [V][T][S] IUnknown *. How long is this? How is it to be interpreted?

  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. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_PTR

    public static final int VT_PTR

  [T] pointer type. How long is this? How is it to be interpreted?

  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. How long is this? How is it to be interpreted?

  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. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_STORED_OBJECT

    public static final int VT_STORED_OBJECT

  [P] Storage contains an object. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_BLOB_OBJECT

    public static final int VT_BLOB_OBJECT

  [P] Blob contains an object. How long is this? How is it to be interpreted?

  See Also:
    Constant Field Values

### VT_CF

    public static final int VT_CF

  [P] Clipboard format. How long is this? How is it to be interpreted?

  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:

  - `Thumbnail.CFTAG_WINDOWS`
  - `Thumbnail.CFTAG_MACINTOSH`
  - `Thumbnail.CFTAG_NODATA`
  - `Thumbnail.CFTAG_FMTID`

      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 msdn.microsoft.com/library/en-us/com/stgrstrc_0uwk.asp.

  See Also:
    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

  FIXME (3): Document this!

  See Also:
    Constant Field Values

### VT_ILLEGAL

    public static final int VT_ILLEGAL

  FIXME (3): Document this!

  See Also:
    Constant Field Values

### VT_ILLEGALMASKED

    public static final int VT_ILLEGALMASKED

  FIXME (3): Document this!

  See Also:
    Constant Field Values

### VT_TYPEMASK

    public static final int VT_TYPEMASK

  FIXME (3): Document this!

  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.

Constructor Detail

### Variant

    public Variant()

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.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD