You could add some kind of preprocessor in so that all calls to 'sync' instead go to (let's say) a Sinc0() function of your own invention, and then do something along the lines of this:
When the user has chosen a VRML file, make a HTML file as a 'wrapper' for it, spawn a copy of Internet Explorer onto a cleverly hidden 'virtual desktop', (yes, XP has capability for more than one simultaenous desktop), and whenever your Sinc0() command is called you lock the buffer and use CopyMemory() (DOT is too slow) to copy into DB's backbuffer from what Internet Explorer is displaying, and use the keybd_event() function to send keypresses to Internet Explorer to control the object (maybe even JavaScript. Mm.)
-----
OR, you could stick to .X files.
How's my typing? Phone 0800-GO-TO-HELL