Gary,
The problem is right here, as I thought.
(if (setq FullPath (findfile (vla-get-Path XrefObj)))
(progn
(vla-Open dbxApp FullPath)
There is a couple of things that we could do. One that Joe Burke does is check to see if the draiwng is open by the one calling the routine, and then get it from there. Good way of doing it, or we could copy the file somewhere so that we can open it with ObjectDBX. I don't have time to code it right now, but if no one else does, then I will get around to it.