Share via


User Input Queue (Compact 2013)

3/26/2014

The user input queue module maintains the user input queue, which holds keyboard, mouse and touch events. The touch proxy driver passes touch contact data to function UserInputQueue_PutTouchEventsExport (in userin.cpp), which places it on the user input queue.

The user input thread monitors the input queue. It takes events from the queue one at a time and calls the touch component or keyboard component to do the rest of the processing and delivery. Function UserInput_Initialize calls CreateThread to create the thread, specifying function UserInputThread as the starting address.

The object file for the module is Uibase.lib. The following table describes the module functionality.

Object file name

Description

Uibase.lib

Contains function UserInputQueue_PutTouchEventsExport, which receives touch data from the driver. Function Touch_Initialize passes a pointer to this function to function TouchPanelEnableEx of the touch proxy driver.

Provides function UserInputThread to monitor the input queue for events. UserInputThread calls other functions according to the type of event:

  • For an array of touch contact points (TOUCH_INPUT_EVENT) it calls ProcessTouchEvent to dispatch the event and generate a mouse event and call MouseEventSend if appropriate.
  • For a mouse event (MOUSE_EVENT) or a single touch contact point (TOUCH_EVENT), it calls MouseEventSend.
  • For a keyboard event, it calls KeybdEventSend.

See Also

Concepts

Gesture Recognition Architecture