There is a document available for download (wrapped in an MSI to keep the HP lawyers happy) that describes all the nitty-gritty details of how to create an app that “fits” into the HP TouchSmart software environment. But some people might enjoy just a quick introduction to what it takes to get an application to show up in the HP TouchSmart software. So here’s my attempt at providing just the essentials in a bulleted list:
- Create a Windows app using any technology you please (C++, MFC, VB, WPF, Flash, Air, whatever)
- Do not use DirectX exclusive mode
- Make sure the app produces one Win32 window (and only one window) and does this quickly
- Make sure the window has no “chrome” whatsoever (no borders, resize grips, close/minimize/maximize buttons, system menu, etc.)
- Make sure the window can still be resized by WM_SIZE and moved by WM_MOVE messages (and make sure it does so very responsively)
- Make sure the window content is touch friendly
That’s it. If you know how to produce a program that does the above, you’re all set. No need to learn any interfaces, new programming models, technologies, nothing. I’ve actually had partial success at getting apps designed for Windows 1.0 to run inside the HP TouchSmart environment.
Now, if you want to improve on things, here are some more things you could do:
- Make sure you have a black background for your window
- Support the three “layouts”/sizes that HP TouchSmart uses as the user interacts with the UI (small, medium, large)
- Take into account that the user can only interact with your window in large layout/size
- Present something useful/informative in small and medium layout/size
- Provide a beautiful, large icon
And to make it really great:
- Use the notification mechanism that the environment provides (if your app needs to notify the user of anything)
- Use the mechanism for launching IE that the environment provides (if your app needs to put the user in a full web browser experience)
Finally, use the RegisterSmartCenterApp.exe registration mechanism (described in the document linked to above) in the package you deliver for installing your app. You need to do that so program you’ve developed can be integrated into the HP TouchSmart UI.
If you’ve climbed the WPF cliff, the latest version of the HP TouchSmart software (2.8) includes a library that you can use for even closer integration. Leave a comment if you’d like more information about that. I don’t consider that part of the “nutshell”, since it ends up binding you to a specific technology stack.