The nsIEventSink is implemented internally by Gecko as the conduit
 through which native events travel into Gecko. You obtain an
 event sink by QI'ing the top-level nsIWidget, usually a window.

 @status UNDER_REVIEW
[uuid(c0d3a7c8-1dd1-11b2-8903-adcd22d004ab)]
interface nsIEventSink : nsISupports

Methods

 Perform any idle processing (handle timers, set the cursor, etc)
void Idle()
 Entry point for native events into Gecko.

 @return <code>PR_TRUE</code> if event was handled
         <code>PR_FALSE</code> if not handled

 On Mac, <code>anEvent</code> is a native <code>EventRecord*</code>.
boolean dispatchEvent(in voidPtr anEvent)
 Alerts gecko of a drag event. 

 @param aMessage the message parameter for a Gecko NS_DRAGDROP_EVENT (See nsGUIEvent.h for list).
 @param aMouseGlobalX x coordinate of mouse, in global coordinates
 @param aMouseGlobalY y coordinate of mouse, in global coordinates
 @param aKeyModifiers a native bitfield of which modifier keys are currently pressed

 @return <code>PR_TRUE</code> if event was handled
         <code>PR_FALSE</code> if not handled
boolean dragEvent(in unsigned long aMessage, in short aMouseGlobalX, in short aMouseGlobalY, in unsigned short aKeyModifiers)
 Tell gecko to scroll, usually in response to a mouse-wheel

 @param aVertical <code>PR_TRUE</code> if scrolling veritcally, <code>PR_FALSE</code> if horizontal
 @param aNumLines the number of lines to scroll, positive for down, negative for up
 @param aMouseLocalX the x coordinate of the mouse in window (local) coordinates
 @param aMouseLocalY the y coordinate of the mouse in window (local) coordinates
boolean scroll(in boolean aVertical, in short aNumLines, in short aMouseLocalX, in short aMouseLocalY)