AnsweredAssumed Answered

vrf formular boxes

Question asked by VRFuser on Nov 14, 2004
> OK, but the point with the call was that WINDOWS sees VEE as the
> Callee, and VEE sees that a DLL was called,

Nanananana.

VEE calls Windows, Windows calls the callback which is in the library. The
library callback fires an event to VEE. VEE event handler calls Windows,
Windows returns to VEE, then the event handler returns to the library, the
library returns to Windows. In the BrowseCallback example, Windows then
returns to VEE and the "problem" appears.

In the BugDemo, Windows calls the callback for each of the objects in the
enumerated set. The difference is immaterial. Any callback instigated by a
call from VEE where the callback function fires an event to VEE which then
calls any external function will produce the same result.

The effect is observed when one attempts to "double call" out of VEE. VEE
figures any external function has to return before another can be called.
That assumption is incorrect.

The consumption of COM events presents a back door into VEE that doesn't use
the CFI, so the CFI error checking can't be trusted: you go out through the
out door, come in through the COM door, then go out through the out door
(again - at which point the door man is scratching his head) and back in,
then out through the COM door and come in through the in door. The door man
is hopelessly confused by now because he knows nothing about the COM door.

> Who moved the stack?

Nobody. That's the bug. VEE is detecting a non-existent problem. That's my
theory anyway. If Agilent thinks it's worth looking into it will be cured
eventually. It's not something that one is going to run into often, and it's
easily avoided anyway. You just don't call out of VEE in an event handler if
the event was triggered by a callback that was initiated by a call out of
VEE in the first place.

It's much more of an academic problem than a practical one.

It's all Alex's fault! If he didn't ask about moving the Browse window
probably nobody ever would have noticed
-SHAWN-


---
You are currently subscribed to vrf as: rsb@soco.agilent.com
To subscribe send a blank email to "join-vrf@it.lists.it.agilent.com".
To unsubscribe send a blank email to "leave-vrf@it.lists.it.agilent.com".
To send messages to this mailing list,  email "vrf@agilent.com". 
If you need help with the mailing list send a message to "owner-vrf@it.lists.it.agilent.com".

Outcomes