I need C++ library for receiving ALL (global) touch/multitouch inputs and be able to process them in C# project.
Such as an Overlay window, but must be able to pass-through touch inputs to other non-project based windows.
Can not interfere with inputs (Touch,Stylus,Mouse) unless explicitly told to do so by api.
Global Touch Library will have 2 parts, C++ library and C# API.
GlobalTouchLibrary.dll : C++ Library
- Receive ALL low-level TouchInput messages - global hook (GlobalTouchEvent)
- with screen overlay window or hook
- Route events to C# API for processing
- Handle Routed event response
- If Handled -> intercept touch input
- If NOT Handled -> allow touch input to passthrough to other non-project windows
- Not interfere with inputs (Touch,Stylus,Mouse,etc) unless explicitly indicated as handled by C# API
- Handle TouchDown, TouchUp and TouchMove input events
- Be able to capture touch if desired
- Be able to handle touch event without capturing
- Explicitly handle touch input - not accept Mouse/Stylus (passthrough all non touch input)
- Allow user to simultaneously use Mouse/Stylus while processing touch
GlobalTouchApi : C# Class Library
- Register target WPF windows to receive GlobalTouchEvents
- Add hook/callback to receive GlobalTouchEvents from DLL.
- Route events to target WPF windows for processing
- Handle routed events after being processed from target window
- If target marks event as handled, need to tell DLL
- If target does not handle event, need tell DLL to passthrough event
- Route all TouchDown, TouchUp, and TouchMove events to target window
- Must be very fast (performance) as to not slowdown touch input passthrough for other non-project windows
The GlobalTouchLibrary will be used in a current project (developed by me) that meets the following:
- Topmost On-screen Keyboard Interface (only 8 specific buttons) that can be tapped/pressed/press&held to SendInput to Active/Foreground Window
- Must not interfere with normal behavior of Touch Input, Stylus and Mouse inputs for interacting with Active Window
- Never become active (NO_ACTIVATE)
- Must be able to perform Touch/Multitouch and Mouse/Stylus inputs simultaneously
- Be able to press&hold button on interface while using Stylus in Active Window (such as Paint)
- Handle Multitouch with same effect
- Press&Hold multiple buttons on interface while using Stylus in Active Window
Only the DLL and C# API are requirements, the WPF Window Application that will use this library will be developed by me.
I will require candidates to provide a quick Interface diagram or code example for the DLL and API to make sure you understand requirements and skills.
This is not a hard project for a very skilled developer, C++ and global hooks are not my expertise, but I fully understand the requirements needed.
If you think this is difficult, please do not respond! It should be a 2 day project for someone with enough experience.
I will give 2 weeks to complete.
Additional Project Description:
04/20/2013 at 17:02 PDT
** I have attached a quick C# file with an Interface example for the API, to make sure my requirements are clear.
The example is not final by any means, if you have a better way to do the whole library by all means suggest it, this is just basic structure that I require.
04/20/2013 at 17:17 PDT
In addition the C# API must also give me basic device specs, such as Max Touch Points and Vendor info.