Index: /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 71630)
@@ -25,4 +25,5 @@
 VBOX_VIRTUALBOX_SRC := $(PATH_SUB_CURRENT)
 VBOX_VIRTUALBOX_OUT_DIR := $(PATH_TARGET)/VirtualBox/misc
+USES += qt5
 
 
@@ -36,4 +37,7 @@
 else
 PROGRAMS += VirtualBox
+ifdef VBOX_GUI_WITH_SHARED_LIBRARY
+DLLS += VBoxGlobal
+endif
 endif
 INSTALLS += VirtualBox.nls
@@ -96,5 +100,4 @@
 # VirtualBox - GUI Application.
 #
-USES += qt5
 VirtualBox_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBOXQTGUI,VBOXQTGUIEXE)
 VirtualBox_NAME = VirtualBox
@@ -119,4 +122,5 @@
 VirtualBox_DEFS.win       += UNICODE QT_DLL
 VirtualBox_DEFS           += \
+	$(if $(VBOX_GUI_WITH_SHARED_LIBRARY),VBOX_GUI_WITH_SHARED_LIBRARY) \
 	$(if $(VBOX_WITH_ADDITIONS_AUTOUPDATE_UI),VBOX_WITH_ADDITIONS_AUTOUPDATE_UI) \
 	$(if $(VBOX_WITH_UPDATE_REQUEST),VBOX_WITH_UPDATE_REQUEST) \
@@ -163,4 +167,59 @@
 ifdef VBOX_WITH_ICHAT_THEATER
  VirtualBox_DEFS.darwin   += VBOX_WITH_ICHAT_THEATER
+endif
+
+
+#
+# VirtualBox - GUI Global Shared Library.
+#
+VBoxGlobal_TEMPLATE = VBOXQTGUI
+VBoxGlobal_NAME = VBoxGlobal
+VBoxGlobal_DEFS         =
+VBoxGlobal_DEFS         += VBOX_GUI_LIBRARY
+VBoxGlobal_DEFS.darwin  = VBOX_WS_MAC
+VBoxGlobal_DEFS.freebsd = VBOX_WS_X11
+VBoxGlobal_DEFS.linux   = VBOX_WS_X11
+VBoxGlobal_DEFS.solaris = VBOX_WS_X11
+VBoxGlobal_DEFS.win     = VBOX_WS_WIN
+VBoxGlobal_DEFS.debug   = VBOX_CHECK_STATE # QT_FATAL_ASSERT
+#VBoxGlobal_DEFS.win     += UNICODE QT_DLL
+VBoxGlobal_DEFS         += \
+	$(if $(VBOX_GUI_WITH_SHARED_LIBRARY),VBOX_GUI_WITH_SHARED_LIBRARY) \
+	$(if $(VBOX_WITH_UPDATE_REQUEST),VBOX_WITH_UPDATE_REQUEST) \
+	$(if $(VBOX_WITH_AUDIO_OSS),VBOX_WITH_AUDIO_OSS) \
+	$(if $(VBOX_WITH_AUDIO_ALSA),VBOX_WITH_AUDIO_ALSA) \
+	$(if $(VBOX_WITH_AUDIO_PULSE),VBOX_WITH_AUDIO_PULSE) \
+	$(if $(VBOX_WITH_E1000),VBOX_WITH_E1000) \
+	$(if $(VBOX_WITH_NETFLT)$(eq $(KBUILD_TARGET),freebsd),VBOX_WITH_NETFLT) \
+	$(if $(VBOX_WITH_VDE),VBOX_WITH_VDE) \
+	$(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK) \
+	$(if $(VBOX_WITH_HARDENING),VBOXR3_HARDENED_DLL) \
+	$(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP) \
+	$(if $(VBOX_WITH_CRHGSMI),VBOX_WITH_CRHGSMI) \
+	$(if $(VBOX_WITH_VIRTIO),VBOX_WITH_VIRTIO) \
+	$(if $(VBOX_WITH_CROGL),VBOX_WITH_CROGL) \
+	$(if $(VBOX_GUI_WITH_PIDFILE),VBOX_GUI_WITH_PIDFILE) \
+	$(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE) \
+	$(if $(VBOX_WITH_SDS),VBOX_WITH_SDS,)
+ifdef VBOX_WITH_DEBUGGER_GUI
+ VBoxGlobal_DEFS        += VBOX_WITH_DEBUGGER_GUI
+ if "$(KBUILD_TYPE)" != "release"
+  VBoxGlobal_DEFS       += VBOX_WITH_DEBUGGER_GUI_MENU
+ endif
+endif
+ifdef VBOX_WITH_VIDEOHWACCEL
+ VBoxGlobal_DEFS        += VBOX_WITH_VIDEOHWACCEL VBOX_GUI_USE_QGL
+else ifdef VBOX_GUI_USE_QGL
+ VBoxGlobal_DEFS        += VBOX_GUI_USE_QGL
+endif
+ifdef VBOX_WITH_LIBCURL
+ VBoxGlobal_DEFS        += VBOX_GUI_WITH_NETWORK_MANAGER
+ VBOX_GUI_WITH_NETWORK_MANAGER := 1
+endif
+ifneq ($(KBUILD_TYPE),release)
+ VBoxGlobal_DEFS        += VBOX_GUI_WITH_EXTRADATA_MANAGER_UI
+endif
+ifdef VBOX_WITH_ICHAT_THEATER
+ VBoxGlobal_DEFS.darwin += VBOX_WITH_ICHAT_THEATER
 endif
 
@@ -222,4 +281,12 @@
 	$(VBOX_GRAPHICS_INCS)
 
+#
+# VirtualBox - GUI Global Shared Library.
+# Include folders.
+#
+VBoxGlobal_INCS = \
+	$(VBOX_GUI_INC_DIRS) \
+	$(VirtualBox_0_OUTDIR)/include
+
 
 #
@@ -301,4 +368,30 @@
 ifdef VBOX_WITH_CROGL
  VirtualBox_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB)
+endif
+
+# This one is global shared GUI library:
+ifdef VBOX_GUI_WITH_SHARED_LIBRARY
+ VirtualBox_LIBS += $(PATH_STAGE_DLL)/VBoxGlobal$(VBOX_SUFF_DLL)
+endif
+
+
+#
+# VirtualBox - GUI Global Shared Library.
+# Libraries.
+#
+
+# Xinerama library required for multi-monitor support:
+VBoxGlobal_LIBS.linux   += Xinerama
+VBoxGlobal_LIBS.solaris += Xinerama
+VBoxGlobal_LIBS.freebsd += Xinerama
+
+# VBox keyboard shared library for X11 hosts:
+if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
+ VBoxGlobal_LIBS += $(PATH_STAGE_DLL)/VBoxKeyboard$(VBOX_SUFF_DLL)
+endif
+
+# These are 2D Video Acceleration and 3D Acceleration related libs:
+ifdef VBOX_WITH_CROGL
+ VBoxGlobal_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB)
 endif
 
@@ -577,19 +670,79 @@
 
 #
+# VirtualBox - GUI Global Shared Library.
+# Headers containing definitions of classes that use the Q_OBJECT macro.
+#
+VBoxGlobal_QT_MOCHDRS = \
+	src/VBoxAboutDlg.h \
+	src/VBoxLicenseViewer.h \
+	src/extensions/QIArrowButtonPress.h \
+	src/extensions/QIArrowSplitter.h \
+	src/extensions/QIDialog.h \
+	src/extensions/QIDialogButtonBox.h \
+	src/extensions/QIFileDialog.h \
+	src/extensions/QILabel.h \
+	src/extensions/QIMainWindow.h \
+	src/extensions/QIMessageBox.h \
+	src/extensions/QIProcess.h \
+	src/extensions/QIRichTextLabel.h \
+	src/extensions/QIRichToolButton.h \
+	src/extensions/QISplitter.h \
+	src/extensions/QIStatusBarIndicator.h \
+	src/extensions/QIToolButton.h \
+	src/extensions/QIWidgetValidator.h \
+	src/extradata/UIExtraDataDefs.h \
+	src/extradata/UIExtraDataManager.h \
+	src/globals/UIActionPool.h \
+	src/globals/UIAnimationFramework.h \
+	src/globals/UIDesktopWidgetWatchdog.h \
+	src/globals/UIMainEventListener.h \
+	src/globals/UIMessageCenter.h \
+	src/globals/UIModalWindowManager.h \
+	src/globals/UIPopupCenter.h \
+	src/globals/UIShortcutPool.h \
+	src/globals/UIThreadPool.h \
+	src/globals/VBoxGlobal.h \
+	src/globals/VBoxUtils.h \
+	src/medium/UIMediumEnumerator.h \
+	src/runtime/UIActionPoolRuntime.h \
+	src/selector/UIActionPoolSelector.h \
+	src/selector/UIVirtualBoxEventHandler.h \
+	src/widgets/UIHostComboEditor.h \
+	src/widgets/UIPopupBox.h \
+	src/widgets/UIPopupPane.h \
+	src/widgets/UIPopupPaneButtonPane.h \
+	src/widgets/UIPopupPaneMessage.h \
+	src/widgets/UIPopupPaneDetails.h \
+	src/widgets/UIPopupStack.h \
+	src/widgets/UIPopupStackViewport.h \
+	src/widgets/UIProgressDialog.h \
+	src/widgets/UISpecialControls.h \
+	src/widgets/UIToolBar.h
+
+ifdef VBOX_GUI_WITH_NETWORK_MANAGER
+ VBoxGlobal_QT_MOCHDRS += \
+	src/net/UIDownloader.h \
+	src/net/UIDownloaderAdditions.h \
+	src/net/UIDownloaderExtensionPack.h \
+	src/net/UIDownloaderUserManual.h \
+	src/net/UINetworkCustomer.h \
+	src/net/UINetworkManager.h \
+	src/net/UINetworkManagerDialog.h \
+	src/net/UINetworkManagerIndicator.h \
+	src/net/UINetworkRequest.h \
+	src/net/UINetworkRequestWidget.h \
+	src/net/UINetworkReply.h \
+	src/net/UIUpdateManager.h
+endif
+
+
+#
 # VirtualBox - GUI Application.
 # Sources containing local definitions of classes that use the Q_OBJECT macro.
 #
 VirtualBox_QT_MOCSRCS = \
-	src/extensions/QIArrowSplitter.cpp \
-	src/extensions/QISplitter.cpp \
-	src/extradata/UIExtraDataManager.cpp \
-	src/globals/UIActionPool.cpp \
-	src/globals/UIMainEventListener.cpp \
-	src/globals/UIThreadPool.cpp \
 	src/logviewer/UIVMLogViewerFilterPanel.cpp \
 	src/logviewer/UIVMLogViewerSearchPanel.cpp \
 	src/logviewer/UIVMLogViewerTextEdit.cpp \
-	src/medium/UIMediumEnumerator.cpp \
-	src/runtime/UIActionPoolRuntime.cpp \
 	src/runtime/UIAddDiskEncryptionPasswordDialog.cpp \
 	src/runtime/UIConsoleEventHandler.cpp \
@@ -602,7 +755,5 @@
 	src/runtime/guestctrl/UIGuestFileTable.cpp \
 	src/runtime/guestctrl/UIHostFileTable.cpp \
-	src/selector/UIActionPoolSelector.cpp \
 	src/selector/UIDesktopPane.cpp \
-	src/selector/UIVirtualBoxEventHandler.cpp \
 	src/selector/UISnapshotDetailsWidget.cpp \
 	src/selector/UISnapshotPane.cpp \
@@ -616,25 +767,76 @@
 	src/widgets/UIMiniToolBar.cpp \
 	src/widgets/UIPortForwardingTable.cpp \
-	src/widgets/UIProgressDialog.cpp \
 	src/widgets/UITabBar.cpp \
 	src/wizards/importappliance/UIWizardImportApp.cpp
 
-ifdef VBOX_GUI_WITH_NETWORK_MANAGER
+VirtualBox_QT_MOCSRCS.darwin += \
+	src/platform/darwin/UIWindowMenuManager.cpp
+
+ifndef VBOX_GUI_WITH_SHARED_LIBRARY
  VirtualBox_QT_MOCSRCS += \
+	src/extensions/QISplitter.cpp \
+	src/extensions/QIArrowSplitter.cpp \
+	src/extradata/UIExtraDataManager.cpp \
+	src/globals/UIActionPool.cpp \
+	src/globals/UIMainEventListener.cpp \
+	src/globals/UIThreadPool.cpp \
+	src/medium/UIMediumEnumerator.cpp \
+	src/runtime/UIActionPoolRuntime.cpp \
+	src/selector/UIActionPoolSelector.cpp \
+	src/selector/UIVirtualBoxEventHandler.cpp \
+	src/widgets/UIProgressDialog.cpp
+
+ VirtualBox_QT_MOCSRCS.linux += \
+	src/globals/UIDesktopWidgetWatchdog.cpp
+ VirtualBox_QT_MOCSRCS.solaris += \
+	src/globals/UIDesktopWidgetWatchdog.cpp
+ VirtualBox_QT_MOCSRCS.freebsd += \
+	src/globals/UIDesktopWidgetWatchdog.cpp
+
+ ifdef VBOX_GUI_WITH_NETWORK_MANAGER
+  VirtualBox_QT_MOCSRCS += \
 	src/net/UINetworkReply.cpp \
 	src/net/UIUpdateManager.cpp
-endif
-
-VirtualBox_QT_MOCSRCS.darwin += \
-	src/platform/darwin/UIWindowMenuManager.cpp
-VirtualBox_QT_MOCSRCS.linux += \
+ endif
+
+ ifdef VBOX_WITH_XPCOM
+  VirtualBox_QT_MOCSRCS += \
+	src/globals/COMDefs.cpp
+ endif
+endif
+
+
+#
+# VirtualBox - GUI Global Shared Library.
+# Sources.
+#
+VBoxGlobal_QT_MOCSRCS = \
+	src/extensions/QISplitter.cpp \
+	src/extensions/QIArrowSplitter.cpp \
+	src/extradata/UIExtraDataManager.cpp \
+	src/globals/UIActionPool.cpp \
+	src/globals/UIMainEventListener.cpp \
+	src/globals/UIThreadPool.cpp \
+	src/medium/UIMediumEnumerator.cpp \
+	src/runtime/UIActionPoolRuntime.cpp \
+	src/selector/UIActionPoolSelector.cpp \
+	src/selector/UIVirtualBoxEventHandler.cpp \
+	src/widgets/UIProgressDialog.cpp
+
+VBoxGlobal_QT_MOCSRCS.linux += \
 	src/globals/UIDesktopWidgetWatchdog.cpp
-VirtualBox_QT_MOCSRCS.solaris += \
+VBoxGlobal_QT_MOCSRCS.solaris += \
 	src/globals/UIDesktopWidgetWatchdog.cpp
