> From: Danny Epstein <[EMAIL PROTECTED]>
> Newsgroups: palm-dev-forum
> Date: Mon, 22 Apr 2002 17:19:36 -0700
> To: "'Palm Developer Forum'" <[EMAIL PROTECTED]>
> Subject: RE: ExgConnect weirdness?
> 
> 
>> I'm having this odd problem with ExgConnect while running on an emulated
>> Palm OS 4.0 m505 device (it happens on a real 4.0 device too, a Sony
>> 610C).  This API always returns the bad status 0x150F, "Operation not
>> supported".
 
> That's right. The IrOBEX exchange library doesn't support the ExgConnect
> function. You don't need it though.

That's odd - I could swear that the docs said that using ExgConnect is
_required_ when sending multiple objects.   I guess you're providing the
additional clarification that the term "object" doesn't include databases.

> [...]

>> If I do that same thing, but before the ExgDisconnect I do multiple
>> ExgPut/ExgDBWrite calls (one per bundled database, exgSocket.count set
>> correctly before hand) in a loop controlled by
>> DmGetNextDatabaseByTypeCreator, that API call returns the first couple
>> databases just fine, but then begins returning the same database multiple
>> times, though I'm calling it with newSearch = false after the first call,
>> and onlyLatestVers set to true every time!
> 
> This is a classic "modifying a collection as you iterate over it" bug. The
> IrOBEX exchange library uses file streams to buffer outgoing objects. These
> are really just databases with a bit set to indicate that they represent
> files. The way the launcher gets around this problem is by building a list
> of bundled databases in advance.

I never would've figured that one out - thanks.  Can the docs be modified to
make this clear?  Without knowledge of OS internals, one would never think
that the collection was being modified in this case.

> You should probably include overlays, even if they don't have the bundle bit
> set. Overlays built with the Palm OS 3.5 SDK don't have the bundle bit set.

Okay, thanks.

Here's a beam receive question: how does an application that has told the
system that it is the launcher prevent itself from being stopped upon
receiving a beamed application?

One thing I tried experimentally was to register to receive data with a prc
extension, but the app never got a beam receive launch code.  Does the
built-in launcher explicitly set its creator ID as the target, and hence my
app never had a shot at the beam?  Does it use prc, pdb, pqa, etc. when
beaming, or does it use MIME types?  If it is the latter, then that might
explain things, since I didn't register for MIME types.

I don't want my app to be 4.0 only, so registering and then making the app
the default for data intended for the launcher isn't a complete solution.

Thanks,

Mark Peters


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to