So I've been toying with writing some mobile software, just for the heck of it. And I just did some screwing around.
Microsoft, despite the fact that they do not make any money off of developer tools, still charges for Visual Studio. I have a copy of Visual Studio 6.0 and haven't felt like buying a newer copy as yet. I probably will within the next year or two. However, there is eMbedded Visual C++ 4.0 and the SDK for Windows Mobile 2003 which, as far as I'm concerned, is good enough for now and still lets me write software intended for a modern device, minus some of the features.
I got all of this set up (and, in classic Microsoft form, some of the SDKs require me to have a genuine copy of Windows running before I can download) and started playing with things.
I wanted to write some Today Screen software, so I used the code skeleton from The Code Project and the associated options dialog. However, there's not enough information there, so I ended up looking at the Windows Mobile Development center and an even older article on the subject.
The setup for development is kinda funky. You have a x86 based windows emulator where you interact with a simulated device that has little onscreen buttons and knobs and stuff. It's running x86 instructions instead of ARM instructions and is a special build profile.
So, the project, just to get myself comfortable with the idea of hacking, I wrote my own SMS message monitor that will beep incessantly when there's an unread SMS (because that's how my pages come in). Thankfully, the Windows Mobile blog has a nice little article about how to make it all work and even a nice article about how to test SMS messages on the simulator.
There's a lot of stuff that's totally undocumented. The only real way to install something has been to use a CAB file and we've pretty much moved to the point with setup where the least-resistance method is to provide a bare CAB file for people to download it on their phone. But it took me far too long to figure out how to generate a CAB file. I probably need to pose my own tutorial because the ones I was finding online were just as unhelpful as the documentation. I did find one note on how to make CabWiz work with the emulator so I could test things without spending a bunch of time screwing with my device.
Also I still don't understand why I get the worlds least useful error message (ERROR_SUCCESS or "The Operation Completed Successfully") when I try to use MAPI's Restrict to just get a list of unread messages instead of going through the messages as a loop.
Either way, I've got the hack together. It probably needs some massaging and added functionality down the road, but for now it's fine.
Copyright 2007, Ken Wronkiewicz