[Libreoffice-commits] core.git: animations/source dbaccess/source extensions/source filter/source forms/source include/comphelper include/toolkit include/vbahelper io/source sc/inc scripting/java scripting/source sc/source sdext/source sd/source sfx2/source shell/source starmath/source svtools/source svx/source sw/source toolkit/source ucb/source UnoControls/source vbahelper/source vcl/source wizards/com xmloff/inc xmloff/source xmlsecurity/source

Stephan Bergmann sbergman at redhat.com
Tue Mar 17 04:26:26 PDT 2015


 UnoControls/source/controls/framecontrol.cxx                              |   12 
 UnoControls/source/inc/framecontrol.hxx                                   |    6 
 animations/source/animcore/animcore.cxx                                   |    2 
 dbaccess/source/filter/xml/xmlExport.cxx                                  |   10 
 dbaccess/source/filter/xml/xmlExport.hxx                                  |    2 
 dbaccess/source/ui/querydesign/limitboxcontroller.cxx                     |    2 
 dbaccess/source/ui/uno/dbinteraction.cxx                                  |    2 
 extensions/source/scanner/scanner.cxx                                     |   35 
 extensions/source/scanner/scanner.hxx                                     |   21 
 filter/source/odfflatxml/OdfFlatXml.cxx                                   |   25 
 forms/source/component/Button.cxx                                         |   10 
 forms/source/component/Button.hxx                                         |   10 
 forms/source/component/CheckBox.cxx                                       |    9 
 forms/source/component/CheckBox.hxx                                       |   10 
 forms/source/component/ComboBox.cxx                                       |    9 
 forms/source/component/ComboBox.hxx                                       |   10 
 forms/source/component/Currency.cxx                                       |    9 
 forms/source/component/Currency.hxx                                       |   10 
 forms/source/component/DatabaseForm.cxx                                   |   41 
 forms/source/component/DatabaseForm.hxx                                   |    2 
 forms/source/component/Date.cxx                                           |    7 
 forms/source/component/Date.hxx                                           |   10 
 forms/source/component/Edit.cxx                                           |   10 
 forms/source/component/Edit.hxx                                           |   10 
 forms/source/component/File.cxx                                           |    5 
 forms/source/component/File.hxx                                           |    5 
 forms/source/component/FixedText.cxx                                      |    5 
 forms/source/component/FixedText.hxx                                      |    5 
 forms/source/component/FormComponent.cxx                                  |    2 
 forms/source/component/FormattedField.cxx                                 |    8 
 forms/source/component/FormattedField.hxx                                 |   10 
 forms/source/component/FormattedFieldWrapper.cxx                          |    2 
 forms/source/component/FormsCollection.cxx                                |    2 
 forms/source/component/Grid.cxx                                           |    8 
 forms/source/component/Grid.hxx                                           |    5 
 forms/source/component/GroupBox.cxx                                       |   10 
 forms/source/component/GroupBox.hxx                                       |   10 
 forms/source/component/Hidden.cxx                                         |    7 
 forms/source/component/Hidden.hxx                                         |    5 
 forms/source/component/ImageButton.cxx                                    |   10 
 forms/source/component/ImageButton.hxx                                    |   10 
 forms/source/component/ImageControl.cxx                                   |   10 
 forms/source/component/ImageControl.hxx                                   |   10 
 forms/source/component/ListBox.cxx                                        |    9 
 forms/source/component/ListBox.hxx                                        |   10 
 forms/source/component/Numeric.cxx                                        |    9 
 forms/source/component/Numeric.hxx                                        |   10 
 forms/source/component/Pattern.cxx                                        |   12 
 forms/source/component/Pattern.hxx                                        |   10 
 forms/source/component/RadioButton.cxx                                    |    9 
 forms/source/component/RadioButton.hxx                                    |   10 
 forms/source/component/Time.cxx                                           |    9 
 forms/source/component/Time.hxx                                           |   10 
 forms/source/inc/FormComponent.hxx                                        |    7 
 forms/source/inc/forms_module.hxx                                         |    4 
 forms/source/xforms/model.cxx                                             |   18 
 forms/source/xforms/model.hxx                                             |   16 
 forms/source/xforms/xforms_services.cxx                                   |   27 
 include/comphelper/sequence.hxx                                           |   27 
 include/comphelper/servicedecl.hxx                                        |   34 
 include/toolkit/awt/vclxpointer.hxx                                       |   28 
 include/toolkit/awt/vclxprinter.hxx                                       |   21 
 include/toolkit/controls/dialogcontrol.hxx                                |    9 
 include/toolkit/controls/formattedcontrol.hxx                             |   12 
 include/toolkit/controls/roadmapcontrol.hxx                               |   12 
 include/toolkit/controls/stdtabcontroller.hxx                             |    9 
 include/toolkit/controls/stdtabcontrollermodel.hxx                        |    9 
 include/toolkit/controls/tkscrollbar.hxx                                  |   12 
 include/toolkit/controls/unocontrolcontainer.hxx                          |    6 
 include/toolkit/controls/unocontrolcontainermodel.hxx                     |    6 
 include/toolkit/controls/unocontrols.hxx                                  |  157 ++
 include/vbahelper/vbaeventshelperbase.hxx                                 |   10 
 io/source/stm/odata.cxx                                                   |    2 
 sc/inc/ScPanelFactory.hxx                                                 |   20 
 sc/source/ui/sidebar/ScPanelFactory.cxx                                   |   24 
 sc/source/ui/unoobj/afmtuno.cxx                                           |    2 
 sc/source/ui/unoobj/appluno.cxx                                           |   12 
 sc/source/ui/unoobj/docuno.cxx                                            |    2 
 sc/source/ui/unoobj/funcuno.cxx                                           |    2 
 sc/source/ui/vba/vbaeventshelper.cxx                                      |   13 
 sc/source/ui/vba/vbaeventshelper.hxx                                      |    6 
 scripting/java/com/sun/star/script/framework/provider/ScriptProvider.java |    6 
 scripting/source/pyprov/mailmerge.py                                      |   32 
 scripting/source/stringresource/stringresource.cxx                        |    2 
 sd/source/ui/framework/configuration/Configuration.cxx                    |   20 
 sd/source/ui/framework/configuration/ResourceId.cxx                       |   19 
 sd/source/ui/inc/framework/Configuration.hxx                              |   17 
 sd/source/ui/inc/framework/ResourceId.hxx                                 |   21 
 sd/source/ui/presenter/PresenterCanvas.cxx                                |   19 
 sd/source/ui/presenter/PresenterCanvas.hxx                                |   17 
 sd/source/ui/presenter/SlideRenderer.cxx                                  |   19 
 sd/source/ui/presenter/SlideRenderer.hxx                                  |   17 
 sd/source/ui/unoidl/unomodel.cxx                                          |    4 
 sdext/source/pdfimport/filterdet.cxx                                      |   20 
 sdext/source/pdfimport/filterdet.hxx                                      |   15 
 sdext/source/pdfimport/pdfiadaptor.cxx                                    |   38 
 sdext/source/pdfimport/pdfiadaptor.hxx                                    |   34 
 sdext/source/pdfimport/services.cxx                                       |    6 
 sdext/source/pdfimport/test/pdf2xml.cxx                                   |    2 
 sdext/source/pdfimport/test/tests.cxx                                     |    4 
 sdext/source/presenter/PresenterProtocolHandler.cxx                       |   20 
 sdext/source/presenter/PresenterProtocolHandler.hxx                       |   15 
 sfx2/source/appl/appdispatchprovider.cxx                                  |    2 
 shell/source/cmdmail/cmdmailsuppl.cxx                                     |    8 
 shell/source/unix/exec/shellexec.cxx                                      |   10 
 shell/source/win32/SysShExec.cxx                                          |    2 
 starmath/source/unomodel.cxx                                              |    2 
 svtools/source/filter/SvFilterOptionsDialog.cxx                           |    2 
 svx/source/sdr/primitive2d/primitivefactory2d.cxx                         |   19 
 svx/source/sidebar/PanelFactory.cxx                                       |   18 
 sw/source/ui/vba/vbaeventshelper.cxx                                      |    2 
 sw/source/uibase/sidebar/SwPanelFactory.cxx                               |   20 
 sw/source/uibase/uno/unotxdoc.cxx                                         |    6 
 toolkit/source/awt/vclxmenu.cxx                                           |   11 
 toolkit/source/awt/vclxpointer.cxx                                        |   40 
 toolkit/source/awt/vclxprinter.cxx                                        |   20 
 toolkit/source/awt/vclxtoolkit.cxx                                        |    4 
 toolkit/source/controls/dialogcontrol.cxx                                 |   35 
 toolkit/source/controls/formattedcontrol.cxx                              |   31 
 toolkit/source/controls/grid/gridcontrol.hxx                              |   26 
 toolkit/source/controls/roadmapcontrol.cxx                                |   31 
 toolkit/source/controls/stdtabcontroller.cxx                              |   20 
 toolkit/source/controls/stdtabcontrollermodel.cxx                         |   21 
 toolkit/source/controls/tkscrollbar.cxx                                   |   31 
 toolkit/source/controls/tkspinbutton.cxx                                  |    4 
 toolkit/source/controls/tree/treecontrol.hxx                              |   13 
 toolkit/source/controls/unocontrolcontainer.cxx                           |   16 
 toolkit/source/controls/unocontrolcontainermodel.cxx                      |   17 
 toolkit/source/controls/unocontrols.cxx                                   |  563 +++++++++-
 ucb/source/core/FileAccess.cxx                                            |   19 
 vbahelper/source/vbahelper/vbaeventshelperbase.cxx                        |    6 
 vcl/source/components/dtranscomp.cxx                                      |   56 
 wizards/com/sun/star/wizards/agenda/CallWizard.py                         |   19 
 wizards/com/sun/star/wizards/fax/CallWizard.py                            |   21 
 wizards/com/sun/star/wizards/letter/CallWizard.py                         |   21 
 wizards/com/sun/star/wizards/web/CallWizard.py                            |   19 
 xmloff/inc/xmlversion.hxx                                                 |   13 
 xmloff/source/meta/xmlversion.cxx                                         |   22 
 xmlsecurity/source/component/documentdigitalsignatures.cxx                |   22 
 xmlsecurity/source/component/documentdigitalsignatures.hxx                |   17 
 140 files changed, 2129 insertions(+), 435 deletions(-)

New commits:
commit 3099c70b11c7e5b80fe4dbe3dc99171fb38c6fc2
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Mar 17 12:25:11 2015 +0100

    Fix various XServiceInfo implementations
    
    ...to match what is recorded in the .component files
    
    Change-Id: Ie548cd37872d3b8540222201afaac73040e65c8f

diff --git a/UnoControls/source/controls/framecontrol.cxx b/UnoControls/source/controls/framecontrol.cxx
index be295f5..2fae2ca 100644
--- a/UnoControls/source/controls/framecontrol.cxx
+++ b/UnoControls/source/controls/framecontrol.cxx
@@ -161,6 +161,18 @@ Any SAL_CALL FrameControl::queryAggregation( const Type& aType ) throw( RuntimeE
     return aReturn;
 }
 