-VirtualBox_QT_MOCSRCS.freebsd += \
+VBoxGlobal_QT_MOCSRCS.freebsd += \
 	src/globals/UIDesktopWidgetWatchdog.cpp
 
+ifdef VBOX_GUI_WITH_NETWORK_MANAGER
+ VBoxGlobal_QT_MOCSRCS += \
+	src/net/UINetworkReply.cpp \
+	src/net/UIUpdateManager.cpp
+endif
+
 ifdef VBOX_WITH_XPCOM
- VirtualBox_QT_MOCSRCS += \
+ VBoxGlobal_QT_MOCSRCS += \
 	src/globals/COMDefs.cpp
 endif
@@ -647,58 +849,21 @@
 VirtualBox_SOURCES = \
 	src/main.cpp \
-	src/VBoxAboutDlg.cpp \
-	src/VBoxLicenseViewer.cpp \
 	src/UITakeSnapshotDialog.cpp \
-	src/converter/UIConverter.cpp \
-	src/converter/UIConverterBackendCOM.cpp \
-	src/converter/UIConverterBackendGlobal.cpp \
 	src/extensions/QIAdvancedSlider.cpp \
-	src/extensions/QIArrowButtonPress.cpp \
-	src/extensions/QIArrowButtonSwitch.cpp \
-	src/extensions/QIArrowSplitter.cpp \
 	src/extensions/QIComboBox.cpp \
-	src/extensions/QIDialog.cpp \
-	src/extensions/QIDialogButtonBox.cpp \
-	src/extensions/QIFileDialog.cpp \
 	src/extensions/QIFlowLayout.cpp \
-	src/extensions/QILabel.cpp \
 	src/extensions/QILabelSeparator.cpp \
 	src/extensions/QILineEdit.cpp \
 	src/extensions/QIMainDialog.cpp \
-	src/extensions/QIMainWindow.cpp \
 	src/extensions/QIManagerDialog.cpp \
 	src/extensions/QIMenu.cpp \
-	src/extensions/QIMessageBox.cpp \
-	src/extensions/QIProcess.cpp \
-	src/extensions/QIRichTextLabel.cpp \
-	src/extensions/QIRichToolButton.cpp \
-	src/extensions/QISplitter.cpp \
 	src/extensions/QIStatusBar.cpp \
-	src/extensions/QIStatusBarIndicator.cpp \
 	src/extensions/QITableView.cpp \
-	src/extensions/QIToolButton.cpp \
 	src/extensions/QITreeView.cpp \
 	src/extensions/QITreeWidget.cpp \
-	src/extensions/QIWidgetValidator.cpp \
 	src/extensions/graphics/QIGraphicsView.cpp \
 	src/extensions/graphics/QIGraphicsWidget.cpp \
-	src/extradata/UIExtraDataDefs.cpp \
-	src/extradata/UIExtraDataManager.cpp \
-	src/globals/UIDefs.cpp \
-	src/globals/COMDefs.cpp \
-	src/globals/UIActionPool.cpp \
-	src/globals/UIAnimationFramework.cpp \
-	src/globals/UIDesktopWidgetWatchdog.cpp \
-	src/globals/UIIconPool.cpp \
 	src/globals/UIImageTools.cpp \
-	src/globals/UIMainEventListener.cpp \
-	src/globals/UIMessageCenter.cpp \
-	src/globals/UIErrorString.cpp \
-	src/globals/UIModalWindowManager.cpp \
-	src/globals/UIPopupCenter.cpp \
-	src/globals/UIShortcutPool.cpp \
 	src/globals/UIStarter.cpp \
-	src/globals/UIThreadPool.cpp \
-	src/globals/VBoxGlobal.cpp \
 	src/hostnetwork/UIHostNetworkDetailsWidget.cpp \
 	src/hostnetwork/UIHostNetworkManager.cpp \
@@ -713,11 +878,7 @@
 	src/logviewer/UIVMLogViewerTextEdit.cpp \
 	src/logviewer/UIVMLogViewerWidget.cpp \
-	src/medium/UIMediumDefs.cpp \
-	src/medium/UIMedium.cpp \
 	src/medium/UIMediumDetailsWidget.cpp \
-	src/medium/UIMediumEnumerator.cpp \
 	src/medium/UIMediumManager.cpp \
 	src/objects/UIRichTextString.cpp \
-	src/runtime/UIActionPoolRuntime.cpp \
 	src/runtime/UIAddDiskEncryptionPasswordDialog.cpp \
 	src/runtime/UIConsoleEventHandler.cpp \
@@ -768,8 +929,6 @@
 	src/runtime/seamless/UIMachineViewSeamless.cpp \
 	src/runtime/seamless/UIMachineWindowSeamless.cpp \
-	src/selector/UIActionPoolSelector.cpp \
 	src/selector/UIDesktopPane.cpp \
 	src/selector/UIVMItem.cpp \
-	src/selector/UIVirtualBoxEventHandler.cpp \
 	src/selector/UISelectorWindow.cpp \
 	src/selector/UISnapshotDetailsWidget.cpp \
@@ -795,5 +954,4 @@
 	src/selector/graphics/details/UIGDetailsElements.cpp \
 	src/selector/graphics/details/UIGMachinePreview.cpp \
-	src/settings/UISettingsDefs.cpp \
 	src/settings/UISettingsDialog.cpp \
 	src/settings/UISettingsDialogSpecific.cpp \
@@ -828,22 +986,11 @@
 	src/widgets/UIFilePathSelector.cpp \
 	src/widgets/UIEmptyFilePathSelector.cpp \
-	src/widgets/UIHostComboEditor.cpp \
 	src/widgets/UIHotKeyEditor.cpp \
 	src/widgets/UILineTextEdit.cpp \
 	src/widgets/UIMediumSizeEditor.cpp \
 	src/widgets/UIMenuBar.cpp \
-	src/widgets/UIPopupBox.cpp \
-	src/widgets/UIPopupPane.cpp \
-	src/widgets/UIPopupPaneMessage.cpp \
-	src/widgets/UIPopupPaneDetails.cpp \
-	src/widgets/UIPopupPaneButtonPane.cpp \
-	src/widgets/UIPopupStack.cpp \
-	src/widgets/UIPopupStackViewport.cpp \
 	src/widgets/UIPortForwardingTable.cpp \
-	src/widgets/UIProgressDialog.cpp \
 	src/widgets/UISlidingWidget.cpp \
-	src/widgets/UISpecialControls.cpp \
 	src/widgets/UITabBar.cpp \
-	src/widgets/UIToolBar.cpp \
 	src/widgets/VBoxGuestRAMSlider.cpp \
 	src/widgets/VBoxMediaComboBox.cpp \
@@ -897,17 +1044,4 @@
 ifdef VBOX_GUI_WITH_NETWORK_MANAGER
  VirtualBox_SOURCES += \
-	src/net/UINetworkManager.cpp \
-	src/net/UINetworkManagerDialog.cpp \
-	src/net/UINetworkManagerIndicator.cpp \
-	src/net/UINetworkRequest.cpp \
-	src/net/UINetworkRequestWidget.cpp \
-	src/net/UINetworkReply.cpp \
-	src/net/UINetworkCustomer.cpp \
-	src/net/UIDownloader.cpp \
-	src/net/UIDownloaderAdditions.cpp \
-	src/net/UIDownloaderExtensionPack.cpp \
-	src/net/UIDownloaderUserManual.cpp \
-	src/net/UIUpdateDefs.cpp \
-	src/net/UIUpdateManager.cpp \
 	src/settings/global/UIGlobalSettingsProxy.cpp \
 	src/settings/global/UIGlobalSettingsUpdate.cpp
@@ -921,7 +1055,5 @@
 if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11
  VirtualBox_SOURCES += \
- 	src/platform/x11/UIDesktopServices_x11.cpp \
- 	src/platform/x11/VBoxX11Helper.cpp \
- 	src/platform/x11/XKeyboard-new.cpp
+ 	src/platform/x11/UIDesktopServices_x11.cpp
 endif
 
@@ -929,5 +1061,4 @@
 	src/platform/win/VirtualBox.rc \
 	src/platform/win/UIDesktopServices_win.cpp \
-	src/platform/win/VBoxUtils-win.cpp \
 	src/platform/win/WinKeyboard.cpp
 
@@ -968,4 +1099,177 @@
 endif
 
+ifndef VBOX_GUI_WITH_SHARED_LIBRARY
+ VirtualBox_SOURCES += \
+	src/VBoxAboutDlg.cpp \
+	src/VBoxLicenseViewer.cpp \
+	src/extensions/QIArrowButtonPress.cpp \
+	src/extensions/QIArrowButtonSwitch.cpp \
+	src/extensions/QIArrowSplitter.cpp \
+	src/extensions/QIDialog.cpp \
+	src/extensions/QIDialogButtonBox.cpp \
+	src/extensions/QIFileDialog.cpp \
+	src/extensions/QILabel.cpp \
+	src/extensions/QIMainWindow.cpp \
+	src/extensions/QIMessageBox.cpp \
+	src/extensions/QIProcess.cpp \
+	src/extensions/QIRichTextLabel.cpp \
+	src/extensions/QIRichToolButton.cpp \
+	src/extensions/QISplitter.cpp \
+	src/extensions/QIStatusBarIndicator.cpp \
+	src/extensions/QIToolButton.cpp \
+	src/extensions/QIWidgetValidator.cpp \
+	src/extradata/UIExtraDataDefs.cpp \
+	src/extradata/UIExtraDataManager.cpp \
+	src/converter/UIConverter.cpp \
+	src/converter/UIConverterBackendCOM.cpp \
+	src/converter/UIConverterBackendGlobal.cpp \
+	src/globals/COMDefs.cpp \
+	src/globals/UIActionPool.cpp \
+	src/globals/UIAnimationFramework.cpp \
+	src/globals/UIDefs.cpp \
+	src/globals/UIDesktopWidgetWatchdog.cpp \
+	src/globals/UIErrorString.cpp \
+	src/globals/UIIconPool.cpp \
+	src/globals/UIMainEventListener.cpp \
+	src/globals/UIMessageCenter.cpp \
+	src/globals/UIModalWindowManager.cpp \
+	src/globals/UIPopupCenter.cpp \
+	src/globals/UIShortcutPool.cpp \
+	src/globals/UIThreadPool.cpp \
+	src/globals/VBoxGlobal.cpp \
+	src/medium/UIMedium.cpp \
+	src/medium/UIMediumDefs.cpp \
+	src/medium/UIMediumEnumerator.cpp \
+	src/runtime/UIActionPoolRuntime.cpp \
+	src/selector/UIActionPoolSelector.cpp \
+	src/selector/UIVirtualBoxEventHandler.cpp \
+	src/settings/UISettingsDefs.cpp \
+	src/widgets/UIHostComboEditor.cpp \
+	src/widgets/UIPopupBox.cpp \
+	src/widgets/UIPopupPane.cpp \
+	src/widgets/UIPopupPaneButtonPane.cpp \
+	src/widgets/UIPopupPaneMessage.cpp \
+	src/widgets/UIPopupPaneDetails.cpp \
+	src/widgets/UIPopupStack.cpp \
+	src/widgets/UIPopupStackViewport.cpp \
+	src/widgets/UIProgressDialog.cpp \
+	src/widgets/UISpecialControls.cpp \
+	src/widgets/UIToolBar.cpp
+
+ ifdef VBOX_GUI_WITH_NETWORK_MANAGER
+  VirtualBox_SOURCES += \
+	src/net/UIDownloader.cpp \
+	src/net/UIDownloaderAdditions.cpp \
+	src/net/UIDownloaderExtensionPack.cpp \
+	src/net/UIDownloaderUserManual.cpp \
+	src/net/UINetworkCustomer.cpp \
+	src/net/UINetworkManager.cpp \
+	src/net/UINetworkManagerDialog.cpp \
+	src/net/UINetworkManagerIndicator.cpp \
+	src/net/UINetworkRequest.cpp \
+	src/net/UINetworkRequestWidget.cpp \
+	src/net/UINetworkReply.cpp \
+	src/net/UIUpdateDefs.cpp \
+	src/net/UIUpdateManager.cpp
+ endif
+
+ if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11
+  VirtualBox_SOURCES += \
+ 	src/platform/x11/VBoxX11Helper.cpp \
+ 	src/platform/x11/XKeyboard-new.cpp
+ endif
+
+ VirtualBox_SOURCES.win += \
+	src/platform/win/VBoxUtils-win.cpp
+endif
+
+
+#
+# VirtualBox - GUI Global Shared Library.
+# Sources.
+#
+VBoxGlobal_SOURCES = \
+	src/VBoxAboutDlg.cpp \
+	src/VBoxLicenseViewer.cpp \
+	src/extensions/QIArrowButtonPress.cpp \
+	src/extensions/QIArrowButtonSwitch.cpp \
+	src/extensions/QIArrowSplitter.cpp \
+	src/extensions/QIDialog.cpp \
+	src/extensions/QIDialogButtonBox.cpp \
+	src/extensions/QIFileDialog.cpp \
+	src/extensions/QILabel.cpp \
+	src/extensions/QIMainWindow.cpp \
+	src/extensions/QIMessageBox.cpp \
+	src/extensions/QIProcess.cpp \
+	src/extensions/QIRichTextLabel.cpp \
+	src/extensions/QIRichToolButton.cpp \
+	src/extensions/QISplitter.cpp \
+	src/extensions/QIStatusBarIndicator.cpp \
+	src/extensions/QIToolButton.cpp \
+	src/extensions/QIWidgetValidator.cpp \
+	src/extradata/UIExtraDataDefs.cpp \
+	src/extradata/UIExtraDataManager.cpp \
+	src/converter/UIConverter.cpp \
+	src/converter/UIConverterBackendCOM.cpp \
+	src/converter/UIConverterBackendGlobal.cpp \
+	src/globals/COMDefs.cpp \
+	src/globals/UIActionPool.cpp \
+	src/globals/UIAnimationFramework.cpp \
+	src/globals/UIDefs.cpp \
+	src/globals/UIDesktopWidgetWatchdog.cpp \
+	src/globals/UIErrorString.cpp \
+	src/globals/UIIconPool.cpp \
+	src/globals/UIMainEventListener.cpp \
+	src/globals/UIMessageCenter.cpp \
+	src/globals/UIModalWindowManager.cpp \
+	src/globals/UIPopupCenter.cpp \
+	src/globals/UIShortcutPool.cpp \
+	src/globals/UIThreadPool.cpp \
+	src/globals/VBoxGlobal.cpp \
+	src/medium/UIMedium.cpp \
+	src/medium/UIMediumDefs.cpp \
+	src/medium/UIMediumEnumerator.cpp \
+	src/runtime/UIActionPoolRuntime.cpp \
+	src/selector/UIActionPoolSelector.cpp \
+	src/selector/UIVirtualBoxEventHandler.cpp \
+	src/settings/UISettingsDefs.cpp \
+	src/widgets/UIHostComboEditor.cpp \
+	src/widgets/UIPopupBox.cpp \
+	src/widgets/UIPopupPane.cpp \
+	src/widgets/UIPopupPaneButtonPane.cpp \
+	src/widgets/UIPopupPaneMessage.cpp \
+	src/widgets/UIPopupPaneDetails.cpp \
+	src/widgets/UIPopupStack.cpp \
+	src/widgets/UIPopupStackViewport.cpp \
+	src/widgets/UIProgressDialog.cpp \
+	src/widgets/UISpecialControls.cpp \
+	src/widgets/UIToolBar.cpp
+
+ifdef VBOX_GUI_WITH_NETWORK_MANAGER
+ VBoxGlobal_SOURCES += \
+	src/net/UIDownloader.cpp \
+	src/net/UIDownloaderAdditions.cpp \
+	src/net/UIDownloaderExtensionPack.cpp \
+	src/net/UIDownloaderUserManual.cpp \
+	src/net/UINetworkCustomer.cpp \
+	src/net/UINetworkManager.cpp \
+	src/net/UINetworkManagerDialog.cpp \
+	src/net/UINetworkManagerIndicator.cpp \
+	src/net/UINetworkRequest.cpp \
+	src/net/UINetworkRequestWidget.cpp \
+	src/net/UINetworkReply.cpp \
+	src/net/UIUpdateDefs.cpp \
+	src/net/UIUpdateManager.cpp
+endif
+
+if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11
+ VBoxGlobal_SOURCES += \
+	src/platform/x11/VBoxX11Helper.cpp \
+	src/platform/x11/XKeyboard-new.cpp
+endif
+
+VBoxGlobal_SOURCES.win += \
+       src/platform/win/VBoxUtils-win.cpp
+
 
 #
