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

# Class Convert

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

class Convert extends Object
This class is considered internal to the package.

## Constructor Summary

Constructors
Constructor
Description
`Convert()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`free(Variant.VARIANT variant, Class<?> javaType)`
Free the contents of the supplied VARIANT.
`static void`
`free(Variant.VARIANT variant, Object value)`
Free the contents of the supplied VARIANT.
`static <T extends IComEnum>
T`
`toComEnum(Class<T> enumType, Object value)`
`static Object`
`toJavaObject(Variant.VARIANT value, Class<?> targetClass, ObjectFactory factory, boolean addReference, boolean freeValue)`
`static Variant.VARIANT`
`toVariant(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 Details

### Convert

Convert()

## Method Details

### toVariant

public static Variant.VARIANT toVariant(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 Object toJavaObject(Variant.VARIANT value, Class<?> targetClass, ObjectFactory factory, boolean addReference, boolean freeValue)

### toComEnum

public static <T extends IComEnum> T toComEnum(Class<T> enumType, Object value)

### free

public static void free(Variant.VARIANT variant, 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, 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