+OUString FrameControl::getImplementationName()
+    throw (css::uno::RuntimeException, std::exception)
+{
+    return impl_getStaticImplementationName();
+}
+
+css::uno::Sequence<OUString> FrameControl::getSupportedServiceNames()
+    throw (css::uno::RuntimeException, std::exception)
+{
+    return impl_getStaticSupportedServiceNames();
+}
+
 //  XControl
 
 void SAL_CALL FrameControl::createPeer( const   Reference< XToolkit >&      xToolkit    ,
diff --git a/UnoControls/source/inc/framecontrol.hxx b/UnoControls/source/inc/framecontrol.hxx
index f3ffef6..e1b48b7 100644
--- a/UnoControls/source/inc/framecontrol.hxx
+++ b/UnoControls/source/inc/framecontrol.hxx
@@ -101,6 +101,12 @@ public:
         const ::com::sun::star::uno::Type& aType
     ) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
 
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
     //  XControl
 
     virtual void SAL_CALL createPeer(
diff --git a/animations/source/animcore/animcore.cxx b/animations/source/animcore/animcore.cxx
index 9b804a9..d3f0b87 100644
--- a/animations/source/animcore/animcore.cxx
+++ b/animations/source/animcore/animcore.cxx
@@ -523,7 +523,7 @@ OUString getImplementationName_PAR()
 Sequence<OUString> getSupportedServiceNames_SEQ()
 {
     Sequence<OUString> aRet(1);
-    aRet.getArray()[0] = "com.sun.star.animations.SequenceTimContainer";
+    aRet.getArray()[0] = "com.sun.star.animations.SequenceTimeContainer";
     return aRet;
 }
 
diff --git a/dbaccess/source/filter/xml/xmlExport.cxx b/dbaccess/source/filter/xml/xmlExport.cxx
index 3949d89..652ef86 100644
--- a/dbaccess/source/filter/xml/xmlExport.cxx
+++ b/dbaccess/source/filter/xml/xmlExport.cxx
@@ -104,7 +104,7 @@ namespace dbaxml
 
     Reference< XInterface > SAL_CALL ODBExportHelper::Create(const Reference< XMultiServiceFactory >& _rxORB)
     {
-        return static_cast< XServiceInfo* >(new ODBExport(comphelper::getComponentContext(_rxORB), SvXMLExportFlags::SETTINGS | SvXMLExportFlags::PRETTY ));
+        return static_cast< XServiceInfo* >(new ODBExport(comphelper::getComponentContext(_rxORB), getImplementationName_Static(), SvXMLExportFlags::SETTINGS | SvXMLExportFlags::PRETTY ));
     }
 
     OUString SAL_CALL ODBExportHelper::getImplementationName_Static(  ) throw (RuntimeException)
@@ -121,7 +121,7 @@ namespace dbaxml
 
     Reference< XInterface > SAL_CALL ODBFullExportHelper::Create(const Reference< XMultiServiceFactory >& _rxORB)
     {
-        return static_cast< XServiceInfo* >(new ODBExport(comphelper::getComponentContext(_rxORB), SvXMLExportFlags::ALL));
+        return static_cast< XServiceInfo* >(new ODBExport(comphelper::getComponentContext(_rxORB), getImplementationName_Static(), SvXMLExportFlags::ALL));
     }
     OUString SAL_CALL ODBFullExportHelper::getImplementationName_Static(  ) throw (RuntimeException)
     {
@@ -183,8 +183,8 @@ namespace dbaxml
             // nothing to do here
         }
     };
-ODBExport::ODBExport(const Reference< XComponentContext >& _rxContext, SvXMLExportFlags nExportFlag)
-: SvXMLExport( util::MeasureUnit::MM_10TH, _rxContext, getImplementationName_Static(), XML_DATABASE,
+ODBExport::ODBExport(const Reference< XComponentContext >& _rxContext, OUString const & implementationName, SvXMLExportFlags nExportFlag)
+: SvXMLExport( util::MeasureUnit::MM_10TH, _rxContext, implementationName, XML_DATABASE,
         SvXMLExportFlags::OASIS | nExportFlag)
 ,m_aTypeCollection(_rxContext)
 ,m_bAllreadyFilled(false)
@@ -266,7 +266,7 @@ css::uno::Sequence<OUString> ODBExport::getSupportedServiceNames_Static()
 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
     SAL_CALL ODBExport::Create(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB)
 {
-    return static_cast< XServiceInfo* >(new ODBExport( comphelper::getComponentContext(_rxORB)));
+    return static_cast< XServiceInfo* >(new ODBExport( comphelper::getComponentContext(_rxORB), getImplementationName_Static()));
 }
 
 void ODBExport::exportDataSource()
diff --git a/dbaccess/source/filter/xml/xmlExport.hxx b/dbaccess/source/filter/xml/xmlExport.hxx
index aa94e13..2dc9c3e 100644
--- a/dbaccess/source/filter/xml/xmlExport.hxx
+++ b/dbaccess/source/filter/xml/xmlExport.hxx
@@ -173,7 +173,7 @@ protected:
     virtual                 ~ODBExport(){};
 public:
 
-    ODBExport(const Reference< XComponentContext >& _rxContext, SvXMLExportFlags nExportFlag = SvXMLExportFlags::CONTENT | SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::PRETTY | SvXMLExportFlags::FONTDECLS | SvXMLExportFlags::SCRIPTS );
+    ODBExport(const Reference< XComponentContext >& _rxContext, OUString const & implementationName, SvXMLExportFlags nExportFlag = SvXMLExportFlags::CONTENT | SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::PRETTY | SvXMLExportFlags::FONTDECLS | SvXMLExportFlags::SCRIPTS );
 
     static OUString SAL_CALL getImplementationName_Static()
         throw (css::uno::RuntimeException);
diff --git a/dbaccess/source/ui/querydesign/limitboxcontroller.cxx b/dbaccess/source/ui/querydesign/limitboxcontroller.cxx
index ad460ff..ad0c888 100644
--- a/dbaccess/source/ui/querydesign/limitboxcontroller.cxx
+++ b/dbaccess/source/ui/querydesign/limitboxcontroller.cxx
@@ -129,7 +129,7 @@ void SAL_CALL LimitBoxController::release() throw ()
 /// XServiceInfo
 IMPLEMENT_SERVICE_INFO_IMPLNAME_STATIC(LimitBoxController, "org.libreoffice.comp.dbu.LimitBoxController")
 IMPLEMENT_SERVICE_INFO_SUPPORTS(LimitBoxController)
-IMPLEMENT_SERVICE_INFO_GETSUPPORTED1_STATIC(LimitBoxController, "com.sun.star.frame.ToolboxController")
+IMPLEMENT_SERVICE_INFO_GETSUPPORTED1_STATIC(LimitBoxController, "com.sun.star.frame.ToolbarController")
 
 uno::Reference< uno::XInterface >
     SAL_CALL LimitBoxController::Create(const uno::Reference< css::lang::XMultiServiceFactory >& _rxORB)
diff --git a/dbaccess/source/ui/uno/dbinteraction.cxx b/dbaccess/source/ui/uno/dbinteraction.cxx
index 80b7ee8..7087c3b 100644
--- a/dbaccess/source/ui/uno/dbinteraction.cxx
+++ b/dbaccess/source/ui/uno/dbinteraction.cxx
@@ -350,7 +350,7 @@ namespace dbaui
     // LegacyInteractionHandler
     IMPLEMENT_SERVICE_INFO_IMPLNAME_STATIC(LegacyInteractionHandler, "com.sun.star.comp.dbaccess.LegacyInteractionHandler")
     IMPLEMENT_SERVICE_INFO_SUPPORTS(LegacyInteractionHandler)
-    IMPLEMENT_SERVICE_INFO_GETSUPPORTED1_STATIC(LegacyInteractionHandler, "com.sun.star.sdb.LegacyInteractionHandler")
+    IMPLEMENT_SERVICE_INFO_GETSUPPORTED1_STATIC(LegacyInteractionHandler, "com.sun.star.sdb.InteractionHandler")
 
     Reference< XInterface >
         SAL_CALL LegacyInteractionHandler::Create(const Reference< XMultiServiceFactory >& _rxORB)
diff --git a/extensions/source/scanner/scanner.cxx b/extensions/source/scanner/scanner.cxx
index c6537db..1e99fd6 100644
--- a/extensions/source/scanner/scanner.cxx
+++ b/extensions/source/scanner/scanner.cxx
@@ -19,7 +19,7 @@
 
 #include <scanner.hxx>
 
-#include <cppuhelper/queryinterface.hxx>
+#include <cppuhelper/supportsservice.hxx>
 
 // - ScannerManager -
 
@@ -44,40 +44,29 @@ ScannerManager::~ScannerManager()
     ReleaseData();
 }
 
-
-
-Any SAL_CALL ScannerManager::queryInterface( const Type& rType ) throw( RuntimeException, std::exception )
+Sequence< sal_Int8 > SAL_CALL ScannerManager::getMaskDIB() throw(std::exception)
 {
-    const Any aRet( cppu::queryInterface( rType,
-                                          static_cast< XScannerManager2* >( this ),
-                                          static_cast< css::awt::XBitmap* >( this ) ) );
-
-    return( aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType ) );
+    return Sequence< sal_Int8 >();
 }
 
-
-
-void SAL_CALL ScannerManager::acquire() throw()
+OUString ScannerManager::getImplementationName()
+    throw (css::uno::RuntimeException, std::exception)
 {
-    OWeakObject::acquire();
+    return getImplementationName_Static();
 }
 
-
-
-void SAL_CALL ScannerManager::release() throw()
+sal_Bool ScannerManager::supportsService(OUString const & ServiceName)
+    throw (css::uno::RuntimeException, std::exception)
 {
-    OWeakObject::release();
+    return cppu::supportsService(this, ServiceName);
 }
 
-
-
-Sequence< sal_Int8 > SAL_CALL ScannerManager::getMaskDIB() throw(std::exception)
+css::uno::Sequence<OUString> ScannerManager::getSupportedServiceNames()
+    throw (css::uno::RuntimeException, std::exception)
 {
-    return Sequence< sal_Int8 >();
+    return getSupportedServiceNames_Static();
 }
 
