
On 12/17/2010 11:56 AM, Matthias Bolte wrote:
Don't require dlopen, but link to ole32 and oleaut32 on Windows.
Don't expose g_pVBoxFuncs anymore. It was only used to get the version of the API. Make VBoxCGlueInit return the version instead. This simplifies the implementation of the MSCOM glue layer.
Get the VirtualBox version from the registry.
Add a dummy implementation of the nsIEventQueue to the MSCOM glue as there seems to be no direct equivalent with MSCOM. It might be implemented using the normal window message loop. This requires additional investigation. --- configure.ac | 15 +- po/POTFILES.in | 1 + src/Makefile.am | 9 +- src/vbox/vbox_MSCOMGlue.c | 649 ++++++++++++++++++++++++++++++++++++++++++++ src/vbox/vbox_MSCOMGlue.h | 33 +++ src/vbox/vbox_XPCOMCGlue.c | 46 ++-- src/vbox/vbox_XPCOMCGlue.h | 4 +- src/vbox/vbox_driver.c | 6 +- src/vbox/vbox_glue.c | 29 ++ src/vbox/vbox_glue.h | 32 +++ src/vbox/vbox_tmpl.c | 12 +- 11 files changed, 798 insertions(+), 38 deletions(-) create mode 100644 src/vbox/vbox_MSCOMGlue.c create mode 100644 src/vbox/vbox_MSCOMGlue.h create mode 100644 src/vbox/vbox_glue.c create mode 100644 src/vbox/vbox_glue.h
+ + case "$host" in + *-*-mingw* | *-*-msvc*) MSCOM_LIBS="-lole32 -loleaut32" ;; + *) MSCOM_LIBS= ;; + esac + AC_SUBST([MSCOM_LIBS])
Should we also modify the tail end of ./configure output to display what values were set in $MSCOM_LIBS, as is done for various other libraries? But that's a minor nit.
+ +PFNVBOXGETXPCOMCFUNCTIONS g_pfnGetFunctions = NULL; + +static unsigned long vboxVersion; +static IVirtualBox *vboxVirtualBox = NULL; +static ISession *vboxSession = NULL;
Is the explicit NULL initialization needed here, or are you okay relying on C-mandated 0-initialization of .bss variables? At any rate, ACK. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org