This class creates the scaffolding for event callbacks. Every instance of tis acts as a wrapper around some java object that wants callbacks from the microsoft side. It represents the connection between Java and COM for callbacks.
The callback mechanism will take any event that it receives and try and find a java method with the same name that accepts the Variant... as a parameter. It will then wrap the call back data in the Variant array and call the java method of the object that this DispatchEvents object was initialized with.
Instances of this class are created with "sink object" that will receive the event messages. The sink object is wrapped in an Invocation handler that actually receives the messages and then forwards them on to the "sink object". The constructors recognize when an instance of InvocationProxy is passed in and do not create a new InvocationProxy as a wrapper. They instead use the passed in InvocationProxy.