-
-
 OUString ScannerManager::getImplementationName_Static() throw()
 {
     return OUString( "com.sun.star.scanner.ScannerManager" );
diff --git a/extensions/source/scanner/scanner.hxx b/extensions/source/scanner/scanner.hxx
index 19e7761..4b4a18e 100644
--- a/extensions/source/scanner/scanner.hxx
+++ b/extensions/source/scanner/scanner.hxx
@@ -23,12 +23,13 @@
 #include <tools/stream.hxx>
 #include <osl/mutex.hxx>
 #include <rtl/ustring.hxx>
-#include <cppuhelper/weak.hxx>
+#include <cppuhelper/implbase.hxx>
 #include <com/sun/star/uno/Reference.h>
 #include <com/sun/star/uno/Sequence.h>
 #include <com/sun/star/awt/XBitmap.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/lang/XEventListener.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/EventObject.hpp>
 #include <com/sun/star/scanner/XScannerManager2.hpp>
 #include <com/sun/star/scanner/ScannerException.hpp>
@@ -37,7 +38,9 @@ using namespace cppu;
 using namespace com::sun::star::uno;
 using namespace com::sun::star::scanner;
 
-class ScannerManager : public OWeakObject, XScannerManager2, css::awt::XBitmap
+class ScannerManager:
+    public cppu::WeakImplHelper<
+        XScannerManager2, css::awt::XBitmap, css::lang::XServiceInfo>
 {
 protected:
 
@@ -52,11 +55,6 @@ public:
                                             ScannerManager();
     virtual                                 ~ScannerManager();
 
-    // XInterface
-    virtual Any SAL_CALL                    queryInterface( const Type & rType ) throw( RuntimeException, std::exception ) SAL_OVERRIDE;
-    virtual void SAL_CALL                   acquire() throw() SAL_OVERRIDE;
-    virtual void SAL_CALL                   release() throw() SAL_OVERRIDE;
-
     // XScannerManager
     virtual Sequence< ScannerContext > SAL_CALL  getAvailableScanners() throw(std::exception) SAL_OVERRIDE;
     virtual sal_Bool SAL_CALL               configureScanner( ScannerContext& scanner_context ) throw( ScannerException, std::exception ) SAL_OVERRIDE;
@@ -70,6 +68,15 @@ public:
     virtual Sequence< sal_Int8 > SAL_CALL        getDIB() throw(std::exception) SAL_OVERRIDE;
     virtual Sequence< sal_Int8 > SAL_CALL        getMaskDIB() throw(std::exception) SAL_OVERRIDE;
 
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
     // Misc
     static OUString                         getImplementationName_Static() throw();
     static Sequence< OUString >             getSupportedServiceNames_Static() throw();
diff --git a/filter/source/odfflatxml/OdfFlatXml.cxx b/filter/source/odfflatxml/OdfFlatXml.cxx
index 64b6dd1..fffedae 100644
--- a/filter/source/odfflatxml/OdfFlatXml.cxx
+++ b/filter/source/odfflatxml/OdfFlatXml.cxx
@@ -10,13 +10,14 @@
 
 #include <comphelper/processfactory.hxx>
 #include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase3.hxx>
+#include <cppuhelper/implbase.hxx>
+#include <cppuhelper/supportsservice.hxx>
 #include <osl/diagnose.h>
 
 #include <sax/tools/documenthandleradapter.hxx>
 
 #include <com/sun/star/lang/XComponent.hpp>
-
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/uno/Any.hxx>
 #include <com/sun/star/uno/Type.hxx>
 
@@ -53,8 +54,8 @@ namespace filter {
          * OdfFlatXml export and imports ODF flat XML documents by plugging a pass-through
          * filter implementation into XmlFilterAdaptor.
          */
-        class OdfFlatXml : public WeakImplHelper3<XImportFilter,
-                                                  XExportFilter, DocumentHandlerAdapter>
+        class OdfFlatXml : public WeakImplHelper<XImportFilter,
+                                                  XExportFilter, DocumentHandlerAdapter, css::lang::XServiceInfo>
         {
         private:
             Reference< XComponentContext > m_xContext;
@@ -81,6 +82,22 @@ namespace filter {
                 throw (IllegalArgumentException,
                        RuntimeException, std::exception) SAL_OVERRIDE;
 
+            OUString SAL_CALL getImplementationName()
+                throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+            { return OUString("com.sun.star.comp.filter.OdfFlatXml"); }
+
+            sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+                throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+            { return cppu::supportsService(this, ServiceName); }
+
+            css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+                throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+            {
+                return css::uno::Sequence<OUString>{
+                    "com.sun.star.document.ImportFilter",
+                        "com.sun.star.document.ExportFilter"};
+            }
+
             // UNO component helper methods
 
             static OUString impl_getImplementationName();
diff --git a/forms/source/component/Button.cxx b/forms/source/component/Button.cxx
index 0b595ad..05aefec 100644
--- a/forms/source/component/Button.cxx
+++ b/forms/source/component/Button.cxx
@@ -116,10 +116,11 @@ IMPLEMENT_DEFAULT_CLONING( OButtonModel )
 StringSequence  OButtonModel::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OClickableImageBaseModel::getSupportedServiceNames();
-    aSupported.realloc( aSupported.getLength() + 1 );
+    aSupported.realloc( aSupported.getLength() + 2 );
 
     OUString* pArray = aSupported.getArray();
-    pArray[ aSupported.getLength() - 1 ] = FRM_SUN_COMPONENT_COMMANDBUTTON;
+    pArray[ aSupported.getLength() - 2 ] = FRM_SUN_COMPONENT_COMMANDBUTTON;
+    pArray[ aSupported.getLength() - 1 ] = FRM_COMPONENT_COMMANDBUTTON;
 
     return aSupported;
 }
@@ -340,10 +341,11 @@ Sequence<Type> OButtonControl::_getTypes()
 StringSequence  OButtonControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OClickableImageBaseControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_COMMANDBUTTON;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_COMMANDBUTTON;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_COMMANDBUTTON;
     return aSupported;
 }
 
diff --git a/forms/source/component/Button.hxx b/forms/source/component/Button.hxx
index 418de7f..cd28061 100644
--- a/forms/source/component/Button.hxx
+++ b/forms/source/component/Button.hxx
@@ -55,7 +55,10 @@ public:
     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> _getTypes() SAL_OVERRIDE;
 
 // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OButtonModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OButtonModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
 // ::com::sun::star::io::XPersistObject
@@ -131,7 +134,10 @@ public:
     virtual ~OButtonControl();
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OButtonControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OButtonControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // UNO binding
diff --git a/forms/source/component/CheckBox.cxx b/forms/source/component/CheckBox.cxx
index 2c3ff8e..dc4d86f 100644
--- a/forms/source/component/CheckBox.cxx
+++ b/forms/source/component/CheckBox.cxx
@@ -48,10 +48,11 @@ OCheckBoxControl::OCheckBoxControl(const Reference<XComponentContext>& _rxFactor
 StringSequence SAL_CALL OCheckBoxControl::getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString* pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_CHECKBOX;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_CHECKBOX;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_CHECKBOX;
     return aSupported;
 }
 
@@ -88,7 +89,7 @@ StringSequence SAL_CALL OCheckBoxModel::getSupportedServiceNames() throw(::com::
     StringSequence aSupported = OReferenceValueComponent::getSupportedServiceNames();
 
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 8 );
+    aSupported.realloc( nOldLen + 9 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
     *pStoreTo++ = BINDABLE_CONTROL_MODEL;
@@ -102,6 +103,8 @@ StringSequence SAL_CALL OCheckBoxModel::getSupportedServiceNames() throw(::com::
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_CHECKBOX;
     *pStoreTo++ = BINDABLE_DATABASE_CHECK_BOX;
 
+    *pStoreTo++ = FRM_COMPONENT_CHECKBOX;
+
     return aSupported;
 }
 
diff --git a/forms/source/component/CheckBox.hxx b/forms/source/component/CheckBox.hxx
index 276992a..2819ee3 100644
--- a/forms/source/component/CheckBox.hxx
+++ b/forms/source/component/CheckBox.hxx
@@ -36,7 +36,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( OCheckBoxModel );
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OCheckBoxModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OCheckBoxModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XPersistObject
@@ -66,7 +69,10 @@ public:
     OCheckBoxControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxContext);
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OCheckBoxControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OCheckBoxControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
diff --git a/forms/source/component/ComboBox.cxx b/forms/source/component/ComboBox.cxx
index 8d959ee..654d962 100644
--- a/forms/source/component/ComboBox.cxx
+++ b/forms/source/component/ComboBox.cxx
@@ -87,7 +87,7 @@ StringSequence SAL_CALL OComboBoxModel::getSupportedServiceNames() throw(Runtime
     StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
 
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 8 );
+    aSupported.realloc( nOldLen + 9 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
     *pStoreTo++ = BINDABLE_CONTROL_MODEL;
@@ -101,6 +101,8 @@ StringSequence SAL_CALL OComboBoxModel::getSupportedServiceNames() throw(Runtime
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_COMBOBOX;
     *pStoreTo++ = BINDABLE_DATABASE_COMBO_BOX;
 
+    *pStoreTo++ = FRM_COMPONENT_COMBOBOX;
+
     return aSupported;
 }
 
@@ -868,10 +870,11 @@ OComboBoxControl::OComboBoxControl(const Reference<XComponentContext>& _rxContex
 StringSequence SAL_CALL OComboBoxControl::getSupportedServiceNames() throw(RuntimeException, std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString* pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_COMBOBOX;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_COMBOBOX;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_COMBOBOX;
     return aSupported;
 }
 
diff --git a/forms/source/component/ComboBox.hxx b/forms/source/component/ComboBox.hxx
index ad3ed57..b752c32 100644
--- a/forms/source/component/ComboBox.hxx
+++ b/forms/source/component/ComboBox.hxx
@@ -84,7 +84,10 @@ public:
     virtual void SAL_CALL reloaded( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OComboBoxModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OComboBoxModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // UNO
@@ -144,7 +147,10 @@ public:
     OComboBoxControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxContext);
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OComboBoxControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OComboBoxControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
diff --git a/forms/source/component/Currency.cxx b/forms/source/component/Currency.cxx
index cad851f..bc7975d 100644
--- a/forms/source/component/Currency.cxx
+++ b/forms/source/component/Currency.cxx
@@ -54,10 +54,11 @@ Sequence<Type> OCurrencyControl::_getTypes()
 StringSequence SAL_CALL OCurrencyControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_CURRENCYFIELD;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_CURRENCYFIELD;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_CURRENCYFIELD;
     return aSupported;
 }
 
@@ -150,7 +151,7 @@ StringSequence SAL_CALL OCurrencyModel::getSupportedServiceNames() throw(std::ex
     StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
 
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 4 );
+    aSupported.realloc( nOldLen + 5 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
     *pStoreTo++ = DATA_AWARE_CONTROL_MODEL;
@@ -159,6 +160,8 @@ StringSequence SAL_CALL OCurrencyModel::getSupportedServiceNames() throw(std::ex
     *pStoreTo++ = FRM_SUN_COMPONENT_CURRENCYFIELD;
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_CURRENCYFIELD;
 
+    *pStoreTo++ = FRM_COMPONENT_CURRENCYFIELD;
+
     return aSupported;
 }
 
diff --git a/forms/source/component/Currency.hxx b/forms/source/component/Currency.hxx
index 23a2ee8..98230b9 100644
--- a/forms/source/component/Currency.hxx
+++ b/forms/source/component/Currency.hxx
@@ -38,7 +38,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( OCurrencyModel );
 
     // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OCurrencyModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OCurrencyModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::io::XPersistObject
@@ -74,7 +77,10 @@ protected:
 public:
     OCurrencyControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxContext);
     // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OCurrencyControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OCurrencyControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 };
 
diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx
index bb2c6a8..6bb7991 100644
--- a/forms/source/component/DatabaseForm.cxx
+++ b/forms/source/component/DatabaseForm.cxx
@@ -3768,39 +3768,12 @@ OUString SAL_CALL ODatabaseForm::getImplementationName_Static()
     return OUString( "com.sun.star.comp.forms.ODatabaseForm" );
 }
 
-
-Sequence< OUString > SAL_CALL ODatabaseForm::getCompatibleServiceNames_Static()
-{
-    Sequence< OUString > aServices( 1 );
-    OUString* pServices = aServices.getArray();
-
-    *pServices++ = FRM_COMPONENT_FORM;
-
-    return aServices;
-}
-
-
-Sequence< OUString > SAL_CALL ODatabaseForm::getCurrentServiceNames_Static()
-{
-    Sequence< OUString > aServices( 5 );
-    OUString* pServices = aServices.getArray();
-
-    *pServices++ = FRM_SUN_FORMCOMPONENT;
-    *pServices++ = "com.sun.star.form.FormComponents";
-    *pServices++ = FRM_SUN_COMPONENT_FORM;
-    *pServices++ = FRM_SUN_COMPONENT_HTMLFORM;
-    *pServices++ = FRM_SUN_COMPONENT_DATAFORM;
-
-    return aServices;
-}
-
-
 Sequence< OUString > SAL_CALL ODatabaseForm::getSupportedServiceNames_Static()
 {
-    return ::comphelper::concatSequences(
-        getCurrentServiceNames_Static(),
-        getCompatibleServiceNames_Static()
-    );
+    return css::uno::Sequence<OUString>{
+        FRM_SUN_FORMCOMPONENT, "com.sun.star.form.FormComponents",
+        FRM_SUN_COMPONENT_FORM, FRM_SUN_COMPONENT_HTMLFORM,
+        FRM_SUN_COMPONENT_DATAFORM, FRM_COMPONENT_FORM};
 }
 
 
@@ -3820,13 +3793,9 @@ Sequence< OUString > SAL_CALL ODatabaseForm::getSupportedServiceNames() throw( R
 
     // concat with out own services
     return ::comphelper::concatSequences(
-        getCurrentServiceNames_Static(),
+        getSupportedServiceNames_Static(),
         aServices
     );
-    // use getCurrentXXX instead of getSupportedXXX, because at runtime, we do not want to have
-    // the compatible names
-    // This is maily to be consistent with the implementation before fixing #97083#, though the
-    // better solution _may_ be to return the compatible names at runtime, too
 }
 
 sal_Bool SAL_CALL ODatabaseForm::supportsService(const OUString& ServiceName) throw( RuntimeException, std::exception )
diff --git a/forms/source/component/DatabaseForm.hxx b/forms/source/component/DatabaseForm.hxx
index 72358a4..e9110ed 100644
--- a/forms/source/component/DatabaseForm.hxx
+++ b/forms/source/component/DatabaseForm.hxx
@@ -383,8 +383,6 @@ public:
     // com::sun::star::lang::XServiceInfo - static version
     static  OUString SAL_CALL getImplementationName_Static();
     static  ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames_Static();
-    static  ::com::sun::star::uno::Sequence< OUString > SAL_CALL getCurrentServiceNames_Static();
-    static  ::com::sun::star::uno::Sequence< OUString > SAL_CALL getCompatibleServiceNames_Static();
     static  ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL Create( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory );
 
     // com::sun::star::io::XPersistObject
diff --git a/forms/source/component/Date.cxx b/forms/source/component/Date.cxx
index d446d09..ace2196 100644
--- a/forms/source/component/Date.cxx
+++ b/forms/source/component/Date.cxx
@@ -59,10 +59,11 @@ Sequence<Type> ODateControl::_getTypes()
 StringSequence SAL_CALL ODateControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
     pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_DATEFIELD;
+    pArray[aSupported.getLength()-2] = STARDIV_ONE_FORM_CONTROL_DATEFIELD;
     return aSupported;
 }
 
@@ -124,7 +125,7 @@ StringSequence SAL_CALL ODateModel::getSupportedServiceNames() throw(std::except
     StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
 
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 8 );
+    aSupported.realloc( nOldLen + 9 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
     *pStoreTo++ = BINDABLE_CONTROL_MODEL;
@@ -138,6 +139,8 @@ StringSequence SAL_CALL ODateModel::getSupportedServiceNames() throw(std::except
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_DATEFIELD;
     *pStoreTo++ = BINDABLE_DATABASE_DATE_FIELD;
 
+    *pStoreTo++ = FRM_COMPONENT_DATEFIELD;
+
     return aSupported;
 }
 
diff --git a/forms/source/component/Date.hxx b/forms/source/component/Date.hxx
index 5942e7e..572f51b 100644
--- a/forms/source/component/Date.hxx
+++ b/forms/source/component/Date.hxx
@@ -51,7 +51,10 @@ public:
     virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue) throw ( ::com::sun::star::uno::Exception, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(ODateModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.ODateModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // XPropertySet
@@ -106,7 +109,10 @@ public:
     DECLARE_UNO3_AGG_DEFAULTS(ODateControl, OBoundControl)
 
 // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(ODateControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.ODateControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 };
 
diff --git a/forms/source/component/Edit.cxx b/forms/source/component/Edit.cxx
index 8bd967e..4b0472a 100644
--- a/forms/source/component/Edit.cxx
+++ b/forms/source/component/Edit.cxx
@@ -142,10 +142,12 @@ void OEditControl::disposing()
 StringSequence  OEditControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 3);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_TEXTFIELD;
+    pArray[aSupported.getLength()-3] = FRM_SUN_CONTROL_TEXTFIELD;
+    pArray[aSupported.getLength()-2] = STARDIV_ONE_FORM_CONTROL_EDIT;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_TEXTFIELD;
     return aSupported;
 }
 
@@ -330,7 +332,7 @@ StringSequence SAL_CALL OEditModel::getSupportedServiceNames() throw(std::except
     StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
 
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 8 );
+    aSupported.realloc( nOldLen + 9 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
     *pStoreTo++ = BINDABLE_CONTROL_MODEL;
@@ -344,6 +346,8 @@ StringSequence SAL_CALL OEditModel::getSupportedServiceNames() throw(std::except
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_TEXTFIELD;
     *pStoreTo++ = BINDABLE_DATABASE_TEXT_FIELD;
 
+    *pStoreTo++ = FRM_COMPONENT_TEXTFIELD;
+
     return aSupported;
 }
 
diff --git a/forms/source/component/Edit.hxx b/forms/source/component/Edit.hxx
index 2e80b2e..1d17c00 100644
--- a/forms/source/component/Edit.hxx
+++ b/forms/source/component/Edit.hxx
@@ -70,7 +70,10 @@ public:
     virtual void SAL_CALL reset(  ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OEditModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OEditModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // OControlModel's property handling
@@ -145,7 +148,10 @@ public:
     virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& _rSource) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OEditControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OEditControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
 // ::com::sun::star::form::XChangeBroadcaster
diff --git a/forms/source/component/File.cxx b/forms/source/component/File.cxx
index 2c6f97d..c426257 100644
--- a/forms/source/component/File.cxx
+++ b/forms/source/component/File.cxx
@@ -70,10 +70,11 @@ Sequence<Type> OFileControlModel::_getTypes()
 StringSequence  OFileControlModel::getSupportedServiceNames() throw(RuntimeException, std::exception)
 {
     StringSequence aSupported = OControlModel::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_COMPONENT_FILECONTROL;
+    pArray[aSupported.getLength()-2] = FRM_SUN_COMPONENT_FILECONTROL;
+    pArray[aSupported.getLength()-1] = FRM_COMPONENT_FILECONTROL;
     return aSupported;
 }
 
diff --git a/forms/source/component/File.hxx b/forms/source/component/File.hxx
index 9e5fd5a..80b3ef6 100644
--- a/forms/source/component/File.hxx
+++ b/forms/source/component/File.hxx
@@ -43,7 +43,10 @@ public:
     virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation(const ::com::sun::star::uno::Type& _rType) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OFileControlModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OFileControlModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // OComponentHelper
diff --git a/forms/source/component/FixedText.cxx b/forms/source/component/FixedText.cxx
index ba34a72..b281b50 100644
--- a/forms/source/component/FixedText.cxx
+++ b/forms/source/component/FixedText.cxx
@@ -65,10 +65,11 @@ IMPLEMENT_DEFAULT_CLONING( OFixedTextModel )
 StringSequence SAL_CALL OFixedTextModel::getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception)
 {
     StringSequence aSupported = OControlModel::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString* pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_COMPONENT_FIXEDTEXT;
+    pArray[aSupported.getLength()-2] = FRM_SUN_COMPONENT_FIXEDTEXT;
+    pArray[aSupported.getLength()-1] = FRM_COMPONENT_FIXEDTEXT;
     return aSupported;
 }
 
diff --git a/forms/source/component/FixedText.hxx b/forms/source/component/FixedText.hxx
index f733fa3..d6299e4 100644
--- a/forms/source/component/FixedText.hxx
+++ b/forms/source/component/FixedText.hxx
@@ -33,7 +33,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( OFixedTextModel );
 
 // XServiceInfo
-    IMPLEMENTATION_NAME(OFixedTextModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OFixedTextModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 // XPersistObject
diff --git a/forms/source/component/FormComponent.cxx b/forms/source/component/FormComponent.cxx
index 4fa30d5..662aec4 100644
--- a/forms/source/component/FormComponent.cxx
+++ b/forms/source/component/FormComponent.cxx
@@ -1533,7 +1533,7 @@ void SAL_CALL OBoundControlModel::disposing(const com::sun::star::lang::EventObj
 // XServiceInfo
 StringSequence SAL_CALL OBoundControlModel::getSupportedServiceNames() throw(RuntimeException, std::exception)
 {
-    return ::comphelper::concatSequences(
+    return ::comphelper::combineSequences(
         getAggregateServiceNames(),
         getSupportedServiceNames_Static()
     );
diff --git a/forms/source/component/FormattedField.cxx b/forms/source/component/FormattedField.cxx
index 61f009a..c5ef478 100644
--- a/forms/source/component/FormattedField.cxx
+++ b/forms/source/component/FormattedField.cxx
@@ -254,9 +254,10 @@ IMPL_LINK(OFormattedControl, OnKeyPressed, void*, /*EMPTYARG*/)
 StringSequence  OFormattedControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_FORMATTEDFIELD;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_FORMATTEDFIELD;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_FORMATTEDFIELD;
     return aSupported;
 }
 
@@ -315,7 +316,7 @@ StringSequence OFormattedModel::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OEditBaseModel::getSupportedServiceNames();
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 8 );
+    aSupported.realloc( nOldLen + 9 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
     *pStoreTo++ = BINDABLE_CONTROL_MODEL;
     *pStoreTo++ = DATA_AWARE_CONTROL_MODEL;
@@ -325,6 +326,7 @@ StringSequence OFormattedModel::getSupportedServiceNames() throw(std::exception)
     *pStoreTo++ = FRM_SUN_COMPONENT_FORMATTEDFIELD;
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_FORMATTEDFIELD;
     *pStoreTo++ = BINDABLE_DATABASE_FORMATTED_FIELD;
+    *pStoreTo++ = FRM_COMPONENT_FORMATTEDFIELD;
     return aSupported;
 }
 
diff --git a/forms/source/component/FormattedField.hxx b/forms/source/component/FormattedField.hxx
index c4b047b..424f0db 100644
--- a/forms/source/component/FormattedField.hxx
+++ b/forms/source/component/FormattedField.hxx
@@ -70,7 +70,10 @@ class OFormattedModel
         virtual void SAL_CALL disposing() SAL_OVERRIDE;
 
         // XServiceInfo
-        IMPLEMENTATION_NAME(OFormattedModel);
+        OUString SAL_CALL getImplementationName()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+        { return OUString("com.sun.star.form.OFormattedModel"); }
+
         virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
         // XPersistObject
@@ -158,7 +161,10 @@ class OFormattedModel
         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> _getTypes() SAL_OVERRIDE;
 
         // ::com::sun::star::lang::XServiceInfo
-        IMPLEMENTATION_NAME(OFormattedControl);
+        OUString SAL_CALL getImplementationName()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+        { return OUString("com.sun.star.form.OFormattedControl"); }
+
         virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
         // ::com::sun::star::lang::XEventListener
diff --git a/forms/source/component/FormattedFieldWrapper.cxx b/forms/source/component/FormattedFieldWrapper.cxx
index f278132..b368eac 100644
--- a/forms/source/component/FormattedFieldWrapper.cxx
+++ b/forms/source/component/FormattedFieldWrapper.cxx
@@ -177,7 +177,7 @@ OUString SAL_CALL OFormattedFieldWrapper::getServiceName() throw(RuntimeExceptio
 
 OUString SAL_CALL OFormattedFieldWrapper::getImplementationName(  ) throw (RuntimeException, std::exception)
 {
-    return OUString("com.sun.star.comp.forms.OFormattedFieldWrapper");
+    return OUString("com.sun.star.comp.forms.OFormattedFieldWrapper_ForcedFormatted");
 }
 
 sal_Bool SAL_CALL OFormattedFieldWrapper::supportsService( const OUString& _rServiceName ) throw (RuntimeException, std::exception)
diff --git a/forms/source/component/FormsCollection.cxx b/forms/source/component/FormsCollection.cxx
index daa1b0c..074c8f7 100644
--- a/forms/source/component/FormsCollection.cxx
+++ b/forms/source/component/FormsCollection.cxx
@@ -85,7 +85,7 @@ Any SAL_CALL OFormsCollection::queryAggregation(const Type& _rType) throw(Runtim
 
 OUString SAL_CALL OFormsCollection::getImplementationName() throw(RuntimeException, std::exception)
 {
-    return OUString("com.sun.star.comp.forms.OFormsCollection");
+    return OUString("com.sun.star.form.OFormsCollection");
 }
 
 sal_Bool SAL_CALL OFormsCollection::supportsService( const OUString& _rServiceName ) throw(RuntimeException, std::exception)
diff --git a/forms/source/component/Grid.cxx b/forms/source/component/Grid.cxx
index 524e129..c33afe9 100644
--- a/forms/source/component/Grid.cxx
+++ b/forms/source/component/Grid.cxx
@@ -169,9 +169,11 @@ void OGridControlModel::cloneColumns( const OGridControlModel* _pOriginalContain
 StringSequence OGridControlModel::getSupportedServiceNames() throw(RuntimeException, std::exception)
 {
     StringSequence aSupported = OControlModel::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 2);
-    aSupported[aSupported.getLength()-2] = "com.sun.star.awt.UnoControlModel";
-    aSupported[aSupported.getLength()-1] = FRM_SUN_COMPONENT_GRIDCONTROL;
+    aSupported.realloc(aSupported.getLength() + 4);
+    aSupported[aSupported.getLength()-4] = "com.sun.star.awt.UnoControlModel";
+    aSupported[aSupported.getLength()-3] = FRM_SUN_COMPONENT_GRIDCONTROL;
+    aSupported[aSupported.getLength()-2] = FRM_COMPONENT_GRID;
+    aSupported[aSupported.getLength()-1] = FRM_COMPONENT_GRIDCONTROL;
     return aSupported;
 }
 Any SAL_CALL OGridControlModel::queryAggregation( const Type& _rType ) throw (RuntimeException, std::exception)
diff --git a/forms/source/component/Grid.hxx b/forms/source/component/Grid.hxx
index d48f8e1..44a8b37 100644
--- a/forms/source/component/Grid.hxx
+++ b/forms/source/component/Grid.hxx
@@ -108,7 +108,10 @@ public:
     virtual void SAL_CALL setParent(const InterfaceRef& Parent) throw(::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OGridControlModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OGridControlModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XTypeProvider
diff --git a/forms/source/component/GroupBox.cxx b/forms/source/component/GroupBox.cxx
index 93fdd4e..73792e1 100644
--- a/forms/source/component/GroupBox.cxx
+++ b/forms/source/component/GroupBox.cxx
@@ -60,10 +60,11 @@ OGroupBoxModel::OGroupBoxModel( const OGroupBoxModel* _pOriginal, const Referenc
 StringSequence SAL_CALL OGroupBoxModel::getSupportedServiceNames() throw(RuntimeException, std::exception)
 {
     StringSequence aSupported = OControlModel::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString* pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_COMPONENT_GROUPBOX;
+    pArray[aSupported.getLength()-2] = FRM_SUN_COMPONENT_GROUPBOX;
+    pArray[aSupported.getLength()-1] = FRM_COMPONENT_GROUPBOX;
     return aSupported;
 }
 
@@ -130,10 +131,11 @@ OGroupBoxControl::OGroupBoxControl(const Reference<XComponentContext>& _rxFactor
 StringSequence SAL_CALL OGroupBoxControl::getSupportedServiceNames() throw(RuntimeException, std::exception)
 {
     StringSequence aSupported = OControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString* pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_GROUPBOX;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_GROUPBOX;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_GROUPBOX;
     return aSupported;
 }
 
diff --git a/forms/source/component/GroupBox.hxx b/forms/source/component/GroupBox.hxx
index 255f705..0c9ebed 100644
--- a/forms/source/component/GroupBox.hxx
+++ b/forms/source/component/GroupBox.hxx
@@ -33,7 +33,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( OGroupBoxModel );
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OGroupBoxModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OGroupBoxModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XPersistObject
@@ -61,7 +64,10 @@ public:
     OGroupBoxControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxFactory);
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OGroupBoxControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OGroupBoxControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
diff --git a/forms/source/component/Hidden.cxx b/forms/source/component/Hidden.cxx
index 5e5eeeb..92b1500 100644
--- a/forms/source/component/Hidden.cxx
+++ b/forms/source/component/Hidden.cxx
@@ -120,10 +120,9 @@ void OHiddenModel::describeFixedProperties( Sequence< Property >& _rProps ) cons
 
 StringSequence SAL_CALL OHiddenModel::getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception)
 {
-    StringSequence aSupported( 2 );
-    aSupported[ 0 ] = FRM_SUN_COMPONENT_HIDDENCONTROL;
-    aSupported[ 1 ] = FRM_SUN_FORMCOMPONENT;
-    return aSupported;
+    return css::uno::Sequence<OUString>{
+        FRM_SUN_COMPONENT_HIDDENCONTROL, FRM_SUN_FORMCOMPONENT,
+        FRM_COMPONENT_HIDDEN, FRM_COMPONENT_HIDDENCONTROL };
 }
 
 
diff --git a/forms/source/component/Hidden.hxx b/forms/source/component/Hidden.hxx
index 358c71c..68a29a5 100644
--- a/forms/source/component/Hidden.hxx
+++ b/forms/source/component/Hidden.hxx
@@ -43,7 +43,10 @@ public:
                 throw (::com::sun::star::lang::IllegalArgumentException) SAL_OVERRIDE;
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OHiddenModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OHiddenModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XPersistObject
diff --git a/forms/source/component/ImageButton.cxx b/forms/source/component/ImageButton.cxx
index c9a0b5f..f355b9d 100644
--- a/forms/source/component/ImageButton.cxx
+++ b/forms/source/component/ImageButton.cxx
@@ -64,10 +64,11 @@ OImageButtonModel::~OImageButtonModel()
 StringSequence  OImageButtonModel::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OClickableImageBaseModel::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_COMPONENT_IMAGEBUTTON;
+    pArray[aSupported.getLength()-2] = FRM_SUN_COMPONENT_IMAGEBUTTON;
+    pArray[aSupported.getLength()-1] = FRM_COMPONENT_IMAGEBUTTON;
     return aSupported;
 }
 
@@ -152,10 +153,11 @@ Sequence<Type> OImageButtonControl::_getTypes()
 StringSequence  OImageButtonControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OClickableImageBaseControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_IMAGEBUTTON;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_IMAGEBUTTON;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_IMAGEBUTTON;
     return aSupported;
 }
 
diff --git a/forms/source/component/ImageButton.hxx b/forms/source/component/ImageButton.hxx
index ee728e81..1d9dd1a 100644
--- a/forms/source/component/ImageButton.hxx
+++ b/forms/source/component/ImageButton.hxx
@@ -34,7 +34,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( OImageButtonModel );
 
 // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OImageButtonModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OImageButtonModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
 // ::com::sun::star::io::XPersistObject
@@ -63,7 +66,10 @@ public:
     OImageButtonControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxFactory);
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OImageButtonControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OImageButtonControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // UNO Binding
diff --git a/forms/source/component/ImageControl.cxx b/forms/source/component/ImageControl.cxx
index 8646fd5..e3789cf 100644
--- a/forms/source/component/ImageControl.cxx
+++ b/forms/source/component/ImageControl.cxx
@@ -191,10 +191,11 @@ IMPLEMENT_DEFAULT_CLONING( OImageControlModel )
 StringSequence  OImageControlModel::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_COMPONENT_IMAGECONTROL;
+    pArray[aSupported.getLength()-2] = FRM_SUN_COMPONENT_IMAGECONTROL;
+    pArray[aSupported.getLength()-1] = FRM_COMPONENT_IMAGECONTROL;
     return aSupported;
 }
 
@@ -725,10 +726,11 @@ Any SAL_CALL OImageControlControl::queryAggregation(const Type& _rType) throw (R
 StringSequence  OImageControlControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_IMAGECONTROL;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_IMAGECONTROL;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_IMAGECONTROL;
     return aSupported;
 }
 
diff --git a/forms/source/component/ImageControl.hxx b/forms/source/component/ImageControl.hxx
index 4caaf90..1317c75 100644
--- a/forms/source/component/ImageControl.hxx
+++ b/forms/source/component/ImageControl.hxx
@@ -76,7 +76,10 @@ public:
     virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation(const ::com::sun::star::uno::Type& _rType) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OImageControlModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OImageControlModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // OComponentHelper
@@ -165,7 +168,10 @@ public:
     virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& _rSource) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(OImageControlControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OImageControlControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // XMouseListener
diff --git a/forms/source/component/ListBox.cxx b/forms/source/component/ListBox.cxx
index 2fd08c7..d87da0b 100644
--- a/forms/source/component/ListBox.cxx
+++ b/forms/source/component/ListBox.cxx
@@ -208,7 +208,7 @@ namespace frm
         StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
 
         sal_Int32 nOldLen = aSupported.getLength();
-        aSupported.realloc( nOldLen + 8 );
+        aSupported.realloc( nOldLen + 9 );
         OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
         *pStoreTo++ = BINDABLE_CONTROL_MODEL;
@@ -222,6 +222,8 @@ namespace frm
         *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_LISTBOX;
         *pStoreTo++ = BINDABLE_DATABASE_LIST_BOX;
 
+        *pStoreTo++ = FRM_COMPONENT_LISTBOX;
+
         return aSupported;
     }
 
@@ -1806,10 +1808,11 @@ namespace frm
     StringSequence SAL_CALL OListBoxControl::getSupportedServiceNames() throw(RuntimeException, std::exception)
     {
         StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-        aSupported.realloc(aSupported.getLength() + 1);
+        aSupported.realloc(aSupported.getLength() + 2);
 
         OUString* pArray = aSupported.getArray();
-        pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_LISTBOX;
+        pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_LISTBOX;
+        pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_LISTBOX;
         return aSupported;
     }
 
diff --git a/forms/source/component/ListBox.hxx b/forms/source/component/ListBox.hxx
index 9b9bee3..381d36e 100644
--- a/forms/source/component/ListBox.hxx
+++ b/forms/source/component/ListBox.hxx
@@ -127,7 +127,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( OListBoxModel );
 
 // XServiceInfo
-    IMPLEMENTATION_NAME(OListBoxModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OListBoxModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 // UNO Anbindung
@@ -280,7 +283,10 @@ public:
     virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 // XServiceInfo
-    IMPLEMENTATION_NAME(OListBoxControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OListBoxControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 // XChangeBroadcaster
diff --git a/forms/source/component/Numeric.cxx b/forms/source/component/Numeric.cxx
index a8daa2e..2d1cb74 100644
--- a/forms/source/component/Numeric.cxx
+++ b/forms/source/component/Numeric.cxx
@@ -45,10 +45,11 @@ ONumericControl::ONumericControl(const Reference<XComponentContext>& _rxFactory)
 StringSequence ONumericControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_NUMERICFIELD;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_NUMERICFIELD;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_NUMERICFIELD;
     return aSupported;
 }
 
@@ -99,7 +100,7 @@ StringSequence ONumericModel::getSupportedServiceNames() throw(std::exception)
     StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
 
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 8 );
+    aSupported.realloc( nOldLen + 9 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
     *pStoreTo++ = BINDABLE_CONTROL_MODEL;
@@ -113,6 +114,8 @@ StringSequence ONumericModel::getSupportedServiceNames() throw(std::exception)
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_NUMERICFIELD;
     *pStoreTo++ = BINDABLE_DATABASE_NUMERIC_FIELD;
 
+    *pStoreTo++ = FRM_COMPONENT_NUMERICFIELD;
+
     return aSupported;
 }
 
diff --git a/forms/source/component/Numeric.hxx b/forms/source/component/Numeric.hxx
index 3d37a96..5b97d9e 100644
--- a/forms/source/component/Numeric.hxx
+++ b/forms/source/component/Numeric.hxx
@@ -38,7 +38,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( ONumericModel );
 
     // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(ONumericModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.ONumericModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::io::XPersistObject
@@ -72,7 +75,10 @@ public:
     ONumericControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxFactory);
 
     // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(ONumericControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.ONumericControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 };
 
diff --git a/forms/source/component/Pattern.cxx b/forms/source/component/Pattern.cxx
index 89a10a7..8631f0d 100644
--- a/forms/source/component/Pattern.cxx
+++ b/forms/source/component/Pattern.cxx
@@ -53,10 +53,11 @@ Sequence<Type> OPatternControl::_getTypes()
 StringSequence OPatternControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_PATTERNFIELD;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_PATTERNFIELD;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_PATTERNFIELD;
     return aSupported;
 }
 
