IMouseHandler receives mouse events.

IMouseEvents sends mouse events.

DefaultMouseHandler

Imagine you have an object, which supports IMouseHandler. It has a property DefaultMouseHandler - a reference to another such object.

If DefaultMouseHandler in our object is unequal to null, all calls to OnMouseX on this object will be redirected to its DefaultMouseHandler.

Note:

If DefaultMouseHandler == null || DefaultMouseHandler == this, no redirection is carried out (or else we'd have a NullReferenceException or an endless loop of DefaultMouseHandler redirecting calls to itself).