[Libreoffice-commits] core.git: basegfx/source desktop/source emfio/inc framework/inc include/avmedia include/basegfx include/basic include/comphelper include/connectivity include/editeng include/framework include/sfx2 include/svl include/svtools include/svx include/toolkit include/tools include/ucbhelper include/unotools include/vcl include/xmloff svx/inc svx/source vcl/inc

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Mon Mar 23 11:06:14 UTC 2020


 basegfx/source/color/bcolormodifier.cxx               |    1 
 desktop/source/deployment/inc/dp_interact.h           |    3 
 emfio/inc/mtftools.hxx                                |    3 
 framework/inc/addonmenu.hxx                           |    3 
 framework/inc/classes/converter.hxx                   |    3 
 framework/inc/classes/protocolhandlercache.hxx        |    3 
 framework/inc/jobs/configaccess.hxx                   |    3 
 framework/inc/menuconfiguration.hxx                   |    3 
 framework/inc/statusbarconfiguration.hxx              |    3 
 framework/inc/threadhelp/transactionmanager.hxx       |    3 
 framework/inc/toolboxconfiguration.hxx                |    3 
 framework/inc/uielement/constitemcontainer.hxx        |    3 
 framework/inc/xml/saxnamespacefilter.hxx              |    3 
 include/avmedia/MediaControlBase.hxx                  |    3 
 include/avmedia/mediaplayer.hxx                       |    3 
 include/basegfx/color/bcolormodifier.hxx              |   17 ++-
 include/basegfx/polygon/b2dtrapezoid.hxx              |    3 
 include/basegfx/raster/rasterconvert3d.hxx            |    3 
 include/basegfx/tuple/b3dtuple.hxx                    |    3 
 include/basegfx/utils/gradienttools.hxx               |    3 
 include/basic/codecompletecache.hxx                   |    3 
 include/basic/modsizeexceeded.hxx                     |    3 
 include/basic/sbmod.hxx                               |    3 
 include/basic/sbx.hxx                                 |    3 
 include/comphelper/accessibleselectionhelper.hxx      |    3 
 include/comphelper/accessiblewrapper.hxx              |    3 
 include/comphelper/container.hxx                      |    3 
 include/comphelper/evtlistenerhlp.hxx                 |    3 
 include/comphelper/propagg.hxx                        |    3 
 include/comphelper/propertybag.hxx                    |    3 
 include/comphelper/propstate.hxx                      |    5 -
 include/comphelper/seqstream.hxx                      |    3 
 include/comphelper/stillreadwriteinteraction.hxx      |    3 
 include/comphelper/streamsection.hxx                  |    3 
 include/comphelper/weakeventlistener.hxx              |    3 
 include/connectivity/paramwrapper.hxx                 |    3 
 include/connectivity/sdbcx/VCollection.hxx            |    3 
 include/editeng/AccessibleEditableTextPara.hxx        |    3 
 include/editeng/AccessibleParaManager.hxx             |    3 
 include/editeng/charrotateitem.hxx                    |    3 
 include/editeng/editund2.hxx                          |    3 
 include/editeng/editview.hxx                          |    3 
 include/editeng/legacyitem.hxx                        |   79 +++++++++---------
 include/editeng/overflowingtxt.hxx                    |    5 -
 include/editeng/unoedprx.hxx                          |    3 
 include/framework/addonsoptions.hxx                   |    3 
 include/framework/configimporter.hxx                  |    3 
 include/framework/dispatchhelper.hxx                  |    3 
 include/framework/framelistanalyzer.hxx               |    3 
 include/framework/interaction.hxx                     |    3 
 include/sfx2/dinfdlg.hxx                              |    3 
 include/sfx2/sfxstatuslistener.hxx                    |    3 
 include/sfx2/sidebar/SidebarToolBox.hxx               |    3 
 include/sfx2/sidebar/TabBar.hxx                       |    3 
 include/sfx2/templdlg.hxx                             |    3 
 include/svl/aeitem.hxx                                |    3 
 include/svl/style.hxx                                 |    3 
 include/svl/zforlist.hxx                              |    3 
 include/svtools/PlaceEditDialog.hxx                   |    3 
 include/svtools/addresstemplate.hxx                   |    3 
 include/svtools/asynclink.hxx                         |    3 
 include/svtools/calendar.hxx                          |    3 
 include/svtools/ctrltool.hxx                          |    3 
 include/svtools/editbrowsebox.hxx                     |    9 +-
 include/svtools/filechangedchecker.hxx                |    3 
 include/svtools/generictoolboxcontroller.hxx          |    3 
 include/svtools/imageresourceaccess.hxx               |    7 -
 include/svtools/openfiledroptargetlistener.hxx        |    3 
 include/svtools/popupmenucontrollerbase.hxx           |    3 
 include/svtools/printoptions.hxx                      |    7 -
 include/svtools/stringtransfer.hxx                    |    3 
 include/svtools/templatefoldercache.hxx               |    3 
 include/svtools/toolbarmenu.hxx                       |    3 
 include/svtools/urlfilter.hxx                         |    3 
 include/svtools/valueset.hxx                          |    3 
 include/svx/EnhancedCustomShapeFunctionParser.hxx     |    3 
 include/svx/deflt3d.hxx                               |    3 
 include/svx/dialcontrol.hxx                           |    3 
 include/svx/fmtools.hxx                               |    3 
 include/svx/passwd.hxx                                |    3 
 include/svx/sdgcpitm.hxx                              |    3 
 include/svx/sdprcitm.hxx                              |    3 
 include/svx/sdr/animation/objectanimator.hxx          |    3 
 include/svx/sdtfchim.hxx                              |    3 
 include/svx/shapepropertynotifier.hxx                 |    3 
 include/svx/svdmark.hxx                               |    3 
 include/svx/svdundo.hxx                               |    3 
 include/svx/svx3ditems.hxx                            |   19 ++--
 include/svx/tbcontrl.hxx                              |    3 
 include/svx/unoprov.hxx                               |    3 
 include/toolkit/awt/vclxmenu.hxx                      |    3 
 include/toolkit/awt/vclxwindows.hxx                   |    7 -
 include/toolkit/controls/unocontrols.hxx              |    3 
 include/toolkit/helper/listenermultiplexer.hxx        |    3 
 include/tools/b3dtrans.hxx                            |    7 -
 include/ucbhelper/activedatasink.hxx                  |    3 
 include/ucbhelper/interactionrequest.hxx              |    7 -
 include/ucbhelper/simplenameclashresolverequest.hxx   |    3 
 include/unotools/ZipPackageHelper.hxx                 |    3 
 include/unotools/bootstrap.hxx                        |    2 
 include/unotools/configvaluecontainer.hxx             |    3 
 include/unotools/desktopterminationobserver.hxx       |    5 -
 include/unotools/fontcfg.hxx                          |    3 
 include/unotools/fontdefs.hxx                         |    3 
 include/unotools/nativenumberwrapper.hxx              |    3 
 include/unotools/progresshandlerwrap.hxx              |    3 
 include/vcl/IDialogRenderable.hxx                     |    3 
 include/vcl/accel.hxx                                 |    3 
 include/vcl/dockingarea.hxx                           |    3 
 include/vcl/dockwin.hxx                               |    3 
 include/vcl/evntpost.hxx                              |    3 
 include/vcl/field.hxx                                 |   11 +-
 include/vcl/fmtfield.hxx                              |    7 -
 include/vcl/gdimetafiletools.hxx                      |    4 
 include/vcl/introwin.hxx                              |    3 
 include/vcl/layout.hxx                                |    7 -
 include/vcl/longcurr.hxx                              |    7 -
 include/vcl/lstbox.hxx                                |    3 
 include/vcl/menubtn.hxx                               |    3 
 include/vcl/metaact.hxx                               |   63 +++++++-------
 include/vcl/oldprintadaptor.hxx                       |    3 
 include/vcl/pdfwriter.hxx                             |    3 
 include/vcl/print.hxx                                 |    5 -
 include/vcl/svtaccessiblefactory.hxx                  |    3 
 include/vcl/tabctrl.hxx                               |    3 
 include/vcl/textview.hxx                              |    3 
 include/vcl/toolkit/field.hxx                         |   13 +-
 include/vcl/toolkit/fixedhyper.hxx                    |    3 
 include/vcl/toolkit/group.hxx                         |    3 
 include/vcl/toolkit/imgctrl.hxx                       |    3 
 include/vcl/toolkit/morebtn.hxx                       |    3 
 include/vcl/toolkit/prgsbar.hxx                       |    3 
 include/vcl/toolkit/roadmap.hxx                       |    3 
 include/vcl/toolkit/spin.hxx                          |    3 
 include/vcl/toolkit/tabdlg.hxx                        |    3 
 include/vcl/toolkit/throbber.hxx                      |    3 
 include/vcl/toolkit/unowrap.hxx                       |    3 
 include/xmloff/DashStyle.hxx                          |    5 -
 include/xmloff/GradientStyle.hxx                      |    5 -
 include/xmloff/HatchStyle.hxx                         |    5 -
 include/xmloff/ImageStyle.hxx                         |    5 -
 include/xmloff/MarkerStyle.hxx                        |    5 -
 svx/inc/GalleryControl.hxx                            |    3 
 svx/inc/extrud3d.hxx                                  |    3 
 svx/inc/galobj.hxx                                    |    3 
 svx/inc/polygn3d.hxx                                  |    3 
 svx/inc/sdgcoitm.hxx                                  |    7 -
 svx/inc/sdgtritm.hxx                                  |    3 
 svx/inc/sdr/contact/objectcontactofobjlistpainter.hxx |    3 
 svx/source/inc/cell.hxx                               |    3 
 svx/source/inc/datanavi.hxx                           |    3 
 svx/source/inc/fmexch.hxx                             |    5 -
 svx/source/inc/fmexpl.hxx                             |    3 
 svx/source/inc/fmobj.hxx                              |    3 
 svx/source/inc/fmpgeimp.hxx                           |    3 
 svx/source/inc/fmshimp.hxx                            |    3 
 svx/source/inc/sqlparserclient.hxx                    |    3 
 vcl/inc/unx/fontmanager.hxx                           |    3 
 158 files changed, 438 insertions(+), 280 deletions(-)

New commits:
commit 01159643623de55f9e1de84d568032ca919dbd8f
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Fri Mar 20 16:07:46 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Mar 23 12:05:36 2020 +0100

    make more classes private in mergedlibs mode
    
    Change-Id: I486922d0652f26fa7ee56f5fe308e19fe5ff137e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90856
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/basegfx/source/color/bcolormodifier.cxx b/basegfx/source/color/bcolormodifier.cxx
index 9758767ed39b..b98b19f98652 100644
--- a/basegfx/source/color/bcolormodifier.cxx
+++ b/basegfx/source/color/bcolormodifier.cxx
@@ -17,6 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <config_options.h>
 #include <sal/config.h>
 
 #include <algorithm>
diff --git a/desktop/source/deployment/inc/dp_interact.h b/desktop/source/deployment/inc/dp_interact.h
index 511311e817f3..a908af3b59d4 100644
--- a/desktop/source/deployment/inc/dp_interact.h
+++ b/desktop/source/deployment/inc/dp_interact.h
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_DESKTOP_SOURCE_DEPLOYMENT_INC_DP_INTERACT_H
 #define INCLUDED_DESKTOP_SOURCE_DEPLOYMENT_INC_DP_INTERACT_H
 
+#include <config_options.h>
 #include <rtl/ref.hxx>
 #include <cppuhelper/implbase.hxx>
 #include <com/sun/star/ucb/XCommandEnvironment.hpp>