@@ -100,11 +101,12 @@ IMPLEMENT_DEFAULT_CLONING( OPatternModel )
 StringSequence SAL_CALL OPatternModel::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 2);
+    aSupported.realloc(aSupported.getLength() + 3);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-2] = FRM_SUN_COMPONENT_DATABASE_PATTERNFIELD;
-    pArray[aSupported.getLength()-1] = FRM_SUN_COMPONENT_PATTERNFIELD;
+    pArray[aSupported.getLength()-3] = FRM_SUN_COMPONENT_DATABASE_PATTERNFIELD;
+    pArray[aSupported.getLength()-2] = FRM_SUN_COMPONENT_PATTERNFIELD;
+    pArray[aSupported.getLength()-1] = FRM_COMPONENT_PATTERNFIELD;
     return aSupported;
 }
 
diff --git a/forms/source/component/Pattern.hxx b/forms/source/component/Pattern.hxx
index dfcdde0..2f5d6bf 100644
--- a/forms/source/component/Pattern.hxx
+++ b/forms/source/component/Pattern.hxx
@@ -45,7 +45,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( OPatternModel );
 
     // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OPatternModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OPatternModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::io::XPersistObject
@@ -81,7 +84,10 @@ public:
     OPatternControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxFactory);
 
     // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OPatternControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OPatternControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 };
 
