Package com.sun.jna.platform.win32.COM.util

## Class Convert

- java.lang.Object
- - com.sun.jna.platform.win32.COM.util.Convert

    class Convert
    extends java.lang.Object

This class is considered internal to the package.

### Constructor Summary

Constructors
`Convert()`

### Method Summary

All Methods Static Methods Concrete Methods
`static void` `free​(Variant.VARIANT variant, java.lang.Class<?> javaType)` Free the contents of the supplied VARIANT.
`static void` `free​(Variant.VARIANT variant, java.lang.Object value)` Free the contents of the supplied VARIANT.
`static <T extends IComEnum> T` `toComEnum​(java.lang.Class<T> enumType, java.lang.Object value)`
`static java.lang.Object` `toJavaObject​(Variant.VARIANT value, java.lang.Class<?> targetClass, ObjectFactory factory, boolean addReference, boolean freeValue)`
`static Variant.VARIANT` `toVariant​(java.lang.Object value)` Convert a java value into a VARIANT suitable for passing in a COM invocation.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Convert

    Convert()

### Method Detail

#### toVariant

    public static Variant.VARIANT toVariant​(java.lang.Object value)

Convert a java value into a VARIANT suitable for passing in a COM invocation.

Implementation notes

- VARIANTs are not rewrapped, but passed through unmodified
- A string is wrapped into a BSTR, that is wrapped into the VARIANT. The string is allocated as native memory by the VARIANT constructor. The BSTR needs to be freed by `OleAuto.SysFreeString(com.sun.jna.platform.win32.WTypes.BSTR)`.

Parameters:
  `value` - to be wrapped
Returns:
  wrapped VARIANT

#### toJavaObject

    public static java.lang.Object toJavaObject​(Variant.VARIANT value,
                                                java.lang.Class<?> targetClass,
                                                ObjectFactory factory,
                                                boolean addReference,
                                                boolean freeValue)

#### toComEnum

    public static <T extends IComEnum> T toComEnum​(java.lang.Class<T> enumType,
                                                   java.lang.Object value)

#### free

    public static void free​(Variant.VARIANT variant,
                            java.lang.Class<?> javaType)

Free the contents of the supplied VARIANT.

This method is a companion to `toVariant(java.lang.Object)`. Primary usage is to free BSTRs contained in VARIANTs.

Parameters:
  `variant` - to be cleared
  `javaType` - type before/after conversion

#### free

    public static void free​(Variant.VARIANT variant,
                            java.lang.Object value)

Free the contents of the supplied VARIANT.

This method is a companion to `toVariant(java.lang.Object)`. Primary usage is to free BSTRs contained in VARIANTs.

Parameters:
  `variant` - to be cleared
  `value` - value before/after conversion