@@ -102,7 +103,7 @@ DESKTOP_DEPLOYMENTMISC_DLLPUBLIC bool interactContinuation(
 
 
 
-class DESKTOP_DEPLOYMENTMISC_DLLPUBLIC AbortChannel :
+class UNLESS_MERGELIBS(DESKTOP_DEPLOYMENTMISC_DLLPUBLIC) AbortChannel :
     public ::cppu::WeakImplHelper<css::task::XAbortChannel>
 {
     bool m_aborted;
diff --git a/emfio/inc/mtftools.hxx b/emfio/inc/mtftools.hxx
index e61e19f5a58c..9506b4f5f31c 100644
--- a/emfio/inc/mtftools.hxx
+++ b/emfio/inc/mtftools.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_EMFIO_INC_MTFTOOLS_HXX
 #define INCLUDED_EMFIO_INC_MTFTOOLS_HXX
 
+#include <config_options.h>
 #include <basegfx/utils/b2dclipstate.hxx>
 #include <tools/poly.hxx>
 #include <vcl/font.hxx>
@@ -314,7 +315,7 @@ namespace emfio
         virtual ~GDIObj() = default; // Polymorphic base class
     };
 
-    struct EMFIO_DLLPUBLIC WinMtfFontStyle final : GDIObj
+    struct UNLESS_MERGELIBS(EMFIO_DLLPUBLIC) WinMtfFontStyle final : GDIObj
     {
         vcl::Font    aFont;
 
diff --git a/framework/inc/addonmenu.hxx b/framework/inc/addonmenu.hxx
index 45d8d0948c89..ea19f677c359 100644
--- a/framework/inc/addonmenu.hxx
+++ b/framework/inc/addonmenu.hxx
@@ -18,6 +18,7 @@
  */
 #pragma once
 
+#include <config_options.h>
 #include <rtl/ustring.hxx>
 #include <vcl/vclptr.hxx>
 
@@ -37,7 +38,7 @@ class PopupMenu;
 namespace framework
 {
 
-class FWE_DLLPUBLIC AddonMenuManager
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) AddonMenuManager
 {
     public:
         static bool       HasAddonMenuElements();
diff --git a/framework/inc/classes/converter.hxx b/framework/inc/classes/converter.hxx
index 1df3a6a050ab..15d36a5f0d0d 100644
--- a/framework/inc/classes/converter.hxx
+++ b/framework/inc/classes/converter.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_INC_CLASSES_CONVERTER_HXX
 #define INCLUDED_FRAMEWORK_INC_CLASSES_CONVERTER_HXX
 
+#include <config_options.h>
 #include <vector>
 
 #include <com/sun/star/uno/Sequence.hxx>
@@ -30,7 +31,7 @@
 
 namespace framework{
 
-class FWI_DLLPUBLIC Converter
+class UNLESS_MERGELIBS(FWI_DLLPUBLIC) Converter
 {
     public:
         // Seq<beans.NamedValue> <=> Seq<beans.PropertyValue>
diff --git a/framework/inc/classes/protocolhandlercache.hxx b/framework/inc/classes/protocolhandlercache.hxx
index 6baaf15343e7..fa7907927d13 100644
--- a/framework/inc/classes/protocolhandlercache.hxx
+++ b/framework/inc/classes/protocolhandlercache.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_INC_CLASSES_PROTOCOLHANDLERCACHE_HXX
 #define INCLUDED_FRAMEWORK_INC_CLASSES_PROTOCOLHANDLERCACHE_HXX
 
+#include <config_options.h>
 #include <unordered_map>
 
 #include <com/sun/star/util/URL.hpp>
@@ -86,7 +87,7 @@ typedef std::unordered_map<OUString, ProtocolHandler> HandlerHash;
 */
 
 class HandlerCFGAccess;
-class FWI_DLLPUBLIC HandlerCache final
+class UNLESS_MERGELIBS(FWI_DLLPUBLIC) HandlerCache final
 {
     /* member */
     private:
diff --git a/framework/inc/jobs/configaccess.hxx b/framework/inc/jobs/configaccess.hxx
index cd77b42a298d..1bb8e01103da 100644
--- a/framework/inc/jobs/configaccess.hxx
+++ b/framework/inc/jobs/configaccess.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_INC_JOBS_CONFIGACCESS_HXX
 #define INCLUDED_FRAMEWORK_INC_JOBS_CONFIGACCESS_HXX
 
+#include <config_options.h>
 #include <com/sun/star/uno/XComponentContext.hpp>
 
 #include <rtl/ustring.hxx>
@@ -33,7 +34,7 @@ namespace framework{
             instead of using specialized config items of the svtools
             project. This class can wrap such configuration access.
  */
-class FWI_DLLPUBLIC ConfigAccess final
+class UNLESS_MERGELIBS(FWI_DLLPUBLIC) ConfigAccess final
 {
 
     public:
diff --git a/framework/inc/menuconfiguration.hxx b/framework/inc/menuconfiguration.hxx
index 312608a7ecc9..4024f99126ca 100644
--- a/framework/inc/menuconfiguration.hxx
+++ b/framework/inc/menuconfiguration.hxx
@@ -19,6 +19,7 @@
 
 #pragma once
 
+#include <config_options.h>
 #include <framework/fwedllapi.h>
 
 #include <cppuhelper/weakref.hxx>
@@ -77,7 +78,7 @@ public:
     }
 };
 
-class FWE_DLLPUBLIC MenuConfiguration final
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) MenuConfiguration final
 {
 public:
         MenuConfiguration(
diff --git a/framework/inc/statusbarconfiguration.hxx b/framework/inc/statusbarconfiguration.hxx
index b4d8ceecfc4c..adfcf623d48f 100644
--- a/framework/inc/statusbarconfiguration.hxx
+++ b/framework/inc/statusbarconfiguration.hxx
@@ -18,6 +18,7 @@
  */
 #pragma once
 
+#include <config_options.h>
 #include <framework/fwedllapi.h>
 
 namespace com::sun::star::container { class XIndexAccess; }
@@ -30,7 +31,7 @@ namespace com::sun::star::uno { template <typename > class Reference; }
 namespace framework
 {
 
-class FWE_DLLPUBLIC StatusBarConfiguration
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) StatusBarConfiguration
 {
     public:
         static bool LoadStatusBar(
diff --git a/framework/inc/threadhelp/transactionmanager.hxx b/framework/inc/threadhelp/transactionmanager.hxx
index e909900958ea..9dbdc3b38e57 100644
--- a/framework/inc/threadhelp/transactionmanager.hxx
+++ b/framework/inc/threadhelp/transactionmanager.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_INC_THREADHELP_TRANSACTIONMANAGER_HXX
 #define INCLUDED_FRAMEWORK_INC_THREADHELP_TRANSACTIONMANAGER_HXX
 
+#include <config_options.h>
 #include <threadhelp/gate.hxx>
 
 #include <osl/mutex.hxx>
@@ -91,7 +92,7 @@ enum EExceptionMode
 
     @devstatus      draft
 *//*-*************************************************************************************************************/
-class FWI_DLLPUBLIC TransactionManager
+class UNLESS_MERGELIBS(FWI_DLLPUBLIC) TransactionManager
 {
 
     //  public methods
diff --git a/framework/inc/toolboxconfiguration.hxx b/framework/inc/toolboxconfiguration.hxx
index a0a04ccaceba..40df7d0c8655 100644
--- a/framework/inc/toolboxconfiguration.hxx
+++ b/framework/inc/toolboxconfiguration.hxx
@@ -18,6 +18,7 @@
  */
 #pragma once
 
+#include <config_options.h>
 #include <framework/fwedllapi.h>
 
 namespace com::sun::star::container { class XIndexAccess; }
@@ -30,7 +31,7 @@ namespace com::sun::star::uno { template <typename > class Reference; }
 namespace framework
 {
 
-class FWE_DLLPUBLIC ToolBoxConfiguration
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) ToolBoxConfiguration
 {
     public:
         static bool LoadToolBox(
diff --git a/framework/inc/uielement/constitemcontainer.hxx b/framework/inc/uielement/constitemcontainer.hxx
index c4a384597e65..43f10597c4a7 100644
--- a/framework/inc/uielement/constitemcontainer.hxx
+++ b/framework/inc/uielement/constitemcontainer.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_INC_UIELEMENT_CONSTITEMCONTAINER_HXX
 #define INCLUDED_FRAMEWORK_INC_UIELEMENT_CONSTITEMCONTAINER_HXX
 
+#include <config_options.h>
 #include <com/sun/star/beans/PropertyValue.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/beans/XFastPropertySet.hpp>
@@ -38,7 +39,7 @@ namespace framework
 
 class RootItemContainer;
 class ItemContainer;
-class FWI_DLLPUBLIC ConstItemContainer final : public ::cppu::WeakImplHelper<
+class UNLESS_MERGELIBS(FWI_DLLPUBLIC) ConstItemContainer final : public ::cppu::WeakImplHelper<
                                                     css::container::XIndexAccess,
                                                     css::lang::XUnoTunnel       ,
                                                     css::beans::XFastPropertySet,
diff --git a/framework/inc/xml/saxnamespacefilter.hxx b/framework/inc/xml/saxnamespacefilter.hxx
index 5222d7454283..620ebd03d28c 100644
--- a/framework/inc/xml/saxnamespacefilter.hxx
+++ b/framework/inc/xml/saxnamespacefilter.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_INC_XML_SAXNAMESPACEFILTER_HXX
 #define INCLUDED_FRAMEWORK_INC_XML_SAXNAMESPACEFILTER_HXX
 
+#include <config_options.h>
 #include <com/sun/star/xml/sax/XDocumentHandler.hpp>
 #include <xml/xmlnamespaces.hxx>
 #include <rtl/ustring.hxx>
@@ -34,7 +35,7 @@ namespace framework
 // workaround for incremental linking bugs in MSVC2015
 class SAL_DLLPUBLIC_TEMPLATE SaxNamespaceFilter_Base : public cppu::WeakImplHelper< css::xml::sax::XDocumentHandler > {};
 
-class FWE_DLLPUBLIC SaxNamespaceFilter final : public SaxNamespaceFilter_Base
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) SaxNamespaceFilter final : public SaxNamespaceFilter_Base
 {
     public:
         SaxNamespaceFilter( css::uno::Reference< css::xml::sax::XDocumentHandler > const & rSax1DocumentHandler );
diff --git a/include/avmedia/MediaControlBase.hxx b/include/avmedia/MediaControlBase.hxx
index 2db0cf637160..7c5530019218 100644
--- a/include/avmedia/MediaControlBase.hxx
+++ b/include/avmedia/MediaControlBase.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_AVMEDIA_MEDIACONTROLBASE_HXX
 #define INCLUDED_AVMEDIA_MEDIACONTROLBASE_HXX
 
+#include <config_options.h>
 #include <vcl/weld.hxx>
 
 #include <avmedia/avmediadllapi.h>
@@ -54,7 +55,7 @@ enum MediaControlStyle
     MEDIACONTROLSTYLE_MULTILINE = 1
 };
 
-class AVMEDIA_DLLPUBLIC MediaControlBase
+class UNLESS_MERGELIBS(AVMEDIA_DLLPUBLIC) MediaControlBase
 {
 public:
     MediaControlBase();
diff --git a/include/avmedia/mediaplayer.hxx b/include/avmedia/mediaplayer.hxx
index 52ecd942e49a..d00fcc55abd8 100644
--- a/include/avmedia/mediaplayer.hxx
+++ b/include/avmedia/mediaplayer.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_AVMEDIA_MEDIAPLAYER_HXX
 #define INCLUDED_AVMEDIA_MEDIAPLAYER_HXX
 
+#include <config_options.h>
 #include <sfx2/dockwin.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <avmedia/avmediadllapi.h>
@@ -39,7 +40,7 @@ public:
 
 class MediaWindow;
 
-class AVMEDIA_DLLPUBLIC MediaFloater final : public SfxDockingWindow
+class UNLESS_MERGELIBS(AVMEDIA_DLLPUBLIC) MediaFloater final : public SfxDockingWindow
 {
 public:
 
diff --git a/include/basegfx/color/bcolormodifier.hxx b/include/basegfx/color/bcolormodifier.hxx
index 41c47bd54edc..ea18f8ba4fc0 100644
--- a/include/basegfx/color/bcolormodifier.hxx
+++ b/include/basegfx/color/bcolormodifier.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASEGFX_COLOR_BCOLORMODIFIER_HXX
 #define INCLUDED_BASEGFX_COLOR_BCOLORMODIFIER_HXX
 
+#include <config_options.h>
 #include <basegfx/basegfxdllapi.h>
 #include <basegfx/color/bcolor.hxx>
 
@@ -56,7 +57,7 @@ namespace basegfx
         All usages should handle instances of BColorModifier encapsulated
         into these shared pointers.
     */
-    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier
+    class SAL_WARN_UNUSED UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) BColorModifier
     {
     private:
         BColorModifier(const BColorModifier&) = delete;
@@ -84,7 +85,7 @@ namespace basegfx
 
     /** convert color to gray
     */
-    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier_gray final : public BColorModifier
+    class SAL_WARN_UNUSED UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) BColorModifier_gray final : public BColorModifier
     {
     public:
         BColorModifier_gray()
@@ -105,7 +106,7 @@ namespace basegfx
 
         returns a color where red green and blue are inverted using 1.0 - n
     */
-    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier_invert final : public BColorModifier
+    class SAL_WARN_UNUSED UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) BColorModifier_invert final : public BColorModifier
     {
     public:
         BColorModifier_invert()
@@ -153,7 +154,7 @@ namespace basegfx
         given color, replacing everything. Useful e.g. for unified shadow
         creation
     */
-    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier_replace final : public BColorModifier
+    class SAL_WARN_UNUSED UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) BColorModifier_replace final : public BColorModifier
     {
     private:
         ::basegfx::BColor           maBColor;
@@ -212,7 +213,7 @@ namespace basegfx
         returns black when the luminance of the given color is less than
         the given threshold value in the range [0.0 .. 1.0], else white
     */
-    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier_black_and_white final : public BColorModifier
+    class SAL_WARN_UNUSED UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) BColorModifier_black_and_white final : public BColorModifier
     {
     private:
         double                      mfValue;
@@ -240,7 +241,7 @@ namespace basegfx
 
         col(r,g,b) = clamp(pow(col(r,g,b), 1.0 / gamma), 0.0, 1.0)
     */
-    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier_gamma final : public BColorModifier
+    class SAL_WARN_UNUSED UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) BColorModifier_gamma final : public BColorModifier
     {
     private:
         double                      mfValue;
@@ -268,7 +269,7 @@ namespace basegfx
         - be able to cover a bigger change range utilizing the combination
         - allow execution by a small, common, precalculated table
     */
-    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier_RGBLuminanceContrast final : public BColorModifier
+    class SAL_WARN_UNUSED UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) BColorModifier_RGBLuminanceContrast final : public BColorModifier
     {
     private:
         double                      mfRed;
@@ -307,7 +308,7 @@ namespace basegfx
         All references to BColorModifier members use shared pointers, thus instances of
         BColorModifierStack can be copied by the default mechanisms if needed.
     */
-    class BASEGFX_DLLPUBLIC BColorModifierStack final
+    class UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) BColorModifierStack final
     {
         ::std::vector< BColorModifierSharedPtr >        maBColorModifiers;
 
diff --git a/include/basegfx/polygon/b2dtrapezoid.hxx b/include/basegfx/polygon/b2dtrapezoid.hxx
index 6333d2d17876..82bee12e37bf 100644
--- a/include/basegfx/polygon/b2dtrapezoid.hxx
+++ b/include/basegfx/polygon/b2dtrapezoid.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASEGFX_POLYGON_B2DTRAPEZOID_HXX
 #define INCLUDED_BASEGFX_POLYGON_B2DTRAPEZOID_HXX
 
+#include <config_options.h>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <vector>
 #include <basegfx/basegfxdllapi.h>
@@ -31,7 +32,7 @@ namespace basegfx { class B2DPoint; }
 namespace basegfx
 {
     // class to hold a single trapezoid
-    class BASEGFX_DLLPUBLIC B2DTrapezoid
+    class UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) B2DTrapezoid
     {
     private:
         // Geometry data. YValues are down-oriented, this means bottom should
diff --git a/include/basegfx/raster/rasterconvert3d.hxx b/include/basegfx/raster/rasterconvert3d.hxx
index 19c93770dd11..acffe04471cb 100644
--- a/include/basegfx/raster/rasterconvert3d.hxx
+++ b/include/basegfx/raster/rasterconvert3d.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASEGFX_RASTER_RASTERCONVERT3D_HXX
 #define INCLUDED_BASEGFX_RASTER_RASTERCONVERT3D_HXX
 
+#include <config_options.h>
 #include <sal/types.h>
 #include <vector>
 
@@ -408,7 +409,7 @@ namespace basegfx
 
 namespace basegfx
 {
-    class BASEGFX_DLLPUBLIC RasterConverter3D : public InterpolatorProvider3D
+    class UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) RasterConverter3D : public InterpolatorProvider3D
     {
     private:
         // the line entries for an area conversion run
diff --git a/include/basegfx/tuple/b3dtuple.hxx b/include/basegfx/tuple/b3dtuple.hxx
index fd23e1fb2810..9237517beb0f 100644
--- a/include/basegfx/tuple/b3dtuple.hxx
+++ b/include/basegfx/tuple/b3dtuple.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASEGFX_TUPLE_B3DTUPLE_HXX
 #define INCLUDED_BASEGFX_TUPLE_B3DTUPLE_HXX
 
+#include <config_options.h>
 #include <sal/types.h>
 #include <basegfx/numeric/ftools.hxx>
 #include <basegfx/basegfxdllapi.h>
@@ -36,7 +37,7 @@ namespace basegfx
         @derive Use this class to implement Points or Vectors
         which are based on three double values
     */
-    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC B3DTuple
+    class SAL_WARN_UNUSED UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) B3DTuple
     {
     protected:
         double                                      mfX;
diff --git a/include/basegfx/utils/gradienttools.hxx b/include/basegfx/utils/gradienttools.hxx
index 5714fc1802f1..97101adf2201 100644
--- a/include/basegfx/utils/gradienttools.hxx
+++ b/include/basegfx/utils/gradienttools.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASEGFX_UTILS_GRADIENTTOOLS_HXX
 #define INCLUDED_BASEGFX_UTILS_GRADIENTTOOLS_HXX
 
+#include <config_options.h>
 #include <basegfx/point/b2dpoint.hxx>
 #include <basegfx/vector/b2dvector.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
@@ -35,7 +36,7 @@ namespace basegfx
         1.2-compatible gradients. Use the createXXXODFGradientInfo()
         methods below for initializing from ODF attributes.
      */
-    class BASEGFX_DLLPUBLIC ODFGradientInfo
+    class UNLESS_MERGELIBS(BASEGFX_DLLPUBLIC) ODFGradientInfo
     {
     private:
         /** transformation mapping from [0,1]^2 texture coordinate
diff --git a/include/basic/codecompletecache.hxx b/include/basic/codecompletecache.hxx
index d7ce0f69f0d4..8f4b4a565c1c 100644
--- a/include/basic/codecompletecache.hxx
+++ b/include/basic/codecompletecache.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASIC_CODECOMPLETECACHE_HXX
 #define INCLUDED_BASIC_CODECOMPLETECACHE_HXX
 
+#include <config_options.h>
 #include <basic/basicdllapi.h>
 #include <rtl/ustring.hxx>
 #include <svtools/miscopt.hxx>
@@ -67,7 +68,7 @@ public:
     static void SetAutoCorrectOn( bool b );
 };
 
-class BASIC_DLLPUBLIC CodeCompleteDataCache final
+class UNLESS_MERGELIBS(BASIC_DLLPUBLIC) CodeCompleteDataCache final
 {
 /*
  * cache to store data for
diff --git a/include/basic/modsizeexceeded.hxx b/include/basic/modsizeexceeded.hxx
index cbcfa37b858e..decaae9b07b3 100644
--- a/include/basic/modsizeexceeded.hxx
+++ b/include/basic/modsizeexceeded.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASIC_MODSIZEEXCEEDED_HXX
 #define INCLUDED_BASIC_MODSIZEEXCEEDED_HXX
 
+#include <config_options.h>
 #include <com/sun/star/task/XInteractionRequest.hpp>
 #include <cppuhelper/implbase.hxx>
 #include <basic/basicdllapi.h>
@@ -27,7 +28,7 @@
 
 namespace com::sun::star::task { class XInteractionContinuation; }
 
-class BASIC_DLLPUBLIC ModuleSizeExceeded final : public cppu::WeakImplHelper< css::task::XInteractionRequest >
+class UNLESS_MERGELIBS(BASIC_DLLPUBLIC) ModuleSizeExceeded final : public cppu::WeakImplHelper< css::task::XInteractionRequest >
 {
 // C++ interface
 public:
diff --git a/include/basic/sbmod.hxx b/include/basic/sbmod.hxx
index cc9ab469d3a5..64a87900a659 100644
--- a/include/basic/sbmod.hxx
+++ b/include/basic/sbmod.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASIC_SBMOD_HXX
 #define INCLUDED_BASIC_SBMOD_HXX
 
+#include <config_options.h>
 #include <basic/sbdef.hxx>
 #include <basic/sbxobj.hxx>
 #include <basic/sbxdef.hxx>
@@ -138,7 +139,7 @@ typedef tools::SvRef<SbModule> SbModuleRef;
 typedef std::vector<SbModuleRef> SbModules;
 
 // Object class for instances of class modules
-class BASIC_DLLPUBLIC SbClassModuleObject : public SbModule
+class UNLESS_MERGELIBS(BASIC_DLLPUBLIC) SbClassModuleObject : public SbModule
 {
     SbModule*   mpClassModule;
     bool        mbInitializeEventDone;
diff --git a/include/basic/sbx.hxx b/include/basic/sbx.hxx
index 51cd516b53e0..0390d421c9d1 100644
--- a/include/basic/sbx.hxx
+++ b/include/basic/sbx.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_BASIC_SBX_HXX
 #define INCLUDED_BASIC_SBX_HXX
 
+#include <config_options.h>
 #include <tools/ref.hxx>
 #include <svl/hint.hxx>
 
@@ -47,7 +48,7 @@ struct SbxParamInfo
 
 typedef std::vector<std::unique_ptr<SbxParamInfo>> SbxParams;
 
-class BASIC_DLLPUBLIC SbxInfo : public SvRefBase
+class UNLESS_MERGELIBS(BASIC_DLLPUBLIC) SbxInfo : public SvRefBase
 {
     friend class SbxVariable;
     friend class SbMethod;
diff --git a/include/comphelper/accessibleselectionhelper.hxx b/include/comphelper/accessibleselectionhelper.hxx
index f23749377281..3a49c1ffd3d9 100644
--- a/include/comphelper/accessibleselectionhelper.hxx
+++ b/include/comphelper/accessibleselectionhelper.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_ACCESSIBLESELECTIONHELPER_HXX
 #define INCLUDED_COMPHELPER_ACCESSIBLESELECTIONHELPER_HXX
 
+#include <config_options.h>
 #include <comphelper/uno3.hxx>
 #include <comphelper/accessiblecomponenthelper.hxx>
 #include <cppuhelper/implbase1.hxx>
@@ -98,7 +99,7 @@ namespace comphelper
     /** a helper class for implementing an AccessibleSelection which at the same time
         supports an XAccessibleSelection interface.
     */
-    class COMPHELPER_DLLPUBLIC OAccessibleSelectionHelper : public OAccessibleComponentHelper,
+    class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OAccessibleSelectionHelper : public OAccessibleComponentHelper,
                                        public OCommonAccessibleSelection,
                                        public OAccessibleSelectionHelper_Base
     {
diff --git a/include/comphelper/accessiblewrapper.hxx b/include/comphelper/accessiblewrapper.hxx
index 07d46824591a..2772084476bc 100644
--- a/include/comphelper/accessiblewrapper.hxx
+++ b/include/comphelper/accessiblewrapper.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_ACCESSIBLEWRAPPER_HXX
 #define INCLUDED_COMPHELPER_ACCESSIBLEWRAPPER_HXX
 
+#include <config_options.h>
 #include <sal/config.h>
 
 #include <map>
@@ -323,7 +324,7 @@ namespace comphelper
                                   >   OWrappedAccessibleChildrenManager_Base;
     /** manages wrapping XAccessible's to XAccessible's
     */
-    class COMPHELPER_DLLPUBLIC OWrappedAccessibleChildrenManager : public OWrappedAccessibleChildrenManager_Base
+    class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OWrappedAccessibleChildrenManager : public OWrappedAccessibleChildrenManager_Base
     {
     protected:
         css::uno::Reference< css::uno::XComponentContext >
diff --git a/include/comphelper/container.hxx b/include/comphelper/container.hxx
index 03a7e96de77c..5494698342cf 100644
--- a/include/comphelper/container.hxx
+++ b/include/comphelper/container.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_CONTAINER_HXX
 #define INCLUDED_COMPHELPER_CONTAINER_HXX
 
+#include <config_options.h>
 #include <vector>
 #include <com/sun/star/uno/Reference.hxx>
 #include <comphelper/comphelperdllapi.h>
@@ -33,7 +34,7 @@ namespace comphelper
 
 /** an iterator that iterates through all elements, starting from an XIndexAccess (pre-order)
 */
-class COMPHELPER_DLLPUBLIC IndexAccessIterator
+class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) IndexAccessIterator
 {
 protected:
     css::uno::Reference< css::uno::XInterface>    m_xStartingPoint;
diff --git a/include/comphelper/evtlistenerhlp.hxx b/include/comphelper/evtlistenerhlp.hxx
index 5e99461e8cc3..212d94662917 100644
--- a/include/comphelper/evtlistenerhlp.hxx
+++ b/include/comphelper/evtlistenerhlp.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_COMPHELPER_EVTLISTENERHLP_HXX
 #define INCLUDED_COMPHELPER_EVTLISTENERHLP_HXX
 
+#include <config_options.h>
 #include <cppuhelper/implbase.hxx>
 #include <com/sun/star/lang/XEventListener.hpp>
 #include <cppuhelper/weakref.hxx>
@@ -33,7 +34,7 @@ namespace comphelper
     // is helper class to avoid a cycle in refcount between the XEventListener
     // and the member XComponent
 
-    class COMPHELPER_DLLPUBLIC OEventListenerHelper final : public ::cppu::WeakImplHelper< css::lang::XEventListener >
+    class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OEventListenerHelper final : public ::cppu::WeakImplHelper< css::lang::XEventListener >
     {
         css::uno::WeakReference< css::lang::XEventListener> m_xListener;
     public:
diff --git a/include/comphelper/propagg.hxx b/include/comphelper/propagg.hxx
index 9c750e85a584..4881b2a7c884 100644
--- a/include/comphelper/propagg.hxx
+++ b/include/comphelper/propagg.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_PROPAGG_HXX
 #define INCLUDED_COMPHELPER_PROPAGG_HXX
 
+#include <config_options.h>
 #include <com/sun/star/beans/Property.hpp>
 #include <com/sun/star/beans/PropertyState.hpp>
 #include <com/sun/star/beans/XPropertiesChangeListener.hpp>
@@ -194,7 +195,7 @@ namespace internal
  * supports at least XPropertySet and XMultiPropertySet
  *
  */
-class COMPHELPER_DLLPUBLIC OPropertySetAggregationHelper    :public OPropertyStateHelper
+class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OPropertySetAggregationHelper    :public OPropertyStateHelper
                                     ,public css::beans::XPropertiesChangeListener
                                     ,public css::beans::XVetoableChangeListener
 {
diff --git a/include/comphelper/propertybag.hxx b/include/comphelper/propertybag.hxx
index 337bf4da4e5f..0bd7eb020e01 100644
--- a/include/comphelper/propertybag.hxx
+++ b/include/comphelper/propertybag.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_PROPERTYBAG_HXX
 #define INCLUDED_COMPHELPER_PROPERTYBAG_HXX
 
+#include <config_options.h>
 #include <comphelper/comphelperdllapi.h>
 #include <comphelper/propertycontainerhelper.hxx>
 
@@ -39,7 +40,7 @@ namespace comphelper
         This class can, for instance, be used for components which need to implement
         the com.sun.star.beans.PropertyBag service.
     */
-    class COMPHELPER_DLLPUBLIC PropertyBag final : protected OPropertyContainerHelper
+    class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) PropertyBag final : protected OPropertyContainerHelper
     {
     private:
         ::std::unique_ptr< PropertyBag_Impl > m_pImpl;
diff --git a/include/comphelper/propstate.hxx b/include/comphelper/propstate.hxx
index 3e3cea79e082..7729aaa9b8f4 100644
--- a/include/comphelper/propstate.hxx
+++ b/include/comphelper/propstate.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_PROPSTATE_HXX
 #define INCLUDED_COMPHELPER_PROPSTATE_HXX
 
+#include <config_options.h>
 #include <com/sun/star/beans/XPropertyState.hpp>
 #include <com/sun/star/uno/Sequence.h>
 
@@ -42,7 +43,7 @@ namespace comphelper
     //= OPropertyStateHelper
 
     /// helper class for implementing property states
-    class COMPHELPER_DLLPUBLIC OPropertyStateHelper :public ::cppu::OPropertySetHelper2
+    class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OPropertyStateHelper :public ::cppu::OPropertySetHelper2
                                                     ,public css::beans::XPropertyState
     {
     public:
@@ -78,7 +79,7 @@ namespace comphelper
 
     //= OPropertyStateHelper
 
-    class COMPHELPER_DLLPUBLIC OStatefulPropertySet  :public ::cppu::OWeakObject
+    class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OStatefulPropertySet  :public ::cppu::OWeakObject
                                 ,public css::lang::XTypeProvider
                                 ,public OMutexAndBroadcastHelper    // order matters: before OPropertyStateHelper/OPropertySetHelper
                                 ,public OPropertyStateHelper
diff --git a/include/comphelper/seqstream.hxx b/include/comphelper/seqstream.hxx
index d515b0fe4b7c..6ea3ebc2c777 100644
--- a/include/comphelper/seqstream.hxx
+++ b/include/comphelper/seqstream.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_COMPHELPER_SEQSTREAM_HXX
 #define INCLUDED_COMPHELPER_SEQSTREAM_HXX
 
+#include <config_options.h>
 #include <com/sun/star/uno/Sequence.hxx>
 #include <com/sun/star/io/XInputStream.hpp>
 #include <com/sun/star/io/XOutputStream.hpp>
@@ -69,7 +70,7 @@ class SAL_DLLPUBLIC_TEMPLATE OSequenceOutputStream_Base
     : public ::cppu::WeakImplHelper< css::io::XOutputStream >
 {};
 
-class COMPHELPER_DLLPUBLIC OSequenceOutputStream final : public OSequenceOutputStream_Base
+class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OSequenceOutputStream final : public OSequenceOutputStream_Base
 {
 private:
     void finalizeOutput();
diff --git a/include/comphelper/stillreadwriteinteraction.hxx b/include/comphelper/stillreadwriteinteraction.hxx
index efa5436c2dc5..2bc8fa4f049e 100644
--- a/include/comphelper/stillreadwriteinteraction.hxx
+++ b/include/comphelper/stillreadwriteinteraction.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_STILLREADWRITEINTERACTION_HXX
 #define INCLUDED_COMPHELPER_STILLREADWRITEINTERACTION_HXX
 
+#include <config_options.h>
 #include <ucbhelper/interceptedinteraction.hxx>
 
 #include <comphelper/comphelperdllapi.h>
@@ -29,7 +30,7 @@ namespace com::sun::star::task { class XInteractionRequest; }
 
 
 namespace comphelper{
-class COMPHELPER_DLLPUBLIC StillReadWriteInteraction final : public ::ucbhelper::InterceptedInteraction
+class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) StillReadWriteInteraction final : public ::ucbhelper::InterceptedInteraction
 {
 private:
     static const sal_Int32 HANDLE_INTERACTIVEIOEXCEPTION       = 0;
diff --git a/include/comphelper/streamsection.hxx b/include/comphelper/streamsection.hxx
index d24783c93704..5de717824705 100644
--- a/include/comphelper/streamsection.hxx
+++ b/include/comphelper/streamsection.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_STREAMSECTION_HXX
 #define INCLUDED_COMPHELPER_STREAMSECTION_HXX
 
+#include <config_options.h>
 #include <com/sun/star/uno/Reference.h>
 #include <comphelper/comphelperdllapi.h>
 
@@ -35,7 +36,7 @@ namespace comphelper
     use the same mechanism.
 */
 
-class COMPHELPER_DLLPUBLIC OStreamSection
+class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OStreamSection
 {
     css::uno::Reference< css::io::XMarkableStream >       m_xMarkStream;
     css::uno::Reference< css::io::XDataInputStream >      m_xInStream;
diff --git a/include/comphelper/weakeventlistener.hxx b/include/comphelper/weakeventlistener.hxx
index a39c0d0c9c70..611744e4796c 100644
--- a/include/comphelper/weakeventlistener.hxx
+++ b/include/comphelper/weakeventlistener.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_COMPHELPER_WEAKEVENTLISTENER_HXX
 #define INCLUDED_COMPHELPER_WEAKEVENTLISTENER_HXX
 
+#include <config_options.h>
 #include <cppuhelper/compbase.hxx>
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/weakref.hxx>
@@ -132,7 +133,7 @@ namespace comphelper
                                     >   OWeakEventListenerAdapter_Base;
     /** the most simple listener adapter: for XEventListeners at XComponents
     */
-    class COMPHELPER_DLLPUBLIC OWeakEventListenerAdapter final : public OWeakEventListenerAdapter_Base
+    class UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OWeakEventListenerAdapter final : public OWeakEventListenerAdapter_Base
     {
     public:
         OWeakEventListenerAdapter(
diff --git a/include/connectivity/paramwrapper.hxx b/include/connectivity/paramwrapper.hxx
index 3586fbac5e7a..1d55ea38d0d4 100644
--- a/include/connectivity/paramwrapper.hxx
+++ b/include/connectivity/paramwrapper.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_CONNECTIVITY_PARAMWRAPPER_HXX
 #define INCLUDED_CONNECTIVITY_PARAMWRAPPER_HXX
 
+#include <config_options.h>
 #include <connectivity/dbtoolsdllapi.hxx>
 #include <connectivity/FValue.hxx>
 
@@ -50,7 +51,7 @@ namespace param
     /** wraps a parameter column as got from an SQLQueryComposer, so that it has an additional
         property "Value", which is forwarded to an XParameters interface
     */
-    class OOO_DLLPUBLIC_DBTOOLS ParameterWrapper final : public ::cppu::OWeakObject
+    class UNLESS_MERGELIBS(OOO_DLLPUBLIC_DBTOOLS) ParameterWrapper final : public ::cppu::OWeakObject
                             ,public css::lang::XTypeProvider
                             ,public ::comphelper::OMutexAndBroadcastHelper
                             ,public ::cppu::OPropertySetHelper
diff --git a/include/connectivity/sdbcx/VCollection.hxx b/include/connectivity/sdbcx/VCollection.hxx
index 94e9e5f27166..525066876156 100644
--- a/include/connectivity/sdbcx/VCollection.hxx
+++ b/include/connectivity/sdbcx/VCollection.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_CONNECTIVITY_SDBCX_VCOLLECTION_HXX
 #define INCLUDED_CONNECTIVITY_SDBCX_VCOLLECTION_HXX
 
+#include <config_options.h>
 #include <cppuhelper/implbase10.hxx>
 #include <com/sun/star/container/XNameAccess.hpp>
 #include <com/sun/star/container/XIndexAccess.hpp>
@@ -59,7 +60,7 @@ namespace connectivity
 
         typedef css::uno::Reference< css::beans::XPropertySet > ObjectType;
 
-        class OOO_DLLPUBLIC_DBTOOLS SAL_NO_VTABLE IObjectCollection
+        class UNLESS_MERGELIBS(OOO_DLLPUBLIC_DBTOOLS) SAL_NO_VTABLE IObjectCollection
         {
         public:
             virtual ~IObjectCollection();
diff --git a/include/editeng/AccessibleEditableTextPara.hxx b/include/editeng/AccessibleEditableTextPara.hxx
index d2b07f965c3d..f6d77171c1b3 100644
--- a/include/editeng/AccessibleEditableTextPara.hxx
+++ b/include/editeng/AccessibleEditableTextPara.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_EDITENG_ACCESSIBLEEDITABLETEXTPARA_HXX
 #define INCLUDED_EDITENG_ACCESSIBLEEDITABLETEXTPARA_HXX
 
+#include <config_options.h>
 #include <rtl/ustring.hxx>
 #include <tools/gen.hxx>
 #include <cppuhelper/compbase.hxx>
@@ -61,7 +62,7 @@ namespace accessibility
 
     /** This class implements the actual text paragraphs for the EditEngine/Outliner UAA
      */
-    class EDITENG_DLLPUBLIC AccessibleEditableTextPara final : public ::cppu::BaseMutex, public AccessibleTextParaInterfaceBase, private ::comphelper::OCommonAccessibleText
+    class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) AccessibleEditableTextPara final : public ::cppu::BaseMutex, public AccessibleTextParaInterfaceBase, private ::comphelper::OCommonAccessibleText
     {
 
         // override OCommonAccessibleText methods
diff --git a/include/editeng/AccessibleParaManager.hxx b/include/editeng/AccessibleParaManager.hxx
index 6c4cdf392eaf..d496be8afb28 100644
--- a/include/editeng/AccessibleParaManager.hxx
+++ b/include/editeng/AccessibleParaManager.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_EDITENG_ACCESSIBLEPARAMANAGER_HXX
 #define INCLUDED_EDITENG_ACCESSIBLEPARAMANAGER_HXX
 
+#include <config_options.h>
 #include <vector>
 #include <utility>
 #include <tools/gen.hxx>
@@ -85,7 +86,7 @@ namespace accessibility
         To facilitate automatic deletion of paragraphs no longer used,
         this class uses the WeakCppRef helper to hold the objects weakly.
      */
-    class EDITENG_DLLPUBLIC AccessibleParaManager
+    class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) AccessibleParaManager
     {
     public:
         typedef WeakCppRef < css::accessibility::XAccessible, AccessibleEditableTextPara > WeakPara;
diff --git a/include/editeng/charrotateitem.hxx b/include/editeng/charrotateitem.hxx
index 0ce60bb1a05b..9d7bb6935b05 100644
--- a/include/editeng/charrotateitem.hxx
+++ b/include/editeng/charrotateitem.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_EDITENG_CHARROTATEITEM_HXX
 #define INCLUDED_EDITENG_CHARROTATEITEM_HXX
 
+#include <config_options.h>
 #include <svl/intitem.hxx>
 #include <editeng/editengdllapi.h>
 
@@ -31,7 +32,7 @@
 
  */
 
-class EDITENG_DLLPUBLIC SvxTextRotateItem : public SfxUInt16Item
+class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvxTextRotateItem : public SfxUInt16Item
 {
 public:
     SvxTextRotateItem(sal_uInt16 nValue, const sal_uInt16 nId);
diff --git a/include/editeng/editund2.hxx b/include/editeng/editund2.hxx
index e4af37b25a36..bac1178648f1 100644
--- a/include/editeng/editund2.hxx
+++ b/include/editeng/editund2.hxx
@@ -20,12 +20,13 @@
 #ifndef INCLUDED_EDITENG_EDITUND2_HXX
 #define INCLUDED_EDITENG_EDITUND2_HXX
 
+#include <config_options.h>
 #include <editeng/editengdllapi.h>
 #include <svl/undo.hxx>
 
 class EditEngine;
 
-class EDITENG_DLLPUBLIC EditUndoManager : public SfxUndoManager
+class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) EditUndoManager : public SfxUndoManager
 {
     using SfxUndoManager::Undo;
     using SfxUndoManager::Redo;
diff --git a/include/editeng/editview.hxx b/include/editeng/editview.hxx
index fdbfd8a08fff..0f76948c3ffc 100644
--- a/include/editeng/editview.hxx
+++ b/include/editeng/editview.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_EDITENG_EDITVIEW_HXX
 #define INCLUDED_EDITENG_EDITVIEW_HXX
 
+#include <config_options.h>
 #include <memory>
 #include <com/sun/star/i18n/WordType.hpp>
 
@@ -87,7 +88,7 @@ enum class ScrollRangeCheck
 // react itself as needed.
 // Also Selection visualization is suppressed and EditViewSelectionChange
 // is triggered when Selection changes and needs reaction.
-class EDITENG_DLLPUBLIC EditViewCallbacks
+class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) EditViewCallbacks
 {
 public:
     EditViewCallbacks() {}
diff --git a/include/editeng/legacyitem.hxx b/include/editeng/legacyitem.hxx
index 4f118eff92c2..d92bcb59da43 100644
--- a/include/editeng/legacyitem.hxx
+++ b/include/editeng/legacyitem.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_EDITENG_LEGACYITEM_HXX
 #define INCLUDED_EDITENG_LEGACYITEM_HXX
 
+#include <config_options.h>
 #include <editeng/editengdllapi.h>
 
 //////////////////////////////////////////////////////////////////////////////
@@ -66,44 +67,44 @@ namespace legacy
 {
     namespace SvxFont
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxFontItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxFontItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxFontItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxFontItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxFontHeight
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxFontHeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxFontHeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxFontHeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxFontHeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxWeight
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxWeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxWeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxWeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxWeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxPosture
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxPostureItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxPostureItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxPostureItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxPostureItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxTextLine // SvxUnderlineItem, SvxOverlineItem -> SvxTextLineItem
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxTextLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxTextLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxTextLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxTextLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxCrossedOut
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxCrossedOutItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxCrossedOutItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxCrossedOutItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxCrossedOutItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     // SvxContourItem -> SfxBoolItem
@@ -111,51 +112,51 @@ namespace legacy
 
     namespace SvxColor
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxColorItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxColorItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxColorItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxColorItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxBox
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxBoxItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxBoxItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxBoxItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxBoxItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxLine
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxBrush
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxBrushItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxBrushItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxBrushItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxBrushItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxAdjust
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxAdjustItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxAdjustItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxAdjustItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxAdjustItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxHorJustify
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxHorJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxHorJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxHorJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxHorJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxVerJustify
     {
-        sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
-        void EDITENG_DLLPUBLIC Create(SvxVerJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
-        EDITENG_DLLPUBLIC SvStream& Store(const SvxVerJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        sal_uInt16 UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) GetVersion(sal_uInt16 nFileFormatVersion);
+        void UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) Create(SvxVerJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+        UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvStream& Store(const SvxVerJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
     }
 
     namespace SvxFrameDirection
diff --git a/include/editeng/overflowingtxt.hxx b/include/editeng/overflowingtxt.hxx
index e1f3637f46ff..2f5aac938655 100644
--- a/include/editeng/overflowingtxt.hxx
+++ b/include/editeng/overflowingtxt.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_EDITENG_OVERFLOWINGTXT_HXX
 #define INCLUDED_EDITENG_OVERFLOWINGTXT_HXX
 
+#include <config_options.h>
 #include <editeng/editengdllapi.h>
 #include <editeng/editdata.hxx>
 
@@ -98,7 +99,7 @@ private:
  * (respectively after Overflow and Underflow).
  *
  */
-class EDITENG_DLLPUBLIC OFlowChainedText
+class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) OFlowChainedText
 {
 public:
     OFlowChainedText(Outliner const *, bool );
@@ -119,7 +120,7 @@ private:
 };
 
 // UFlowChainedText is a simpler class than OFlowChainedText: it almost only joins para-objects
-class EDITENG_DLLPUBLIC UFlowChainedText
+class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) UFlowChainedText
 {
 public:
     UFlowChainedText(Outliner const *, bool);
diff --git a/include/editeng/unoedprx.hxx b/include/editeng/unoedprx.hxx
index 59d83c38c8bd..9786b2399ce3 100644
--- a/include/editeng/unoedprx.hxx
+++ b/include/editeng/unoedprx.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_EDITENG_UNOEDPRX_HXX
 #define INCLUDED_EDITENG_UNOEDPRX_HXX
 
+#include <config_options.h>
 #include <memory>
 #include <svl/SfxBroadcaster.hxx>
 #include <editeng/unoedsrc.hxx>
@@ -133,7 +134,7 @@ private:
     SvxAccessibleTextAdapter*   mpTextForwarder;
 };
 
-class EDITENG_DLLPUBLIC SvxEditSourceAdapter final : public SvxEditSource
+class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) SvxEditSourceAdapter final : public SvxEditSource
 {
 public:
     SvxEditSourceAdapter();
diff --git a/include/framework/addonsoptions.hxx b/include/framework/addonsoptions.hxx
index 1f4c728d1656..deb53e2a1e7e 100644
--- a/include/framework/addonsoptions.hxx
+++ b/include/framework/addonsoptions.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_FRAMEWORK_ADDONSOPTIONS_HXX
 #define INCLUDED_FRAMEWORK_ADDONSOPTIONS_HXX
 
+#include <config_options.h>
 #include <sal/types.h>
 #include <vcl/image.hxx>
 #include <com/sun/star/beans/PropertyValue.hpp>
@@ -106,7 +107,7 @@ class AddonsOptions_Impl;
     @devstatus      ready to use
 *//*-*************************************************************************************************************/
 
-class FWE_DLLPUBLIC AddonsOptions
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) AddonsOptions
 {
     public:
          AddonsOptions();
diff --git a/include/framework/configimporter.hxx b/include/framework/configimporter.hxx
index ac5156b5328f..cb8996b90253 100644
--- a/include/framework/configimporter.hxx
+++ b/include/framework/configimporter.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_CONFIGIMPORTER_HXX
 #define INCLUDED_FRAMEWORK_CONFIGIMPORTER_HXX
 
+#include <config_options.h>
 #include <framework/fwedllapi.h>
 #include <vector>
 
@@ -31,7 +32,7 @@ namespace com::sun::star::uno { template <typename > class Reference; }
 
 namespace framework
 {
-    class FWE_DLLPUBLIC UIConfigurationImporterOOo1x
+    class UNLESS_MERGELIBS(FWE_DLLPUBLIC) UIConfigurationImporterOOo1x
     {
         public:
             static bool ImportCustomToolbars(
diff --git a/include/framework/dispatchhelper.hxx b/include/framework/dispatchhelper.hxx
index 100ef2d859a9..d767b134594c 100644
--- a/include/framework/dispatchhelper.hxx
+++ b/include/framework/dispatchhelper.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_INC_SERVICES_DISPATCHHELPER_HXX
 #define INCLUDED_FRAMEWORK_INC_SERVICES_DISPATCHHELPER_HXX
 
+#include <config_options.h>
 #include <com/sun/star/frame/XDispatchHelper.hpp>
 #include <com/sun/star/frame/XDispatchResultListener.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
@@ -52,7 +53,7 @@ namespace framework
                     - dispatching of the URL
                 All these steps are done inside one method call here.
 */
-class FWE_DLLPUBLIC DispatchHelper final
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) DispatchHelper final
     : public ::cppu::WeakImplHelper<css::lang::XServiceInfo, css::frame::XDispatchHelper,
                                     css::frame::XDispatchResultListener>
 {
diff --git a/include/framework/framelistanalyzer.hxx b/include/framework/framelistanalyzer.hxx
index f8403fcc52ba..4e1797dffebb 100644
--- a/include/framework/framelistanalyzer.hxx
+++ b/include/framework/framelistanalyzer.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_FRAMELISTANALYZER_HXX
 #define INCLUDED_FRAMEWORK_FRAMELISTANALYZER_HXX
 
+#include <config_options.h>
 #include <framework/fwedllapi.h>
 #include <o3tl/typed_flags_set.hxx>
 #include <com/sun/star/uno/Reference.hxx>
@@ -57,7 +58,7 @@ namespace framework{
     to switch into the backing mode, close the current active frame only or
     exit the whole application explicitly or implicitly.
  */
-class FWE_DLLPUBLIC FrameListAnalyzer final
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) FrameListAnalyzer final
 {
 
     // types
diff --git a/include/framework/interaction.hxx b/include/framework/interaction.hxx
index 2e817bb74275..ab2fc3eb2fba 100644
--- a/include/framework/interaction.hxx
+++ b/include/framework/interaction.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_FRAMEWORK_INTERACTION_HXX
 #define INCLUDED_FRAMEWORK_INTERACTION_HXX
 
+#include <config_options.h>
 #include <rtl/ref.hxx>
 #include <rtl/ustring.hxx>
 #include <com/sun/star/uno/Reference.hxx>
@@ -52,7 +53,7 @@ namespace framework{
     @threadsafe     no (used on once position only!)
 *//*-*************************************************************************************************************/
 class RequestFilterSelect_Impl;
-class FWE_DLLPUBLIC RequestFilterSelect
+class UNLESS_MERGELIBS(FWE_DLLPUBLIC) RequestFilterSelect
 {
     rtl::Reference<RequestFilterSelect_Impl> mxImpl;
 
diff --git a/include/sfx2/dinfdlg.hxx b/include/sfx2/dinfdlg.hxx
index 90a479c099a5..cdc141e5a442 100644
--- a/include/sfx2/dinfdlg.hxx
+++ b/include/sfx2/dinfdlg.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SFX2_DINFDLG_HXX
 #define INCLUDED_SFX2_DINFDLG_HXX
 
+#include <config_options.h>
 #include <sal/config.h>
 #include <sfx2/dllapi.h>
 
@@ -50,7 +51,7 @@ class SvtCalendarBox;
 
 // class SfxDocumentInfoItem ---------------------------------------------
 
-class SFX2_DLLPUBLIC SfxDocumentInfoItem final : public SfxStringItem
+class UNLESS_MERGELIBS(SFX2_DLLPUBLIC) SfxDocumentInfoItem final : public SfxStringItem
 {
 private:
     sal_Int32                    m_AutoloadDelay;
diff --git a/include/sfx2/sfxstatuslistener.hxx b/include/sfx2/sfxstatuslistener.hxx
index 13cbe7376c06..1361f2f165a6 100644
--- a/include/sfx2/sfxstatuslistener.hxx
+++ b/include/sfx2/sfxstatuslistener.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SFX2_SFXSTATUSLISTENER_HXX
 #define INCLUDED_SFX2_SFXSTATUSLISTENER_HXX
 
+#include <config_options.h>
 #include <sal/config.h>
 #include <sfx2/dllapi.h>
 #include <svl/poolitem.hxx>
@@ -32,7 +33,7 @@ namespace com::sun::star::frame { class XDispatch; }
 namespace com::sun::star::frame { class XDispatchProvider; }
 namespace com::sun::star::frame { struct FeatureStateEvent; }
 
-class SFX2_DLLPUBLIC SfxStatusListener : public cppu::WeakImplHelper<
+class UNLESS_MERGELIBS(SFX2_DLLPUBLIC) SfxStatusListener : public cppu::WeakImplHelper<
                           css::frame::XStatusListener,
                           css::lang::XComponent>
 {
diff --git a/include/sfx2/sidebar/SidebarToolBox.hxx b/include/sfx2/sidebar/SidebarToolBox.hxx
index 9808eb581edc..b33a074fa267 100644
--- a/include/sfx2/sidebar/SidebarToolBox.hxx
+++ b/include/sfx2/sidebar/SidebarToolBox.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SFX2_SIDEBAR_SIDEBARTOOLBOX_HXX
 #define INCLUDED_SFX2_SIDEBAR_SIDEBARTOOLBOX_HXX
 
+#include <config_options.h>
 #include <sfx2/dllapi.h>
 #include <vcl/toolbox.hxx>
 #include <map>
@@ -32,7 +33,7 @@ namespace sfx2 { namespace sidebar {
        background window.
     2. Create and handle tool bar controller for its items.
 */
-class SFX2_DLLPUBLIC SidebarToolBox : public ToolBox
+class UNLESS_MERGELIBS(SFX2_DLLPUBLIC) SidebarToolBox : public ToolBox
 {
 public:
     SidebarToolBox(vcl::Window* pParentWindow);
diff --git a/include/sfx2/sidebar/TabBar.hxx b/include/sfx2/sidebar/TabBar.hxx
index 909b90ef9a50..a37949f10060 100644
--- a/include/sfx2/sidebar/TabBar.hxx
+++ b/include/sfx2/sidebar/TabBar.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SFX2_SOURCE_SIDEBAR_TABBAR_HXX
 #define INCLUDED_SFX2_SOURCE_SIDEBAR_TABBAR_HXX
 
+#include <config_options.h>
 #include <sfx2//dllapi.h>
 #include <sfx2/sidebar/ResourceManager.hxx>
 
@@ -41,7 +42,7 @@ class SidebarController;
 
 /** The tab bar is the container for the individual tabs.
 */
-class SFX2_DLLPUBLIC TabBar final
+class UNLESS_MERGELIBS(SFX2_DLLPUBLIC) TabBar final
     : public vcl::Window
 {
 public:
diff --git a/include/sfx2/templdlg.hxx b/include/sfx2/templdlg.hxx
index 0e96cffe6fd1..8708b32c2e65 100644
--- a/include/sfx2/templdlg.hxx
+++ b/include/sfx2/templdlg.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SFX2_TEMPLDLG_HXX
 #define INCLUDED_SFX2_TEMPLDLG_HXX
 
+#include <config_options.h>
 #include <memory>
 #include <sal/config.h>
 #include <sfx2/dllapi.h>
@@ -27,7 +28,7 @@
 class SfxBindings;
 class SfxTemplateDialog_Impl;
 
-class SFX2_DLLPUBLIC SfxTemplatePanelControl final : public vcl::Window
+class UNLESS_MERGELIBS(SFX2_DLLPUBLIC) SfxTemplatePanelControl final : public vcl::Window
 {
 public:
     SfxTemplatePanelControl(SfxBindings* pBindings, vcl::Window* pParentWindow);
diff --git a/include/svl/aeitem.hxx b/include/svl/aeitem.hxx
index 9778b67e8ad9..550c88d57647 100644
--- a/include/svl/aeitem.hxx
+++ b/include/svl/aeitem.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SVL_AEITEM_HXX
 #define INCLUDED_SVL_AEITEM_HXX
 
+#include <config_options.h>
 #include <svl/svldllapi.h>
 #include <svl/eitem.hxx>
 
@@ -26,7 +27,7 @@
 #include <memory>
 #include <vector>
 
-class SVL_DLLPUBLIC SfxAllEnumItem final : public SfxPoolItem
+class UNLESS_MERGELIBS(SVL_DLLPUBLIC) SfxAllEnumItem final : public SfxPoolItem
 {
     std::vector<OUString>   m_Values;
 
diff --git a/include/svl/style.hxx b/include/svl/style.hxx
index 24656eb2318a..fd27d8ebdf70 100644
--- a/include/svl/style.hxx
+++ b/include/svl/style.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVL_STYLE_HXX
 #define INCLUDED_SVL_STYLE_HXX
 
+#include <config_options.h>
 #include <com/sun/star/style/XStyle.hpp>
 #include <com/sun/star/lang/XUnoTunnel.hpp>
 
@@ -340,7 +341,7 @@ public:
                         { return pStyleSh; }
 };
 
-class SVL_DLLPUBLIC SfxStyleSheetModifiedHint final : public SfxStyleSheetHint
+class UNLESS_MERGELIBS(SVL_DLLPUBLIC) SfxStyleSheetModifiedHint final : public SfxStyleSheetHint
 {
     OUString            aName;
 
diff --git a/include/svl/zforlist.hxx b/include/svl/zforlist.hxx
index e4bf851690f1..70371d59a1bd 100644
--- a/include/svl/zforlist.hxx
+++ b/include/svl/zforlist.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SVL_ZFORLIST_HXX
 #define INCLUDED_SVL_ZFORLIST_HXX
 
+#include <config_options.h>
 #include <svl/svldllapi.h>
 #include <rtl/ustrbuf.hxx>
 #include <rtl/ustring.hxx>
@@ -306,7 +307,7 @@ typedef ::std::set< LanguageType > NfInstalledLocales;
 
 /** Language/country dependent currency entries
  */
-class SVL_DLLPUBLIC NfCurrencyEntry
+class UNLESS_MERGELIBS(SVL_DLLPUBLIC) NfCurrencyEntry
 {
     OUString        aSymbol;            /// currency symbol
     OUString        aBankSymbol;        /// currency abbreviation
diff --git a/include/svtools/PlaceEditDialog.hxx b/include/svtools/PlaceEditDialog.hxx
index f28afb4e2331..2effba66fdf2 100644
--- a/include/svtools/PlaceEditDialog.hxx
+++ b/include/svtools/PlaceEditDialog.hxx
@@ -10,6 +10,7 @@
 #ifndef INCLUDED_SVTOOLS_PLACEEDITDIALOG_HXX
 #define INCLUDED_SVTOOLS_PLACEEDITDIALOG_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <vcl/weld.hxx>
 
@@ -19,7 +20,7 @@
 class Place;
 class DetailsContainer;
 
-class SVT_DLLPUBLIC PlaceEditDialog final : public weld::GenericDialogController
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) PlaceEditDialog final : public weld::GenericDialogController
 {
 private:
     std::shared_ptr< DetailsContainer > m_xCurrentDetails;
diff --git a/include/svtools/addresstemplate.hxx b/include/svtools/addresstemplate.hxx
index 29c5bfa9f6a8..5cfe0bf0ee6d 100644
--- a/include/svtools/addresstemplate.hxx
+++ b/include/svtools/addresstemplate.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_ADDRESSTEMPLATE_HXX
 #define INCLUDED_SVTOOLS_ADDRESSTEMPLATE_HXX
 
+#include <config_options.h>
 #include <memory>
 #include <svtools/svtdllapi.h>
 #include <vcl/weld.hxx>
@@ -37,7 +38,7 @@ namespace svt
 {
     // = AddressBookSourceDialog
     struct AddressBookSourceDialogData;
-    class SVT_DLLPUBLIC AddressBookSourceDialog final : public weld::GenericDialogController
+    class UNLESS_MERGELIBS(SVT_DLLPUBLIC) AddressBookSourceDialog final : public weld::GenericDialogController
     {
     public:
         AddressBookSourceDialog(weld::Window* _pParent,
diff --git a/include/svtools/asynclink.hxx b/include/svtools/asynclink.hxx
index 0d9f88f4e588..f7f59d467604 100644
--- a/include/svtools/asynclink.hxx
+++ b/include/svtools/asynclink.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_ASYNCLINK_HXX
 #define INCLUDED_SVTOOLS_ASYNCLINK_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <tools/link.hxx>
 #include <vcl/idle.hxx>
@@ -31,7 +32,7 @@ struct ImplSVEvent;
 
 namespace svtools {
 
-class SVT_DLLPUBLIC AsynchronLink
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) AsynchronLink
 {
     Link<void*,void> _aLink;
     ImplSVEvent*     _nEventId;
diff --git a/include/svtools/calendar.hxx b/include/svtools/calendar.hxx
index e3035b892500..3b6ffb5bdc39 100644
--- a/include/svtools/calendar.hxx
+++ b/include/svtools/calendar.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_CALENDAR_HXX
 #define INCLUDED_SVTOOLS_CALENDAR_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 
 #include <vcl/calendar.hxx>
@@ -71,7 +72,7 @@ method in CalendarField and create an own calendar there ourselves.
 *************************************************************************/
 
 
-class SVT_DLLPUBLIC CalendarField final : public DateField
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) CalendarField final : public DateField
 {
 private:
     VclPtr<ImplCFieldFloatWin> mpFloatWin;
diff --git a/include/svtools/ctrltool.hxx b/include/svtools/ctrltool.hxx
index c2f859b4208b..8b35c2a07d24 100644
--- a/include/svtools/ctrltool.hxx
+++ b/include/svtools/ctrltool.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_CTRLTOOL_HXX
 #define INCLUDED_SVTOOLS_CTRLTOOL_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <rtl/ustring.hxx>
 #include <sal/types.h>
@@ -194,7 +195,7 @@ private:
     FontList&               operator =( const FontList& ) = delete;
 };
 
-class SVT_DLLPUBLIC FontSizeNames
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) FontSizeNames
 {
 private:
     const struct ImplFSNameItem*    mpArray;
diff --git a/include/svtools/editbrowsebox.hxx b/include/svtools/editbrowsebox.hxx
index 29b2e3ffda03..71f8260fc487 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -21,6 +21,7 @@
 #define INCLUDED_SVTOOLS_EDITBROWSEBOX_HXX
 #define SVTOOLS_IN_EDITBROWSEBOX_HXX
 
+#include <config_options.h>
 #include <memory>
 #include <svtools/svtdllapi.h>
 #include <tools/ref.hxx>
@@ -118,7 +119,7 @@ namespace svt
 
     //= IEditImplementation
 
-    class SVT_DLLPUBLIC IEditImplementation
+    class UNLESS_MERGELIBS(SVT_DLLPUBLIC) IEditImplementation
     {
     public:
         virtual ~IEditImplementation() = 0;
@@ -188,7 +189,7 @@ namespace svt
 
     /** a multi line edit which can be used in a cell of an EditBrowseBox
     */
-    class SVT_DLLPUBLIC MultiLineTextCell final : public VclMultiLineEdit
+    class UNLESS_MERGELIBS(SVT_DLLPUBLIC) MultiLineTextCell final : public VclMultiLineEdit
     {
     public:
         MultiLineTextCell( vcl::Window* _pParent, WinBits _nStyle )
@@ -212,7 +213,7 @@ namespace svt
     typedef GenericEditImplementation< Edit >             EditImplementation;
 
     typedef GenericEditImplementation< MultiLineTextCell >  MultiLineEditImplementation_Base;
-    class SVT_DLLPUBLIC MultiLineEditImplementation final : public MultiLineEditImplementation_Base
+    class UNLESS_MERGELIBS(SVT_DLLPUBLIC) MultiLineEditImplementation final : public MultiLineEditImplementation_Base
     {
     public:
         MultiLineEditImplementation( MultiLineTextCell& _rEdit ) : MultiLineEditImplementation_Base( _rEdit )
@@ -252,7 +253,7 @@ namespace svt
 
     //= SpinCellController
 
-    class SVT_DLLPUBLIC SpinCellController final : public CellController
+    class UNLESS_MERGELIBS(SVT_DLLPUBLIC) SpinCellController final : public CellController
     {
     public:
         SpinCellController(SpinField* pSpinField);
diff --git a/include/svtools/filechangedchecker.hxx b/include/svtools/filechangedchecker.hxx
index e90db3fb29e6..3b7f817f3035 100644
--- a/include/svtools/filechangedchecker.hxx
+++ b/include/svtools/filechangedchecker.hxx
@@ -10,6 +10,7 @@
 #ifndef INCLUDED_SVTOOLS_FILECHANGEDCHECKER_HXX
 #define INCLUDED_SVTOOLS_FILECHANGEDCHECKER_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 
 #include <osl/time.h>
@@ -25,7 +26,7 @@ class Timer;
     Instances of this class setup a vcl timer to occasionally wake up
     check whether file modification time has changed.
  */
-class SVT_DLLPUBLIC FileChangedChecker
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) FileChangedChecker
 {
 private:
     Idle                    mIdle;
diff --git a/include/svtools/generictoolboxcontroller.hxx b/include/svtools/generictoolboxcontroller.hxx
index ddf8dc06cee8..7f12c466cd14 100644
--- a/include/svtools/generictoolboxcontroller.hxx
+++ b/include/svtools/generictoolboxcontroller.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_GENERICTOOLBOXCONTROLLER_HXX
 #define INCLUDED_SVTOOLS_GENERICTOOLBOXCONTROLLER_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <svtools/toolboxcontroller.hxx>
 #include <vcl/toolbox.hxx>
@@ -32,7 +33,7 @@ namespace weld
 namespace svt
 {
 
-class SVT_DLLPUBLIC GenericToolboxController final : public svt::ToolboxController
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) GenericToolboxController final : public svt::ToolboxController
 {
 public:
     GenericToolboxController( const css::uno::Reference< css::uno::XComponentContext >& rxContext,
diff --git a/include/svtools/imageresourceaccess.hxx b/include/svtools/imageresourceaccess.hxx
index 6adff39ae4aa..86dd259a24fb 100644
--- a/include/svtools/imageresourceaccess.hxx
+++ b/include/svtools/imageresourceaccess.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_IMAGERESOURCEACCESS_HXX
 #define INCLUDED_SVTOOLS_IMAGERESOURCEACCESS_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 
 #include <com/sun/star/uno/Reference.hxx>
@@ -39,7 +40,7 @@ namespace GraphicAccess
 */
 
 /** determines whether the given URL denotes an image within a resource */
-SVT_DLLPUBLIC bool isSupportedURL(OUString const & rURL);
+UNLESS_MERGELIBS(SVT_DLLPUBLIC) bool isSupportedURL(OUString const & rURL);
 
 /** for a given URL of an image within a resource, this method retrieves an
     SvStream for this image.
@@ -50,14 +51,14 @@ SVT_DLLPUBLIC bool isSupportedURL(OUString const & rURL);
     the image must be copied), so you are strongly encouraged to only use it
     when you know that the image is small enough.
 */
-SVT_DLLPUBLIC std::unique_ptr<SvStream> getImageStream(
+UNLESS_MERGELIBS(SVT_DLLPUBLIC) std::unique_ptr<SvStream> getImageStream(
             css::uno::Reference<css::uno::XComponentContext> const & rxContext,
             OUString const & rImageResourceURL);
 
 /** for a given URL of an image within a resource, this method retrieves
     a css::io::XInputStream for this image.
 */
-SVT_DLLPUBLIC css::uno::Reference<css::io::XInputStream> getImageXStream(
+UNLESS_MERGELIBS(SVT_DLLPUBLIC) css::uno::Reference<css::io::XInputStream> getImageXStream(
             css::uno::Reference<css::uno::XComponentContext> const & rxContext,
             OUString const & rImageResourceURL);
 
diff --git a/include/svtools/openfiledroptargetlistener.hxx b/include/svtools/openfiledroptargetlistener.hxx
index 4791c7cf5f67..fc9580bc50ba 100644
--- a/include/svtools/openfiledroptargetlistener.hxx
+++ b/include/svtools/openfiledroptargetlistener.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_OPENFILEDROPTARGETLISTENER_HXX
 #define INCLUDED_SVTOOLS_OPENFILEDROPTARGETLISTENER_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 
 #include <com/sun/star/datatransfer/dnd/XDropTargetListener.hpp>
@@ -37,7 +38,7 @@ namespace com { namespace sun { namespace star { namespace uno {
 
 /** DropTargetListener that takes care of opening a file when it is dropped in the frame.
 */
-class SVT_DLLPUBLIC OpenFileDropTargetListener final : public cppu::WeakImplHelper< css::datatransfer::dnd::XDropTargetListener >
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) OpenFileDropTargetListener final : public cppu::WeakImplHelper< css::datatransfer::dnd::XDropTargetListener >
 {
     private:
         /// uno service manager to create necessary services
diff --git a/include/svtools/popupmenucontrollerbase.hxx b/include/svtools/popupmenucontrollerbase.hxx
index aba659970ec3..2c506af1e101 100644
--- a/include/svtools/popupmenucontrollerbase.hxx
+++ b/include/svtools/popupmenucontrollerbase.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_POPUPMENUCONTROLLERBASE_HXX
 #define INCLUDED_SVTOOLS_POPUPMENUCONTROLLERBASE_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 
 #include <com/sun/star/lang/XServiceInfo.hpp>
@@ -50,7 +51,7 @@ namespace svt
                         css::frame::XDispatchProvider      ,
                         css::frame::XDispatch > PopupMenuControllerBaseType;
 
-    class SVT_DLLPUBLIC PopupMenuControllerBase : protected ::cppu::BaseMutex,   // Struct for right initialization of mutex member! Must be first of baseclasses.
+    class UNLESS_MERGELIBS(SVT_DLLPUBLIC) PopupMenuControllerBase : protected ::cppu::BaseMutex,   // Struct for right initialization of mutex member! Must be first of baseclasses.
                                                   public PopupMenuControllerBaseType
     {
         public:
diff --git a/include/svtools/printoptions.hxx b/include/svtools/printoptions.hxx
index f5fe0a6da2a8..2a0b3f012262 100644
--- a/include/svtools/printoptions.hxx
+++ b/include/svtools/printoptions.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_PRINTOPTIONS_HXX
 #define INCLUDED_SVTOOLS_PRINTOPTIONS_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <sal/types.h>
 #include <unotools/options.hxx>
@@ -30,7 +31,7 @@ class SvtPrintOptions_Impl;
 class PrinterOptions;
 
 
-class SVT_DLLPUBLIC SvtBasePrintOptions: public utl::detail::Options
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) SvtBasePrintOptions: public utl::detail::Options
 {
 
     SvtPrintOptions_Impl* m_pDataContainer;
@@ -79,7 +80,7 @@ public:
 };
 
 
-class SVT_DLLPUBLIC SvtPrinterOptions final : public SvtBasePrintOptions
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) SvtPrinterOptions final : public SvtBasePrintOptions
 {
 private:
 
@@ -93,7 +94,7 @@ public:
 };
 
 
-class SVT_DLLPUBLIC SvtPrintFileOptions final : public SvtBasePrintOptions
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) SvtPrintFileOptions final : public SvtBasePrintOptions
 {
 private:
 
diff --git a/include/svtools/stringtransfer.hxx b/include/svtools/stringtransfer.hxx
index de6e57264137..dcb5bda5dec4 100644
--- a/include/svtools/stringtransfer.hxx
+++ b/include/svtools/stringtransfer.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_STRINGTRANSFER_HXX
 #define INCLUDED_SVTOOLS_STRINGTRANSFER_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <vcl/transfer.hxx>
 
@@ -30,7 +31,7 @@ namespace svt
 
     //= OStringTransferable
 
-    class SVT_DLLPUBLIC OStringTransferable final : public TransferableHelper
+    class UNLESS_MERGELIBS(SVT_DLLPUBLIC) OStringTransferable final : public TransferableHelper
     {
     public:
         OStringTransferable(const OUString& _rContent);
diff --git a/include/svtools/templatefoldercache.hxx b/include/svtools/templatefoldercache.hxx
index abaa5ec99e7c..efeb57aba261 100644
--- a/include/svtools/templatefoldercache.hxx
+++ b/include/svtools/templatefoldercache.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_TEMPLATEFOLDERCACHE_HXX
 #define INCLUDED_SVTOOLS_TEMPLATEFOLDERCACHE_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <o3tl/deleter.hxx>
 #include <memory>
@@ -56,7 +57,7 @@ namespace svt
         // do anything which relies on a up-to-date template configuration
     </listing>
     */
-    class SVT_DLLPUBLIC TemplateFolderCache
+    class UNLESS_MERGELIBS(SVT_DLLPUBLIC) TemplateFolderCache
     {
     private:
         std::unique_ptr<TemplateFolderCacheImpl, o3tl::default_delete<TemplateFolderCacheImpl>> m_pImpl;
diff --git a/include/svtools/toolbarmenu.hxx b/include/svtools/toolbarmenu.hxx
index 91e435b384c1..c73882f6b71f 100644
--- a/include/svtools/toolbarmenu.hxx
+++ b/include/svtools/toolbarmenu.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_TOOLBARMENU_HXX
 #define INCLUDED_SVTOOLS_TOOLBARMENU_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 
 #include <memory>
@@ -52,7 +53,7 @@ protected:
     rtl::Reference<svt::FrameStatusListener> mxStatusListener;
 };
 
-class SVT_DLLPUBLIC ToolbarPopup : public DockingWindow, public ToolbarPopupBase
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) ToolbarPopup : public DockingWindow, public ToolbarPopupBase
 {
 public:
     ToolbarPopup(const css::uno::Reference<css::frame::XFrame>& rFrame,
diff --git a/include/svtools/urlfilter.hxx b/include/svtools/urlfilter.hxx
index 9ca75ed5b57e..9f91407f86f4 100644
--- a/include/svtools/urlfilter.hxx
+++ b/include/svtools/urlfilter.hxx
@@ -20,11 +20,12 @@
 #ifndef INCLUDED_SVL_URLFILTER_HXX
 #define INCLUDED_SVL_URLFILTER_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 #include <tools/wldcrd.hxx>
 #include <vector>
 
-struct SVT_DLLPUBLIC FilterMatch
+struct UNLESS_MERGELIBS(SVT_DLLPUBLIC) FilterMatch
 {
 private:
     const OUString&   m_rCompareString;
diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 579d8c29be75..feea4e30e82a 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVTOOLS_VALUESET_HXX
 #define INCLUDED_SVTOOLS_VALUESET_HXX
 
+#include <config_options.h>
 #include <svtools/svtdllapi.h>
 
 #include <vcl/ctrl.hxx>
@@ -192,7 +193,7 @@ typedef std::vector<std::unique_ptr<SvtValueSetItem>> SvtValueItemList;
 #define VALUESET_ITEM_NOTFOUND  (size_t(-1))
 
 
-class SVT_DLLPUBLIC ValueSet : public Control
+class UNLESS_MERGELIBS(SVT_DLLPUBLIC) ValueSet : public Control
 {
 private:
     ValueItemList   mItemList;
diff --git a/include/svx/EnhancedCustomShapeFunctionParser.hxx b/include/svx/EnhancedCustomShapeFunctionParser.hxx
index 122f0406a6d5..150c39efc0c5 100644
--- a/include/svx/EnhancedCustomShapeFunctionParser.hxx
+++ b/include/svx/EnhancedCustomShapeFunctionParser.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_ENHANCEDCUSTOMSHAPEFUNCTIONPARSER_HXX
 #define INCLUDED_SVX_ENHANCEDCUSTOMSHAPEFUNCTIONPARSER_HXX
 
+#include <config_options.h>
 #include <sal/config.h>
 #include <com/sun/star/drawing/EnhancedCustomShapeParameter.hpp>
 #include <memory>
@@ -232,7 +233,7 @@ public:
         @return the generated function object.
        */
 
-    SVXCORE_DLLPUBLIC static std::shared_ptr<ExpressionNode> const & parseFunction( const OUString& rFunction, const EnhancedCustomShape2d& rCustoShape );
+    UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) static std::shared_ptr<ExpressionNode> const & parseFunction( const OUString& rFunction, const EnhancedCustomShape2d& rCustoShape );
 
     // this is a singleton
     FunctionParser() = delete;
diff --git a/include/svx/deflt3d.hxx b/include/svx/deflt3d.hxx
index 85a41872b783..f3312afd5fd8 100644
--- a/include/svx/deflt3d.hxx
+++ b/include/svx/deflt3d.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_DEFLT3D_HXX
 #define INCLUDED_SVX_DEFLT3D_HXX
 
+#include <config_options.h>
 #include <basegfx/point/b3dpoint.hxx>
 #include <basegfx/vector/b3dvector.hxx>
 #include <svx/svxdllapi.h>
@@ -30,7 +31,7 @@
 |*
 \************************************************************************/
 
-class SAL_WARN_UNUSED SVXCORE_DLLPUBLIC E3dDefaultAttributes
+class SAL_WARN_UNUSED UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) E3dDefaultAttributes
 {
 private:
     // Cube object
diff --git a/include/svx/dialcontrol.hxx b/include/svx/dialcontrol.hxx
index 44e35e211151..d4eb26650703 100644
--- a/include/svx/dialcontrol.hxx
+++ b/include/svx/dialcontrol.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_DIALCONTROL_HXX
 #define INCLUDED_SVX_DIALCONTROL_HXX
 
+#include <config_options.h>
 #include <memory>
 #include <vcl/customweld.hxx>
 #include <vcl/virdev.hxx>
@@ -127,7 +128,7 @@ public:
             Hide();
     }
 private:
-    struct DialControl_Impl
+    struct SAL_DLLPRIVATE DialControl_Impl
     {
         ScopedVclPtr<DialControlBmp> mxBmpEnabled;
         ScopedVclPtr<DialControlBmp> mxBmpDisabled;
diff --git a/include/svx/fmtools.hxx b/include/svx/fmtools.hxx
index 21a93d41f048..f0fba4e0f32a 100644
--- a/include/svx/fmtools.hxx
+++ b/include/svx/fmtools.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SVX_FMTOOLS_HXX
 #define INCLUDED_SVX_FMTOOLS_HXX
 
+#include <config_options.h>
 #include <svx/svxdllapi.h>
 
 #include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
@@ -74,7 +75,7 @@ private:
 public:
     // Construction/Destruction
     CursorWrapper(const css::uno::Reference< css::sdbc::XRowSet>& _rxCursor, bool bUseCloned = false);
-    SVXCORE_DLLPUBLIC CursorWrapper(const css::uno::Reference< css::sdbc::XResultSet>& _rxCursor, bool bUseCloned = false);
+    UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) CursorWrapper(const css::uno::Reference< css::sdbc::XResultSet>& _rxCursor, bool bUseCloned = false);
         // if bUseCloned == sal_True, the cursor is first doubled over the XCloneable interface (which it must implement)
         // and then used
 
diff --git a/include/svx/passwd.hxx b/include/svx/passwd.hxx
index 3f69209c8be3..acfbd82c1647 100644
--- a/include/svx/passwd.hxx
+++ b/include/svx/passwd.hxx
@@ -19,10 +19,11 @@
 #ifndef INCLUDED_SVX_PASSWD_HXX
 #define INCLUDED_SVX_PASSWD_HXX
 
+#include <config_options.h>
 #include <sfx2/basedlgs.hxx>
 #include <svx/svxdllapi.h>
 
-class SVX_DLLPUBLIC SvxPasswordDialog final : public SfxDialogController
+class UNLESS_MERGELIBS(SVX_DLLPUBLIC) SvxPasswordDialog final : public SfxDialogController
 {
 private:
     OUString m_aOldPasswdErrStr;
diff --git a/include/svx/sdgcpitm.hxx b/include/svx/sdgcpitm.hxx
index 7f5dfb4e6b48..1f309ea728f8 100644
--- a/include/svx/sdgcpitm.hxx
+++ b/include/svx/sdgcpitm.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_SDGCPITM_HXX
 #define INCLUDED_SVX_SDGCPITM_HXX
 
+#include <config_options.h>
 #include <svx/grfcrop.hxx>
 #include <svx/svddef.hxx>
 
@@ -27,7 +28,7 @@
 // SdrGrafCropItem -
 
 
-class SVXCORE_DLLPUBLIC SdrGrafCropItem : public SvxGrfCrop
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) SdrGrafCropItem : public SvxGrfCrop
 {
 public:
 
diff --git a/include/svx/sdprcitm.hxx b/include/svx/sdprcitm.hxx
index 6aff6b11929a..af5cb65d852d 100644
--- a/include/svx/sdprcitm.hxx
+++ b/include/svx/sdprcitm.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SVX_SDPRCITM_HXX
 #define INCLUDED_SVX_SDPRCITM_HXX
 
+#include <config_options.h>
 #include <svl/intitem.hxx>
 #include <svx/svxdllapi.h>
 
@@ -41,7 +42,7 @@ public:
 // Integer percents of +/-
 
 
-class SVXCORE_DLLPUBLIC SdrSignedPercentItem : public SfxInt16Item
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) SdrSignedPercentItem : public SfxInt16Item
 {
 public:
     SdrSignedPercentItem( sal_uInt16 nId, sal_Int16 nVal ) : SfxInt16Item( nId,nVal ) {}
diff --git a/include/svx/sdr/animation/objectanimator.hxx b/include/svx/sdr/animation/objectanimator.hxx
index 86d8ed8ac4a1..fca03a85466e 100644
--- a/include/svx/sdr/animation/objectanimator.hxx
+++ b/include/svx/sdr/animation/objectanimator.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_SDR_ANIMATION_OBJECTANIMATOR_HXX
 #define INCLUDED_SVX_SDR_ANIMATION_OBJECTANIMATOR_HXX
 
+#include <config_options.h>
 #include <svx/sdr/animation/scheduler.hxx>
 
 
@@ -32,7 +33,7 @@ namespace sdr
         public:
             // basic constructor and destructor
             primitiveAnimator();
-            SVXCORE_DLLPUBLIC virtual ~primitiveAnimator() override;
+            UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) virtual ~primitiveAnimator() override;
         };
     } // end of namespace animation
 } // end of namespace sdr
diff --git a/include/svx/sdtfchim.hxx b/include/svx/sdtfchim.hxx
index 976bb72f1f8d..2fe5427c55bc 100644
--- a/include/svx/sdtfchim.hxx
+++ b/include/svx/sdtfchim.hxx
@@ -19,10 +19,11 @@
 #ifndef INCLUDED_SVX_SDTFCHIM_HXX
 #define INCLUDED_SVX_SDTFCHIM_HXX
 
+#include <config_options.h>
 #include <svl/eitem.hxx>
 #include <svx/svxdllapi.h>
 
-class SVXCORE_DLLPUBLIC SdrTextFixedCellHeightItem final : public SfxBoolItem
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) SdrTextFixedCellHeightItem final : public SfxBoolItem
 {
 public:
 
diff --git a/include/svx/shapepropertynotifier.hxx b/include/svx/shapepropertynotifier.hxx
index bdef4e11e7b8..a9a416614162 100644
--- a/include/svx/shapepropertynotifier.hxx
+++ b/include/svx/shapepropertynotifier.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_SHAPEPROPERTYNOTIFIER_HXX
 #define INCLUDED_SVX_SHAPEPROPERTYNOTIFIER_HXX
 
+#include <config_options.h>
 #include <svx/svxdllapi.h>
 #include <svx/shapeproperty.hxx>
 #include <rtl/ustring.hxx>
@@ -45,7 +46,7 @@ namespace svx
 
     /** a provider for a property value
     */
-    class SVXCORE_DLLPUBLIC IPropertyValueProvider
+    class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) IPropertyValueProvider
     {
     public:
         /** returns the name of the property which this provider is responsible for
diff --git a/include/svx/svdmark.hxx b/include/svx/svdmark.hxx
index e80c3573ab2c..f5f9c7b539d5 100644
--- a/include/svx/svdmark.hxx
+++ b/include/svx/svdmark.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_SVDMARK_HXX
 #define INCLUDED_SVX_SVDMARK_HXX
 
+#include <config_options.h>
 #include <rtl/ustring.hxx>
 #include <svx/svxdllapi.h>
 #include <svx/sdrobjectuser.hxx>
@@ -224,7 +225,7 @@ public:
 
 namespace sdr
 {
-    class SVXCORE_DLLPUBLIC ViewSelection
+    class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) ViewSelection
     {
         SdrMarkList                 maMarkedObjectList;
         SdrMarkList                 maEdgesOfMarkedNodes;
diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx
index 182d384ec0fa..d1aac69b1d65 100644
--- a/include/svx/svdundo.hxx
+++ b/include/svx/svdundo.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_SVDUNDO_HXX
 #define INCLUDED_SVX_SVDUNDO_HXX
 
+#include <config_options.h>
 #include <sal/config.h>
 
 #include <memory>
@@ -654,7 +655,7 @@ protected:
     SdrUndoPageMasterPage(SdrPage& rChangedPage);
 
 public:
-    SVXCORE_DLLPUBLIC virtual ~SdrUndoPageMasterPage() override;
+    UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) virtual ~SdrUndoPageMasterPage() override;
 };
 
 /**
diff --git a/include/svx/svx3ditems.hxx b/include/svx/svx3ditems.hxx
index 14b69019709c..46609570155a 100644
--- a/include/svx/svx3ditems.hxx
+++ b/include/svx/svx3ditems.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_SVX_SVX3DITEMS_HXX
 #define INCLUDED_SVX_SVX3DITEMS_HXX
 
+#include <config_options.h>
 #include <svl/intitem.hxx>
 #include <svl/eitem.hxx>
 
@@ -66,7 +67,7 @@ public:
     Svx3DReducedLineGeometryItem* Clone(SfxItemPool * = nullptr) const override;
 };
 
-class SVXCORE_DLLPUBLIC Svx3DNormalsKindItem : public SfxUInt16Item {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DNormalsKindItem : public SfxUInt16Item {
 public:
     Svx3DNormalsKindItem(sal_uInt16 nVal = 0);
 
@@ -80,7 +81,7 @@ inline SfxBoolItem makeSvx3DNormalsInvertItem(bool bVal) {
     return SfxBoolItem(SDRATTR_3DOBJ_NORMALS_INVERT, bVal);
 }
 
-class SVXCORE_DLLPUBLIC Svx3DTextureProjectionXItem : public SfxUInt16Item {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DTextureProjectionXItem : public SfxUInt16Item {
 public:
     Svx3DTextureProjectionXItem(sal_uInt16 nVal = 0);
 
@@ -90,7 +91,7 @@ public:
     SVX_DLLPRIVATE virtual Svx3DTextureProjectionXItem* Clone(SfxItemPool* pPool = nullptr) const override;
 };
 
-class SVXCORE_DLLPUBLIC Svx3DTextureProjectionYItem : public SfxUInt16Item {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DTextureProjectionYItem : public SfxUInt16Item {
 public:
     Svx3DTextureProjectionYItem(sal_uInt16 nVal = 0);
 
@@ -116,7 +117,7 @@ inline SfxUInt16Item makeSvx3DMaterialSpecularIntensityItem(sal_uInt16 nVal) {
     return SfxUInt16Item(SDRATTR_3DOBJ_MAT_SPECULAR_INTENSITY, nVal);
 }
 
-class SVXCORE_DLLPUBLIC Svx3DTextureKindItem final : public SfxUInt16Item {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DTextureKindItem final : public SfxUInt16Item {
 public:
     Svx3DTextureKindItem(sal_uInt16 nVal = 3);
 
@@ -126,7 +127,7 @@ public:
     SVX_DLLPRIVATE virtual Svx3DTextureKindItem* Clone(SfxItemPool* pPool = nullptr) const override;
 };
 
-class SVXCORE_DLLPUBLIC Svx3DTextureModeItem final : public SfxUInt16Item {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DTextureModeItem final : public SfxUInt16Item {
 public:
     Svx3DTextureModeItem(sal_uInt16 nVal = 2);
 
@@ -141,7 +142,7 @@ inline SfxBoolItem makeSvx3DTextureFilterItem(bool bVal) {
 }
 
 // Svx3D _3DSCENE_ Items
-class SVXCORE_DLLPUBLIC Svx3DPerspectiveItem : public SfxUInt16Item {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DPerspectiveItem : public SfxUInt16Item {
 public:
     Svx3DPerspectiveItem(ProjectionType nVal = ProjectionType::Perspective);
 
@@ -267,7 +268,7 @@ inline SfxUInt16Item makeSvx3DShadowSlantItem(sal_uInt16 nVal) {
     return SfxUInt16Item(SDRATTR_3DSCENE_SHADOW_SLANT, nVal);
 }
 
-class SVXCORE_DLLPUBLIC Svx3DShadeModeItem : public SfxUInt16Item {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DShadeModeItem : public SfxUInt16Item {
 public:
     Svx3DShadeModeItem(sal_uInt16 nVal = 2);
 
@@ -300,14 +301,14 @@ public:
 };
 
 // #107245# Item to replace bExtrudeCloseFront and bLatheCloseFront
-class SVXCORE_DLLPUBLIC Svx3DCloseFrontItem : public SfxBoolItem {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DCloseFrontItem : public SfxBoolItem {
 public:
     Svx3DCloseFrontItem(bool bVal = true);
     Svx3DCloseFrontItem* Clone(SfxItemPool * = nullptr) const override;
 };
 
 // #107245# Item to replace bExtrudeCloseBack and bLatheCloseBack
-class SVXCORE_DLLPUBLIC Svx3DCloseBackItem : public SfxBoolItem {
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) Svx3DCloseBackItem : public SfxBoolItem {
 public:
     Svx3DCloseBackItem(bool bVal = true);
     Svx3DCloseBackItem* Clone(SfxItemPool * = nullptr) const override;
diff --git a/include/svx/tbcontrl.hxx b/include/svx/tbcontrl.hxx
index 50efa73c62e2..0c7da003291f 100644
--- a/include/svx/tbcontrl.hxx
+++ b/include/svx/tbcontrl.hxx
@@ -130,6 +130,7 @@
 
 // ITEMID_... defines in the *.cxx
 
+#include <config_options.h>
 #include <svl/style.hxx>
 #include <sfx2/tbxctrl.hxx>
 #include <svx/svxdllapi.h>
@@ -245,7 +246,7 @@ public:
     void EnsurePaletteManager();
 };
 
-class SVXCORE_DLLPUBLIC SvxCurrencyToolBoxControl final : public svt::PopupWindowController
+class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) SvxCurrencyToolBoxControl final : public svt::PopupWindowController
 {
 private:
     OUString     m_aFormatString;
diff --git a/include/svx/unoprov.hxx b/include/svx/unoprov.hxx
index b85685d128ec..d69ddfca1d8b 100644
--- a/include/svx/unoprov.hxx
+++ b/include/svx/unoprov.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SVX_UNOPROV_HXX
 #define INCLUDED_SVX_UNOPROV_HXX
 
+#include <config_options.h>
 #include <com/sun/star/uno/Sequence.hxx>
 #include <svl/itemprop.hxx>
 #include <svx/svxdllapi.h>
@@ -113,7 +114,7 @@ namespace comphelper { class PropertySetInfo; }
 class SvxPropertySetInfoPool
 {
 public:
-    SVXCORE_DLLPUBLIC static rtl::Reference<comphelper::PropertySetInfo> const & getOrCreate( sal_Int32 nServiceId ) throw();
+    UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) static rtl::Reference<comphelper::PropertySetInfo> const & getOrCreate( sal_Int32 nServiceId ) throw();
 
 private:
     static rtl::Reference<comphelper::PropertySetInfo> mxInfos[SVXUNO_SERVICEID_LASTID+1];
diff --git a/include/toolkit/awt/vclxmenu.hxx b/include/toolkit/awt/vclxmenu.hxx
index 298a8ccdd676..5232ee699efa 100644
--- a/include/toolkit/awt/vclxmenu.hxx
+++ b/include/toolkit/awt/vclxmenu.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_TOOLKIT_AWT_VCLXMENU_HXX
 #define INCLUDED_TOOLKIT_AWT_VCLXMENU_HXX
 
+#include <config_options.h>
 #include <toolkit/dllapi.h>
 #include <toolkit/helper/listenermultiplexer.hxx>
 
@@ -142,7 +143,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames(  ) override;
 };
 
-class TOOLKIT_DLLPUBLIC VCLXMenuBar final : public VCLXMenu
+class UNLESS_MERGELIBS(TOOLKIT_DLLPUBLIC) VCLXMenuBar final : public VCLXMenu
 {
 public:
     VCLXMenuBar();
diff --git a/include/toolkit/awt/vclxwindows.hxx b/include/toolkit/awt/vclxwindows.hxx
index dd03843c4908..af60b504f8f4 100644
--- a/include/toolkit/awt/vclxwindows.hxx
+++ b/include/toolkit/awt/vclxwindows.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_TOOLKIT_AWT_VCLXWINDOWS_HXX
 #define INCLUDED_TOOLKIT_AWT_VCLXWINDOWS_HXX
 
+#include <config_options.h>
 #include <toolkit/dllapi.h>
 
 #include <com/sun/star/awt/XTextComponent.hpp>
@@ -623,7 +624,7 @@ public:
 
 //  class VCLXEdit
 
-class TOOLKIT_DLLPUBLIC VCLXEdit :  public css::awt::XTextComponent,
+class UNLESS_MERGELIBS(TOOLKIT_DLLPUBLIC) VCLXEdit :  public css::awt::XTextComponent,
                     public css::awt::XTextEditField,
                     public css::awt::XTextLayoutConstrains,
                     public VCLXWindow
@@ -831,7 +832,7 @@ public:
 
 //  class VCLXSpinField
 
-class TOOLKIT_DLLPUBLIC VCLXSpinField : public css::awt::XSpinField,
+class UNLESS_MERGELIBS(TOOLKIT_DLLPUBLIC) VCLXSpinField : public css::awt::XSpinField,
                         public VCLXEdit
 {
 private:
@@ -897,7 +898,7 @@ public:
 
 //  class VCLXDateField
 
-class TOOLKIT_DLLPUBLIC VCLXDateField : public css::awt::XDateField,
+class UNLESS_MERGELIBS(TOOLKIT_DLLPUBLIC) VCLXDateField : public css::awt::XDateField,
                         public VCLXFormattedSpinField
 {
 protected:
diff --git a/include/toolkit/controls/unocontrols.hxx b/include/toolkit/controls/unocontrols.hxx
index 4c8f696d2c3c..6f92de103529 100644
--- a/include/toolkit/controls/unocontrols.hxx
+++ b/include/toolkit/controls/unocontrols.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_TOOLKIT_CONTROLS_UNOCONTROLS_HXX
 #define INCLUDED_TOOLKIT_CONTROLS_UNOCONTROLS_HXX
 
+#include <config_options.h>
 #include <toolkit/dllapi.h>
 #include <com/sun/star/awt/XTextComponent.hpp>
 #include <com/sun/star/awt/XTextListener.hpp>
@@ -105,7 +106,7 @@ typedef ::cppu::ImplHelper4  <   css::awt::XTextComponent
                              ,   css::awt::XLayoutConstrains
                              ,   css::awt::XTextLayoutConstrains
                              >   UnoEditControl_Base;
-class TOOLKIT_DLLPUBLIC UnoEditControl    :public UnoControlBase
+class UNLESS_MERGELIBS(TOOLKIT_DLLPUBLIC) UnoEditControl    :public UnoControlBase
                                             ,public UnoEditControl_Base
 {
 private:
diff --git a/include/toolkit/helper/listenermultiplexer.hxx b/include/toolkit/helper/listenermultiplexer.hxx
index 23afbbfe159b..a837aeb83de3 100644
--- a/include/toolkit/helper/listenermultiplexer.hxx
+++ b/include/toolkit/helper/listenermultiplexer.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX
 #define INCLUDED_TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX
 
+#include <config_options.h>
 #include <toolkit/dllapi.h>
 #include <com/sun/star/lang/XEventListener.hpp>
 #include <com/sun/star/awt/XFocusListener.hpp>
@@ -51,7 +52,7 @@
 //  class ListenerMultiplexerBase
 
 
-class TOOLKIT_DLLPUBLIC ListenerMultiplexerBase : public MutexHelper,
+class UNLESS_MERGELIBS(TOOLKIT_DLLPUBLIC) ListenerMultiplexerBase : public MutexHelper,
                                 public ::comphelper::OInterfaceContainerHelper2,
                                 public css::uno::XInterface
 {
diff --git a/include/tools/b3dtrans.hxx b/include/tools/b3dtrans.hxx
index 2f6752e0848a..c0747cfca174 100644
--- a/include/tools/b3dtrans.hxx
+++ b/include/tools/b3dtrans.hxx
@@ -22,6 +22,7 @@
 
 #define ZBUFFER_DEPTH_RANGE         (double(256L * 256L * 256L))
 
+#include <config_options.h>
 #include <basegfx/matrix/b3dhommatrix.hxx>
 #include <tools/gen.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
@@ -30,7 +31,7 @@
 #include <tools/toolsdllapi.h>
 
 /// Transformation sets for 3D output
-class SAL_WARN_UNUSED TOOLS_DLLPUBLIC B3dTransformationSet
+class SAL_WARN_UNUSED UNLESS_MERGELIBS(TOOLS_DLLPUBLIC) B3dTransformationSet
 {
 private:
     // Object Matrix Object -> World
@@ -153,7 +154,7 @@ protected:
     Uses a simplified model, in which a point is described using a View
     Reference Point (VRP).
 */
-class SAL_WARN_UNUSED TOOLS_DLLPUBLIC B3dViewport : public B3dTransformationSet
+class SAL_WARN_UNUSED UNLESS_MERGELIBS(TOOLS_DLLPUBLIC) B3dViewport : public B3dTransformationSet
 {
 private:
     basegfx::B3DPoint           aVRP;   // View Reference Point
@@ -185,7 +186,7 @@ protected:
 
 // B3D camera
 
-class SAL_WARN_UNUSED TOOLS_DLLPUBLIC B3dCamera final : public B3dViewport
+class SAL_WARN_UNUSED UNLESS_MERGELIBS(TOOLS_DLLPUBLIC) B3dCamera final : public B3dViewport
 {
 public:
     B3dCamera(
diff --git a/include/ucbhelper/activedatasink.hxx b/include/ucbhelper/activedatasink.hxx
index 35446a023a66..c71066421e2e 100644
--- a/include/ucbhelper/activedatasink.hxx
+++ b/include/ucbhelper/activedatasink.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_UCBHELPER_ACTIVEDATASINK_HXX
 #define INCLUDED_UCBHELPER_ACTIVEDATASINK_HXX
 
+#include <config_options.h>
 #include <com/sun/star/io/XActiveDataSink.hpp>
 #include <ucbhelper/ucbhelperdllapi.h>
 #include <cppuhelper/implbase.hxx>
@@ -35,7 +36,7 @@ class SAL_DLLPUBLIC_TEMPLATE ActiveDataSink_Base : public cppu::WeakImplHelper<
   * Instances of this class can be passed with the parameters of an
   * "open" command.
   */
-class UCBHELPER_DLLPUBLIC ActiveDataSink final : public ActiveDataSink_Base
+class UNLESS_MERGELIBS(UCBHELPER_DLLPUBLIC) ActiveDataSink final : public ActiveDataSink_Base
 {
     css::uno::Reference< css::io::XInputStream > m_xStream;
 
diff --git a/include/ucbhelper/interactionrequest.hxx b/include/ucbhelper/interactionrequest.hxx
index facd9342363a..fa4185e2ad1b 100644
--- a/include/ucbhelper/interactionrequest.hxx
+++ b/include/ucbhelper/interactionrequest.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_UCBHELPER_INTERACTIONREQUEST_HXX
 #define INCLUDED_UCBHELPER_INTERACTIONREQUEST_HXX
 
+#include <config_options.h>
 #include <com/sun/star/lang/XTypeProvider.hpp>
 #include <com/sun/star/task/XInteractionRequest.hpp>
 #include <com/sun/star/task/XInteractionAbort.hpp>
@@ -221,7 +222,7 @@ public:
   * along with an interaction request to indicate the possibility to approve
   * the request.
   */
-class UCBHELPER_DLLPUBLIC InteractionApprove final : public InteractionContinuation,
+class UNLESS_MERGELIBS(UCBHELPER_DLLPUBLIC) InteractionApprove final : public InteractionContinuation,
                            public css::lang::XTypeProvider,
                            public css::task::XInteractionApprove
 {
@@ -254,7 +255,7 @@ public:
   * along with an interaction request to indicate the possibility to disapprove
   * the request.
   */
-class UCBHELPER_DLLPUBLIC InteractionDisapprove final : public InteractionContinuation,
+class UNLESS_MERGELIBS(UCBHELPER_DLLPUBLIC) InteractionDisapprove final : public InteractionContinuation,
                               public css::lang::XTypeProvider,
                               public css::task::XInteractionDisapprove
 {
@@ -287,7 +288,7 @@ public:
   * passed along with an authentication interaction request to enable the
   * interaction handler to supply the missing authentication data.
   */
-class UCBHELPER_DLLPUBLIC InteractionSupplyAuthentication final :
+class UNLESS_MERGELIBS(UCBHELPER_DLLPUBLIC) InteractionSupplyAuthentication final :
                   public InteractionContinuation,
                   public css::lang::XTypeProvider,
                   public css::ucb::XInteractionSupplyAuthentication2
diff --git a/include/ucbhelper/simplenameclashresolverequest.hxx b/include/ucbhelper/simplenameclashresolverequest.hxx
index 04a00e7479aa..05b36dbd31ba 100644
--- a/include/ucbhelper/simplenameclashresolverequest.hxx
+++ b/include/ucbhelper/simplenameclashresolverequest.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_UCBHELPER_SIMPLENAMECLASHRESOLVEREQUEST_HXX
 #define INCLUDED_UCBHELPER_SIMPLENAMECLASHRESOLVEREQUEST_HXX
 
+#include <config_options.h>
 #include <rtl/ref.hxx>
 #include <ucbhelper/interactionrequest.hxx>
 #include <ucbhelper/ucbhelperdllapi.h>
@@ -39,7 +40,7 @@ class InteractionSupplyName;
   * @see InteractionAbort
   * @see InteractioneplaceExistingData
   */
-class UCBHELPER_DLLPUBLIC SimpleNameClashResolveRequest final : public ucbhelper::InteractionRequest
+class UNLESS_MERGELIBS(UCBHELPER_DLLPUBLIC) SimpleNameClashResolveRequest final : public ucbhelper::InteractionRequest
 {
     rtl::Reference< InteractionSupplyName > m_xNameSupplier;
 
diff --git a/include/unotools/ZipPackageHelper.hxx b/include/unotools/ZipPackageHelper.hxx
index 6f1b1700d049..34e256176683 100644
--- a/include/unotools/ZipPackageHelper.hxx
+++ b/include/unotools/ZipPackageHelper.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_UNOTOOLS_ZIPPACKAGEHELPER_HXX
 #define INCLUDED_UNOTOOLS_ZIPPACKAGEHELPER_HXX
 
+#include <config_options.h>
 #include <unotools/unotoolsdllapi.h>
 
 #include <com/sun/star/uno/XInterface.hpp>
@@ -29,7 +30,7 @@ namespace com { namespace sun { namespace star { namespace uno { class XComponen
 
 namespace utl {
 
-class UNOTOOLS_DLLPUBLIC ZipPackageHelper
+class UNLESS_MERGELIBS(UNOTOOLS_DLLPUBLIC) ZipPackageHelper
 {
 public:
     ZipPackageHelper( const css::uno::Reference< css::uno::XComponentContext >& rxContext,
diff --git a/include/unotools/bootstrap.hxx b/include/unotools/bootstrap.hxx
index 5e16b931d707..447c33b64942 100644
--- a/include/unotools/bootstrap.hxx
+++ b/include/unotools/bootstrap.hxx
@@ -113,7 +113,7 @@ namespace utl
 
     public:
         // singleton impl-class
-        class Impl;
+        class UNOTOOLS_DLLPRIVATE Impl;
         static const Impl& data(); // the data related to the bootstrap.ini file
     };
 }
diff --git a/include/unotools/configvaluecontainer.hxx b/include/unotools/configvaluecontainer.hxx
index 4190f76b5829..708f6acc9292 100644
--- a/include/unotools/configvaluecontainer.hxx
+++ b/include/unotools/configvaluecontainer.hxx
@@ -19,6 +19,7 @@
 #ifndef INCLUDED_UNOTOOLS_CONFIGVALUECONTAINER_HXX
 #define INCLUDED_UNOTOOLS_CONFIGVALUECONTAINER_HXX
 
+#include <config_options.h>
 #include <unotools/unotoolsdllapi.h>
 #include <com/sun/star/uno/Type.hxx>
 #include <memory>
@@ -54,7 +55,7 @@ namespace utl
         before your base class' dtor is called, so accessing the memory during such a theoretical auto-commit would
         yield undefined behaviour.</p>
     */
-    class UNOTOOLS_DLLPUBLIC OConfigurationValueContainer
+    class UNLESS_MERGELIBS(UNOTOOLS_DLLPUBLIC) OConfigurationValueContainer
     {
     private:
         std::unique_ptr<OConfigurationValueContainerImpl> m_pImpl;
diff --git a/include/unotools/desktopterminationobserver.hxx b/include/unotools/desktopterminationobserver.hxx
index 473bf2c0f2fe..0d230d357c40 100644
--- a/include/unotools/desktopterminationobserver.hxx
+++ b/include/unotools/desktopterminationobserver.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_UNOTOOLS_DESKTOPTERMINATIONOBSERVER_HXX
 #define INCLUDED_UNOTOOLS_DESKTOPTERMINATIONOBSERVER_HXX
 
+#include <config_options.h>
 #include <unotools/unotoolsdllapi.h>
 
 namespace utl
@@ -49,11 +50,11 @@ namespace utl
         /** registers a listener which should be notified when the desktop terminates
             (which means the application is shutting down)
         */
-        UNOTOOLS_DLLPUBLIC void    registerTerminationListener( ITerminationListener* _pListener );
+        UNLESS_MERGELIBS(UNOTOOLS_DLLPUBLIC) void registerTerminationListener( ITerminationListener* _pListener );
 
         /** revokes a termination listener
         */

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list