Class ProxyObject
- java.lang.Object
-
- com.sun.jna.platform.win32.COM.util.ProxyObject
-
- All Implemented Interfaces:
IConnectionPoint
,IDispatch
,IRawDispatchHandle
,IUnknown
,InvocationHandler
public class ProxyObject extends Object implements InvocationHandler, IDispatch, IRawDispatchHandle, IConnectionPoint
This object acts as the invocation handler for interfaces annotated with ComInterface. It wraps all (necessary) low level COM calls and dispatches them through the COM runtime.The caller of the methods is responsible for correct initialization of the COM runtime and appropriate thread-handling - depending on the choosen handling model.
-
-
Constructor Summary
Constructors Constructor Description ProxyObject(Class<?> theInterface, IDispatch rawDispatch, ObjectFactory factory)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description IComEventCallbackCookie
advise(Class<?> comEventCallbackInterface, IComEventCallbackListener comEventCallbackListener)
Set up the comEventCallbackListener to receive callback events from the target COM objectvoid
dispose()
boolean
equals(Object arg)
protected void
finalize()
<T> T
getProperty(Class<T> returnType, OaIdl.DISPID dispID, Object... args)
<T> T
getProperty(Class<T> returnType, String name, Object... args)
IDispatch
getRawDispatch()
int
hashCode()
Object
invoke(Object proxy, Method method, Object[] args)
<T> T
invokeMethod(Class<T> returnType, OaIdl.DISPID dispID, Object... args)
<T> T
invokeMethod(Class<T> returnType, String name, Object... args)
protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, OaIdl.DISPID dispId)
Deprecated.protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, OaIdl.DISPID dispId, Variant.VARIANT pArg)
Deprecated.protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, OaIdl.DISPID dispId, Variant.VARIANT[] pArgs)
Deprecated.protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, String name)
Deprecated.protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, String name, Variant.VARIANT pArg)
Deprecated.protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, String name, Variant.VARIANT[] pArgs)
Deprecated.protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, OaIdl.DISPID dispId)
protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, OaIdl.DISPID dispId, Variant.VARIANT pArg)
protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, OaIdl.DISPID dispId, Variant.VARIANT[] pArgs)
protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, String name)
protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, String name, Variant.VARIANT pArg)
protected WinNT.HRESULT
oleMethod(int nType, Variant.VARIANT.ByReference pvResult, String name, Variant.VARIANT[] pArgs)
<T> T
queryInterface(Class<T> comInterface)
Returns a proxy object for the given interface.protected OaIdl.DISPID
resolveDispId(IDispatch pDisp, String name)
Deprecated.protected OaIdl.DISPID
resolveDispId(String name)
<T> void
setProperty(OaIdl.DISPID dispId, T value)
<T> void
setProperty(String name, T value)
String
toString()
void
unadvise(Class<?> comEventCallbackInterface, IComEventCallbackCookie cookie)
Stop listening for callback events
-
-
-
Constructor Detail
-
ProxyObject
public ProxyObject(Class<?> theInterface, IDispatch rawDispatch, ObjectFactory factory)
-
-
Method Detail
-
finalize
protected void finalize() throws Throwable
-
dispose
public void dispose()
-
getRawDispatch
public IDispatch getRawDispatch()
- Specified by:
getRawDispatch
in interfaceIRawDispatchHandle
-
invoke
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
- Specified by:
invoke
in interfaceInvocationHandler
- Throws:
Throwable
-
advise
public IComEventCallbackCookie advise(Class<?> comEventCallbackInterface, IComEventCallbackListener comEventCallbackListener) throws COMException
Description copied from interface:IConnectionPoint
Set up the comEventCallbackListener to receive callback events from the target COM object- Specified by:
advise
in interfaceIConnectionPoint
- Parameters:
comEventCallbackInterface
- - the COM interface that the listener will receive events fromcomEventCallbackListener
- - and object that will receive the callback events- Returns:
- - a cookie that can be used to detach (unadvise) the event callback listener throws COMException if an error occurs trying to set up the listener on the target COM object, see exception cause for details.
- Throws:
COMException
-
unadvise
public void unadvise(Class<?> comEventCallbackInterface, IComEventCallbackCookie cookie) throws COMException
Description copied from interface:IConnectionPoint
Stop listening for callback events- Specified by:
unadvise
in interfaceIConnectionPoint
- Parameters:
comEventCallbackInterface
- - the interface that is being listened tocookie
- - the cookie that was returned when advise was called- Throws:
COMException
-
setProperty
public <T> void setProperty(String name, T value)
- Specified by:
setProperty
in interfaceIDispatch
-
setProperty
public <T> void setProperty(OaIdl.DISPID dispId, T value)
- Specified by:
setProperty
in interfaceIDispatch
-
getProperty
public <T> T getProperty(Class<T> returnType, String name, Object... args)
- Specified by:
getProperty
in interfaceIDispatch
-
getProperty
public <T> T getProperty(Class<T> returnType, OaIdl.DISPID dispID, Object... args)
- Specified by:
getProperty
in interfaceIDispatch
-
invokeMethod
public <T> T invokeMethod(Class<T> returnType, String name, Object... args)
- Specified by:
invokeMethod
in interfaceIDispatch
-
invokeMethod
public <T> T invokeMethod(Class<T> returnType, OaIdl.DISPID dispID, Object... args)
- Specified by:
invokeMethod
in interfaceIDispatch
-
queryInterface
public <T> T queryInterface(Class<T> comInterface) throws COMException
Description copied from interface:IUnknown
Returns a proxy object for the given interface. Assuming that the interface is annotated with a ComInterface annotation that provides a valid iid.Will throw COMException if an error occurs trying to retrieve the requested interface, see exception cause for details.
- Specified by:
queryInterface
in interfaceIUnknown
- Throws:
COMException
-
resolveDispId
protected OaIdl.DISPID resolveDispId(String name)
-
oleMethod
protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, String name, Variant.VARIANT pArg) throws COMException
- Throws:
COMException
-
oleMethod
protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, OaIdl.DISPID dispId, Variant.VARIANT pArg) throws COMException
- Throws:
COMException
-
oleMethod
protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, String name) throws COMException
- Throws:
COMException
-
oleMethod
protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, OaIdl.DISPID dispId) throws COMException
- Throws:
COMException
-
oleMethod
protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, String name, Variant.VARIANT[] pArgs) throws COMException
- Throws:
COMException
-
oleMethod
protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, OaIdl.DISPID dispId, Variant.VARIANT[] pArgs) throws COMException
- Throws:
COMException
-
resolveDispId
@Deprecated protected OaIdl.DISPID resolveDispId(IDispatch pDisp, String name)
Deprecated.
-
oleMethod
@Deprecated protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, String name, Variant.VARIANT pArg) throws COMException
Deprecated.- Throws:
COMException
-
oleMethod
@Deprecated protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, OaIdl.DISPID dispId, Variant.VARIANT pArg) throws COMException
Deprecated.- Throws:
COMException
-
oleMethod
@Deprecated protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, String name) throws COMException
Deprecated.- Throws:
COMException
-
oleMethod
@Deprecated protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, OaIdl.DISPID dispId) throws COMException
Deprecated.- Throws:
COMException
-
oleMethod
@Deprecated protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, String name, Variant.VARIANT[] pArgs) throws COMException
Deprecated.- Throws:
COMException
-
oleMethod
@Deprecated protected WinNT.HRESULT oleMethod(int nType, Variant.VARIANT.ByReference pvResult, IDispatch pDisp, OaIdl.DISPID dispId, Variant.VARIANT[] pArgs) throws COMException
Deprecated.- Throws:
COMException
-
-