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