@@ -1000,4 +1304,20 @@
 if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
  VirtualBox_QT_MODULES += OpenGL
+endif
+
+
+#
+# VirtualBox - GUI Global Shared Library.
+# The Qt modules we're using.
+# (The include directory and lib/framework for each module will be added by the Qt unit.)
+#
+VBoxGlobal_QT_MODULES = Core Gui Widgets
+VBoxGlobal_QT_MODULES.linux   += X11Extras
+VBoxGlobal_QT_MODULES.solaris += X11Extras
+VBoxGlobal_QT_MODULES.freebsd += X11Extras
+VBoxGlobal_QT_MODULES.darwin  += MacExtras
+VBoxGlobal_QT_MODULES.win     += WinExtras
+if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
+ VBoxGlobal_QT_MODULES += OpenGL
 endif
 
@@ -1061,4 +1381,10 @@
 #
 VirtualBox_SOURCES       += $(VirtualBox_0_OUTDIR)/include/COMWrappers.cpp
+
+#
+# VirtualBox - GUI Global Shared Library.
+# Build generated COM wrappers as part of app.
+#
+VBoxGlobal_SOURCES += $(VirtualBox_0_OUTDIR)/include/COMWrappers.cpp
 
 ## @todo kmk doesn't remake optional outputs when they are missing...
Index: /trunk/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.h	(revision 71630)
@@ -25,4 +25,5 @@
 #include "QIDialog.h"
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -33,5 +34,5 @@
 /** QIDialog extension
   * used to show the About-VirtualBox dialog. */
-class VBoxAboutDlg : public QIWithRetranslateUI2<QIDialog>
+class SHARED_LIBRARY_STUFF VBoxAboutDlg : public QIWithRetranslateUI2<QIDialog>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/VBoxLicenseViewer.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/VBoxLicenseViewer.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/VBoxLicenseViewer.h	(revision 71630)
@@ -24,4 +24,5 @@
 /* GUI includes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -30,5 +31,5 @@
 
 /** QDialog subclass used to show a user license under linux. */
-class VBoxLicenseViewer : public QIWithRetranslateUI2<QDialog>
+class SHARED_LIBRARY_STUFF VBoxLicenseViewer : public QIWithRetranslateUI2<QDialog>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverter.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverter.h	(revision 71630)
@@ -24,5 +24,5 @@
 /** High-level interface for different conversions between GUI classes.
   * @todo Replace singleton with static template interface. */
-class UIConverter
+class SHARED_LIBRARY_STUFF UIConverter
 {
 public:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h	(revision 71630)
@@ -27,4 +27,5 @@
 /* GUI includes: */
 #include "UIDefs.h"
+#include "UILibraryDefs.h"
 #include "UIExtraDataDefs.h"
 
@@ -72,179 +73,179 @@
 
 /* Declare global canConvert specializations: */
-template<> bool canConvert<SizeSuffix>();
-template<> bool canConvert<StorageSlot>();
-template<> bool canConvert<UIExtraDataMetaDefs::MenuType>();
-template<> bool canConvert<UIExtraDataMetaDefs::MenuApplicationActionType>();
-template<> bool canConvert<UIExtraDataMetaDefs::MenuHelpActionType>();
-template<> bool canConvert<UIExtraDataMetaDefs::RuntimeMenuMachineActionType>();
-template<> bool canConvert<UIExtraDataMetaDefs::RuntimeMenuViewActionType>();
-template<> bool canConvert<UIExtraDataMetaDefs::RuntimeMenuInputActionType>();
-template<> bool canConvert<UIExtraDataMetaDefs::RuntimeMenuDevicesActionType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<SizeSuffix>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<StorageSlot>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::MenuType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::MenuApplicationActionType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::MenuHelpActionType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::RuntimeMenuMachineActionType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::RuntimeMenuViewActionType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::RuntimeMenuInputActionType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::RuntimeMenuDevicesActionType>();
 #ifdef VBOX_WITH_DEBUGGER_GUI
-template<> bool canConvert<UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType>();
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 #ifdef VBOX_WS_MAC
-template<> bool canConvert<UIExtraDataMetaDefs::MenuWindowActionType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::MenuWindowActionType>();
 #endif /* VBOX_WS_MAC */
-template<> bool canConvert<ToolTypeMachine>();
-template<> bool canConvert<ToolTypeGlobal>();
-template<> bool canConvert<UIVisualStateType>();
-template<> bool canConvert<DetailsElementType>();
-template<> bool canConvert<PreviewUpdateIntervalType>();
-template<> bool canConvert<EventHandlingType>();
-template<> bool canConvert<GUIFeatureType>();
-template<> bool canConvert<GlobalSettingsPageType>();
-template<> bool canConvert<MachineSettingsPageType>();
-template<> bool canConvert<WizardType>();
-template<> bool canConvert<IndicatorType>();
-template<> bool canConvert<MachineCloseAction>();
-template<> bool canConvert<MouseCapturePolicy>();
-template<> bool canConvert<GuruMeditationHandlerType>();
-template<> bool canConvert<ScalingOptimizationType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<ToolTypeMachine>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<ToolTypeGlobal>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<UIVisualStateType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<DetailsElementType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<PreviewUpdateIntervalType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<EventHandlingType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<GUIFeatureType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<GlobalSettingsPageType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<MachineSettingsPageType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<WizardType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<IndicatorType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<MachineCloseAction>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<MouseCapturePolicy>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<GuruMeditationHandlerType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<ScalingOptimizationType>();
 #ifndef VBOX_WS_MAC
-template<> bool canConvert<MiniToolbarAlignment>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<MiniToolbarAlignment>();
 #endif
-template<> bool canConvert<InformationElementType>();
-template<> bool canConvert<MaxGuestResolutionPolicy>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<InformationElementType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<MaxGuestResolutionPolicy>();
 
 
 /* Declare COM canConvert specializations: */
-template<> bool canConvert<KMachineState>();
-template<> bool canConvert<KSessionState>();
-template<> bool canConvert<KParavirtProvider>();
-template<> bool canConvert<KDeviceType>();
-template<> bool canConvert<KClipboardMode>();
-template<> bool canConvert<KDnDMode>();
-template<> bool canConvert<KPointingHIDType>();
-template<> bool canConvert<KMediumType>();
-template<> bool canConvert<KMediumVariant>();
-template<> bool canConvert<KNetworkAttachmentType>();
-template<> bool canConvert<KNetworkAdapterType>();
-template<> bool canConvert<KNetworkAdapterPromiscModePolicy>();
-template<> bool canConvert<KPortMode>();
-template<> bool canConvert<KUSBControllerType>();
-template<> bool canConvert<KUSBDeviceState>();
-template<> bool canConvert<KUSBDeviceFilterAction>();
-template<> bool canConvert<KAudioDriverType>();
-template<> bool canConvert<KAudioControllerType>();
-template<> bool canConvert<KAuthType>();
-template<> bool canConvert<KStorageBus>();
-template<> bool canConvert<KStorageControllerType>();
-template<> bool canConvert<KChipsetType>();
-template<> bool canConvert<KNATProtocol>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KMachineState>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KSessionState>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KParavirtProvider>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KDeviceType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KClipboardMode>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KDnDMode>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KPointingHIDType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KMediumType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KMediumVariant>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KNetworkAttachmentType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KNetworkAdapterType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KNetworkAdapterPromiscModePolicy>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KPortMode>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KUSBControllerType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KUSBDeviceState>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KUSBDeviceFilterAction>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KAudioDriverType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KAudioControllerType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KAuthType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KStorageBus>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KStorageControllerType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KChipsetType>();
+template<> SHARED_LIBRARY_STUFF bool canConvert<KNATProtocol>();
 
 
 /* Declare global conversion specializations: */
-template<> QString toString(const SizeSuffix &sizeSuffix);
-template<> SizeSuffix fromString<SizeSuffix>(const QString &strSizeSuffix);
-template<> QString toString(const StorageSlot &storageSlot);
-template<> StorageSlot fromString<StorageSlot>(const QString &strStorageSlot);
-template<> QString toInternalString(const UIExtraDataMetaDefs::MenuType &menuType);
-template<> UIExtraDataMetaDefs::MenuType fromInternalString<UIExtraDataMetaDefs::MenuType>(const QString &strMenuType);
-template<> QString toInternalString(const UIExtraDataMetaDefs::MenuApplicationActionType &menuApplicationActionType);
-template<> UIExtraDataMetaDefs::MenuApplicationActionType fromInternalString<UIExtraDataMetaDefs::MenuApplicationActionType>(const QString &strMenuApplicationActionType);
-template<> QString toInternalString(const UIExtraDataMetaDefs::MenuHelpActionType &menuHelpActionType);
-template<> UIExtraDataMetaDefs::MenuHelpActionType fromInternalString<UIExtraDataMetaDefs::MenuHelpActionType>(const QString &strMenuHelpActionType);
-template<> QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuMachineActionType &runtimeMenuMachineActionType);
-template<> UIExtraDataMetaDefs::RuntimeMenuMachineActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuMachineActionType>(const QString &strRuntimeMenuMachineActionType);
-template<> QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuViewActionType &runtimeMenuViewActionType);
-template<> UIExtraDataMetaDefs::RuntimeMenuViewActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuViewActionType>(const QString &strRuntimeMenuViewActionType);
-template<> QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuInputActionType &runtimeMenuInputActionType);
-template<> UIExtraDataMetaDefs::RuntimeMenuInputActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuInputActionType>(const QString &strRuntimeMenuInputActionType);
-template<> QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuDevicesActionType &runtimeMenuDevicesActionType);
-template<> UIExtraDataMetaDefs::RuntimeMenuDevicesActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuDevicesActionType>(const QString &strRuntimeMenuDevicesActionType);
+template<> SHARED_LIBRARY_STUFF QString toString(const SizeSuffix &sizeSuffix);
+template<> SHARED_LIBRARY_STUFF SizeSuffix fromString<SizeSuffix>(const QString &strSizeSuffix);
+template<> SHARED_LIBRARY_STUFF QString toString(const StorageSlot &storageSlot);
+template<> SHARED_LIBRARY_STUFF StorageSlot fromString<StorageSlot>(const QString &strStorageSlot);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::MenuType &menuType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::MenuType fromInternalString<UIExtraDataMetaDefs::MenuType>(const QString &strMenuType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::MenuApplicationActionType &menuApplicationActionType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::MenuApplicationActionType fromInternalString<UIExtraDataMetaDefs::MenuApplicationActionType>(const QString &strMenuApplicationActionType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::MenuHelpActionType &menuHelpActionType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::MenuHelpActionType fromInternalString<UIExtraDataMetaDefs::MenuHelpActionType>(const QString &strMenuHelpActionType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuMachineActionType &runtimeMenuMachineActionType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::RuntimeMenuMachineActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuMachineActionType>(const QString &strRuntimeMenuMachineActionType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuViewActionType &runtimeMenuViewActionType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::RuntimeMenuViewActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuViewActionType>(const QString &strRuntimeMenuViewActionType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuInputActionType &runtimeMenuInputActionType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::RuntimeMenuInputActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuInputActionType>(const QString &strRuntimeMenuInputActionType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuDevicesActionType &runtimeMenuDevicesActionType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::RuntimeMenuDevicesActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuDevicesActionType>(const QString &strRuntimeMenuDevicesActionType);
 #ifdef VBOX_WITH_DEBUGGER_GUI
-template<> QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType &runtimeMenuDebuggerActionType);
-template<> UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType>(const QString &strRuntimeMenuDebuggerActionType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType &runtimeMenuDebuggerActionType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType fromInternalString<UIExtraDataMetaDefs::RuntimeMenuDebuggerActionType>(const QString &strRuntimeMenuDebuggerActionType);
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 #ifdef VBOX_WS_MAC
-template<> QString toInternalString(const UIExtraDataMetaDefs::MenuWindowActionType &menuWindowActionType);
-template<> UIExtraDataMetaDefs::MenuWindowActionType fromInternalString<UIExtraDataMetaDefs::MenuWindowActionType>(const QString &strMenuWindowActionType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::MenuWindowActionType &menuWindowActionType);
+template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::MenuWindowActionType fromInternalString<UIExtraDataMetaDefs::MenuWindowActionType>(const QString &strMenuWindowActionType);
 #endif /* VBOX_WS_MAC */
-template<> QString toInternalString(const ToolTypeMachine &enmToolTypeMachine);
-template<> ToolTypeMachine fromInternalString<ToolTypeMachine>(const QString &strToolTypeMachine);
-template<> QString toInternalString(const ToolTypeGlobal &enmToolTypeGlobal);
-template<> ToolTypeGlobal fromInternalString<ToolTypeGlobal>(const QString &strToolTypeGlobal);
-template<> QString toInternalString(const UIVisualStateType &visualStateType);
-template<> UIVisualStateType fromInternalString<UIVisualStateType>(const QString &strVisualStateType);
-template<> QString toString(const DetailsElementType &detailsElementType);
-template<> DetailsElementType fromString<DetailsElementType>(const QString &strDetailsElementType);
-template<> QString toInternalString(const DetailsElementType &detailsElementType);
-template<> DetailsElementType fromInternalString<DetailsElementType>(const QString &strDetailsElementType);
-template<> QIcon toIcon(const DetailsElementType &detailsElementType);
-template<> QString toInternalString(const PreviewUpdateIntervalType &previewUpdateIntervalType);
-template<> PreviewUpdateIntervalType fromInternalString<PreviewUpdateIntervalType>(const QString &strPreviewUpdateIntervalType);
-template<> int toInternalInteger(const PreviewUpdateIntervalType &previewUpdateIntervalType);
-template<> PreviewUpdateIntervalType fromInternalInteger<PreviewUpdateIntervalType>(const int &iPreviewUpdateIntervalType);
-template<> EventHandlingType fromInternalString<EventHandlingType>(const QString &strEventHandlingType);
-template<> QString toInternalString(const GUIFeatureType &guiFeatureType);
-template<> GUIFeatureType fromInternalString<GUIFeatureType>(const QString &strGuiFeatureType);
-template<> QString toInternalString(const GlobalSettingsPageType &globalSettingsPageType);
-template<> GlobalSettingsPageType fromInternalString<GlobalSettingsPageType>(const QString &strGlobalSettingsPageType);
-template<> QPixmap toWarningPixmap(const GlobalSettingsPageType &globalSettingsPageType);
-template<> QString toInternalString(const MachineSettingsPageType &machineSettingsPageType);
-template<> MachineSettingsPageType fromInternalString<MachineSettingsPageType>(const QString &strMachineSettingsPageType);
-template<> QPixmap toWarningPixmap(const MachineSettingsPageType &machineSettingsPageType);
-template<> QString toInternalString(const WizardType &wizardType);
-template<> WizardType fromInternalString<WizardType>(const QString &strWizardType);
-template<> QString toInternalString(const IndicatorType &indicatorType);
-template<> IndicatorType fromInternalString<IndicatorType>(const QString &strIndicatorType);
-template<> QString toString(const IndicatorType &indicatorType);
-template<> QIcon toIcon(const IndicatorType &indicatorType);
-template<> QString toInternalString(const MachineCloseAction &machineCloseAction);
-template<> MachineCloseAction fromInternalString<MachineCloseAction>(const QString &strMachineCloseAction);
-template<> QString toInternalString(const MouseCapturePolicy &mouseCapturePolicy);
-template<> MouseCapturePolicy fromInternalString<MouseCapturePolicy>(const QString &strMouseCapturePolicy);
-template<> QString toInternalString(const GuruMeditationHandlerType &guruMeditationHandlerType);
-template<> GuruMeditationHandlerType fromInternalString<GuruMeditationHandlerType>(const QString &strGuruMeditationHandlerType);
-template<> QString toInternalString(const ScalingOptimizationType &optimizationType);
-template<> ScalingOptimizationType fromInternalString<ScalingOptimizationType>(const QString &strOptimizationType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const ToolTypeMachine &enmToolTypeMachine);
+template<> SHARED_LIBRARY_STUFF ToolTypeMachine fromInternalString<ToolTypeMachine>(const QString &strToolTypeMachine);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const ToolTypeGlobal &enmToolTypeGlobal);
+template<> SHARED_LIBRARY_STUFF ToolTypeGlobal fromInternalString<ToolTypeGlobal>(const QString &strToolTypeGlobal);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIVisualStateType &visualStateType);
+template<> SHARED_LIBRARY_STUFF UIVisualStateType fromInternalString<UIVisualStateType>(const QString &strVisualStateType);
+template<> SHARED_LIBRARY_STUFF QString toString(const DetailsElementType &detailsElementType);
+template<> SHARED_LIBRARY_STUFF DetailsElementType fromString<DetailsElementType>(const QString &strDetailsElementType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const DetailsElementType &detailsElementType);
+template<> SHARED_LIBRARY_STUFF DetailsElementType fromInternalString<DetailsElementType>(const QString &strDetailsElementType);
+template<> SHARED_LIBRARY_STUFF QIcon toIcon(const DetailsElementType &detailsElementType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const PreviewUpdateIntervalType &previewUpdateIntervalType);
+template<> SHARED_LIBRARY_STUFF PreviewUpdateIntervalType fromInternalString<PreviewUpdateIntervalType>(const QString &strPreviewUpdateIntervalType);
+template<> SHARED_LIBRARY_STUFF int toInternalInteger(const PreviewUpdateIntervalType &previewUpdateIntervalType);
+template<> SHARED_LIBRARY_STUFF PreviewUpdateIntervalType fromInternalInteger<PreviewUpdateIntervalType>(const int &iPreviewUpdateIntervalType);
+template<> SHARED_LIBRARY_STUFF EventHandlingType fromInternalString<EventHandlingType>(const QString &strEventHandlingType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const GUIFeatureType &guiFeatureType);
+template<> SHARED_LIBRARY_STUFF GUIFeatureType fromInternalString<GUIFeatureType>(const QString &strGuiFeatureType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const GlobalSettingsPageType &globalSettingsPageType);
+template<> SHARED_LIBRARY_STUFF GlobalSettingsPageType fromInternalString<GlobalSettingsPageType>(const QString &strGlobalSettingsPageType);
+template<> SHARED_LIBRARY_STUFF QPixmap toWarningPixmap(const GlobalSettingsPageType &globalSettingsPageType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const MachineSettingsPageType &machineSettingsPageType);
+template<> SHARED_LIBRARY_STUFF MachineSettingsPageType fromInternalString<MachineSettingsPageType>(const QString &strMachineSettingsPageType);
+template<> SHARED_LIBRARY_STUFF QPixmap toWarningPixmap(const MachineSettingsPageType &machineSettingsPageType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const WizardType &wizardType);
+template<> SHARED_LIBRARY_STUFF WizardType fromInternalString<WizardType>(const QString &strWizardType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const IndicatorType &indicatorType);
+template<> SHARED_LIBRARY_STUFF IndicatorType fromInternalString<IndicatorType>(const QString &strIndicatorType);
+template<> SHARED_LIBRARY_STUFF QString toString(const IndicatorType &indicatorType);
+template<> SHARED_LIBRARY_STUFF QIcon toIcon(const IndicatorType &indicatorType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const MachineCloseAction &machineCloseAction);
+template<> SHARED_LIBRARY_STUFF MachineCloseAction fromInternalString<MachineCloseAction>(const QString &strMachineCloseAction);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const MouseCapturePolicy &mouseCapturePolicy);
+template<> SHARED_LIBRARY_STUFF MouseCapturePolicy fromInternalString<MouseCapturePolicy>(const QString &strMouseCapturePolicy);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const GuruMeditationHandlerType &guruMeditationHandlerType);
+template<> SHARED_LIBRARY_STUFF GuruMeditationHandlerType fromInternalString<GuruMeditationHandlerType>(const QString &strGuruMeditationHandlerType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const ScalingOptimizationType &optimizationType);
+template<> SHARED_LIBRARY_STUFF ScalingOptimizationType fromInternalString<ScalingOptimizationType>(const QString &strOptimizationType);
 #ifndef VBOX_WS_MAC
-template<> QString toInternalString(const MiniToolbarAlignment &miniToolbarAlignment);
-template<> MiniToolbarAlignment fromInternalString<MiniToolbarAlignment>(const QString &strMiniToolbarAlignment);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const MiniToolbarAlignment &miniToolbarAlignment);
+template<> SHARED_LIBRARY_STUFF MiniToolbarAlignment fromInternalString<MiniToolbarAlignment>(const QString &strMiniToolbarAlignment);
 #endif
-template<> QString toString(const InformationElementType &informationElementType);
-template<> InformationElementType fromString<InformationElementType>(const QString &strInformationElementType);
-template<> QString toInternalString(const InformationElementType &informationElementType);
-template<> InformationElementType fromInternalString<InformationElementType>(const QString &strInformationElementType);
-template<> QIcon toIcon(const InformationElementType &informationElementType);
-template<> QString toInternalString(const MaxGuestResolutionPolicy &enmMaxGuestResolutionPolicy);
-template<> MaxGuestResolutionPolicy fromInternalString<MaxGuestResolutionPolicy>(const QString &strMaxGuestResolutionPolicy);
+template<> SHARED_LIBRARY_STUFF QString toString(const InformationElementType &informationElementType);
+template<> SHARED_LIBRARY_STUFF InformationElementType fromString<InformationElementType>(const QString &strInformationElementType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const InformationElementType &informationElementType);
+template<> SHARED_LIBRARY_STUFF InformationElementType fromInternalString<InformationElementType>(const QString &strInformationElementType);
+template<> SHARED_LIBRARY_STUFF QIcon toIcon(const InformationElementType &informationElementType);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const MaxGuestResolutionPolicy &enmMaxGuestResolutionPolicy);
+template<> SHARED_LIBRARY_STUFF MaxGuestResolutionPolicy fromInternalString<MaxGuestResolutionPolicy>(const QString &strMaxGuestResolutionPolicy);
 
 
 /* Declare COM conversion specializations: */
