I got to thinking about the ChangeCD issue, and I came
up with the follwoing solution. Instead of trying to
eject the cd when you want to change it, change it when
it is ejected. I simply borrowed some of the code from
main.cc in the ChangeCD function there and placed it in
cd.cc, in the function that is called when the cd is
ejected. It prompts you for a new cd location. Hitting
cancel or just closing the dialog leaves the existing
image loaded. The downside of this is that you can't
add a cd if there wasn't one there when you started
(impossible before) and that you can't not have a cd
inserted. Neither of these I view as real problems.
Guest OS Usage:
Inside OS X drag the cd to the trash bin.
Inside PPC Linux, use the console eject command.
Other guest OSes, as long as they know how to eject the
CD tray, you're OK.