OK, I read somewhere that you must do ExgDisconnect after a ExgPut even if that
ExgPut returned an error (why doesn't the documentation say this clearly?!). I
assume that it is the same with ExgAccept. So, I changed my receiving code to do
err = ExgAccept (exgSocket);
if (err == errNone)
err = ExgDisconnect (exgSocket, ExgDBRead (ReadDBData, DeleteProc,
exgSocket, &dbID, 0, &doReset, true));
else
err = ExgDisconnect (exgSocket, err);
and my sending code to do
err = ExgPut (&exgSocket);
if (err != errNone)
err = ExgDisconnect (&exgSocket, ExgDBWrite (WriteDBData,
&exgSocket, exgSocket.name, dbID, 0));
else
err = ExgDisconnect (&exgSocket, err);
Didn't fix the problem of appData being zero. :-( In addition, now I am getting
a dialog saying "Error: Database: corrupt database (0x0209)". Huh??
I'm not the only one who can't seem to get appData set to anything sensible,
either. Somebody else has been screaming about exactly the same problem here:
http://news.palmos.com/read/messages?id=146846
http://news.palmos.com/read/messages?id=177653
http://news.palmos.com/read/messages?id=179199
Nobody gave him a meaningful reply, either. :-(
In another thread,
http://news.palmos.com/read/messages?id=31392
somebody from Palm is saying that the length field of the ExgSocketType
structure isn't guaranteed to be transmitted and might be zero on the receiving
end even if the sender sends it. (Gosh! Does anything actually *work* in this
library?!) Maybe the appData field has the same, uhm, problem?? If that is the
case, what good is this field for, anyway???
Or could it be that these problems are specific to the simulator? (I can't test
with a real device right now, because I only have one.)
Regards,
Vesselin
--
For information on using the Palm Developer Forums, or to unsubscribe, please
see http://www.palmos.com/dev/support/forums/