Comparative Review of Windows CE Programming Books!
Book 1: Windows CE 2 Programming for Dummies
This is IDG's entry into the CE programming foray. It pretty-much follows the format and aim of the rest of the condescendingly-named yellow titles with lots of illustrations, margin-icons, and gray-boxed asides.
The format, on the whole, is easy to follow. After the introductory chapter, the book has two very extensive "hello world" examples done using the SDK, and MFC/AppWizard. Following that, the book is broken up into chapters covering the major features of CE, like the Command Bar, MGDI, help, database, etc. The chapters, on the whole, are well-chosen. A couple of chapters don't seem to belong, like the chapter on writing an install program in C. Also, there's a short chapter on "Other development environments" that covers Visual Basic and Visual J++ for CE. The chapter was curiously placed in the middle of the book. Frankly, a short mention of Basic/J++ in the introductory chapter would've been fine for a book that's obviously all about C.
The code examples shown in the book are not complete listings. They're generally short snippets intended to show off an interesting facet of the program. Frankly, I prefer this technique to full listings. I really don't see much point in repeating WinMain a dozen times, and full listings are always available on the CD. As an added bonus, the CD includes source code to a clone of the old Windows cardfile program that uses the CE database.
My only other complaint about the book is it's a bit schizophrenic about MFC vs. Win32 API. MFC is covered in bits and pieces. It wastes space for folks not interested in MFC, and it's too sparse for people who are. After smattering MFC coverage, the last chapter is devoted entirely to Winsock via the MFC CSocket class. I got the impression that the book was just going for extra cover-blurbs by giving cursory coverage to things like MFC and VB.
All in all, not a bad book. It suffered a bit from a lack of focus, but it'd be useful for beginners.
Book 2: Windows CE 2 Application Programming
This was the only book on the list that I really didn't like. It was written in 1997 when CE 1.0 was king, but that's not my only reason for disliking it. After spending too much time describing CE, reviewing 1997's crop of CE handhelds, and explaining the build tools, it actually gets to programming on page 75.
My other big gripe with the book is the code examples. They are probably the worst-formatted things I've ever seen. Long lines are wrapped back to the left margin with a little CR dingbat to indicate that they are continuations. The code itself isn't well commented and seems to be inserted just to fill the page-count.
Ignore this one.
Book 3: Essential Windows CE Application Programming
Now we're really getting somewhere. This book is similar in scope to the dummies book, but it dispenses with the cuteness in favor of in-depth coverage of CE. MFC is nowhere to be found. There's no discussion of the build tools (after all, you get pretty extensive documentation with the SDK). The code examples are similar to the dummies book in that they're only used for illustration rather than as examples of complete programs.
Another nice addition to this book that's missing from the previous two is a chapter on Palm PC handwriting recognition and the RichInk control.
The book is written by Robert Burdick, who is apparently a regular on the windowsce-dev mailing list. I don't know if he answers book-related questions, but it's good to know he's available.
This one's a winner.
Book 4: Programming Microsoft Windows CE
This is the Windows CE version of the classic Petzold book by Microsoft. If you're familiar with the format of Petzold, there are no surprises. The audience is slightly different, though. While Petzold is aimed at people who have no experience programming Windows, Programming Microsoft Windows CE does expect a bit of familiarity, if only to show the differences between the API's. Like the Burdick book, there's no MFC.
This is the most comprehensive book of the bunch. At 800 pages, it's almost twice the length of the other books I've reviewed. Part of the reason for the length, however, is the book's insistence on printing all the code examples in their entirety. The code examples are well-formatted and easy to read, though. If you like reading code, this is the one to get.
The focus of the book is very good. Coverage of stuff that's similar to existing Win32, like GDI, is fairly light. Much more time is spent on Windows CE originals, like the database and IR networking.
In conclusion, go with Essential Windows CE Application Programming or Programming Microsoft Windows CE. Both have good focus and well-chosen chapters. The Microsoft book's coverage of topics is more in-depth, but it lacks any mention of the handwriting controls. If you can, get both of these.
Windows CE 2 Programming for Dummies might be a good choice if you have never done any Windows programming, but it's not as good as the other two. The only other advantage is that, at $30, it's cheaper than the rest of the books (all $50).
None of the books had good MFC coverage. IMHO, if you're interested in doing CE with MFC, you'd be better off getting a book on plain old Win32 MFC. The differences are pretty minor.