Hello,
in struct.inc, INPUT_RECORD is defined as follows:
INPUT_RECORD = record
EventType: Word;
Reserved: Word;
Event : record case longint of
0 : ( KeyEvent : KEY_EVENT_RECORD );
1 : ( MouseEvent : MOUSE_EVENT_RECORD );
2 : ( WindowBufferSizeEvent : WINDOW_BUFFER_SIZE_RECORD );
3 : ( MenuEvent : MENU_EVENT_RECORD );
4 : ( FocusEvent : FOCUS_EVENT_RECORD );
end;
end;
Note the presence of "Reserved : Word" after EventType.
The MSDN defines INPUT_RECORD as follows:
typedef struct _INPUT_RECORD {
WORD EventType;
union {
KEY_EVENT_RECORD KeyEvent;
MOUSE_EVENT_RECORD MouseEvent;
WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
MENU_EVENT_RECORD MenuEvent;
FOCUS_EVENT_RECORD FocusEvent;
} Event;
} INPUT_RECORD;
Note the absence of a "Reserved" field after EventType.
The FPC definition ends up working because of alignment but, there is no "reserved" field in INPUT_RECORD.