-template<> QColor toColor(const KMachineState &state);
-template<> QIcon toIcon(const KMachineState &state);
-template<> QString toString(const KMachineState &state);
-template<> QString toString(const KSessionState &state);
-template<> QString toString(const KParavirtProvider &type);
-template<> QString toString(const KDeviceType &type);
-template<> QString toString(const KClipboardMode &mode);
-template<> QString toString(const KDnDMode &mode);
-template<> QString toString(const KPointingHIDType &type);
-template<> QString toString(const KMediumType &type);
-template<> QString toString(const KMediumVariant &variant);
-template<> QString toString(const KNetworkAttachmentType &type);
-template<> QString toString(const KNetworkAdapterType &type);
-template<> QString toString(const KNetworkAdapterPromiscModePolicy &policy);
-template<> QString toString(const KPortMode &mode);
-template<> QString toString(const KUSBControllerType &type);
-template<> QString toString(const KUSBDeviceState &state);
-template<> QString toString(const KUSBDeviceFilterAction &action);
-template<> QString toString(const KAudioDriverType &type);
-template<> QString toString(const KAudioControllerType &type);
-template<> QString toString(const KAuthType &type);
-template<> QString toString(const KStorageBus &bus);
-template<> QString toString(const KStorageControllerType &type);
-template<> QString toString(const KChipsetType &type);
-template<> QString toString(const KNATProtocol &protocol);
-template<> QString toInternalString(const KNATProtocol &protocol);
-template<> KNATProtocol fromInternalString<KNATProtocol>(const QString &strProtocol);
-template<> KPortMode fromString<KPortMode>(const QString &strMode);
-template<> KUSBDeviceFilterAction fromString<KUSBDeviceFilterAction>(const QString &strAction);
-template<> KAudioDriverType fromString<KAudioDriverType>(const QString &strType);
-template<> KAudioControllerType fromString<KAudioControllerType>(const QString &strType);
-template<> KAuthType fromString<KAuthType>(const QString &strType);
-template<> KStorageControllerType fromString<KStorageControllerType>(const QString &strType);
+template<> SHARED_LIBRARY_STUFF QColor toColor(const KMachineState &state);
+template<> SHARED_LIBRARY_STUFF QIcon toIcon(const KMachineState &state);
+template<> SHARED_LIBRARY_STUFF QString toString(const KMachineState &state);
+template<> SHARED_LIBRARY_STUFF QString toString(const KSessionState &state);
+template<> SHARED_LIBRARY_STUFF QString toString(const KParavirtProvider &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KDeviceType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KClipboardMode &mode);
+template<> SHARED_LIBRARY_STUFF QString toString(const KDnDMode &mode);
+template<> SHARED_LIBRARY_STUFF QString toString(const KPointingHIDType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KMediumType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KMediumVariant &variant);
+template<> SHARED_LIBRARY_STUFF QString toString(const KNetworkAttachmentType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KNetworkAdapterType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KNetworkAdapterPromiscModePolicy &policy);
+template<> SHARED_LIBRARY_STUFF QString toString(const KPortMode &mode);
+template<> SHARED_LIBRARY_STUFF QString toString(const KUSBControllerType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KUSBDeviceState &state);
+template<> SHARED_LIBRARY_STUFF QString toString(const KUSBDeviceFilterAction &action);
+template<> SHARED_LIBRARY_STUFF QString toString(const KAudioDriverType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KAudioControllerType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KAuthType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KStorageBus &bus);
+template<> SHARED_LIBRARY_STUFF QString toString(const KStorageControllerType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KChipsetType &type);
+template<> SHARED_LIBRARY_STUFF QString toString(const KNATProtocol &protocol);
+template<> SHARED_LIBRARY_STUFF QString toInternalString(const KNATProtocol &protocol);
+template<> SHARED_LIBRARY_STUFF KNATProtocol fromInternalString<KNATProtocol>(const QString &strProtocol);
+template<> SHARED_LIBRARY_STUFF KPortMode fromString<KPortMode>(const QString &strMode);
+template<> SHARED_LIBRARY_STUFF KUSBDeviceFilterAction fromString<KUSBDeviceFilterAction>(const QString &strAction);
+template<> SHARED_LIBRARY_STUFF KAudioDriverType fromString<KAudioDriverType>(const QString &strType);
+template<> SHARED_LIBRARY_STUFF KAudioControllerType fromString<KAudioControllerType>(const QString &strType);
+template<> SHARED_LIBRARY_STUFF KAuthType fromString<KAuthType>(const QString &strType);
+template<> SHARED_LIBRARY_STUFF KStorageControllerType fromString<KStorageControllerType>(const QString &strType);
 
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonPress.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonPress.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonPress.h	(revision 71630)
@@ -22,9 +22,10 @@
 #include "QIRichToolButton.h"
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /** QIRichToolButton extension
   * representing arrow tool-button with text-label,
   * can be used as back/next buttons in various places. */
-class QIArrowButtonPress : public QIWithRetranslateUI<QIRichToolButton>
+class SHARED_LIBRARY_STUFF QIArrowButtonPress : public QIWithRetranslateUI<QIRichToolButton>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonSwitch.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonSwitch.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonSwitch.h	(revision 71630)
@@ -24,9 +24,10 @@
 /* GUI includes: */
 #include "QIRichToolButton.h"
+#include "UILibraryDefs.h"
 
 /** QIRichToolButton extension
   * representing arrow tool-button with text-label,
   * can be used as collaps/expand switch in various places. */
-class QIArrowButtonSwitch : public QIRichToolButton
+class SHARED_LIBRARY_STUFF QIArrowButtonSwitch : public QIRichToolButton
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowSplitter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowSplitter.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowSplitter.h	(revision 71630)
@@ -24,4 +24,5 @@
 /* GUI includes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -37,5 +38,5 @@
 /** QWidget extension
   * allowing to toggle visibility for any other child widget. */
