with serious reservations
This book covers network programming Pocket PC 2002/ 2003 and Pocket PC 2002/2003 Phone Edition devices, though some of the APIs may be available on a Windows CE 3 or 4 device and much of it applies to PCs as well. The contents include Winsock, WinInet, Internet Protocol Helper API's (IPHelper), Network Redirector, Serial and Infrared connections , Remote Access Services, Connection Manager, Pocket PC 2002 Phone Edition, Desktop Synchronization, and the Pocket Outlook Object Model, Email (MAPI). The final briefly chapter covers the compact framework: VB.Net and C# for Pocket PC. However, since it is aimed at earlier versions of Pocket PC, it does not cover Bluetooth.
This book pulls together a wealth of items, some of which are covered in disparate places across the MSDN making them hard to find without knowing what to look for. It adds extras such as warnings and error cases to be aware of, alternative ways of doing things and giving a brief overview of networking concepts such as the TCP/IP stack etc.
On the plus side, it gives a thorough coverage of networking ranging from Desktop Synchronization to more detailed items such as using HTTP programmatically, communication with other devices via IrDA, telephony and the RAPI, and with networks. It includes lots of code samples and usually demonstrates various ways of doing things, though not always clarifying pros and cons of each method where alternatives exist.
The code samples are mostly in C. Their standard is sometimes poor: magic numbers all over the place, including the same constant repeated over three times in one code 39 line code sample...neither an enum nor a #define in sight. Furthermore, it often says to set certain parameters to API calls to NULL with no explanation. More background or depth would be good from time to time. However, it is enough to show which functions should be used in which order to do what.
This book is complete, thorough and relevant to more than just Windows Mobile devices, but has some nasty code samples and a lack of advice about when to use what. In addition throw away statements are made without explanation from time to time such as page 307: Each [SMS] message can be up to 160 alphanumeric characters long (140 bytes). Excuse me? Oh... 7 bit chars... right. There are several throwaway comments like this that could do with some explanation. Finally, some of the code samples are troubling for an entirely different reason. In particular,
InternetSetOptionis proffered as the way to set timeouts when using HTTP. According to the MSDN this has a known bug: InternetSetOption with timeout values doesn't work. Calling InternetSetOption (or MFC CHttpFile::SetOption) with INTERNET_OPTION_SEND_TIMEOUT or INTERNET_OPTION_CONNECT_TIMEOUT does not set the specified timeout values . (SeeQ176420.)p
Recommended with serious reservations. If you buy it, it would provide a good starting point, but take everything it says with a pinch of salt.