Palm Programming: The Developer's Guide by Neil Rhodes and Julie McKeehan Following are the changes made in the 8/00 reprint: Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification The following text was added to the preface: How to Contact Us We have tested and verified the information in this book to the best of our ability, but you may find that features have changed (or even that we have made mistakes!). Please let us know about any errors you find, as well as your suggestions for future editions, by writing to: O'Reilly & Associates, Inc. 101 Morris Street Sebastopol, CA 95472 1-800-998-9938 (in the U.S. or Canada) 1-707-829-0515 (international/local) 1-707-829-0104 (FAX) You can also send us messages electronically. To be put on the mailing list or request a catalog, send email to: info@oreilly.com To ask technical questions or comment on the book, send email to: bookquestions@oreilly.com We have a web site for the book, where we'll list examples, errata, and any plans for future editions. You can access this page at: http://www.oreilly.com/catalog/palmprog/ For more information about this book and others, see the O'Reilly web site: http://www.oreilly.com <32> Figure 2-10 has been added to the page. [88] The following text used to read: MemMove(void *from, void *to, ULong numBytes); now it reads: MemMove(void *to, void *from, ULong numBytes); [107] The following text used to read: ErrNonFatalDisplayif(FrmGetObjectType(frm, objectIndex <> frmFieldObj, "Form object isn't a field" now it reads: ErrNonFatalDisplayIf(FrmGetObjectType(frm, objectIndex) != frmFieldObj, "Form objects isn't a field"); {113} The following text used to read: Use LstSetArrayChoices to pass... now it reads: Use LstSetListChoices to pass... [114] The following text used to read: StrLstPtr stringsPtr = = MemHandleLock(gStringsHandle); now it reads: StrLstPtr stringsPtr = MemHandleLock(gStringsHandle); [128] The following text used to read: return = true; // don't bail out if they cancel the delete dialog now it reads: result = true; // don't bail out if they cancel the delete The following text used to read: return = true; now it reads: result = true; The following text used to read: return = false; now it reads: return result; [266] The following text used to read: // Otherwise, we want to read immediately if (s[5] == '0' || s[5] == '5') now it reads: // Otherwise, we want to read immediately if (s[7] == '0' || s[7] == '5') {328} The following text used to read: #define kMinorVersion 0 now it reads: #define kMinorVersion 1 {334} The following text used to read: Proving ChangeConduit works now it reads: Proving ConfigureConduit works The following text used to read: ... Bringing this dialog up proves that your ChangeConduit function gets called. now it reads: ... Bringing this dialog up proves that your ConfigureConduit function gets called. [347] The following text used to read: Word SyncHHtoHostWord(Word value) DWord SyncHHToHostDWord(DWord value) now it reads: WORD SyncHHToHostWord(WORD value) DWORD SyncHHToHostDWord(DWORD value) The following text used to read: Word SyncHostToHHWord(Word value) DWord SyncHostToHHDWord(DWord value) now it reads: WORD SyncHostToHHWord(Word value) DWORD SyncHostTOHHDWord(DWORD value) The following text used to read: SyncHHtoHostWord(0x0102) returns 0x0201 now it reads: SyncHHToHostWord(0x0102) returns 0x0201