2010/12/17 Eric Blake <eblake(a)redhat.com>:
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.
Yes, good idea. I'll fold this in.
@@ -2430,6 +2430,11 @@ AC_MSG_NOTICE([ nl: $LIBNL_CFLAGS $LIBNL_LIBS])
else
AC_MSG_NOTICE([ nl: no])
fi
+if test "$with_vbox" = "yes" && test -n
"$MSCOM_LIBS" ; then
+AC_MSG_NOTICE([ mscom: $MSCOM_LIBS])
+else
+AC_MSG_NOTICE([ mscom: no])
+fi
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Test suite])
AC_MSG_NOTICE([])
> +
> +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?
Sure, no problem. I'll remove the NULL initialization.
At any rate, ACK.
Thanks, pushed.
Matthias