diff --git a/forms/source/component/RadioButton.cxx b/forms/source/component/RadioButton.cxx
index abe62f0..4a6ee60 100644
--- a/forms/source/component/RadioButton.cxx
+++ b/forms/source/component/RadioButton.cxx
@@ -46,10 +46,11 @@ using namespace ::com::sun::star::form::binding;
 StringSequence SAL_CALL ORadioButtonControl::getSupportedServiceNames() throw(RuntimeException, std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString* pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_RADIOBUTTON;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_RADIOBUTTON;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_RADIOBUTTON;
     return aSupported;
 }
 
@@ -115,7 +116,7 @@ StringSequence SAL_CALL ORadioButtonModel::getSupportedServiceNames() throw(Runt
     StringSequence aSupported = OReferenceValueComponent::getSupportedServiceNames();
 
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 8 );
+    aSupported.realloc( nOldLen + 9 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
     *pStoreTo++ = BINDABLE_CONTROL_MODEL;
@@ -129,6 +130,8 @@ StringSequence SAL_CALL ORadioButtonModel::getSupportedServiceNames() throw(Runt
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_RADIOBUTTON;
     *pStoreTo++ = BINDABLE_DATABASE_RADIO_BUTTON;
 
+    *pStoreTo++ = FRM_COMPONENT_RADIOBUTTON;
+
     return aSupported;
 }
 
diff --git a/forms/source/component/RadioButton.hxx b/forms/source/component/RadioButton.hxx
index 62e8246..d8660c0 100644
--- a/forms/source/component/RadioButton.hxx
+++ b/forms/source/component/RadioButton.hxx
@@ -32,7 +32,10 @@ public:
     DECLARE_DEFAULT_LEAF_XTOR( ORadioButtonModel );
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(ORadioButtonModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.ORadioButtonModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // OPropertySetHelper
@@ -83,7 +86,10 @@ public:
     ORadioButtonControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxFactory);
 
     // XServiceInfo
-    IMPLEMENTATION_NAME(ORadioButtonControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.ORadioButtonControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 protected:
diff --git a/forms/source/component/Time.cxx b/forms/source/component/Time.cxx
index 7c03a51..e09359a 100644
--- a/forms/source/component/Time.cxx
+++ b/forms/source/component/Time.cxx
@@ -59,10 +59,11 @@ Sequence<Type> OTimeControl::_getTypes()
 StringSequence SAL_CALL OTimeControl::getSupportedServiceNames() throw(std::exception)
 {
     StringSequence aSupported = OBoundControl::getSupportedServiceNames();
-    aSupported.realloc(aSupported.getLength() + 1);
+    aSupported.realloc(aSupported.getLength() + 2);
 
     OUString*pArray = aSupported.getArray();
-    pArray[aSupported.getLength()-1] = FRM_SUN_CONTROL_TIMEFIELD;
+    pArray[aSupported.getLength()-2] = FRM_SUN_CONTROL_TIMEFIELD;
+    pArray[aSupported.getLength()-1] = STARDIV_ONE_FORM_CONTROL_TIMEFIELD;
     return aSupported;
 }
 
@@ -76,7 +77,7 @@ StringSequence SAL_CALL OTimeModel::getSupportedServiceNames() throw(std::except
     StringSequence aSupported = OBoundControlModel::getSupportedServiceNames();
 
     sal_Int32 nOldLen = aSupported.getLength();
-    aSupported.realloc( nOldLen + 8 );
+    aSupported.realloc( nOldLen + 9 );
     OUString* pStoreTo = aSupported.getArray() + nOldLen;
 
     *pStoreTo++ = BINDABLE_CONTROL_MODEL;
@@ -90,6 +91,8 @@ StringSequence SAL_CALL OTimeModel::getSupportedServiceNames() throw(std::except
     *pStoreTo++ = FRM_SUN_COMPONENT_DATABASE_TIMEFIELD;
     *pStoreTo++ = BINDABLE_DATABASE_TIME_FIELD;
 
+    *pStoreTo++ = FRM_COMPONENT_TIMEFIELD;
+
     return aSupported;
 }
 
diff --git a/forms/source/component/Time.hxx b/forms/source/component/Time.hxx
index dfef239..329b65f 100644
--- a/forms/source/component/Time.hxx
+++ b/forms/source/component/Time.hxx
@@ -52,7 +52,10 @@ public:
     virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue) throw ( ::com::sun::star::uno::Exception, std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OTimeModel);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OTimeModel"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 
     // OControlModel's property handling
@@ -106,7 +109,10 @@ public:
     DECLARE_UNO3_AGG_DEFAULTS(OTimeControl, OBoundControl)
 
     // ::com::sun::star::lang::XServiceInfo
-    IMPLEMENTATION_NAME(OTimeControl);
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.OTimeControl"); }
+
     virtual StringSequence SAL_CALL getSupportedServiceNames() throw(std::exception) SAL_OVERRIDE;
 };
 
diff --git a/forms/source/inc/FormComponent.hxx b/forms/source/inc/FormComponent.hxx
index 91ecc23..abf8956 100644
--- a/forms/source/inc/FormComponent.hxx
+++ b/forms/source/inc/FormComponent.hxx
@@ -84,12 +84,7 @@ namespace frm
     #define DECLARE_XPERSISTOBJECT() \
     virtual OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;    \
     virtual void SAL_CALL write(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectOutputStream>& _rxOutStream) throw(::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;    \
-    virtual void SAL_CALL read(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectInputStream>& _rxInStream) throw(::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;   \
-
-    // old macro for quickly implementing XServiceInfo::getImplementationName
-    #define IMPLEMENTATION_NAME(ImplName)                                       \
-    virtual OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE \
-        { return OUString("com.sun.star.comp.forms." #ImplName); }
+    virtual void SAL_CALL read(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectInputStream>& _rxInStream) throw(::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     class OControlModel;
 
diff --git a/forms/source/inc/forms_module.hxx b/forms/source/inc/forms_module.hxx
index cf72d01..98bdf73 100644
--- a/forms/source/inc/forms_module.hxx
+++ b/forms/source/inc/forms_module.hxx
@@ -198,7 +198,7 @@ namespace FORMS_MODULE_NAMESPACE
         \
         Sequence< OUString > SAL_CALL classname::getSupportedServiceNames(  ) throw (RuntimeException, std::exception) \
         { \
-            return ::comphelper::concatSequences( \
+            return ::comphelper::combineSequences( \
                 getAggregateServiceNames(), \
                 getSupportedServiceNames_Static() \
             ); \
@@ -273,7 +273,7 @@ namespace FORMS_MODULE_NAMESPACE
                    aOwnNames[ 4 ] = service5; \
                    aOwnNames[ 5 ] = service6; \
                    aOwnNames[ 6 ] = service7; \
-                   aOwnNames[ 6 ] = service8; \
+                   aOwnNames[ 7 ] = service8; \
             \
             return ::comphelper::concatSequences( \
                 baseclass::getSupportedServiceNames_Static(), \
diff --git a/forms/source/xforms/model.cxx b/forms/source/xforms/model.cxx
index e428d45..c6774dd 100644
--- a/forms/source/xforms/model.cxx
+++ b/forms/source/xforms/model.cxx
@@ -36,6 +36,7 @@
 
 #include <comphelper/propertysetinfo.hxx>
 #include <comphelper/processfactory.hxx>
+#include <cppuhelper/supportsservice.hxx>
 #include <cppuhelper/typeprovider.hxx>
 
 #include <algorithm>
@@ -680,6 +681,23 @@ Sequence<sal_Int8> Model::getImplementationId()
     return css::uno::Sequence<sal_Int8>();
 }
 
+OUString Model::getImplementationName()
+    throw (css::uno::RuntimeException, std::exception)
+{
+    return OUString("com.sun.star.form.Model");
+}
+
+sal_Bool Model::supportsService(OUString const & ServiceName)
+    throw (css::uno::RuntimeException, std::exception)
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence<OUString> Model::getSupportedServiceNames()
+    throw (css::uno::RuntimeException, std::exception)
+{
+    return css::uno::Sequence<OUString>{"com.sun.star.xforms.Model"};
+}
 
 extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
 com_sun_star_form_Model_get_implementation(::com::sun::star::uno::XComponentContext*,
diff --git a/forms/source/xforms/model.hxx b/forms/source/xforms/model.hxx
index 0d8b962..2ae0081 100644
--- a/forms/source/xforms/model.hxx
+++ b/forms/source/xforms/model.hxx
@@ -20,11 +20,12 @@
 #ifndef INCLUDED_FORMS_SOURCE_XFORMS_MODEL_HXX
 #define INCLUDED_FORMS_SOURCE_XFORMS_MODEL_HXX
 
-#include <cppuhelper/implbase4.hxx>
+#include <cppuhelper/implbase.hxx>
 #include <propertysetbase.hxx>
 #include <com/sun/star/xforms/XModel2.hpp>
 #include <com/sun/star/xforms/XFormsUIHelper1.hpp>
 #include <com/sun/star/util/XUpdatable.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XUnoTunnel.hpp>
 
 #include <com/sun/star/uno/Reference.hxx>
@@ -65,12 +66,13 @@ namespace xforms
  *
  * See http://www.w3.org/TR/xforms/ for more information.
  */
-typedef cppu::ImplInheritanceHelper4<
+typedef cppu::ImplInheritanceHelper<
     PropertySetBase,
     com::sun::star::xforms::XModel2,
     com::sun::star::xforms::XFormsUIHelper1,
     com::sun::star::util::XUpdatable,
-    com::sun::star::lang::XUnoTunnel
+    com::sun::star::lang::XUnoTunnel,
+    css::lang::XServiceInfo
 > Model_t;
 class Model : public Model_t
 {
@@ -439,6 +441,14 @@ public:
     virtual IntSequence_t SAL_CALL getImplementationId()
         throw( RuntimeException_t ) SAL_OVERRIDE;
 
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 } // namespace
diff --git a/forms/source/xforms/xforms_services.cxx b/forms/source/xforms/xforms_services.cxx
index 9637ae1..7e88ab11 100644
--- a/forms/source/xforms/xforms_services.cxx
+++ b/forms/source/xforms/xforms_services.cxx
@@ -24,14 +24,39 @@
 #include <com/sun/star/uno/Reference.hxx>
 #include <com/sun/star/uno/XComponentContext.hpp>
 #include <com/sun/star/uno/XInterface.hpp>
+#include <cppuhelper/supportsservice.hxx>
 
 using namespace ::com::sun::star;
 
+namespace {
+
+class Implementation:
+    public cppu::ImplInheritanceHelper<
+        NameContainer<css::uno::Reference<css::beans::XPropertySet>>,
+        css::lang::XServiceInfo>
+{
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return OUString("com.sun.star.form.XForms"); }
+
+    sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    { return cppu::supportsService(this, ServiceName); }
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
+    {
+        return css::uno::Sequence<OUString>{"com.sun.star.xforms.XForms"};
+    }
+};
+
+}
+
 extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface* SAL_CALL
 com_sun_star_form_XForms_get_implementation(uno::XComponentContext*,
         uno::Sequence<uno::Any> const &)
 {
-    return cppu::acquire(new NameContainer<uno::Reference<beans::XPropertySet> >());
+    return cppu::acquire(new Implementation);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/comphelper/sequence.hxx b/include/comphelper/sequence.hxx
index 4713582..fdba924 100644
--- a/include/comphelper/sequence.hxx
+++ b/include/comphelper/sequence.hxx
@@ -62,6 +62,33 @@ namespace comphelper
         return aReturn;
     }
 
+    /// concat additional elements from right sequence to left sequence
+    ///
+    /// be aware that this takes time O(|left| * |right|)
+    template<typename T> css::uno::Sequence<T> combineSequences(
+        css::uno::Sequence<T> const & left, css::uno::Sequence<T> const & right)
+    {
+        sal_Int32 n1 = left.getLength();
+        css::uno::Sequence<T> ret(n1 + right.getLength());
+            //TODO: check for overflow
+        T * p = ret.getArray();
+        internal::implCopySequence(left.getConstArray(), p, n1);
+        sal_Int32 n2 = n1;
+        for (sal_Int32 i = 0; i != right.getLength(); ++i) {
+            bool found = false;
+            for (sal_Int32 j = 0; j != n1; ++j) {
+                if (right[i] == left[j]) {
+                    found = true;
+                    break;
+                }
+            }
+            if (!found) {
+                ret[n2++] = right[i];
+            }
+        }
+        ret.realloc(n2);
+        return ret;
+    }
 
     /// concat three sequences
     template <class T>
diff --git a/include/comphelper/servicedecl.hxx b/include/comphelper/servicedecl.hxx
index 69c6403..0e3fef2 100644
--- a/include/comphelper/servicedecl.hxx
+++ b/include/comphelper/servicedecl.hxx
@@ -197,6 +197,22 @@ public:
         : ServiceImpl_BASE(rServiceDecl, xContext) {}
 };
 
+template <typename ImplT>
+class InheritingServiceImpl : public OwnServiceImpl< ImplT >
+{
+typedef OwnServiceImpl< ImplT > ServiceImpl_BASE;
+public:
+    InheritingServiceImpl(
+        ServiceDecl const& rServiceDecl,
+        css::uno::Sequence<css::uno::Any> const& args,
+        css::uno::Reference<css::uno::XComponentContext> const& xContext )
+        : ServiceImpl_BASE(rServiceDecl, args, xContext) {}
+    InheritingServiceImpl(
+        ServiceDecl const& rServiceDecl,
+        css::uno::Reference<css::uno::XComponentContext> const& xContext )
+        : ServiceImpl_BASE(rServiceDecl, xContext) {}
+};
+
 template <typename ServiceImplT>
 struct PostProcessDefault {
     css::uno::Reference<css::uno::XInterface>
@@ -298,6 +314,24 @@ struct class_ : public serviceimpl_base< detail::ServiceImpl<ImplT_>, WithArgsT
     explicit class_( PostProcessFuncT const& postProcessFunc ) : baseT( postProcessFunc ) {}
 };
 
+template <typename ImplT_, typename WithArgsT = with_args<false> >
+struct inheritingClass_ : public serviceimpl_base< detail::InheritingServiceImpl<ImplT_>, WithArgsT >
+{
+    typedef serviceimpl_base< detail::InheritingServiceImpl<ImplT_>, WithArgsT > baseT;
+    /** Default ctor.  Implementation class without args, expecting
+        component context as single argument.
+    */
+    inheritingClass_() : baseT() {}
+    template <typename PostProcessFuncT>
+    /** Ctor to pass a post processing function/functor.
+
+        @tpl PostProcessDefaultT let your compiler deduce this
+        @param postProcessFunc function/functor that gets the yet unacquired
+                               ImplT_ pointer returning a
+                               uno::Reference<uno::XInterface>
+    */
+    explicit inheritingClass_( PostProcessFuncT const& postProcessFunc ) : baseT( postProcessFunc ) {}
+};
 
 // component_... helpers with arbitrary service declarations:
 
diff --git a/include/toolkit/awt/vclxpointer.hxx b/include/toolkit/awt/vclxpointer.hxx
index fb224c6..5e3d867 100644
--- a/include/toolkit/awt/vclxpointer.hxx
+++ b/include/toolkit/awt/vclxpointer.hxx
@@ -22,9 +22,9 @@
 
 
 #include <com/sun/star/awt/XPointer.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <cppuhelper/weak.hxx>
+#include <cppuhelper/implbase.hxx>
 #include <osl/mutex.hxx>
 
 #include <vcl/pointr.hxx>
@@ -33,10 +33,8 @@
 //  class VCLXPointer
 
 
-class VCLXPointer : public ::com::sun::star::awt::XPointer,
-                    public ::com::sun::star::lang::XTypeProvider,
-                    public ::com::sun::star::lang::XUnoTunnel,
-                    public ::cppu::OWeakObject
+class VCLXPointer: public cppu::WeakImplHelper<
+    css::awt::XPointer, css::lang::XUnoTunnel, css::lang::XServiceInfo>
 {
 private:
     ::osl::Mutex    maMutex;
@@ -51,23 +49,23 @@ public:
 
     const Pointer&      GetPointer() const { return maPointer; }
 
-    // ::com::sun::star::uno::XInterface
-    ::com::sun::star::uno::Any  SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
-    void                        SAL_CALL acquire() throw() SAL_OVERRIDE  { OWeakObject::acquire(); }
-    void                        SAL_CALL release() throw() SAL_OVERRIDE  { OWeakObject::release(); }
-
     // ::com::sun::star::lang::XUnoTunnel
     static const ::com::sun::star::uno::Sequence< sal_Int8 >&   GetUnoTunnelId() throw();
     static VCLXPointer*                                         GetImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxIFace );
     sal_Int64                                                   SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rIdentifier ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
-    // ::com::sun::star::lang::XTypeProvider
-    ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >  SAL_CALL getTypes() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
-    ::com::sun::star::uno::Sequence< sal_Int8 >                     SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
-
     // ::com::sun::star::awt::XPointer
     void SAL_CALL setType( sal_Int32 nType ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     sal_Int32 SAL_CALL getType(  ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
diff --git a/include/toolkit/awt/vclxprinter.hxx b/include/toolkit/awt/vclxprinter.hxx
index 71289fe..892cc4c 100644
--- a/include/toolkit/awt/vclxprinter.hxx
+++ b/include/toolkit/awt/vclxprinter.hxx
@@ -25,13 +25,14 @@
 #include <com/sun/star/awt/XPrinter.hpp>
 #include <com/sun/star/awt/XPrinterServer.hpp>
 #include <com/sun/star/awt/XInfoPrinter.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XTypeProvider.hpp>
 #include <cppuhelper/weak.hxx>
 #include <osl/mutex.hxx>
 
 #include <toolkit/helper/mutexandbroadcasthelper.hxx>
 #include <cppuhelper/propshlp.hxx>
-#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase.hxx>
 #include <comphelper/uno3.hxx>
 
 #include <vcl/oldprintadaptor.hxx>
@@ -49,7 +50,7 @@
 //  class VCLXPrinterPropertySet
 
 
-typedef ::cppu::WeakImplHelper1 <   ::com::sun::star::awt::XPrinterPropertySet
+typedef ::cppu::WeakImplHelper <   ::com::sun::star::awt::XPrinterPropertySet
                                 >   VCLXPrinterPropertySet_Base;
 class VCLXPrinterPropertySet    :public VCLXPrinterPropertySet_Base
                                 ,public MutexAndBroadcastHelper
@@ -102,7 +103,7 @@ public:
 //  class VCLXPrinter
 
 
-typedef ::cppu::ImplInheritanceHelper1  <   VCLXPrinterPropertySet
+typedef ::cppu::ImplInheritanceHelper  <   VCLXPrinterPropertySet
                                         ,   ::com::sun::star::awt::XPrinter
                                         >   VCLXPrinter_Base;
 class VCLXPrinter:  public VCLXPrinter_Base
@@ -141,7 +142,7 @@ public:
 //  class VCLXInfoPrinter
 
 
-typedef ::cppu::ImplInheritanceHelper1  <   VCLXPrinterPropertySet
+typedef ::cppu::ImplInheritanceHelper  <   VCLXPrinterPropertySet
                                         ,   ::com::sun::star::awt::XInfoPrinter
                                         >   VCLXInfoPrinter_Base;
 class VCLXInfoPrinter:  public VCLXInfoPrinter_Base
@@ -174,7 +175,8 @@ public:
 //  class VCLXPrinterServer
 
 
-typedef ::cppu::WeakImplHelper1 <   ::com::sun::star::awt::XPrinterServer
+typedef ::cppu::WeakImplHelper <   ::com::sun::star::awt::XPrinterServer,
+                                   css::lang::XServiceInfo
                                 >   VCLXPrinterServer_Base;
 class VCLXPrinterServer : public VCLXPrinterServer_Base
 {
@@ -183,6 +185,15 @@ public:
     ::com::sun::star::uno::Sequence< OUString > SAL_CALL getPrinterNames(  ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPrinter > SAL_CALL createPrinter( const OUString& printerName ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XInfoPrinter > SAL_CALL createInfoPrinter( const OUString& printerName ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 #endif // INCLUDED_TOOLKIT_AWT_VCLXPRINTER_HXX
diff --git a/include/toolkit/controls/dialogcontrol.hxx b/include/toolkit/controls/dialogcontrol.hxx
index c6f46eb..347fc20 100644
--- a/include/toolkit/controls/dialogcontrol.hxx
+++ b/include/toolkit/controls/dialogcontrol.hxx
@@ -153,7 +153,14 @@ public:
 
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO( UnoDialogControl, szServiceName2_UnoControlDialog )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 protected:
     virtual void PrepareWindowDescriptor( ::com::sun::star::awt::WindowDescriptor& rDesc ) SAL_OVERRIDE;
diff --git a/include/toolkit/controls/formattedcontrol.hxx b/include/toolkit/controls/formattedcontrol.hxx
index b91523e..44584c4 100644
--- a/include/toolkit/controls/formattedcontrol.hxx
+++ b/include/toolkit/controls/formattedcontrol.hxx
@@ -77,7 +77,11 @@ namespace toolkit
 
 
         // ::com::sun::star::lang::XServiceInfo
-        DECLIMPL_SERVICEINFO_DERIVED( UnoControlFormattedFieldModel, UnoControlModel, "com.sun.star.awt.UnoControlFormattedFieldModel" )
+        OUString SAL_CALL getImplementationName()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+        css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     protected:
         virtual ~UnoControlFormattedFieldModel();
@@ -114,7 +118,11 @@ namespace toolkit
         void SAL_CALL textChanged( const ::com::sun::star::awt::TextEvent& rEvent ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
         // ::com::sun::star::lang::XServiceInfo
-        DECLIMPL_SERVICEINFO_DERIVED( UnoFormattedFieldControl, UnoEditControl, "com.sun.star.awt.UnoControlFormattedField" )
+        OUString SAL_CALL getImplementationName()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+        css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     };
 
 
diff --git a/include/toolkit/controls/roadmapcontrol.hxx b/include/toolkit/controls/roadmapcontrol.hxx
index e95853d..1d0f35c 100644
--- a/include/toolkit/controls/roadmapcontrol.hxx
+++ b/include/toolkit/controls/roadmapcontrol.hxx
@@ -111,7 +111,11 @@ namespace toolkit
     OUString SAL_CALL getServiceName() throw(css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoControlRoadmapModel, UnoControlRoadmapModel_Base, "com.sun.star.awt.UnoControlRoadmapModel" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw (css::lang::IndexOutOfBoundsException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
@@ -179,7 +183,11 @@ namespace toolkit
     DECLARE_XINTERFACE()
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoRoadmapControl, UnoControlBase, "com.sun.star.awt.UnoControlRoadmap" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     };
 
 
diff --git a/include/toolkit/controls/stdtabcontroller.hxx b/include/toolkit/controls/stdtabcontroller.hxx
index be86f99..789eb77 100644
--- a/include/toolkit/controls/stdtabcontroller.hxx
+++ b/include/toolkit/controls/stdtabcontroller.hxx
@@ -77,7 +77,14 @@ public:
     void SAL_CALL activateLast(  ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    DECLIMPL_SERVICEINFO( StdTabController, szServiceName2_TabController )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
diff --git a/include/toolkit/controls/stdtabcontrollermodel.hxx b/include/toolkit/controls/stdtabcontrollermodel.hxx
index f03ae4e..da49323 100644
--- a/include/toolkit/controls/stdtabcontrollermodel.hxx
+++ b/include/toolkit/controls/stdtabcontrollermodel.hxx
@@ -128,7 +128,14 @@ public:
     void SAL_CALL read( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectInputStream >& InStream ) throw(::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
-    DECLIMPL_SERVICEINFO( StdTabControllerModel, szServiceName2_TabControllerModel )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
diff --git a/include/toolkit/controls/tkscrollbar.hxx b/include/toolkit/controls/tkscrollbar.hxx
index 979b098..80b1bfa 100644
--- a/include/toolkit/controls/tkscrollbar.hxx
+++ b/include/toolkit/controls/tkscrollbar.hxx
@@ -54,7 +54,11 @@ namespace toolkit
         OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
         // XServiceInfo
-        DECLIMPL_SERVICEINFO_DERIVED( UnoControlScrollBarModel, UnoControlModel, "com.sun.star.awt.UnoControlScrollBarModel" )
+        OUString SAL_CALL getImplementationName()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+        css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     };
 
 
@@ -104,7 +108,11 @@ namespace toolkit
         sal_Int32 SAL_CALL getOrientation(  ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
         // ::com::sun::star::lang::XServiceInfo
-        DECLIMPL_SERVICEINFO_DERIVED( UnoScrollBarControl, UnoControlBase, "com.sun.star.awt.UnoControlScrollBar" )
+        OUString SAL_CALL getImplementationName()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+        css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+            throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     };
 
 
diff --git a/include/toolkit/controls/unocontrolcontainer.hxx b/include/toolkit/controls/unocontrolcontainer.hxx
index f9bad95..c6a8167 100644
--- a/include/toolkit/controls/unocontrolcontainer.hxx
+++ b/include/toolkit/controls/unocontrolcontainer.hxx
@@ -105,7 +105,11 @@ public:
     // ::com::sun::star::awt::XWindow
     void SAL_CALL setVisible( sal_Bool Visible ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
-    DECLIMPL_SERVICEINFO_DERIVED( UnoControlContainer, UnoControlBase, "com.sun.star.awt.UnoControlContainer" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 protected:
     virtual void PrepareWindowDescriptor( ::com::sun::star::awt::WindowDescriptor& rDesc ) SAL_OVERRIDE;
diff --git a/include/toolkit/controls/unocontrolcontainermodel.hxx b/include/toolkit/controls/unocontrolcontainermodel.hxx
index df934f2..2ab139b2 100644
--- a/include/toolkit/controls/unocontrolcontainermodel.hxx
+++ b/include/toolkit/controls/unocontrolcontainermodel.hxx
@@ -48,7 +48,11 @@ public:
     OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoControlContainerModel, UnoControlModel, "com.sun.star.awt.UnoControlContainerModel" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
diff --git a/include/toolkit/controls/unocontrols.hxx b/include/toolkit/controls/unocontrols.hxx
index e87800b..a0bd3cd 100644
--- a/include/toolkit/controls/unocontrols.hxx
+++ b/include/toolkit/controls/unocontrols.hxx
@@ -98,7 +98,11 @@ public:
 
 
     // XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoControlEditModel, UnoControlModel, "com.sun.star.awt.UnoControlEditModel" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
@@ -201,7 +205,11 @@ public:
     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoControlFileControlModel, UnoControlModel, "com.sun.star.awt.UnoControlFileControlModel" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
@@ -214,7 +222,11 @@ public:
     OUString     GetComponentServiceName() SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoFileControl, UnoEditControl, "com.sun.star.awt.UnoControlFileControl" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
@@ -269,7 +281,11 @@ public:
     OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoControlButtonModel, GraphicControlModel, "com.sun.star.awt.UnoControlButtonModel" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
@@ -319,7 +335,11 @@ public:
     ::com::sun::star::awt::Size SAL_CALL calcAdjustedSize( const ::com::sun::star::awt::Size& aNewSize ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoButtonControl, UnoControlBase, "com.sun.star.awt.UnoControlButton" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
@@ -347,7 +367,11 @@ public:
     OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoControlImageControlModel, GraphicControlModel, "com.sun.star.awt.UnoControlImageControlModel" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // ::cppu::OPropertySetHelper
     void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ) throw (::com::sun::star::uno::Exception, std::exception) SAL_OVERRIDE;
@@ -380,7 +404,11 @@ public:
     ::com::sun::star::awt::Size SAL_CALL calcAdjustedSize( const ::com::sun::star::awt::Size& aNewSize ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // ::com::sun::star::lang::XServiceInfo
-    DECLIMPL_SERVICEINFO_DERIVED( UnoImageControlControl, UnoControlBase, "com.sun.star.awt.UnoControlImageControl" )
+    OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+        throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
 
 
@@ -406,8 +434,11 @@ public:

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list