-class QIArrowSplitter : public QIWithRetranslateUI<QWidget>
+class SHARED_LIBRARY_STUFF QIArrowSplitter : public QIWithRetranslateUI<QWidget>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIDialog.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIDialog.h	(revision 71630)
@@ -23,4 +23,7 @@
 #include <QPointer>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QEventLoop;
@@ -28,5 +31,5 @@
 /** QDialog extension providing the GUI with
   * the advanced capabilities like delayed show. */
-class QIDialog : public QDialog
+class SHARED_LIBRARY_STUFF QIDialog : public QDialog
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIDialogButtonBox.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIDialogButtonBox.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIDialogButtonBox.h	(revision 71630)
@@ -25,4 +25,5 @@
 /* GUI includes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -32,5 +33,5 @@
 
 /** QDialogButtonBox subclass extending standard functionality. */
-class QIDialogButtonBox : public QIWithRetranslateUI<QDialogButtonBox>
+class SHARED_LIBRARY_STUFF QIDialogButtonBox : public QIWithRetranslateUI<QDialogButtonBox>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIFileDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIFileDialog.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIFileDialog.h	(revision 71630)
@@ -22,6 +22,9 @@
 #include <QFileDialog>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /** QFileDialog subclass simplifying access to it's static stuff. */
-class QIFileDialog : public QFileDialog
+class SHARED_LIBRARY_STUFF QIFileDialog : public QFileDialog
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QILabel.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QILabel.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QILabel.h	(revision 71630)
@@ -26,6 +26,9 @@
 #include <QLabel>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /** QLabel subclass extending it with advanced functionality. */
-class QILabel : public QLabel
+class SHARED_LIBRARY_STUFF QILabel : public QLabel
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.h	(revision 71630)
@@ -22,7 +22,10 @@
 #include <QMainWindow>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /** QMainWindow extension providing GUI
   * with the extended geometry management support. */
-class QIMainWindow : public QMainWindow
+class SHARED_LIBRARY_STUFF QIMainWindow : public QMainWindow
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMessageBox.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMessageBox.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMessageBox.h	(revision 71630)
@@ -24,4 +24,5 @@
 /* GUI includes: */
 #include "QIDialog.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -78,5 +79,5 @@
 
 /** QIDialog extension representing GUI alerts. */
-class QIMessageBox : public QIDialog
+class SHARED_LIBRARY_STUFF QIMessageBox : public QIDialog
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIProcess.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIProcess.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIProcess.h	(revision 71630)
@@ -22,6 +22,9 @@
 #include <QProcess>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /** QProcess extension for VBox GUI needs. */
-class QIProcess : public QProcess
+class SHARED_LIBRARY_STUFF QIProcess : public QProcess
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIRichTextLabel.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIRichTextLabel.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIRichTextLabel.h	(revision 71630)
@@ -22,7 +22,10 @@
 #include <QTextEdit>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /** QLabel analog to reflect rich-text,
  ** based on private QTextEdit functionality. */
-class QIRichTextLabel : public QWidget
+class SHARED_LIBRARY_STUFF QIRichTextLabel : public QWidget
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIRichToolButton.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIRichToolButton.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIRichToolButton.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QWidget>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QLabel;
@@ -29,5 +32,5 @@
 /** QWidget extension
   * representing tool-button with separate text-label. */
-class QIRichToolButton : public QWidget
+class SHARED_LIBRARY_STUFF QIRichToolButton : public QWidget
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QISplitter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QISplitter.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QISplitter.h	(revision 71630)
@@ -22,9 +22,12 @@
 #include <QSplitter>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QSplitterHandle;
 
 /** QSplitter subclass with extended functionality. */
-class QISplitter : public QSplitter
+class SHARED_LIBRARY_STUFF QISplitter : public QSplitter
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIStatusBarIndicator.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIStatusBarIndicator.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIStatusBarIndicator.h	(revision 71630)
@@ -24,4 +24,7 @@
 #include <QWidget>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QIcon;
@@ -33,5 +36,5 @@
 
 /** QWidget extension used as status-bar indicator. */
