Share via


User Input Queue (Compact 7)

3/12/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 (in userin.cpp) calls CreateThread to create the thread, specifying function UserInputThread (in userin.cpp) as the starting address.

The object file for the module is Uibase.lib, which is built from source file userin.cpp in %_WINCEROOT%\Private\Winceos\Coreos\Gwe\Userin\mainusrq\. The following table describes the userin.cpp file.

File name Description

userin.cpp

Contains function UserInputQueue_PutTouchEventsExport, which receives touch data from the driver. Function Touch_Initialize (in touch.cpp) 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 (in userin.cpp) to dispatch the event and generate a mouse event and call MouseEventSend (in touch.cpp) if appropriate.
  • For a mouse event (MOUSE_EVENT) or a single touch contact point (TOUCH_EVENT), it calls MouseEventSend (in touch.cpp).
  • For a keyboard event, it calls KeybdEventSend (in keybd.cpp).

See Also

Concepts

Gesture Recognition Architecture