ushort
    IECLASS_NULL		= 0x00,
    IECLASS_RAWKEY		= 0x01,
    IECLASS_RAWMOUSE		= 0x02,
    IECLASS_EVENT		= 0x03,
    IECLASS_POINTERPOS		= 0x04,
    IECLASS_TIMER		= 0x06,
    IECLASS_GADGETDOWN		= 0x07,
    IECLASS_GADGETUP		= 0x08,
    IECLASS_REQUESTER		= 0x09,
    IECLASS_MENULIST		= 0x0A,
    IECLASS_CLOSEWINDOW 	= 0x0B,
    IECLASS_SIZEWINDOW		= 0x0C,
    IECLASS_REFRESHWINDOW	= 0x0D,
    IECLASS_NEWPREFS		= 0x0E,
    IECLASS_DISKREMOVED 	= 0x0F,
    IECLASS_DISKINSERTED	= 0x10,
    IECLASS_ACTIVEWINDOW	= 0x11,
    IECLASS_INACTIVEWINDOW	= 0x12,

    IECLASS_MAX 		= 0x12;

uint
    IECODE_UP_PREFIX		= 0x80,
    IECODE_KEY_CODE_FIRST	= 0x00,
    IECODE_KEY_CODE_LAST	= 0x77,
    IECODE_COMM_CODE_FIRST	= 0x78,
    IECODE_COMM_CODE_LAST	= 0x7F,

    IECODE_C0_FIRST		= 0x00,
    IECODE_C0_LAST		= 0x1F,
    IECODE_ASCII_FIRST		= 0x20,
    IECODE_ASCII_LAST		= 0x7E,
    IECODE_ASCII_DEL		= 0x7F,
    IECODE_C1_FIRST		= 0x80,
    IECODE_C1_LAST		= 0x9F,
    IECODE_LATIN1_FIRST 	= 0xA0,
    IECODE_LATIN1_LAST		= 0xFF,

    IECODE_LBUTTON		= 0x68,
    IECODE_RBUTTON		= 0x69,
    IECODE_MBUTTON		= 0x6A,
    IECODE_NOBUTTON		= 0xFF,

    IECODE_NEWACTIVE		= 0x01,

    IECODE_REQSET		= 0x01,
    IECODE_REQCLEAR		= 0x00,

    IEQUALIFIER_LSHIFT		= 0x0001,
    IEQUALIFIER_RSHIFT		= 0x0002,
    IEQUALIFIER_CAPSLOCK	= 0x0004,
    IEQUALIFIER_CONTROL 	= 0x0008,
    IEQUALIFIER_LALT		= 0x0010,
    IEQUALIFIER_RALT		= 0x0020,
    IEQUALIFIER_LCOMMAND	= 0x0040,
    IEQUALIFIER_RCOMMAND	= 0x0080,
    IEQUALIFIER_NUMERICPAD	= 0x0100,
    IEQUALIFIER_REPEAT		= 0x0200,
    IEQUALIFIER_INTERRUPT	= 0x0400,
    IEQUALIFIER_MULTIBROADCAST	= 0x0800,
    IEQUALIFIER_MIDBUTTON	= 0x1000,
    IEQUALIFIER_RBUTTON 	= 0x2000,
    IEQUALIFIER_LEFTBUTTON	= 0x4000,
    IEQUALIFIER_RELATIVEMOUSE	= 0x8000,

    IEQUALIFIERB_LSHIFT 	= 0,
    IEQUALIFIERB_RSHIFT 	= 1,
    IEQUALIFIERB_CAPSLOCK	= 2,
    IEQUALIFIERB_CONTROL	= 3,
    IEQUALIFIERB_LALT		= 4,
    IEQUALIFIERB_RALT		= 5,
    IEQUALIFIERB_LCOMMAND	= 6,
    IEQUALIFIERB_RCOMMAND	= 7,
    IEQUALIFIERB_NUMERICPAD	= 8,
    IEQUALIFIERB_REPEAT 	= 9,
    IEQUALIFIERB_INTERRUPT	= 10,
    IEQUALIFIERB_MULTIBROADCAST = 11,
    IEQUALIFIERB_MIDBUTTON	= 12,
    IEQUALIFIERB_RBUTTON	= 13,
    IEQUALIFIERB_LEFTBUTTON	= 14,
    IEQUALIFIERB_RELATIVEMOUSE	= 15;

type
    timeval_t = unknown 8,

    InputEvent_t = struct {
	*InputEvent_t ie_NextEvent;
	ushort ie_Class;
	ushort ie_SubClass;
	uint ie_Code;
	uint ie_Qualifier;
	union {
	    struct {
		int ie_X;
		int ie_Y;
	    } ie_xy;
	    *byte ie_addr;
	} ie_position;
	timeval_t ie_TimeStamp;
    };
