Pocket Outlook extension problems

Back during the summer I picked up one of those ViewSonic V37 PocketPC devices available free through an MSDN promotion. It was quite a step up, hardware-wise, from my old Palm IIIx - a nice color screen, MP3 playback, SD support. And a hell of a bargain. ;)

On the other hand, I've been less than thrilled with the PocketPC OS itself. There are some things that are very nice, but generally I find that it takes a lot more pen strokes to accomplish something than it did with my ancient Palm. Simple user efficiency doesn't seem to have been a primary design goal with many parts of the OS.

The biggest complaint that I have in this area is with Pocket Outlook - specifically when assigning due dates to tasks. In the Palm world this can be done with two clicks of the pen on the task list (one to drop down the “due“ combo, one to select). I was chagrined to discover that in the PocketPC world this takes 5 clicks (one to open the task, one to click Edit, one pop up the calendar, one to select the date, and one to close the task). Do this on a couple of tasks and it gets old pretty damn fast.

I started poking around in the PocketPC 2003 SDK, and found that Pocket Outlook supports a nice context-menu extension model - nearly identical to the Windows shell context menu extension model, in fact. So I started coding up an extension that would give you a quick way to re-set the due date of a task from a tap-and-hold context menu.

This being my first foray into the world of PPC programming, it took a little time to get the tools installed and familiar with the environment (after 2 years of C# work, my C++/ATL/COM is seriously rusty). Embedded Visual C++ is like a step back in time, but it does the job, and it's available for free download.  The morass of PocketPC version numbers was confusing at first - they use numbers like WinCE 4.0, 4.1, 4.2, rather than the product names PocketPC 2002, Windows Mobile 2003, etc). Fortunately, I'm only targeting Windows Mobile 2003, so I was able to ignore most of the versioning issues.

Anyway, the samples were instructive, and I got the basics working pretty quickly. Unfortunately, I seem to have encountered a major snag. Although the API lets you set task properties like the due date, the UI doesn't seem to recognize that they've changed and redraw itself. Only if you do something like open and then close the task does it refresh (and the API only lets me automate the opening, but not the closing).

So far I've been unable to figure out a workaround for this. Anyone have a suggestion?

1 Comment

Comments have been disabled for this content.