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

# Class Factory

java.lang.Object
com.sun.jna.platform.win32.COM.util.ObjectFactory
com.sun.jna.platform.win32.COM.util.Factory

public class Factory extends ObjectFactory
Factory is intended as a simpler to use version of ObjectFactory.

The Factory abstracts the necessity to handle COM threading by introducing a dispatching thread, that is correctly COM initialized and is used to handle all outgoing calls.

NOTE: Remember to call factory.getComThread().terminate() at some appropriate point, when the factory is not used anymore

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Factory()`
  `Factory(ComThread comThread)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `(package private) IDispatchCallback`
  `createDispatchCallback(Class<?> comEventCallbackInterface, IComEventCallbackListener comEventCallbackListener)`
  `<T> T`
  `createObject(Class<T> comInterface)`
  Creates a new COM object (CoCreateInstance) for the given progId and returns a ProxyObject for the given interface.
  `<T> T`
  `createProxy(Class<T> comInterface, IDispatch dispatch)`
  Creates a ProxyObject for the given interface and IDispatch pointer.
  `(package private) Guid.GUID`
  `discoverClsId(ComObject annotation)`
  `<T> T`
  `fetchObject(Class<T> comInterface)`
  Gets and existing COM object (GetActiveObject) for the given progId and returns a ProxyObject for the given interface.
  `ComThread`
  `getComThread()`
  `IRunningObjectTable`
  `getRunningObjectTable()`
  CoInitialize must be called be fore this method.

  ### Methods inherited from class com.sun.jna.platform.win32.COM.util.ObjectFactory

  `disposeAll, finalize, getLCID, register, setLCID, unregister`

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

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

- ## Constructor Details

  - ### Factory

    public Factory()

  - ### Factory

    public Factory(ComThread comThread)

- ## Method Details

  - ### createProxy

    public <T> T createProxy(Class<T> comInterface, IDispatch dispatch)
    Description copied from class: `ObjectFactory`
    Creates a ProxyObject for the given interface and IDispatch pointer.

    Overrides:
      `createProxy` in class `ObjectFactory`

  - ### discoverClsId

    Guid.GUID discoverClsId(ComObject annotation)
    Overrides:
      `discoverClsId` in class `ObjectFactory`

  - ### fetchObject

    public <T> T fetchObject(Class<T> comInterface) throws COMException
    Description copied from class: `ObjectFactory`
    Gets and existing COM object (GetActiveObject) for the given progId and returns a ProxyObject for the given interface.
    Overrides:
      `fetchObject` in class `ObjectFactory`
    Throws:
      `COMException`

  - ### createObject

    public <T> T createObject(Class<T> comInterface)
    Description copied from class: `ObjectFactory`
    Creates a new COM object (CoCreateInstance) for the given progId and returns a ProxyObject for the given interface.
    Overrides:
      `createObject` in class `ObjectFactory`

  - ### createDispatchCallback

    IDispatchCallback createDispatchCallback(Class<?> comEventCallbackInterface, IComEventCallbackListener comEventCallbackListener)
    Overrides:
      `createDispatchCallback` in class `ObjectFactory`

  - ### getRunningObjectTable

    public IRunningObjectTable getRunningObjectTable()
    Description copied from class: `ObjectFactory`
    CoInitialize must be called be fore this method. Either explicitly or implicitly via other methods.
    Overrides:
      `getRunningObjectTable` in class `ObjectFactory`
    Returns:
      running object table

  - ### getComThread

    public ComThread getComThread()