-class QIStatusBarIndicator : public QWidget
+class SHARED_LIBRARY_STUFF QIStatusBarIndicator : public QWidget
 {
     Q_OBJECT;
@@ -70,5 +73,5 @@
 
 /** QIStatusBarIndicator extension used as status-bar state indicator. */
-class QIStateStatusBarIndicator : public QIStatusBarIndicator
+class SHARED_LIBRARY_STUFF QIStateStatusBarIndicator : public QIStatusBarIndicator
 {
     Q_OBJECT;
@@ -112,5 +115,5 @@
 
 /** QIStatusBarIndicator extension used as status-bar state indicator. */
-class QITextStatusBarIndicator : public QIStatusBarIndicator
+class SHARED_LIBRARY_STUFF QITextStatusBarIndicator : public QIStatusBarIndicator
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIToolButton.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIToolButton.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIToolButton.h	(revision 71630)
@@ -22,6 +22,9 @@
 #include <QToolButton>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /** QToolButton subclass with extended functionality. */
-class QIToolButton : public QToolButton
+class SHARED_LIBRARY_STUFF QIToolButton : public QToolButton
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.h	(revision 71630)
@@ -24,4 +24,7 @@
 #include <QValidator>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QPixmap;
@@ -32,5 +35,5 @@
 /** QObject extension,
   * providing passed QObject with validation routine. */
-class QObjectValidator : public QObject
+class SHARED_LIBRARY_STUFF QObjectValidator : public QObject
 {
     Q_OBJECT;
@@ -71,5 +74,5 @@
 /** QObject extension,
   * which can group various QObjectValidator instances to operate on. */
-class QObjectValidatorGroup : public QObject
+class SHARED_LIBRARY_STUFF QObjectValidatorGroup : public QObject
 {
     Q_OBJECT;
@@ -115,5 +118,5 @@
 
 /** Page validator prototype. */
-class UIPageValidator : public QObject
+class SHARED_LIBRARY_STUFF UIPageValidator : public QObject
 {
     Q_OBJECT;
@@ -176,5 +179,5 @@
 /** QValidator extension,
   * for long number validations. */
-class QIULongValidator : public QValidator
+class SHARED_LIBRARY_STUFF QIULongValidator : public QValidator
 {
 public:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 71630)
@@ -23,4 +23,7 @@
 #include <QObject>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Other VBox includes: */
 #include <iprt/cdefs.h>
@@ -33,5 +36,5 @@
       * @{ */
         /** Holds event handling type. */
-        extern const char *GUI_EventHandlingType;
+        SHARED_LIBRARY_STUFF extern const char *GUI_EventHandlingType;
     /** @} */
 
@@ -39,10 +42,10 @@
       * @{ */
         /** Holds the list of supressed messages for the Message/Popup center frameworks. */
-        extern const char *GUI_SuppressMessages;
+        SHARED_LIBRARY_STUFF extern const char *GUI_SuppressMessages;
         /** Holds the list of messages for the Message/Popup center frameworks with inverted check-box state. */
-        extern const char *GUI_InvertMessageOption;
+        SHARED_LIBRARY_STUFF extern const char *GUI_InvertMessageOption;
 #if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG)
         /** Holds version for which user wants to prevent BETA build warning. */
-        extern const char *GUI_PreventBetaWarning;
+        SHARED_LIBRARY_STUFF extern const char *GUI_PreventBetaWarning;
 #endif
     /** @} */
@@ -52,9 +55,9 @@
       * @{ */
         /** Holds whether Application Update functionality enabled. */
-        extern const char *GUI_PreventApplicationUpdate;
+        SHARED_LIBRARY_STUFF extern const char *GUI_PreventApplicationUpdate;
         /** Holds Application Update data. */
-        extern const char *GUI_UpdateDate;
+        SHARED_LIBRARY_STUFF extern const char *GUI_UpdateDate;
         /** Holds Application Update check counter. */
-        extern const char *GUI_UpdateCheckCount;
+        SHARED_LIBRARY_STUFF extern const char *GUI_UpdateCheckCount;
     /** @} */
 #endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
@@ -63,5 +66,5 @@
       * @{ */
         /** Holds whether legacy progress handling method is requested. */
-        extern const char *GUI_Progress_LegacyMode;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Progress_LegacyMode;
     /** @} */
 
@@ -69,9 +72,9 @@
       * @{ */
         /** Holds GUI feature list. */
-        extern const char *GUI_Customizations;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Customizations;
         /** Holds restricted Global Settings pages. */
-        extern const char *GUI_RestrictedGlobalSettingsPages;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedGlobalSettingsPages;
         /** Holds restricted Machine Settings pages. */
-        extern const char *GUI_RestrictedMachineSettingsPages;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedMachineSettingsPages;
     /** @} */
 
@@ -79,5 +82,5 @@
       * @{ */
         /** Holds whether host screen-saver should be disabled. */
-        extern const char *GUI_HostScreenSaverDisabled;
+        SHARED_LIBRARY_STUFF extern const char *GUI_HostScreenSaverDisabled;
     /** @} */
 
@@ -85,5 +88,5 @@
       * @{ */
         /** Holds GUI language ID. */
-        extern const char *GUI_LanguageID;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LanguageID;
     /** @} */
 
@@ -91,7 +94,7 @@
       * @{ */
         /** Holds maximum guest-screen resolution policy/value. */
-        extern const char *GUI_MaxGuestResolution;
+        SHARED_LIBRARY_STUFF extern const char *GUI_MaxGuestResolution;
         /** Holds whether hovered machine-window should be activated. */
-        extern const char *GUI_ActivateHoveredMachineWindow;
+        SHARED_LIBRARY_STUFF extern const char *GUI_ActivateHoveredMachineWindow;
     /** @} */
 
@@ -99,13 +102,13 @@
       * @{ */
         /** Holds Selector UI shortcut overrides. */
-        extern const char *GUI_Input_SelectorShortcuts;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Input_SelectorShortcuts;
         /** Holds Runtime UI shortcut overrides. */
-        extern const char *GUI_Input_MachineShortcuts;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Input_MachineShortcuts;
         /** Holds Runtime UI host-key combination. */
-        extern const char *GUI_Input_HostKeyCombination;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Input_HostKeyCombination;
         /** Holds whether Runtime UI auto-capture is enabled. */
-        extern const char *GUI_Input_AutoCapture;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Input_AutoCapture;
         /** Holds Runtime UI remapped scan codes. */
-        extern const char *GUI_RemapScancodes;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RemapScancodes;
     /** @} */
 
@@ -113,5 +116,5 @@
       * @{ */
         /** Holds VBox proxy settings. */
-        extern const char *GUI_ProxySettings;
+        SHARED_LIBRARY_STUFF extern const char *GUI_ProxySettings;
     /** @} */
 
@@ -119,17 +122,17 @@
       * @{ */
         /** Holds recent folder for hard-drives. */
-        extern const char *GUI_RecentFolderHD;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RecentFolderHD;
         /** Holds recent folder for optical-disks. */
-        extern const char *GUI_RecentFolderCD;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RecentFolderCD;
         /** Holds recent folder for floppy-disks. */
-        extern const char *GUI_RecentFolderFD;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RecentFolderFD;
         /** Holds recent folder for VISO creation content. */
-        extern const char *GUI_RecentFolderVISOContent;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RecentFolderVISOContent;
         /** Holds the list of recently used hard-drives. */
-        extern const char *GUI_RecentListHD;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RecentListHD;
         /** Holds the list of recently used optical-disks. */
-        extern const char *GUI_RecentListCD;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RecentListCD;
         /** Holds the list of recently used floppy-disks. */
-        extern const char *GUI_RecentListFD;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RecentListFD;
     /** @} */
 
@@ -137,26 +140,26 @@
       * @{ */
         /** Holds selector-window geometry. */
-        extern const char *GUI_LastSelectorWindowPosition;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LastSelectorWindowPosition;
         /** Holds selector-window splitter hints. */
-        extern const char *GUI_SplitterSizes;
+        SHARED_LIBRARY_STUFF extern const char *GUI_SplitterSizes;
         /** Holds whether selector-window tool-bar visible. */
-        extern const char *GUI_Toolbar;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Toolbar;
         /** Holds whether selector-window tool-bar text visible. */
-        extern const char *GUI_Toolbar_Text;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Toolbar_Text;
         /** Holds the selector-window machine tools order. */
-        extern const char *GUI_Toolbar_MachineTools_Order;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Toolbar_MachineTools_Order;
         /** Holds the selector-window global tools order. */
-        extern const char *GUI_Toolbar_GlobalTools_Order;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Toolbar_GlobalTools_Order;
         /** Holds whether selector-window status-bar visible. */
-        extern const char *GUI_Statusbar;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Statusbar;
         /** Prefix used by composite extra-data keys,
           * which holds selector-window chooser-pane' groups definitions. */
-        extern const char *GUI_GroupDefinitions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_GroupDefinitions;
         /** Holds last item chosen in selector-window chooser-pane. */
-        extern const char *GUI_LastItemSelected;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LastItemSelected;
         /** Holds selector-window details-pane' elements. */
-        extern const char *GUI_DetailsPageBoxes;
+        SHARED_LIBRARY_STUFF extern const char *GUI_DetailsPageBoxes;
         /** Holds selector-window details-pane' preview update interval. */
-        extern const char *GUI_PreviewUpdate;
+        SHARED_LIBRARY_STUFF extern const char *GUI_PreviewUpdate;
     /** @} */
 
@@ -164,5 +167,5 @@
       * @{ */
         /** Holds whether Snapshot Manager details expanded. */
-        extern const char *GUI_SnapshotManager_Details_Expanded;
+        SHARED_LIBRARY_STUFF extern const char *GUI_SnapshotManager_Details_Expanded;
     /** @} */
 
@@ -170,5 +173,5 @@
       * @{ */
         /** Holds whether Virtual Media Manager details expanded. */
-        extern const char *GUI_VirtualMediaManager_Details_Expanded;
+        SHARED_LIBRARY_STUFF extern const char *GUI_VirtualMediaManager_Details_Expanded;
     /** @} */
 
@@ -176,5 +179,5 @@
       * @{ */
         /** Holds whether Host Network Manager details expanded. */
-        extern const char *GUI_HostNetworkManager_Details_Expanded;
+        SHARED_LIBRARY_STUFF extern const char *GUI_HostNetworkManager_Details_Expanded;
     /** @} */
 
@@ -183,7 +186,7 @@
       * @{ */
         /** Holds extra-data manager geometry. */
-        extern const char *GUI_ExtraDataManager_Geometry;
+        SHARED_LIBRARY_STUFF extern const char *GUI_ExtraDataManager_Geometry;
         /** Holds extra-data manager splitter hints. */
-        extern const char *GUI_ExtraDataManager_SplitterHints;
+        SHARED_LIBRARY_STUFF extern const char *GUI_ExtraDataManager_SplitterHints;
     /** @} */
 #endif /* VBOX_GUI_WITH_EXTRADATA_MANAGER_UI */
@@ -192,5 +195,5 @@
       * @{ */
         /** Holds wizard types for which descriptions should be hidden. */
-        extern const char *GUI_HideDescriptionForWizards;
+        SHARED_LIBRARY_STUFF extern const char *GUI_HideDescriptionForWizards;
     /** @} */
 
@@ -198,130 +201,130 @@
       * @{ */
         /** Holds whether machine shouldn't be shown in selector-window chooser-pane. */
-        extern const char *GUI_HideFromManager;
+        SHARED_LIBRARY_STUFF extern const char *GUI_HideFromManager;
         /** Holds whether machine shouldn't be shown in selector-window details-pane. */
-        extern const char *GUI_HideDetails;
+        SHARED_LIBRARY_STUFF extern const char *GUI_HideDetails;
         /** Holds whether machine reconfiguration disabled. */
-        extern const char *GUI_PreventReconfiguration;
+        SHARED_LIBRARY_STUFF extern const char *GUI_PreventReconfiguration;
         /** Holds whether machine snapshot operations disabled. */
-        extern const char *GUI_PreventSnapshotOperations;
+        SHARED_LIBRARY_STUFF extern const char *GUI_PreventSnapshotOperations;
         /** Holds whether this machine is first time started. */
-        extern const char *GUI_FirstRun;
+        SHARED_LIBRARY_STUFF extern const char *GUI_FirstRun;
         /** Except Mac OS X: Holds redefined machine-window icon names. */
-        extern const char *GUI_MachineWindowIcons;
+        SHARED_LIBRARY_STUFF extern const char *GUI_MachineWindowIcons;
 #ifndef VBOX_WS_MAC
         /** Except Mac OS X: Holds redefined machine-window name postfix. */
-        extern const char *GUI_MachineWindowNamePostfix;
+        SHARED_LIBRARY_STUFF extern const char *GUI_MachineWindowNamePostfix;
 #endif
         /** Prefix used by composite extra-data keys,
           * which holds normal machine-window geometry per screen-index. */
-        extern const char *GUI_LastNormalWindowPosition;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LastNormalWindowPosition;
         /** Prefix used by composite extra-data keys,
           * which holds scaled machine-window geometry per screen-index. */
-        extern const char *GUI_LastScaleWindowPosition;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LastScaleWindowPosition;
         /** Holds machine-window geometry maximized state flag. */
-        extern const char *GUI_Geometry_State_Max;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Geometry_State_Max;
 #ifndef VBOX_WS_MAC
         /** Holds Runtime UI menu-bar availability status. */
-        extern const char *GUI_MenuBar_Enabled;
+        SHARED_LIBRARY_STUFF extern const char *GUI_MenuBar_Enabled;
 #endif
         /** Holds Runtime UI menu-bar context-menu availability status. */
-        extern const char *GUI_MenuBar_ContextMenu_Enabled;
+        SHARED_LIBRARY_STUFF extern const char *GUI_MenuBar_ContextMenu_Enabled;
         /** Holds restricted Runtime UI menu types. */
-        extern const char *GUI_RestrictedRuntimeMenus;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeMenus;
         /** Holds restricted Runtime UI action types for 'Application' menu. */
-        extern const char *GUI_RestrictedRuntimeApplicationMenuActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeApplicationMenuActions;
         /** Holds restricted Runtime UI action types for Machine menu. */
-        extern const char *GUI_RestrictedRuntimeMachineMenuActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeMachineMenuActions;
         /** Holds restricted Runtime UI action types for View menu. */
-        extern const char *GUI_RestrictedRuntimeViewMenuActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeViewMenuActions;
         /** Holds restricted Runtime UI action types for Input menu. */
-        extern const char *GUI_RestrictedRuntimeInputMenuActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeInputMenuActions;
         /** Holds restricted Runtime UI action types for Devices menu. */
-        extern const char *GUI_RestrictedRuntimeDevicesMenuActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeDevicesMenuActions;
 #ifdef VBOX_WITH_DEBUGGER_GUI
         /** Holds restricted Runtime UI action types for Debugger menu. */
-        extern const char *GUI_RestrictedRuntimeDebuggerMenuActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeDebuggerMenuActions;
 #endif
 #ifdef VBOX_WS_MAC
         /** Mac OS X: Holds restricted Runtime UI action types for 'Window' menu. */
-        extern const char *GUI_RestrictedRuntimeWindowMenuActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeWindowMenuActions;
 #endif
         /** Holds restricted Runtime UI action types for Help menu. */
-        extern const char *GUI_RestrictedRuntimeHelpMenuActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedRuntimeHelpMenuActions;
         /** Holds restricted Runtime UI visual-states. */
-        extern const char *GUI_RestrictedVisualStates;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedVisualStates;
         /** Holds whether full screen visual-state is requested. */
-        extern const char *GUI_Fullscreen;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Fullscreen;
         /** Holds whether seamless visual-state is requested. */
-        extern const char *GUI_Seamless;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Seamless;
         /** Holds whether scaled visual-state is requested. */
-        extern const char *GUI_Scale;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Scale;
 #ifdef VBOX_WS_X11
         /** Holds whether legacy full-screen mode is requested. */
-        extern const char *GUI_Fullscreen_LegacyMode;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Fullscreen_LegacyMode;
         /** Holds whether internal machine-window names should be unique. */
-        extern const char *GUI_DistinguishMachineWindowGroups;
+        SHARED_LIBRARY_STUFF extern const char *GUI_DistinguishMachineWindowGroups;
 #endif /* VBOX_WS_X11 */
         /** Holds whether guest-screen auto-resize according machine-window size is enabled. */
-        extern const char *GUI_AutoresizeGuest;
+        SHARED_LIBRARY_STUFF extern const char *GUI_AutoresizeGuest;
         /** Prefix used by composite extra-data keys,
           * which holds last guest-screen visibility status per screen-index. */
-        extern const char *GUI_LastVisibilityStatusForGuestScreen;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LastVisibilityStatusForGuestScreen;
         /** Prefix used by composite extra-data keys,
           * which holds last guest-screen size-hint per screen-index. */
-        extern const char *GUI_LastGuestSizeHint;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LastGuestSizeHint;
         /** Prefix used by composite extra-data keys,
           * which holds host-screen index per guest-screen index. */
-        extern const char *GUI_VirtualScreenToHostScreen;
+        SHARED_LIBRARY_STUFF extern const char *GUI_VirtualScreenToHostScreen;
         /** Holds whether automatic mounting/unmounting of guest-screens enabled. */
-        extern const char *GUI_AutomountGuestScreens;
+        SHARED_LIBRARY_STUFF extern const char *GUI_AutomountGuestScreens;
 #ifdef VBOX_WITH_VIDEOHWACCEL
         /** Holds whether 2D acceleration should use linear sretch. */
-        extern const char *GUI_Accelerate2D_StretchLinear;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Accelerate2D_StretchLinear;
         /** Holds whether 2D acceleration should use YV12 pixel format. */
-        extern const char *GUI_Accelerate2D_PixformatYV12;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Accelerate2D_PixformatYV12;
         /** Holds whether 2D acceleration should use UYVY pixel format. */
-        extern const char *GUI_Accelerate2D_PixformatUYVY;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Accelerate2D_PixformatUYVY;
         /** Holds whether 2D acceleration should use YUY2 pixel format. */
-        extern const char *GUI_Accelerate2D_PixformatYUY2;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Accelerate2D_PixformatYUY2;
         /** Holds whether 2D acceleration should use AYUV pixel format. */
-        extern const char *GUI_Accelerate2D_PixformatAYUV;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Accelerate2D_PixformatAYUV;
 #endif /* VBOX_WITH_VIDEOHWACCEL */
 #ifndef VBOX_WS_MAC
         /** Holds whether mini-toolbar is enabled for full and seamless screens. */
-        extern const char *GUI_ShowMiniToolBar;
+        SHARED_LIBRARY_STUFF extern const char *GUI_ShowMiniToolBar;
         /** Holds whether mini-toolbar should auto-hide itself. */
-        extern const char *GUI_MiniToolBarAutoHide;
+        SHARED_LIBRARY_STUFF extern const char *GUI_MiniToolBarAutoHide;
         /** Holds mini-toolbar alignment. */
-        extern const char *GUI_MiniToolBarAlignment;
+        SHARED_LIBRARY_STUFF extern const char *GUI_MiniToolBarAlignment;
 #endif /* !VBOX_WS_MAC */
         /** Holds Runtime UI status-bar availability status. */
-        extern const char *GUI_StatusBar_Enabled;
+        SHARED_LIBRARY_STUFF extern const char *GUI_StatusBar_Enabled;
         /** Holds Runtime UI status-bar context-menu availability status. */
-        extern const char *GUI_StatusBar_ContextMenu_Enabled;
+        SHARED_LIBRARY_STUFF extern const char *GUI_StatusBar_ContextMenu_Enabled;
         /** Holds restricted Runtime UI status-bar indicators. */
-        extern const char *GUI_RestrictedStatusBarIndicators;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedStatusBarIndicators;
         /** Holds Runtime UI status-bar indicator order. */
-        extern const char *GUI_StatusBar_IndicatorOrder;
+        SHARED_LIBRARY_STUFF extern const char *GUI_StatusBar_IndicatorOrder;
 #ifdef VBOX_WS_MAC
         /** Mac OS X: Holds whether Dock icon should be updated at runtime. */
-        extern const char *GUI_RealtimeDockIconUpdateEnabled;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RealtimeDockIconUpdateEnabled;
         /** Mac OS X: Holds guest-screen which Dock icon should reflect at runtime. */
-        extern const char *GUI_RealtimeDockIconUpdateMonitor;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RealtimeDockIconUpdateMonitor;
         /** Mac OS X: Holds whether Dock icon should have overlay disabled. */
-        extern const char *GUI_DockIconDisableOverlay;
+        SHARED_LIBRARY_STUFF extern const char *GUI_DockIconDisableOverlay;
 #endif /* VBOX_WS_MAC */
         /** Holds whether machine should pass CAD to guest. */
-        extern const char *GUI_PassCAD;
+        SHARED_LIBRARY_STUFF extern const char *GUI_PassCAD;
         /** Holds the mouse capture policy. */
-        extern const char *GUI_MouseCapturePolicy;
+        SHARED_LIBRARY_STUFF extern const char *GUI_MouseCapturePolicy;
         /** Holds redefined guru-meditation handler type. */
-        extern const char *GUI_GuruMeditationHandler;
+        SHARED_LIBRARY_STUFF extern const char *GUI_GuruMeditationHandler;
         /** Holds whether machine should perform HID LEDs synchronization. */
-        extern const char *GUI_HidLedsSync;
+        SHARED_LIBRARY_STUFF extern const char *GUI_HidLedsSync;
         /** Holds the scale-factor. */
-        extern const char *GUI_ScaleFactor;
+        SHARED_LIBRARY_STUFF extern const char *GUI_ScaleFactor;
         /** Holds the scaling optimization type. */
-        extern const char *GUI_Scaling_Optimization;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Scaling_Optimization;
     /** @} */
 
@@ -329,7 +332,7 @@
       * @{ */
         /** Holds information-window geometry. */
-        extern const char *GUI_InformationWindowGeometry;
+        SHARED_LIBRARY_STUFF extern const char *GUI_InformationWindowGeometry;
         /** Holds information-window elements. */
-        extern const char *GUI_InformationWindowElements;
+        SHARED_LIBRARY_STUFF extern const char *GUI_InformationWindowElements;
         extern const char *GUI_GuestSessionManagerTabSplitterHints;
         extern const char *GUI_GuestFileManagerTabSplitterHints;
@@ -339,11 +342,11 @@
       * @{ */
         /** Holds default machine close action. */
-        extern const char *GUI_DefaultCloseAction;
+        SHARED_LIBRARY_STUFF extern const char *GUI_DefaultCloseAction;
         /** Holds restricted machine close actions. */
-        extern const char *GUI_RestrictedCloseActions;
+        SHARED_LIBRARY_STUFF extern const char *GUI_RestrictedCloseActions;
         /** Holds last machine close action. */
-        extern const char *GUI_LastCloseAction;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LastCloseAction;
         /** Holds machine close hook script name as simple string. */
-        extern const char *GUI_CloseActionHook;
+        SHARED_LIBRARY_STUFF extern const char *GUI_CloseActionHook;
     /** @} */
 
@@ -352,7 +355,7 @@
       * @{ */
         /** Holds whether debugger UI enabled. */
-        extern const char *GUI_Dbg_Enabled;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Dbg_Enabled;
         /** Holds whether debugger UI should be auto-shown. */
-        extern const char *GUI_Dbg_AutoShow;
+        SHARED_LIBRARY_STUFF extern const char *GUI_Dbg_AutoShow;
     /** @} */
 #endif /* VBOX_WITH_DEBUGGER_GUI */
@@ -361,5 +364,5 @@
       * @{ */
         /** Holds log-viewer geometry. */
-        extern const char *GUI_LogWindowGeometry;
+        SHARED_LIBRARY_STUFF extern const char *GUI_LogWindowGeometry;
     /** @} */
 }
@@ -367,5 +370,5 @@
 
 /** Extra-data meta definitions. */
-class UIExtraDataMetaDefs : public QObject
+class SHARED_LIBRARY_STUFF UIExtraDataMetaDefs : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 71630)
@@ -44,5 +44,5 @@
   * providing GUI with corresponding extra-data values,
   * and notifying it whenever any of those values changed. */
-class UIExtraDataManager : public QObject
+class SHARED_LIBRARY_STUFF UIExtraDataManager : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.h	(revision 71630)
@@ -83,4 +83,7 @@
 #include <QMetaType>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /*
  * Additional COM / XPCOM defines and includes
@@ -104,5 +107,5 @@
 
 /** Represents extended error information */
-class COMErrorInfo
+class SHARED_LIBRARY_STUFF COMErrorInfo
 {
 public:
@@ -187,5 +190,5 @@
  * from. Provides common functionality for all COM wrappers.
  */
-class COMBase
+class SHARED_LIBRARY_STUFF COMBase
 {
 public:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h	(revision 71630)
@@ -26,4 +26,5 @@
 #include "QIWithRetranslateUI.h"
 #include "UIExtraDataDefs.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -101,5 +102,5 @@
 
 /** QMenu extension. */
-class UIMenu : public QMenu
+class SHARED_LIBRARY_STUFF UIMenu : public QMenu
 {
     Q_OBJECT;
@@ -145,5 +146,5 @@
 
 /** Abstract QAction extension. */
-class UIAction : public QAction
+class SHARED_LIBRARY_STUFF UIAction : public QAction
 {
     Q_OBJECT;
@@ -225,5 +226,5 @@
 
 /** Abstract UIAction extension for 'Menu' action type. */
-class UIActionMenu : public UIAction
+class SHARED_LIBRARY_STUFF UIActionMenu : public UIAction
 {
     Q_OBJECT;
@@ -256,5 +257,5 @@
 
 /** Abstract UIAction extension for 'Simple' action type. */
-class UIActionSimple : public UIAction
+class SHARED_LIBRARY_STUFF UIActionSimple : public UIAction
 {
     Q_OBJECT;
@@ -284,5 +285,5 @@
 
 /** Abstract UIAction extension for 'Toggle' action type. */
-class UIActionToggle : public UIAction
+class SHARED_LIBRARY_STUFF UIActionToggle : public UIAction
 {
     Q_OBJECT;
@@ -316,5 +317,5 @@
 
 /** Abstract UIAction extension for 'Polymorphic' action type. */
-class UIActionPolymorphic : public UIAction
+class SHARED_LIBRARY_STUFF UIActionPolymorphic : public UIAction
 {
     Q_OBJECT;
@@ -355,5 +356,5 @@
 
 /** Abstract UIAction extension for 'Polymorphic Menu' action type. */
-class UIActionPolymorphicMenu : public UIAction
+class SHARED_LIBRARY_STUFF UIActionPolymorphicMenu : public UIAction
 {
     Q_OBJECT;
@@ -416,5 +417,5 @@
 /** Abstract QObject extension
   * representing action-pool interface and factory. */
-class UIActionPool : public QIWithRetranslateUI3<QObject>
+class SHARED_LIBRARY_STUFF UIActionPool : public QIWithRetranslateUI3<QObject>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIAnimationFramework.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIAnimationFramework.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIAnimationFramework.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QObject>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declaration: */
 class QPropertyAnimation;
@@ -29,5 +32,5 @@
 
 /** QObject subclass used as animation factory. */
-class UIAnimation : public QObject
+class SHARED_LIBRARY_STUFF UIAnimation : public QObject
 {
     Q_OBJECT;
@@ -111,5 +114,5 @@
 
 /** QObject subclass used as animation loop factory. */
-class UIAnimationLoop : public QObject
+class SHARED_LIBRARY_STUFF UIAnimationLoop : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QEvent>
 #include <QStringList>
+
+/* GUI includes: */
+#include "UILibraryDefs.h"
 
 /* COM includes: */
@@ -77,16 +80,16 @@
 
     /** Default guest additions image name. */
-    extern const char* GUI_GuestAdditionsName;
+    SHARED_LIBRARY_STUFF extern const char* GUI_GuestAdditionsName;
     /** Default extension pack name. */
-    extern const char* GUI_ExtPackName;
+    SHARED_LIBRARY_STUFF extern const char* GUI_ExtPackName;
 
     /** Allowed VBox file extensions. */
-    extern QStringList VBoxFileExts;
+    SHARED_LIBRARY_STUFF extern QStringList VBoxFileExts;
     /** Allowed VBox Extension Pack file extensions. */
-    extern QStringList VBoxExtPackFileExts;
+    SHARED_LIBRARY_STUFF extern QStringList VBoxExtPackFileExts;
     /** Allowed OVF file extensions. */
-    extern QStringList OVFFileExts;
+    SHARED_LIBRARY_STUFF extern QStringList OVFFileExts;
     /** Allowed OPC file extensions. */
-    extern QStringList OPCFileExts;
+    SHARED_LIBRARY_STUFF extern QStringList OPCFileExts;
 }
 using namespace UIDefs /* if header included */;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.h	(revision 71630)
@@ -26,4 +26,7 @@
 #endif
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QScreen;
@@ -31,5 +34,5 @@
 /** Singleton QObject extension used as desktop-widget
   * watchdog aware of the host-screen geometry changes. */
-class UIDesktopWidgetWatchdog : public QObject
+class SHARED_LIBRARY_STUFF UIDesktopWidgetWatchdog : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QString>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Other VBox includes: */
 #include <VBox/com/defs.h>
@@ -33,5 +36,5 @@
 
 /** Namespace simplifying COM error formatting. */
-class UIErrorString
+class SHARED_LIBRARY_STUFF UIErrorString
 {
 public:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h	(revision 71630)
@@ -24,4 +24,7 @@
 #include <QHash>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class CMachine;
@@ -30,5 +33,5 @@
 /** Interface which provides GUI with static API
   * allowing to dynamically compose icons at runtime. */
-class UIIconPool
+class SHARED_LIBRARY_STUFF UIIconPool
 {
 public:
@@ -103,5 +106,5 @@
 /** UIIconPool interface extension used as general GUI icon-pool.
   * Provides GUI with guest OS types pixmap cache. */
-class UIIconPoolGeneral : public UIIconPool
+class SHARED_LIBRARY_STUFF UIIconPoolGeneral : public UIIconPool
 {
 public:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UILibraryDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UILibraryDefs.h	(revision 71630)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UILibraryDefs.h	(revision 71630)
@@ -0,0 +1,36 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - Global library definitions.
+ */
+
+/*
+ * Copyright (C) 2018 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifndef ___UILibraryDefs_h___
+#define ___UILibraryDefs_h___
+
+/* Other VBox includes: */
+#include <iprt/cdefs.h>
+
+/* Define shared library stuff: */
+#ifdef VBOX_GUI_WITH_SHARED_LIBRARY
+# ifdef VBOX_GUI_LIBRARY
+#  define SHARED_LIBRARY_STUFF DECLEXPORT_CLASS
+# else
+#  define SHARED_LIBRARY_STUFF DECLIMPORT_CLASS
+# endif
+#else
+# define SHARED_LIBRARY_STUFF
+#endif
+
+#endif /* !___UILibraryDefs_h___ */
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QList>
 #include <QObject>
+
+/* GUI includes: */
+#include "UILibraryDefs.h"
 
 /* COM includes: */
@@ -58,5 +61,5 @@
 
 /** Main event listener. */
-class UIMainEventListener : public QObject
+class SHARED_LIBRARY_STUFF UIMainEventListener : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 71630)
@@ -23,4 +23,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UIMediumDefs.h"
 
@@ -52,5 +53,5 @@
 /** Singleton QObject extension
   * providing GUI with corresponding messages. */
-class UIMessageCenter : public QObject
+class SHARED_LIBRARY_STUFF UIMessageCenter : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIModalWindowManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIModalWindowManager.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIModalWindowManager.h	(revision 71630)
@@ -24,7 +24,10 @@
 #include <QList>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /** QObject subclass which contains a stack(s) of guarded-pointer(s) to the current top-level
   * modal-window(s) which could be used to determine parents for new top-level modal-dialog(s). */
-class UIModalWindowManager : public QObject
+class SHARED_LIBRARY_STUFF UIModalWindowManager : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.h	(revision 71630)
@@ -25,4 +25,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UIMediumDefs.h"
 
@@ -57,5 +58,5 @@
 /** Singleton QObject extension
   * providing GUI with various popup messages. */
-class UIPopupCenter: public QObject
+class SHARED_LIBRARY_STUFF UIPopupCenter: public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIShortcutPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIShortcutPool.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIShortcutPool.h	(revision 71630)
@@ -24,4 +24,5 @@
 /* GUI includes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -33,5 +34,5 @@
 
 /** Shortcut descriptor prototype. */
-class UIShortcut
+class SHARED_LIBRARY_STUFF UIShortcut
 {
 public:
@@ -85,5 +86,5 @@
 
 /** QObject extension used as shortcut pool singleton. */
-class UIShortcutPool : public QIWithRetranslateUI3<QObject>
+class SHARED_LIBRARY_STUFF UIShortcutPool : public QIWithRetranslateUI3<QObject>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIThreadPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIThreadPool.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIThreadPool.h	(revision 71630)
@@ -28,4 +28,7 @@
 #include <QWaitCondition>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class UITask;
@@ -35,5 +38,5 @@
 /** QObject extension used as worker-thread pool.
   * Schedules COM-related GUI tasks to multiple worker-threads. */
-class UIThreadPool : public QObject
+class SHARED_LIBRARY_STUFF UIThreadPool : public QObject
 {
     Q_OBJECT;
@@ -114,5 +117,5 @@
 /** QObject extension used as worker-thread task interface.
   * Describes task to be executed by the UIThreadWorker object. */
-class UITask : public QObject
+class SHARED_LIBRARY_STUFF UITask : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 71630)
@@ -25,4 +25,5 @@
 /* GUI includes: */
 #include "UIDefs.h"
+#include "UILibraryDefs.h"
 #include "UIMediumDefs.h"
 #ifdef VBOX_WS_X11
@@ -58,5 +59,5 @@
 
 /** QObject subclass containing common GUI functionality. */
-class VBoxGlobal : public QObject
+class SHARED_LIBRARY_STUFF VBoxGlobal : public QObject
 {
     Q_OBJECT
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxUtils.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxUtils.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxUtils.h	(revision 71630)
@@ -25,4 +25,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #ifdef VBOX_WS_MAC
 # include "VBoxUtils-darwin.h"
@@ -35,5 +36,5 @@
 /** QObject subclass,
   * allowing to apply string-property value for a certain QObject. */
-class QObjectPropertySetter : public QObject
+class SHARED_LIBRARY_STUFF QObjectPropertySetter : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h	(revision 71630)
@@ -24,4 +24,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UIMediumDefs.h"
 
@@ -79,5 +80,5 @@
   * from the accessible medium. The real KMediumState_NotCreated state is not necessary because
   * this class is only used with created (existing) mediums. */
-class UIMedium
+class SHARED_LIBRARY_STUFF UIMedium
 {
 public:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumDefs.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumDefs.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QString>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* COM includes: */
 #include "COMEnums.h"
@@ -43,8 +46,8 @@
 
     /** Converts global medium type (KDeviceType) to local (UIMediumType). */
-    UIMediumType mediumTypeToLocal(KDeviceType globalType);
+    SHARED_LIBRARY_STUFF UIMediumType mediumTypeToLocal(KDeviceType globalType);
 
     /** Convert local medium type (UIMediumType) to global (KDeviceType). */
-    KDeviceType mediumTypeToGlobal(UIMediumType localType);
+    SHARED_LIBRARY_STUFF KDeviceType mediumTypeToGlobal(UIMediumType localType);
 }
 /* Using this namespace globally: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.h	(revision 71630)
@@ -24,4 +24,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UIMedium.h"
 #include "QIWithRetranslateUI.h"
@@ -36,5 +37,5 @@
 /* Medium-enumerator prototype.
  * Manages access to medium information using thread-pool interface. */
-class UIMediumEnumerator : public QIWithRetranslateUI3<QObject>
+class SHARED_LIBRARY_STUFF UIMediumEnumerator : public QIWithRetranslateUI3<QObject>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloader.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloader.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloader.h	(revision 71630)
@@ -24,4 +24,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UINetworkCustomer.h"
 #include "UINetworkDefs.h"
@@ -33,5 +34,5 @@
 /** Downloader interface.
   * UINetworkCustomer class extension which allows background http downloading. */
-class UIDownloader : public UINetworkCustomer
+class SHARED_LIBRARY_STUFF UIDownloader : public UINetworkCustomer
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.h	(revision 71630)
@@ -26,5 +26,5 @@
 
 /** UIDownloader extension for background additions downloading. */
-class UIDownloaderAdditions : public UIDownloader
+class SHARED_LIBRARY_STUFF UIDownloaderAdditions : public UIDownloader
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.h	(revision 71630)
@@ -26,5 +26,5 @@
 
 /** UIDownloader extension for background extension-pack downloading. */
-class UIDownloaderExtensionPack : public UIDownloader
+class SHARED_LIBRARY_STUFF UIDownloaderExtensionPack : public UIDownloader
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderUserManual.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderUserManual.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderUserManual.h	(revision 71630)
@@ -23,5 +23,5 @@
 
 /** UIDownloader extension for background user-manual downloading. */
-class UIDownloaderUserManual : public UIDownloader
+class SHARED_LIBRARY_STUFF UIDownloaderUserManual : public UIDownloader
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkCustomer.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkCustomer.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkCustomer.h	(revision 71630)
@@ -23,4 +23,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UINetworkDefs.h"
 
@@ -30,5 +31,5 @@
 
 /** Interface to access UINetworkManager protected functionality. */
-class UINetworkCustomer : public QObject
+class SHARED_LIBRARY_STUFF UINetworkCustomer : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.h	(revision 71630)
@@ -24,4 +24,5 @@
 
 /* GUI inludes: */
+#include "UILibraryDefs.h"
 #include "UINetworkDefs.h"
 
@@ -36,5 +37,5 @@
 /** QObject class extension.
   * Providing network access for VirtualBox application purposes. */
-class UINetworkManager : public QObject
+class SHARED_LIBRARY_STUFF UINetworkManager : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerDialog.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerDialog.h	(revision 71630)
@@ -26,4 +26,5 @@
 /* GUI includes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -36,5 +37,5 @@
 
 /** QMainWindow reimplementation to reflect network-requests. */
-class UINetworkManagerDialog : public QIWithRetranslateUI<QMainWindow>
+class SHARED_LIBRARY_STUFF UINetworkManagerDialog : public QIWithRetranslateUI<QMainWindow>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.h	(revision 71630)
@@ -26,4 +26,5 @@
 #include "QIStatusBarIndicator.h"
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -41,5 +42,5 @@
 
 /** QIStateStatusBarIndicator extension for network-manager indicator. */
-class UINetworkManagerIndicator : public QIWithRetranslateUI<QIStateStatusBarIndicator>
+class SHARED_LIBRARY_STUFF UINetworkManagerIndicator : public QIWithRetranslateUI<QIStateStatusBarIndicator>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkReply.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkReply.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkReply.h	(revision 71630)
@@ -24,4 +24,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UINetworkDefs.h"
 
@@ -31,5 +32,5 @@
 /** QObject extension
   * used as network-reply interface. */
-class UINetworkReply : public QObject
+class SHARED_LIBRARY_STUFF UINetworkReply : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.h	(revision 71630)
@@ -24,4 +24,5 @@
 
 /* GUI inludes: */
+#include "UILibraryDefs.h"
 #include "UINetworkDefs.h"
 #include "UINetworkReply.h"
@@ -35,5 +36,5 @@
 
 /** QObject extension used as network-request container. */
-class UINetworkRequest : public QObject
+class SHARED_LIBRARY_STUFF UINetworkRequest : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequestWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequestWidget.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequestWidget.h	(revision 71630)
@@ -21,4 +21,5 @@
 /* GUI inludes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 #include "UIPopupBox.h"
 
@@ -34,5 +35,5 @@
 
 /** UIPopupBox reimplementation to reflect network-request status. */
-class UINetworkRequestWidget : public QIWithRetranslateUI<UIPopupBox>
+class SHARED_LIBRARY_STUFF UINetworkRequestWidget : public QIWithRetranslateUI<UIPopupBox>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateDefs.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateDefs.h	(revision 71630)
@@ -23,4 +23,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UIVersion.h"
 
@@ -41,5 +42,5 @@
 
 /** Class used to encode/decode update data. */
-class VBoxUpdateData
+class SHARED_LIBRARY_STUFF VBoxUpdateData
 {
 public:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QObject>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class UIUpdateQueue;
@@ -27,5 +30,5 @@
 /** Singleton to perform new version checks
   * and update of various VirtualBox parts. */
-class UIUpdateManager : public QObject
+class SHARED_LIBRARY_STUFF UIUpdateManager : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h	(revision 71630)
@@ -19,4 +19,7 @@
 #define ___VBoxX11Helpers_h___
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 
 /** X11: Known Window Manager types. */
@@ -34,15 +37,15 @@
 
 /** X11: Determines and returns whether the compositing manager is running. */
-bool X11IsCompositingManagerRunning();
+SHARED_LIBRARY_STUFF bool X11IsCompositingManagerRunning();
 
 /** X11: Determines and returns current Window Manager type. */
-X11WMType X11WindowManagerType();
+SHARED_LIBRARY_STUFF X11WMType X11WindowManagerType();
 
 /** X11: Inits the screen saver save/restore mechanism. */
-void X11ScreenSaverSettingsInit();
+SHARED_LIBRARY_STUFF void X11ScreenSaverSettingsInit();
 /** X11: Saves screen saver settings. */
-void X11ScreenSaverSettingsSave();
+SHARED_LIBRARY_STUFF void X11ScreenSaverSettingsSave();
 /** X11: Restores previously saved screen saver settings. */
-void X11ScreenSaverSettingsRestore();
+SHARED_LIBRARY_STUFF void X11ScreenSaverSettingsRestore();
 
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/XKeyboard.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/XKeyboard.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/XKeyboard.h	(revision 71630)
@@ -19,4 +19,7 @@
 #define ___XKeyboard_h___
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QString;
@@ -24,15 +27,15 @@
 
 /** Initializes the X keyboard subsystem. */
-void initMappedX11Keyboard(Display *pDisplay, const QString &remapScancodes);
+SHARED_LIBRARY_STUFF void initMappedX11Keyboard(Display *pDisplay, const QString &remapScancodes);
 
 /** Handles native XKey events. */
-unsigned handleXKeyEvent(Display *pDisplay, unsigned int iDetail);
+SHARED_LIBRARY_STUFF unsigned handleXKeyEvent(Display *pDisplay, unsigned int iDetail);
 
 /** Handles log requests from initXKeyboard after release logging is started. */
-void doXKeyboardLogging(Display *pDisplay);
+SHARED_LIBRARY_STUFF void doXKeyboardLogging(Display *pDisplay);
 
 /** Wraps for the XkbKeycodeToKeysym(3) API which falls back to the deprecated XKeycodeToKeysym(3) if it is unavailable. */
-unsigned long wrapXkbKeycodeToKeysym(Display *pDisplay, unsigned char cCode,
-                                     unsigned int cGroup, unsigned int cIndex);
+SHARED_LIBRARY_STUFF unsigned long wrapXkbKeycodeToKeysym(Display *pDisplay, unsigned char cCode,
+                                                          unsigned int cGroup, unsigned int cIndex);
 
 #endif /* !___XKeyboard_h___ */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.h	(revision 71630)
@@ -26,4 +26,5 @@
 #include "UIActionPool.h"
 #include "UIExtraDataDefs.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -138,5 +139,5 @@
 /** UIActionPool extension
   * representing action-pool singleton for Runtime UI. */
-class UIActionPoolRuntime : public UIActionPool
+class SHARED_LIBRARY_STUFF UIActionPoolRuntime : public UIActionPool
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIActionPoolSelector.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIActionPoolSelector.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIActionPoolSelector.h	(revision 71630)
@@ -21,4 +21,5 @@
 /* GUI includes: */
 #include "UIActionPool.h"
+#include "UILibraryDefs.h"
 
 
@@ -113,5 +114,5 @@
 /** UIActionPool extension
   * representing action-pool singleton for Selector UI. */
-class UIActionPoolSelector : public UIActionPool
+class SHARED_LIBRARY_STUFF UIActionPoolSelector : public UIActionPool
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QObject>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* COM includes: */
 #include "COMEnums.h"
@@ -30,5 +33,5 @@
 /** Singleton QObject extension
   * providing GUI with the CVirtualBoxClient and CVirtualBox event-sources. */
-class UIVirtualBoxEventHandler : public QObject
+class SHARED_LIBRARY_STUFF UIVirtualBoxEventHandler : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.h	(revision 71630)
@@ -24,4 +24,7 @@
 #include <QString>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* COM includes: */
 #include "COMEnums.h"
@@ -47,6 +50,6 @@
 
     /** Determines configuration access level for passed @a enmSessionState and @a enmMachineState. */
-    ConfigurationAccessLevel configurationAccessLevel(KSessionState enmSessionState,
-                                                      KMachineState enmMachineState);
+    SHARED_LIBRARY_STUFF ConfigurationAccessLevel configurationAccessLevel(KSessionState enmSessionState,
+                                                                           KMachineState enmMachineState);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIHostComboEditor.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIHostComboEditor.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIHostComboEditor.h	(revision 71630)
@@ -27,4 +27,5 @@
 /* GUI includes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -44,20 +45,20 @@
 {
     /** Translates passed @a iKeyCode to string. */
-    QString toString(int iKeyCode);
+    SHARED_LIBRARY_STUFF QString toString(int iKeyCode);
 
     /** Returns whether passed @a iKeyCode is valid. */
-    bool isValidKey(int iKeyCode);
+    SHARED_LIBRARY_STUFF bool isValidKey(int iKeyCode);
 
     /** Translates passed @a iKeyCode in host platform
       * encoding to the corresponding set 1 PC scan code.
       * @note  Non-modifier keys will return zero. */
-    unsigned modifierToSet1ScanCode(int iKeyCode);
+    SHARED_LIBRARY_STUFF unsigned modifierToSet1ScanCode(int iKeyCode);
 
 #if defined(VBOX_WS_WIN)
     /** Distinguishes modifier VKey by @a wParam and @a lParam. */
-    int distinguishModifierVKey(int wParam, int lParam);
+    SHARED_LIBRARY_STUFF int distinguishModifierVKey(int wParam, int lParam);
 #elif defined(VBOX_WS_X11)
     /** Retranslates key names. */
-    void retranslateKeyNames();
+    SHARED_LIBRARY_STUFF void retranslateKeyNames();
 #endif
 }
@@ -69,26 +70,26 @@
 {
     /** Returns host-combo modifier index. */
-    int hostComboModifierIndex();
+    SHARED_LIBRARY_STUFF int hostComboModifierIndex();
     /** Returns host-combo modifier name. */
-    QString hostComboModifierName();
+    SHARED_LIBRARY_STUFF QString hostComboModifierName();
     /** Returns host-combo cached key. */
-    QString hostComboCacheKey();
+    SHARED_LIBRARY_STUFF QString hostComboCacheKey();
 
     /** Translates passed @strKeyCombo to readable string. */
-    QString toReadableString(const QString &strKeyCombo);
+    SHARED_LIBRARY_STUFF QString toReadableString(const QString &strKeyCombo);
     /** Translates passed @strKeyCombo to key codes list. */
-    QList<int> toKeyCodeList(const QString &strKeyCombo);
+    SHARED_LIBRARY_STUFF QList<int> toKeyCodeList(const QString &strKeyCombo);
 
     /** Returns a sequence of the set 1 PC scan codes for all
       * modifiers contained in the (host platform format) sequence passed. */
-    QList<unsigned> modifiersToScanCodes(const QString &strKeyCombo);
+    SHARED_LIBRARY_STUFF QList<unsigned> modifiersToScanCodes(const QString &strKeyCombo);
 
     /** Returns whether passed @a strKeyCombo is valid. */
-    bool isValidKeyCombo(const QString &strKeyCombo);
+    SHARED_LIBRARY_STUFF bool isValidKeyCombo(const QString &strKeyCombo);
 }
 
 
 /** Host-combo QString wrapper. */
-class UIHostComboWrapper
+class SHARED_LIBRARY_STUFF UIHostComboWrapper
 {
 public:
@@ -111,5 +112,5 @@
 
 /** Host-combo editor widget. */
-class UIHostComboEditor : public QIWithRetranslateUI<QWidget>
+class SHARED_LIBRARY_STUFF UIHostComboEditor : public QIWithRetranslateUI<QWidget>
 {
     Q_OBJECT;
@@ -154,5 +155,5 @@
 
 /** Host-combo editor widget private stuff. */
-class UIHostComboEditorPrivate : public QLineEdit
+class SHARED_LIBRARY_STUFF UIHostComboEditorPrivate : public QLineEdit
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h	(revision 71630)
@@ -23,4 +23,7 @@
 #include <QWidget>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QEvent;
@@ -38,5 +41,5 @@
 /** QWidget extension,
   * wrapping content-widget with nice collapsable frame. */
-class UIPopupBox : public QWidget
+class SHARED_LIBRARY_STUFF UIPopupBox : public QWidget
 {
     Q_OBJECT;
@@ -174,5 +177,5 @@
 /** QObject extension,
   * provides a container to organize groups of popup-boxes. */
-class UIPopupBoxGroup : public QObject
+class SHARED_LIBRARY_STUFF UIPopupBoxGroup : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.h	(revision 71630)
@@ -25,4 +25,5 @@
 /* GUI includes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declaration: */
@@ -42,5 +43,5 @@
 
 /** QWidget extension used as popup-center pane prototype. */
-class UIPopupPane : public QIWithRetranslateUI<QWidget>
+class SHARED_LIBRARY_STUFF UIPopupPane : public QIWithRetranslateUI<QWidget>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneButtonPane.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneButtonPane.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneButtonPane.h	(revision 71630)
@@ -23,4 +23,7 @@
 #include <QMap>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QHBoxLayout;
@@ -31,5 +34,5 @@
 
 /** QWidget extension providing GUI with popup-pane button-pane prototype class. */
-class UIPopupPaneButtonPane : public QWidget
+class SHARED_LIBRARY_STUFF UIPopupPaneButtonPane : public QWidget
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneDetails.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneDetails.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneDetails.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QWidget>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QTextEdit;
@@ -27,5 +30,5 @@
 
 /** QWidget extension providing GUI with popup-pane details-pane prototype class. */
-class UIPopupPaneDetails : public QWidget
+class SHARED_LIBRARY_STUFF UIPopupPaneDetails : public QWidget
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneMessage.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneMessage.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneMessage.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QWidget>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QLabel;
@@ -27,5 +30,5 @@
 
 /** QWidget extension providing GUI with popup-pane message-pane prototype class. */
-class UIPopupPaneMessage : public QWidget
+class SHARED_LIBRARY_STUFF UIPopupPaneMessage : public QWidget
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStack.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStack.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStack.h	(revision 71630)
@@ -24,4 +24,5 @@
 
 /* GUI includes: */
+#include "UILibraryDefs.h"
 #include "UIPopupCenter.h"
 
@@ -37,5 +38,5 @@
 
 /** QWidget extension providing GUI with popup-stack prototype class. */
-class UIPopupStack : public QWidget
+class SHARED_LIBRARY_STUFF UIPopupStack : public QWidget
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStackViewport.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStackViewport.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStackViewport.h	(revision 71630)
@@ -23,4 +23,7 @@
 #include <QMap>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declaration: */
 class QSize;
@@ -29,5 +32,5 @@
 
 /** QWidget extension providing GUI with popup-stack viewport prototype class. */
-class UIPopupStackViewport : public QWidget
+class SHARED_LIBRARY_STUFF UIPopupStackViewport : public QWidget
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.h	(revision 71630)
@@ -22,4 +22,5 @@
 #include "QIDialog.h"
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 
 /* Forward declarations: */
@@ -38,5 +39,5 @@
   * @note The CProgress instance is passed as a non-const reference to the constructor (to memorize COM errors if they happen),
   *       and therefore must not be destroyed before the created UIProgressDialog instance is destroyed. */
-class UIProgressDialog : public QIWithRetranslateUI2<QIDialog>
+class SHARED_LIBRARY_STUFF UIProgressDialog : public QIWithRetranslateUI2<QIDialog>
 {
     Q_OBJECT;
@@ -170,5 +171,5 @@
   *       before the created UIProgress instance is destroyed.
   * @todo To be moved to separate files. */
-class UIProgress : public QObject
+class SHARED_LIBRARY_STUFF UIProgress : public QObject
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UISpecialControls.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UISpecialControls.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UISpecialControls.h	(revision 71630)
@@ -27,4 +27,5 @@
 /* GUI includes: */
 #include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
 #ifdef VBOX_DARWIN_USE_NATIVE_CONTROLS
 # include "UICocoaSpecialControls.h"
@@ -42,5 +43,5 @@
 
 /** QAbstractButton subclass, used as mini cancel button. */
-class UIMiniCancelButton : public QAbstractButton
+class SHARED_LIBRARY_STUFF UIMiniCancelButton : public QAbstractButton
 {
     Q_OBJECT;
@@ -73,5 +74,5 @@
 
 /** QAbstractButton subclass, used as mini cancel button. */
-class UIHelpButton : public QPushButton
+class SHARED_LIBRARY_STUFF UIHelpButton : public QPushButton
 {
     Q_OBJECT;
@@ -102,5 +103,5 @@
 
 /** QAbstractButton subclass, used as mini cancel button. */
-class UIMiniCancelButton : public QIWithRetranslateUI<QIToolButton>
+class SHARED_LIBRARY_STUFF UIMiniCancelButton : public QIWithRetranslateUI<QIToolButton>
 {
     Q_OBJECT;
@@ -119,5 +120,5 @@
 
 /** QAbstractButton subclass, used as mini cancel button. */
-class UIHelpButton : public QIWithRetranslateUI<QPushButton>
+class SHARED_LIBRARY_STUFF UIHelpButton : public QIWithRetranslateUI<QPushButton>
 {
     Q_OBJECT;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.h	(revision 71629)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.h	(revision 71630)
@@ -22,4 +22,7 @@
 #include <QToolBar>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /* Forward declarations: */
 class QMainWindow;
@@ -27,5 +30,5 @@
 /** QToolBar extension
   * with few settings presets. */
-class UIToolBar : public QToolBar
+class SHARED_LIBRARY_STUFF UIToolBar : public QToolBar
 {
     Q_OBJECT;
