private TS_INPUT_EVENT ParseSlowPathInputEvent(byte[] data, ref int currentIndex)
{
TS_INPUT_EVENT inputEvent = new TS_INPUT_EVENT();
inputEvent.eventTime = ParseUInt32(data, ref currentIndex, false);
inputEvent.messageType = (TS_INPUT_EVENT_messageType_Values)ParseUInt16(data, ref currentIndex, false);
switch (inputEvent.messageType)
{
case TS_INPUT_EVENT_messageType_Values.INPUT_EVENT_SYNC:
inputEvent.slowPathInputData = ParseSyncEvent(data, ref currentIndex);
break;
case TS_INPUT_EVENT_messageType_Values.INPUT_EVENT_SCANCODE:
inputEvent.slowPathInputData = ParseKeyboardEvent(data, ref currentIndex);
break;
case TS_INPUT_EVENT_messageType_Values.INPUT_EVENT_UNICODE:
inputEvent.slowPathInputData = ParseUniKeyboardEvent(data, ref currentIndex);
break;
case TS_INPUT_EVENT_messageType_Values.INPUT_EVENT_MOUSE:
inputEvent.slowPathInputData = ParseMouseEvent(data, ref currentIndex);
break;
case TS_INPUT_EVENT_messageType_Values.INPUT_EVENT_MOUSEX:
inputEvent.slowPathInputData = ParseExtMouseEvent(data, ref currentIndex);
break;
case TS_INPUT_EVENT_messageType_Values.INPUT_EVENT_UNUSED:
inputEvent.slowPathInputData = ParseUnusedEvent(data, ref currentIndex);
break;
default:
throw new FormatException(ConstValue.ERROR_MESSAGE_ENUM_UNRECOGNIZED);
}
return inputEvent;
}