The Delegate Class of the com.ms.lang package supports delegation. With delegation, an outer object acts as a client of an inner object.
Note Instances of this class can be marshalled to IDispatchEx function pointers. For any class derived from Delegate, its DISPID_VALUE is mapped to the delegate's invoke() method. Scripting engines will call Invoke(DISPID_VALUE) with a set of parameters. These parameters are then run through the VM's auto-marshaler, and the invoke() method is called. Microsoft® Internet Explorer, version 4.0 and later, uses IDispatchEx::InvokeEx with the security parameter, so the security of the calling web page is inserted on the stack as is done for normal Automation calls.
public abstract class Delegate implements java.lang.Cloneable { // Constructors protected Delegate(Object objTarget, String strMethodName, String strMethodSignature); // Methods public Object clone(); public static final Delegate combine(Delegate delA, Delegate delB); public static final Delegate combine(Delegate[] rgDelegates); protected Delegate combine(Delegate delTail) throws MulticastNotSupportedException; public final Object dynamicInvoke(Object[] args) throws IllegalArgumentException, InvocationTargetException; public boolean equals(Object objOther); public Delegate[] getInvocationList(); public final Method getMethod(); public final Object getTarget(); public int hashCode(); protected final Object invokeHelper(Object[] args) throws Throwable; protected Delegate remove(Delegate delValue); public static final Delegate remove(Delegate delSource, Delegate delValue); }