From 4e690b6439201fd2280081d42455d9daae70666d Mon Sep 17 00:00:00 2001 From: "Thomas Lange [tl]" Date: Mon, 6 Sep 2010 10:02:33 +0200 Subject: cws tl82: #i114160# SimplePasswordRequest and respective dialog --- comphelper/inc/comphelper/docpasswordrequest.hxx | 54 ++++++++++++++++++------ 1 file changed, 41 insertions(+), 13 deletions(-) mode change 100644 => 100755 comphelper/inc/comphelper/docpasswordrequest.hxx (limited to 'comphelper/inc') diff --git a/comphelper/inc/comphelper/docpasswordrequest.hxx b/comphelper/inc/comphelper/docpasswordrequest.hxx old mode 100644 new mode 100755 index cf04d22c7a6d..effc47392078 --- a/comphelper/inc/comphelper/docpasswordrequest.hxx +++ b/comphelper/inc/comphelper/docpasswordrequest.hxx @@ -34,8 +34,12 @@ #include #include + namespace comphelper { +class AbortContinuation; +class PasswordContinuation; + // ============================================================================ /** Selects which UNO document password request type to use. */ @@ -47,8 +51,37 @@ enum DocPasswordRequestType // ============================================================================ -class AbortContinuation; -class PasswordContinuation; +class COMPHELPER_DLLPUBLIC SimplePasswordRequest : + public ::com::sun::star::task::XInteractionRequest, + public ::cppu::OWeakObject +{ +public: + explicit SimplePasswordRequest( com::sun::star::task::PasswordRequestMode eMode ); + virtual ~SimplePasswordRequest(); + + // XInterface / OWeakObject + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire( ) throw (); + virtual void SAL_CALL release( ) throw (); + + sal_Bool isAbort() const; + sal_Bool isPassword() const; + + ::rtl::OUString getPassword() const; + +private: + // XInteractionRequest + virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException ); + +private: + ::com::sun::star::uno::Any maRequest; + ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > maContinuations; + AbortContinuation * mpAbort; + PasswordContinuation * mpPassword; +}; + +// ============================================================================ /** Implements the task.XInteractionRequest interface for requesting a password string for a document. @@ -79,20 +112,15 @@ public: sal_Bool getRecommendReadOnly() const; private: - virtual ::com::sun::star::uno::Any SAL_CALL - getRequest() throw( ::com::sun::star::uno::RuntimeException ); - - virtual ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL - getContinuations() throw( ::com::sun::star::uno::RuntimeException ); + // XInteractionRequest + virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException ); private: - ::com::sun::star::uno::Any maRequest; + ::com::sun::star::uno::Any maRequest; ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > maContinuations; - AbortContinuation* mpAbort; - PasswordContinuation* mpPassword; - - sal_Bool mbPasswordToModify; + AbortContinuation * mpAbort; + PasswordContinuation * mpPassword; }; // ============================================================================ -- cgit v1.2.3 From a3c8a0ed0c5c6be1cb5c940750222f6381608bd7 Mon Sep 17 00:00:00 2001 From: sb Date: Fri, 10 Sep 2010 13:10:07 +0200 Subject: sb129: #i113189# change UNO components to use passive registration --- canvas/prj/d.lst | 7 + canvas/source/cairo/cairocanvas.component | 37 ++ canvas/source/cairo/exports.dxp | 1 - canvas/source/cairo/makefile.mk | 8 + canvas/source/directx/directx5canvas.component | 34 ++ canvas/source/directx/directx9canvas.component | 34 ++ canvas/source/directx/exports.dxp | 1 - canvas/source/directx/gdipluscanvas.component | 37 ++ canvas/source/directx/makefile.mk | 22 + canvas/source/factory/canvasfactory.component | 34 ++ canvas/source/factory/cf_service.cxx | 8 - canvas/source/factory/makefile.mk | 7 + canvas/source/null/exports.dxp | 1 - canvas/source/simplecanvas/exports.dxp | 1 - canvas/source/simplecanvas/makefile.mk | 8 + canvas/source/simplecanvas/simplecanvas.component | 34 ++ canvas/source/vcl/exports.dxp | 1 - canvas/source/vcl/makefile.mk | 8 + canvas/source/vcl/vclcanvas.component | 37 ++ comphelper/inc/comphelper/componentmodule.hxx | 29 -- comphelper/inc/comphelper/servicedecl.hxx | 27 -- comphelper/prj/d.lst | 1 + comphelper/source/misc/componentmodule.cxx | 58 --- comphelper/source/misc/servicedecl.cxx | 31 -- comphelper/util/comphelp4.component | 70 +++ comphelper/util/exports.dxp | 1 - comphelper/util/makefile.mk | 8 + dtrans/prj/d.lst | 5 + dtrans/source/cnttype/exports.dxp | 1 - dtrans/source/cnttype/mctfentry.cxx | 29 -- dtrans/source/generic/dtrans.component | 37 ++ dtrans/source/generic/dtrans.cxx | 37 -- dtrans/source/generic/exports.dxp | 1 - dtrans/source/generic/makefile.mk | 8 + dtrans/source/os2/clipb/Os2Service.cxx | 22 - dtrans/source/os2/clipb/exports.dxp | 1 - dtrans/source/win32/clipb/exports.dxp | 1 - dtrans/source/win32/clipb/wcbentry.cxx | 29 -- dtrans/source/win32/dnd/dndentry.cxx | 33 -- dtrans/source/win32/dnd/exports.dxp | 1 - dtrans/source/win32/ftransl/exports.dxp | 1 - dtrans/source/win32/ftransl/ftranslentry.cxx | 29 -- dtrans/util/dnd.component | 37 ++ dtrans/util/exports.dxp | 1 - dtrans/util/ftransl.component | 34 ++ dtrans/util/makefile.mk | 29 ++ dtrans/util/mcnttype.component | 34 ++ dtrans/util/sysdtrans.component | 34 ++ i18npool/prj/d.lst | 2 + i18npool/source/localedata/data/makefile.mk | 212 ++------- i18npool/source/localedata/saxparser.cxx | 35 +- .../source/registerservices/registerservices.cxx | 23 - i18npool/source/search/i18nsearch.component | 34 ++ i18npool/source/search/makefile.mk | 8 + i18npool/source/search/textsearch.cxx | 19 - i18npool/util/i18npool.component | 484 +++++++++++++++++++++ i18npool/util/makefile.mk | 8 + sax/prj/d.lst | 3 + sax/source/expatwrap/makefile.mk | 11 + sax/source/expatwrap/sax.component | 37 ++ sax/source/expatwrap/sax_expat.cxx | 31 -- sax/source/fastparser/facreg.cxx | 28 -- sax/source/fastparser/fastsax.component | 37 ++ sax/source/fastparser/makefile.mk | 7 +- sot/prj/d.lst | 1 + sot/source/unoolestorage/register.cxx | 28 -- sot/util/makefile.mk | 8 + sot/util/sot.component | 34 ++ svl/prj/d.lst | 3 + svl/source/fsstor/fsfactory.cxx | 24 - svl/source/fsstor/fsstorage.component | 35 ++ svl/source/fsstor/makefile.mk | 8 + svl/source/passwordcontainer/makefile.mk | 8 + .../passwordcontainer/passwordcontainer.component | 34 ++ svl/source/passwordcontainer/passwordcontainer.cxx | 18 - svl/source/uno/registerservices.cxx | 31 -- svl/util/makefile.mk | 8 + svl/util/svl.component | 40 ++ svtools/prj/d.lst | 3 + .../hatchwindow/hatchwindowfactory.component | 38 ++ svtools/source/hatchwindow/hatchwindowfactory.cxx | 39 -- svtools/source/hatchwindow/makefile.mk | 8 + svtools/source/productregistration/makefile.mk | 8 + .../productregistration/productregistration.cxx | 19 - .../productregistration.uno.component | 34 ++ svtools/source/uno/miscservices.cxx | 49 --- svtools/util/makefile.mk | 8 + svtools/util/svt.component | 49 +++ toolkit/prj/d.lst | 1 + toolkit/source/awt/asynccallback.cxx | 6 - toolkit/source/helper/registerservices.cxx | 87 ---- toolkit/source/layout/core/factory.cxx | 27 -- toolkit/util/makefile.mk | 8 + toolkit/util/tk.component | 298 +++++++++++++ unotools/prj/d.lst | 1 + unotools/source/ucbhelper/xtempfile.cxx | 58 --- unotools/util/makefile.mk | 8 + unotools/util/utl.component | 34 ++ vcl/aqua/source/dtrans/aqua_service.cxx | 22 - vcl/prj/d.lst | 1 + vcl/source/components/factory.cxx | 56 --- vcl/util/makefile.mk | 13 + vcl/util/vcl.component | 49 +++ vcl/util/vcl.macosx.component | 49 +++ vcl/util/vcl.windows.component | 40 ++ vcl/workben/makefile.mk | 25 +- vcl/workben/svdem.cxx | 2 +- vcl/workben/svptest.cxx | 2 +- vcl/workben/vcldemo.cxx | 2 +- 109 files changed, 2108 insertions(+), 1144 deletions(-) create mode 100644 canvas/source/cairo/cairocanvas.component create mode 100644 canvas/source/directx/directx5canvas.component create mode 100644 canvas/source/directx/directx9canvas.component create mode 100644 canvas/source/directx/gdipluscanvas.component create mode 100644 canvas/source/factory/canvasfactory.component create mode 100644 canvas/source/simplecanvas/simplecanvas.component create mode 100644 canvas/source/vcl/vclcanvas.component create mode 100644 comphelper/util/comphelp4.component create mode 100644 dtrans/source/generic/dtrans.component create mode 100644 dtrans/util/dnd.component create mode 100644 dtrans/util/ftransl.component create mode 100644 dtrans/util/mcnttype.component create mode 100644 dtrans/util/sysdtrans.component mode change 100644 => 100755 i18npool/source/localedata/data/makefile.mk create mode 100644 i18npool/source/search/i18nsearch.component create mode 100644 i18npool/util/i18npool.component create mode 100644 sax/source/expatwrap/sax.component create mode 100644 sax/source/fastparser/fastsax.component create mode 100644 sot/util/sot.component create mode 100644 svl/source/fsstor/fsstorage.component create mode 100644 svl/source/passwordcontainer/passwordcontainer.component create mode 100644 svl/util/svl.component create mode 100644 svtools/source/hatchwindow/hatchwindowfactory.component create mode 100644 svtools/source/productregistration/productregistration.uno.component create mode 100644 svtools/util/svt.component create mode 100644 toolkit/util/tk.component create mode 100644 unotools/util/utl.component create mode 100644 vcl/util/vcl.component create mode 100644 vcl/util/vcl.macosx.component create mode 100644 vcl/util/vcl.windows.component (limited to 'comphelper/inc') diff --git a/canvas/prj/d.lst b/canvas/prj/d.lst index 986253a3b3e5..701b9967f92a 100644 --- a/canvas/prj/d.lst +++ b/canvas/prj/d.lst @@ -15,6 +15,7 @@ ..\%__SRC%\lib\canvasfactory.uno.so %_DEST%\lib%_EXT%\canvasfactory.uno.so ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib ..\%__SRC%\class\javacanvas.uno.jar %_DEST%\bin%_EXT%\javacanvas.uno.jar +..\%__SRC%\misc\cairocanvas.component %_DEST%\xml%_EXT%\cairocanvas.component mkdir: %_DEST%\inc%_EXT%\canvas\base ..\inc\canvas\base\*.hxx %_DEST%\inc%_EXT%\canvas\base\*.hxx @@ -24,3 +25,9 @@ mkdir: %_DEST%\inc%_EXT%\canvas\rendering mkdir: %_DEST%\inc%_EXT%\canvas ..\inc\canvas\*.hxx %_DEST%\inc%_EXT%\canvas\*.hxx +..\%__SRC%\misc\canvasfactory.component %_DEST%\xml%_EXT%\canvasfactory.component +..\%__SRC%\misc\directx5canvas.component %_DEST%\xml%_EXT%\directx5canvas.component +..\%__SRC%\misc\directx9canvas.component %_DEST%\xml%_EXT%\directx9canvas.component +..\%__SRC%\misc\gdipluscanvas.component %_DEST%\xml%_EXT%\gdipluscanvas.component +..\%__SRC%\misc\simplecanvas.component %_DEST%\xml%_EXT%\simplecanvas.component +..\%__SRC%\misc\vclcanvas.component %_DEST%\xml%_EXT%\vclcanvas.component diff --git a/canvas/source/cairo/cairocanvas.component b/canvas/source/cairo/cairocanvas.component new file mode 100644 index 000000000000..126ad2b44ee1 --- /dev/null +++ b/canvas/source/cairo/cairocanvas.component @@ -0,0 +1,37 @@ + + + + + + + + + + + diff --git a/canvas/source/cairo/exports.dxp b/canvas/source/cairo/exports.dxp index 9630d7e06768..f0e1c69934bc 100644 --- a/canvas/source/cairo/exports.dxp +++ b/canvas/source/cairo/exports.dxp @@ -1,3 +1,2 @@ component_getImplementationEnvironment -component_writeInfo component_getFactory diff --git a/canvas/source/cairo/makefile.mk b/canvas/source/cairo/makefile.mk index b0ff10fe96b0..040acd9ade8f 100644 --- a/canvas/source/cairo/makefile.mk +++ b/canvas/source/cairo/makefile.mk @@ -130,3 +130,11 @@ DEF1EXPORTFILE=exports.dxp # ========================================================================== .INCLUDE : target.mk + +ALLTAR : $(MISC)/cairocanvas.component + +$(MISC)/cairocanvas.component .ERRREMOVE : \ + $(SOLARENV)/bin/createcomponent.xslt cairocanvas.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt cairocanvas.component diff --git a/canvas/source/directx/directx5canvas.component b/canvas/source/directx/directx5canvas.component new file mode 100644 index 000000000000..80133e724df6 --- /dev/null +++ b/canvas/source/directx/directx5canvas.component @@ -0,0 +1,34 @@ + + + + + + + + diff --git a/canvas/source/directx/directx9canvas.component b/canvas/source/directx/directx9canvas.component new file mode 100644 index 000000000000..0d395892d4cb --- /dev/null +++ b/canvas/source/directx/directx9canvas.component @@ -0,0 +1,34 @@ + + + + + + + + diff --git a/canvas/source/directx/exports.dxp b/canvas/source/directx/exports.dxp index 9630d7e06768..f0e1c69934bc 100644 --- a/canvas/source/directx/exports.dxp +++ b/canvas/source/directx/exports.dxp @@ -1,3 +1,2 @@ component_getImplementationEnvironment -component_writeInfo component_getFactory diff --git a/canvas/source/directx/gdipluscanvas.component b/canvas/source/directx/gdipluscanvas.component new file mode 100644 index 000000000000..e39e77444d59 --- /dev/null +++ b/canvas/source/directx/gdipluscanvas.component @@ -0,0 +1,37 @@ + + + + + + + + + + + diff --git a/canvas/source/directx/makefile.mk b/canvas/source/directx/makefile.mk index 4ccd5a8448b2..9547fef40cc7 100644 --- a/canvas/source/directx/makefile.mk +++ b/canvas/source/directx/makefile.mk @@ -217,3 +217,25 @@ SHL3STDLIBS += imdebug.lib .INCLUDE : target.mk +ALLTAR : \ + $(MISC)/directx5canvas.component \ + $(MISC)/directx9canvas.component \ + $(MISC)/gdipluscanvas.component + +$(MISC)/directx5canvas.component .ERRREMOVE : \ + $(SOLARENV)/bin/createcomponent.xslt directx5canvas.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt directx5canvas.component + +$(MISC)/directx9canvas.component .ERRREMOVE : \ + $(SOLARENV)/bin/createcomponent.xslt directx9canvas.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt directx9canvas.component + +$(MISC)/gdipluscanvas.component .ERRREMOVE : \ + $(SOLARENV)/bin/createcomponent.xslt gdipluscanvas.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL3TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt gdipluscanvas.component diff --git a/canvas/source/factory/canvasfactory.component b/canvas/source/factory/canvasfactory.component new file mode 100644 index 000000000000..3896f4197d2f --- /dev/null +++ b/canvas/source/factory/canvasfactory.component @@ -0,0 +1,34 @@ + + + + + + + + diff --git a/canvas/source/factory/cf_service.cxx b/canvas/source/factory/cf_service.cxx index f949016d9f83..f4bbb57e0e7d 100644 --- a/canvas/source/factory/cf_service.cxx +++ b/canvas/source/factory/cf_service.cxx @@ -532,14 +532,6 @@ void SAL_CALL component_getImplementationEnvironment( *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } -sal_Bool SAL_CALL component_writeInfo( - lang::XMultiServiceFactory * pServiceManager, - registry::XRegistryKey * pRegistryKey ) -{ - return ::cppu::component_writeInfoHelper( - pServiceManager, pRegistryKey, s_entries ); -} - void * SAL_CALL component_getFactory( sal_Char const * pImplName, lang::XMultiServiceFactory * pServiceManager, diff --git a/canvas/source/factory/makefile.mk b/canvas/source/factory/makefile.mk index fc6d423192d6..eee24ea8ba85 100644 --- a/canvas/source/factory/makefile.mk +++ b/canvas/source/factory/makefile.mk @@ -54,3 +54,10 @@ DEF1NAME = $(SHL1TARGET) .ENDIF .INCLUDE : target.mk +ALLTAR : $(MISC)/canvasfactory.component + +$(MISC)/canvasfactory.component .ERRREMOVE : \ + $(SOLARENV)/bin/createcomponent.xslt canvasfactory.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt canvasfactory.component diff --git a/canvas/source/null/exports.dxp b/canvas/source/null/exports.dxp index 9630d7e06768..f0e1c69934bc 100644 --- a/canvas/source/null/exports.dxp +++ b/canvas/source/null/exports.dxp @@ -1,3 +1,2 @@ component_getImplementationEnvironment -component_writeInfo component_getFactory diff --git a/canvas/source/simplecanvas/exports.dxp b/canvas/source/simplecanvas/exports.dxp index 0c2e3e7cddd7..0cb5620a1603 100644 --- a/canvas/source/simplecanvas/exports.dxp +++ b/canvas/source/simplecanvas/exports.dxp @@ -1,3 +1,2 @@ component_getImplementationEnvironment -component_writeInfo component_getFactory \ No newline at end of file diff --git a/canvas/source/simplecanvas/makefile.mk b/canvas/source/simplecanvas/makefile.mk index 4d5a7e7bb3a1..8c3a9deede72 100644 --- a/canvas/source/simplecanvas/makefile.mk +++ b/canvas/source/simplecanvas/makefile.mk @@ -61,3 +61,11 @@ DEF1EXPORTFILE=exports.dxp # ========================================================================== .INCLUDE : target.mk + +ALLTAR : $(MISC)/simplecanvas.component + +$(MISC)/simplecanvas.component .ERRREMOVE : \ + $(SOLARENV)/bin/createcomponent.xslt simplecanvas.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt simplecanvas.component diff --git a/canvas/source/simplecanvas/simplecanvas.component b/canvas/source/simplecanvas/simplecanvas.component new file mode 100644 index 000000000000..3a00b407375e --- /dev/null +++ b/canvas/source/simplecanvas/simplecanvas.component @@ -0,0 +1,34 @@ + + + + + + + + diff --git a/canvas/source/vcl/exports.dxp b/canvas/source/vcl/exports.dxp index 0c2e3e7cddd7..0cb5620a1603 100644 --- a/canvas/source/vcl/exports.dxp +++ b/canvas/source/vcl/exports.dxp @@ -1,3 +1,2 @@ component_getImplementationEnvironment -component_writeInfo component_getFactory \ No newline at end of file diff --git a/canvas/source/vcl/makefile.mk b/canvas/source/vcl/makefile.mk index be2fc69894a4..7d5f9658c829 100644 --- a/canvas/source/vcl/makefile.mk +++ b/canvas/source/vcl/makefile.mk @@ -83,3 +83,11 @@ DEF1EXPORTFILE=exports.dxp # ========================================================================== .INCLUDE : target.mk + +ALLTAR : $(MISC)/vclcanvas.component + +$(MISC)/vclcanvas.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + vclcanvas.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt vclcanvas.component diff --git a/canvas/source/vcl/vclcanvas.component b/canvas/source/vcl/vclcanvas.component new file mode 100644 index 000000000000..f7e0bb8c0266 --- /dev/null +++ b/canvas/source/vcl/vclcanvas.component @@ -0,0 +1,37 @@ + + + + + + + + + + + diff --git a/comphelper/inc/comphelper/componentmodule.hxx b/comphelper/inc/comphelper/componentmodule.hxx index 660a685d0fd3..61ddddebadbf 100644 --- a/comphelper/inc/comphelper/componentmodule.hxx +++ b/comphelper/inc/comphelper/componentmodule.hxx @@ -34,7 +34,6 @@ #include #include #include -#include /** === end UNO includes === **/ #include @@ -140,28 +139,6 @@ namespace comphelper */ void registerImplementation( const ComponentDescription& _rComp ); - /** write the registration information of all known components - - Writes the registration information of all components which are currently registered into the - specified registry. - - Usually used from within component_writeInfo. - - @param_rxServiceManager - the service manager - @param _rRootKey - the registry key under which the information will be stored - @return - if the registration of all implementations was successfull, otherwise - */ - sal_Bool writeComponentInfos( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceManager, - const ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey >& _rRootKey); - - /** version of writeComponentInfos which directly takes the arguments you got in your component_writeInfo call - */ - sal_Bool writeComponentInfos( void* pServiceManager, void* pRegistryKey ); - /** creates a Factory for the component with the given implementation name.

Usually used from within component_getFactory.

@param _rxServiceManager @@ -420,12 +397,6 @@ namespace comphelper { \ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; \ } \ - extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( \ - void* pServiceManager, void* pRegistryKey ) \ - { \ - initializer_function(); \ - return module_class::getInstance().writeComponentInfos( pServiceManager, pRegistryKey ); \ - } \ extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( \ const sal_Char* pImplementationName, void* pServiceManager, void* pRegistryKey ) \ { \ diff --git a/comphelper/inc/comphelper/servicedecl.hxx b/comphelper/inc/comphelper/servicedecl.hxx index 5d11d41831f5..adf120b3bae2 100644 --- a/comphelper/inc/comphelper/servicedecl.hxx +++ b/comphelper/inc/comphelper/servicedecl.hxx @@ -134,8 +134,6 @@ public: m_pServiceNames(pSupportedServiceNames), m_cDelim(cDelim) {} - /// @internal gets called by component_writeInfoHelper() - bool writeInfo( ::com::sun::star::registry::XRegistryKey * xKey ) const; /// @internal gets called by component_getFactoryHelper() void * getFactory( sal_Char const* pImplName ) const; @@ -323,9 +321,6 @@ struct class_ : public serviceimpl_base< detail::ServiceImpl, WithArgsT // component_... helpers with arbitrary service declarations: // -#define COMPHELPER_SERVICEDECL_writeInfo(z_, n_, unused_) \ - bRet &= BOOST_PP_CAT(s, n_).writeInfo( xRegistryKey ); - #define COMPHELPER_SERVICEDECL_getFactory(z_, n_, unused_) \ if (pRet == 0) \ pRet = BOOST_PP_CAT(s, n_).getFactory(pImplName); @@ -333,11 +328,6 @@ struct class_ : public serviceimpl_base< detail::ServiceImpl, WithArgsT /** The following preprocessor repetitions generate functions like

-        inline sal_Bool component_writeInfoHelper(
-            ::com::sun::star::lang::XMultiServiceFactory *,
-            ::com::sun::star::registry::XRegistryKey * xRegistryKey,
-            ServiceDecl const& s0, ServiceDecl const& s1, ... );
-
         inline void * component_getFactoryHelper(
             sal_Char const* pImplName,
             ::com::sun::star::lang::XMultiServiceFactory *,
@@ -351,15 +341,6 @@ struct class_ : public serviceimpl_base< detail::ServiceImpl, WithArgsT
     COMPHELPER_SERVICEDECL_COMPONENT_HELPER_MAX_ARGS; its default is 8.
 */
 #define COMPHELPER_SERVICEDECL_make(z_, n_, unused_) \
-inline sal_Bool component_writeInfoHelper( \
-    ::com::sun::star::lang::XMultiServiceFactory *, \
-    ::com::sun::star::registry::XRegistryKey * xRegistryKey, \
-    BOOST_PP_ENUM_PARAMS(n_, ServiceDecl const& s) ) \
-{ \
-    bool bRet = true; \
-    BOOST_PP_REPEAT(n_, COMPHELPER_SERVICEDECL_writeInfo, ~) \
-    return bRet; \
-} \
 inline void * component_getFactoryHelper( \
     sal_Char const* pImplName, \
     ::com::sun::star::lang::XMultiServiceFactory *, \
@@ -381,7 +362,6 @@ BOOST_PP_REPEAT_FROM_TO(1, COMPHELPER_SERVICEDECL_COMPONENT_HELPER_MAX_ARGS,
 #undef COMPHELPER_SERVICEDECL_COMPONENT_HELPER_MAX_ARGS
 #undef COMPHELPER_SERVICEDECL_make
 #undef COMPHELPER_SERVICEDECL_getFactory
-#undef COMPHELPER_SERVICEDECL_writeInfo
 
 } // namespace service_decl
 } // namespace comphelper
@@ -420,13 +400,6 @@ extern "C" \
     { \
         *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; \
     } \
- \
-    SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory*    pServiceManager, \
-                                           ::com::sun::star::registry::XRegistryKey*        pRegistryKey ) \
-    { \
-        return component_writeInfoHelper( pServiceManager, pRegistryKey, \
-                                          BOOST_PP_SEQ_ENUM(varargs_) ); \
-    } \
  \
     SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( sal_Char const*                                pImplName, \
                                          ::com::sun::star::lang::XMultiServiceFactory*  pServiceManager, \
diff --git a/comphelper/prj/d.lst b/comphelper/prj/d.lst
index f4d09c54ba70..f05fcf0926dd 100644
--- a/comphelper/prj/d.lst
+++ b/comphelper/prj/d.lst
@@ -12,3 +12,4 @@ mkdir: %_DEST%\inc%_EXT%\comphelper
 mkdir: %_DEST%\inc%_EXT%\cppuhelper
 ..\inc\comphelper\extract.hxx %_DEST%\inc%_EXT%\cppuhelper\extract.hxx
 ..\version.mk  %_DEST%\inc%_EXT%\comphelper\version.mk
+..\%__SRC%\misc\comphelp4.component %_DEST%\xml%_EXT%\comphelp4.component
diff --git a/comphelper/source/misc/componentmodule.cxx b/comphelper/source/misc/componentmodule.cxx
index 63893d0f6d0d..1dfd99bfa07e 100644
--- a/comphelper/source/misc/componentmodule.cxx
+++ b/comphelper/source/misc/componentmodule.cxx
@@ -134,64 +134,6 @@ namespace comphelper
         registerImplementation( aComponent );
     }
 
-    //--------------------------------------------------------------------------
-    sal_Bool OModule::writeComponentInfos( void* pServiceManager, void* pRegistryKey )
-    {
-        Reference< XMultiServiceFactory > xFactory( static_cast< XMultiServiceFactory* >( pServiceManager ) );
-        Reference< XRegistryKey > xRegistryKey( static_cast< XRegistryKey* >( pRegistryKey ) );
-        return writeComponentInfos( xFactory, xRegistryKey );
-    }
-
-    //--------------------------------------------------------------------------
-    sal_Bool OModule::writeComponentInfos(
-            const Reference< XMultiServiceFactory >& /*_rxServiceManager*/,
-            const Reference< XRegistryKey >& _rxRootKey )
-    {
-        OSL_ENSURE( _rxRootKey.is(), "OModule::writeComponentInfos: invalid argument!" );
-
-        ::rtl::OUString sRootKey( "/", 1, RTL_TEXTENCODING_ASCII_US );
-
-        for (   ComponentDescriptions::const_iterator component = m_pImpl->m_aRegisteredComponents.begin();
-                component != m_pImpl->m_aRegisteredComponents.end();
-                ++component
-            )
-        {
-            ::rtl::OUString sMainKeyName( sRootKey );
-            sMainKeyName += component->sImplementationName;
-            sMainKeyName += ::rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
-            try
-            {
-                Reference< XRegistryKey >  xNewKey( _rxRootKey->createKey( sMainKeyName ) );
-
-                const ::rtl::OUString* pService = component->aSupportedServices.getConstArray();
-                const ::rtl::OUString* pServiceEnd = component->aSupportedServices.getConstArray() + component->aSupportedServices.getLength();
-                for ( ; pService != pServiceEnd; ++pService )
-                    xNewKey->createKey( *pService );
-
-                if ( component->sSingletonName.getLength() )
-                {
-                    OSL_ENSURE( component->aSupportedServices.getLength() == 1, "OModule::writeComponentInfos: singletons should support exactly one service, shouldn't they?" );
-
-                    ::rtl::OUString sSingletonKeyName( sRootKey );
-                    sSingletonKeyName += component->sImplementationName;
-                    sSingletonKeyName += ::rtl::OUString::createFromAscii( "/UNO/SINGLETONS/" );
-                    sSingletonKeyName += component->sSingletonName;
-
-                    xNewKey = _rxRootKey->createKey( sSingletonKeyName );
-                    xNewKey->setStringValue( component->aSupportedServices[ 0 ] );
-                }
-            }
-            catch( Exception& )
-            {
-                OSL_ASSERT( "OModule::writeComponentInfos: something went wrong while creating the keys!" );
-                return sal_False;
-            }
-        }
-
-        return sal_True;
-    }
-
     //--------------------------------------------------------------------------
     void* OModule::getComponentFactory( const sal_Char* _pImplementationName, void* _pServiceManager, void* /*_pRegistryKey*/ )
     {
diff --git a/comphelper/source/misc/servicedecl.cxx b/comphelper/source/misc/servicedecl.cxx
index 7c3dd169485d..7986407b0bd5 100644
--- a/comphelper/source/misc/servicedecl.cxx
+++ b/comphelper/source/misc/servicedecl.cxx
@@ -116,37 +116,6 @@ ServiceDecl::Factory::createInstanceWithArgumentsAndContext(
         m_rServiceDecl, args, xContext );
 }
 
-bool ServiceDecl::writeInfo( registry::XRegistryKey * xKey ) const
-{
-    bool bRet = false;
-    if (xKey != 0) {
-        rtl::OUStringBuffer buf;
-        buf.append( static_cast('/') );
-        buf.appendAscii( m_pImplName );
-        buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("/UNO/SERVICES") );
-        try {
-            uno::Reference const xNewKey(
-                xKey->createKey( buf.makeStringAndClear() ) );
-
-            rtl::OString const str(m_pServiceNames);
-            sal_Int32 nIndex = 0;
-            do {
-                rtl::OString const token( str.getToken( 0, m_cDelim, nIndex ) );
-                xNewKey->createKey(
-                    rtl::OUString( token.getStr(), token.getLength(),
-                                   RTL_TEXTENCODING_ASCII_US ) );
-            }
-            while (nIndex >= 0);
-
-            bRet = true;
-        }
-        catch (registry::InvalidRegistryException const&) {
-            OSL_ENSURE( false, "### InvalidRegistryException!" );
-        }
-    }
-    return bRet;
-}
-
 void * ServiceDecl::getFactory( sal_Char const* pImplName ) const
 {
     if (rtl_str_compare(m_pImplName, pImplName) == 0) {
diff --git a/comphelper/util/comphelp4.component b/comphelper/util/comphelp4.component
new file mode 100644
index 000000000000..10d23d48bcea
--- /dev/null
+++ b/comphelper/util/comphelp4.component
@@ -0,0 +1,70 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+  
+
diff --git a/comphelper/util/exports.dxp b/comphelper/util/exports.dxp
index 0c2e3e7cddd7..0cb5620a1603 100644
--- a/comphelper/util/exports.dxp
+++ b/comphelper/util/exports.dxp
@@ -1,3 +1,2 @@
 component_getImplementationEnvironment
-component_writeInfo
 component_getFactory
\ No newline at end of file
diff --git a/comphelper/util/makefile.mk b/comphelper/util/makefile.mk
index ae391e92abf7..62e66672a1cb 100644
--- a/comphelper/util/makefile.mk
+++ b/comphelper/util/makefile.mk
@@ -68,3 +68,11 @@ DEFLIB1NAME=$(TARGET)
 # --- Targets ----------------------------------
 
 .INCLUDE : target.mk
+
+ALLTAR : $(MISC)/comphelp4.component
+
+$(MISC)/comphelp4.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        comphelp4.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt comphelp4.component
diff --git a/dtrans/prj/d.lst b/dtrans/prj/d.lst
index a1a7c2e95480..955aa075f24b 100644
--- a/dtrans/prj/d.lst
+++ b/dtrans/prj/d.lst
@@ -7,3 +7,8 @@
 ..\source\win32\ftransl\ftransl.xml %_DEST%\xml%_EXT%\ftransl.xml
 ..\source\cnttype\mcnttype.xml %_DEST%\xml%_EXT%\mcnttype.xml
 ..\source\generic\dtrans.xml %_DEST%\xml%_EXT%\dtrans.xml
+..\%__SRC%\misc\dnd.component %_DEST%\xml%_EXT%\dnd.component
+..\%__SRC%\misc\dtrans.component %_DEST%\xml%_EXT%\dtrans.component
+..\%__SRC%\misc\ftransl.component %_DEST%\xml%_EXT%\ftransl.component
+..\%__SRC%\misc\mcnttype.component %_DEST%\xml%_EXT%\mcnttype.component
+..\%__SRC%\misc\sysdtrans.component %_DEST%\xml%_EXT%\sysdtrans.component
diff --git a/dtrans/source/cnttype/exports.dxp b/dtrans/source/cnttype/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/dtrans/source/cnttype/exports.dxp
+++ b/dtrans/source/cnttype/exports.dxp
@@ -1,3 +1,2 @@
 component_getImplementationEnvironment
-component_writeInfo	
 component_getFactory
diff --git a/dtrans/source/cnttype/mctfentry.cxx b/dtrans/source/cnttype/mctfentry.cxx
index 095c9ed186ce..3d2e41201887 100644
--- a/dtrans/source/cnttype/mctfentry.cxx
+++ b/dtrans/source/cnttype/mctfentry.cxx
@@ -99,35 +99,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-//-------------------------------------------------------------------------
-// component_writeInfo - to register a UNO-Service
-// to register a UNO-Service use: regcomp -register -r *.rdb -c *.dll
-// to view the registry use: regview *.rdb /SERVICES/ServiceName
-// (you must use the full services name e.g. com.sun.star.frame.FilePicker
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
-    sal_Bool bRetVal = sal_False;
-
-    if ( pRegistryKey )
-    {
-        try
-        {
-            Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
-            pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( MIMECONTENTTYPEFACTORY_REGKEY_NAME ) ) );
-            bRetVal = sal_True;
-        }
-        catch( InvalidRegistryException& )
-        {
-            OSL_ENSURE(sal_False, "InvalidRegistryException caught");
-            bRetVal = sal_False;
-        }
-    }
-
-    return bRetVal;
-}
-
 //----------------------------------------------------------------------
 // component_getFactory
 // returns a factory to create XFilePicker-Services
diff --git a/dtrans/source/generic/dtrans.component b/dtrans/source/generic/dtrans.component
new file mode 100644
index 000000000000..69034f716907
--- /dev/null
+++ b/dtrans/source/generic/dtrans.component
@@ -0,0 +1,37 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+
diff --git a/dtrans/source/generic/dtrans.cxx b/dtrans/source/generic/dtrans.cxx
index 1e69158a6a12..4b39298f97c2 100644
--- a/dtrans/source/generic/dtrans.cxx
+++ b/dtrans/source/generic/dtrans.cxx
@@ -52,43 +52,6 @@ void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvType
 
 //==================================================================================================
 
-sal_Bool SAL_CALL component_writeInfo(void * /*pServiceManager*/, void * pRegistryKey )
-{
-    if (pRegistryKey)
-    {
-        try
-        {
-            Reference< XRegistryKey > xNewKey(
-                reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
-                    OUString::createFromAscii("/" CLIPBOARDMANAGER_IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
-
-            const Sequence< OUString > & rSNL = ClipboardManager_getSupportedServiceNames();
-            const OUString * pArray = rSNL.getConstArray();
-            sal_Int32 nPos;
-            for ( nPos = rSNL.getLength(); nPos--; )
-                xNewKey->createKey( pArray[nPos] );
-
-            xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
-                OUString::createFromAscii("/" GENERIC_CLIPBOARD_IMPLEMENTATION_NAME "/UNO/SERVICES" ) );
-
-            const Sequence< OUString > & rSNL2 = GenericClipboard_getSupportedServiceNames();
-            pArray = rSNL2.getConstArray();
-            for ( nPos = rSNL2.getLength(); nPos--; )
-                xNewKey->createKey( pArray[nPos] );
-
-            return sal_True;
-        }
-        catch (InvalidRegistryException &)
-        {
-            OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
-        }
-    }
-
-    return sal_False;
-}
-
-//==================================================================================================
-
 void * SAL_CALL component_getFactory(
     const sal_Char * pImplName,
     void * pServiceManager,
diff --git a/dtrans/source/generic/exports.dxp b/dtrans/source/generic/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/dtrans/source/generic/exports.dxp
+++ b/dtrans/source/generic/exports.dxp
@@ -1,3 +1,2 @@
 component_getImplementationEnvironment
-component_writeInfo
 component_getFactory
diff --git a/dtrans/source/generic/makefile.mk b/dtrans/source/generic/makefile.mk
index e015400c32d9..2518b86a2d92 100644
--- a/dtrans/source/generic/makefile.mk
+++ b/dtrans/source/generic/makefile.mk
@@ -65,3 +65,11 @@ DEF1EXPORTFILE=	exports.dxp
 .ENDIF # L10N_framework
 
 .INCLUDE :	target.mk
+
+ALLTAR : $(MISC)/dtrans.component
+
+$(MISC)/dtrans.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        dtrans.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt dtrans.component
diff --git a/dtrans/source/os2/clipb/Os2Service.cxx b/dtrans/source/os2/clipb/Os2Service.cxx
index cc3e1e9a9b94..0c3e299f0299 100644
--- a/dtrans/source/os2/clipb/Os2Service.cxx
+++ b/dtrans/source/os2/clipb/Os2Service.cxx
@@ -56,28 +56,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-sal_Bool SAL_CALL component_writeInfo( void* pServiceManager, void* pRegistryKey )
-{
-    sal_Bool bRetVal = sal_False;
-
-    if ( pRegistryKey )
-    {
-        try
-        {
-            Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
-            pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( OS2_CLIPBOARD_REGKEY_NAME ) ) );
-            bRetVal = sal_True;
-        }
-        catch( InvalidRegistryException& )
-        {
-            OSL_ENSURE(sal_False, "InvalidRegistryException caught");
-            bRetVal = sal_False;
-        }
-    }
-
-    return bRetVal;
-}
-
 void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* pRegistryKey )
 {
     void* pRet = 0;
diff --git a/dtrans/source/os2/clipb/exports.dxp b/dtrans/source/os2/clipb/exports.dxp
index f72beb0fcb31..926e49f5f1a5 100644
--- a/dtrans/source/os2/clipb/exports.dxp
+++ b/dtrans/source/os2/clipb/exports.dxp
@@ -1,4 +1,3 @@
 component_getImplementationEnvironment
-component_writeInfo	
 component_getFactory
 
diff --git a/dtrans/source/win32/clipb/exports.dxp b/dtrans/source/win32/clipb/exports.dxp
index f72beb0fcb31..926e49f5f1a5 100644
--- a/dtrans/source/win32/clipb/exports.dxp
+++ b/dtrans/source/win32/clipb/exports.dxp
@@ -1,4 +1,3 @@
 component_getImplementationEnvironment
-component_writeInfo	
 component_getFactory
 
diff --git a/dtrans/source/win32/clipb/wcbentry.cxx b/dtrans/source/win32/clipb/wcbentry.cxx
index 986e7b4c4db7..653d97194efc 100644
--- a/dtrans/source/win32/clipb/wcbentry.cxx
+++ b/dtrans/source/win32/clipb/wcbentry.cxx
@@ -97,35 +97,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-//-------------------------------------------------------------------------
-// component_writeInfo - to register a UNO-Service
-// to register a UNO-Service use: regcomp -register -r *.rdb -c *.dll
-// to view the registry use: regview *.rdb /SERVICES/ServiceName
-// (you must use the full services name e.g. com.sun.star.frame.FilePicker
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
-    sal_Bool bRetVal = sal_False;
-
-    if ( pRegistryKey )
-    {
-        try
-        {
-            Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
-            pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( WINCLIPBOARD_REGKEY_NAME ) ) );
-            bRetVal = sal_True;
-        }
-        catch( InvalidRegistryException& )
-        {
-            OSL_ENSURE(sal_False, "InvalidRegistryException caught");
-            bRetVal = sal_False;
-        }
-    }
-
-    return bRetVal;
-}
-
 //----------------------------------------------------------------------
 // component_getFactory
 // returns a factory to create XFilePicker-Services
diff --git a/dtrans/source/win32/dnd/dndentry.cxx b/dtrans/source/win32/dnd/dndentry.cxx
index 2ea9b7746def..d37fa07ba3bd 100644
--- a/dtrans/source/win32/dnd/dndentry.cxx
+++ b/dtrans/source/win32/dnd/dndentry.cxx
@@ -72,39 +72,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-//-------------------------------------------------------------------------
-// component_writeInfo - to register a UNO-Service
-// to register a UNO-Service use: regcomp -register -r *.rdb -c *.dll
-// to view the registry use: regview *.rdb /SERVICES/ServiceName
-// (you must use the full services name e.g. com.sun.star.frame.FilePicker
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
-    sal_Bool bRetVal = sal_False;
-
-    if ( pRegistryKey )
-    {
-        try
-        {
-            Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
-            pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( DNDSOURCE_REGKEY_NAME ) ) );
-            bRetVal = sal_True;
-
-            pXNewKey=  static_cast< XRegistryKey* >( pRegistryKey );
-            pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( DNDTARGET_REGKEY_NAME ) ) );
-            bRetVal = sal_True;
-        }
-        catch( InvalidRegistryException& )
-        {
-            OSL_ENSURE(sal_False, "InvalidRegistryException caught");
-            bRetVal = sal_False;
-        }
-    }
-
-    return bRetVal;
-}
-
 //----------------------------------------------------------------------
 // component_getFactory
 // returns a factory to create XFilePicker-Services
diff --git a/dtrans/source/win32/dnd/exports.dxp b/dtrans/source/win32/dnd/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/dtrans/source/win32/dnd/exports.dxp
+++ b/dtrans/source/win32/dnd/exports.dxp
@@ -1,3 +1,2 @@
 component_getImplementationEnvironment
-component_writeInfo	
 component_getFactory
diff --git a/dtrans/source/win32/ftransl/exports.dxp b/dtrans/source/win32/ftransl/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/dtrans/source/win32/ftransl/exports.dxp
+++ b/dtrans/source/win32/ftransl/exports.dxp
@@ -1,3 +1,2 @@
 component_getImplementationEnvironment
-component_writeInfo	
 component_getFactory
diff --git a/dtrans/source/win32/ftransl/ftranslentry.cxx b/dtrans/source/win32/ftransl/ftranslentry.cxx
index 01d1521b15bc..abdd27ffcdae 100644
--- a/dtrans/source/win32/ftransl/ftranslentry.cxx
+++ b/dtrans/source/win32/ftransl/ftranslentry.cxx
@@ -102,35 +102,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-//-------------------------------------------------------------------------
-// component_writeInfo - to register a UNO-Service
-// to register a UNO-Service use: regcomp -register -r *.rdb -c *.dll
-// to view the registry use: regview *.rdb /SERVICES/ServiceName
-// (you must use the full services name e.g. com.sun.star.frame.FilePicker
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
-    sal_Bool bRetVal = sal_False;
-
-    if ( pRegistryKey )
-    {
-        try
-        {
-            Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
-            pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( REGKEY_NAME ) ) );
-            bRetVal = sal_True;
-        }
-        catch( InvalidRegistryException& )
-        {
-            OSL_ENSURE(sal_False, "InvalidRegistryException caught");
-            bRetVal = sal_False;
-        }
-    }
-
-    return bRetVal;
-}
-
 //----------------------------------------------------------------------
 // component_getFactory
 // returns a factory to create XFilePicker-Services
diff --git a/dtrans/util/dnd.component b/dtrans/util/dnd.component
new file mode 100644
index 000000000000..b56fe326f04f
--- /dev/null
+++ b/dtrans/util/dnd.component
@@ -0,0 +1,37 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+
diff --git a/dtrans/util/exports.dxp b/dtrans/util/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/dtrans/util/exports.dxp
+++ b/dtrans/util/exports.dxp
@@ -1,3 +1,2 @@
 component_getImplementationEnvironment
-component_writeInfo	
 component_getFactory
diff --git a/dtrans/util/ftransl.component b/dtrans/util/ftransl.component
new file mode 100644
index 000000000000..dad7d341cce7
--- /dev/null
+++ b/dtrans/util/ftransl.component
@@ -0,0 +1,34 @@
+
+
+
+
+  
+    
+  
+
diff --git a/dtrans/util/makefile.mk b/dtrans/util/makefile.mk
index 0443c131ccb6..8df69bbf1d36 100644
--- a/dtrans/util/makefile.mk
+++ b/dtrans/util/makefile.mk
@@ -180,3 +180,32 @@ DEF3EXPORTFILE=	exports.dxp
 
 .INCLUDE :  target.mk
 
+ALLTAR : \
+    $(MISC)/dnd.component \
+    $(MISC)/ftransl.component \
+    $(MISC)/mcnttype.component \
+    $(MISC)/sysdtrans.component
+
+$(MISC)/dnd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        dnd.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL4TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt dnd.component
+
+$(MISC)/ftransl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        ftransl.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt ftransl.component
+
+$(MISC)/mcnttype.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        mcnttype.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt mcnttype.component
+
+$(MISC)/sysdtrans.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        sysdtrans.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL3TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt sysdtrans.component
diff --git a/dtrans/util/mcnttype.component b/dtrans/util/mcnttype.component
new file mode 100644
index 000000000000..f5a937a7a77a
--- /dev/null
+++ b/dtrans/util/mcnttype.component
@@ -0,0 +1,34 @@
+
+
+
+
+  
+    
+  
+
diff --git a/dtrans/util/sysdtrans.component b/dtrans/util/sysdtrans.component
new file mode 100644
index 000000000000..ec1807000b3f
--- /dev/null
+++ b/dtrans/util/sysdtrans.component
@@ -0,0 +1,34 @@
+
+
+
+
+  
+    
+  
+
diff --git a/i18npool/prj/d.lst b/i18npool/prj/d.lst
index 54aefa732b89..8d27137424a9 100644
--- a/i18npool/prj/d.lst
+++ b/i18npool/prj/d.lst
@@ -46,3 +46,5 @@ mkdir: %_DEST%\inc%_EXT%\i18npool
 ..\%__SRC%\lib\libi18npaper*.so %_DEST%\lib%_EXT%\libi18npaper*.so
 ..\%__SRC%\lib\libi18npaper*.dylib %_DEST%\lib%_EXT%\libi18npaper*.dylib
 
+..\%__SRC%\misc\i18npool.component %_DEST%\xml%_EXT%\i18npool.component
+..\%__SRC%\misc\i18nsearch.component %_DEST%\xml%_EXT%\i18nsearch.component
diff --git a/i18npool/source/localedata/data/makefile.mk b/i18npool/source/localedata/data/makefile.mk
old mode 100644
new mode 100755
index 1ac16a31fe37..20c851edecc9
--- a/i18npool/source/localedata/data/makefile.mk
+++ b/i18npool/source/localedata/data/makefile.mk
@@ -39,6 +39,14 @@ LIBTARGET=NO
 debug!=
 .ENDIF
 
+.IF "$(OS)" == "WNT"
+my_file = file:///
+.ELSE
+my_file = file://
+.END
+
+my_components = sax.inbuild
+
 # --- Settings -----------------------------------------------------
 
 .INCLUDE :  settings.mk
@@ -62,190 +70,6 @@ LINK_LOCALEDATA_ES_LIB=-l$(SHL2TARGET)
 
 # --- Files --------------------------------------------------------
 
-# Interim files generated by the saxparser executable, for dependencies
-MY_MISC_CXXFILES = \
-    $(MISC)$/localedata_af_NA.cxx  \
-    $(MISC)$/localedata_af_ZA.cxx  \
-    $(MISC)$/localedata_ak_GH.cxx  \
-    $(MISC)$/localedata_am_ET.cxx  \
-    $(MISC)$/localedata_ar_DZ.cxx  \
-    $(MISC)$/localedata_ar_EG.cxx  \
-    $(MISC)$/localedata_ar_LB.cxx  \
-    $(MISC)$/localedata_ar_SA.cxx  \
-    $(MISC)$/localedata_ar_TN.cxx  \
-    $(MISC)$/localedata_ast_ES.cxx  \
-    $(MISC)$/localedata_az_AZ.cxx  \
-    $(MISC)$/localedata_be_BY.cxx  \
-    $(MISC)$/localedata_bg_BG.cxx  \
-    $(MISC)$/localedata_bn_IN.cxx  \
-    $(MISC)$/localedata_bn_BD.cxx  \
-    $(MISC)$/localedata_br_FR.cxx  \
-    $(MISC)$/localedata_bs_BA.cxx  \
-    $(MISC)$/localedata_ca_ES.cxx  \
-    $(MISC)$/localedata_cs_CZ.cxx  \
-    $(MISC)$/localedata_cv_RU.cxx  \
-    $(MISC)$/localedata_cy_GB.cxx  \
-    $(MISC)$/localedata_da_DK.cxx  \
-    $(MISC)$/localedata_de_AT.cxx  \
-    $(MISC)$/localedata_de_CH.cxx  \
-    $(MISC)$/localedata_de_DE.cxx  \
-    $(MISC)$/localedata_de_LI.cxx  \
-    $(MISC)$/localedata_de_LU.cxx  \
-    $(MISC)$/localedata_dz_BT.cxx  \
-    $(MISC)$/localedata_ee_GH.cxx  \
-    $(MISC)$/localedata_el_GR.cxx  \
-    $(MISC)$/localedata_en_AU.cxx  \
-    $(MISC)$/localedata_en_BZ.cxx  \
-    $(MISC)$/localedata_en_CA.cxx  \
-    $(MISC)$/localedata_en_GB.cxx  \
-    $(MISC)$/localedata_en_GH.cxx  \
-    $(MISC)$/localedata_en_IE.cxx  \
-    $(MISC)$/localedata_en_IN.cxx  \
-    $(MISC)$/localedata_en_JM.cxx  \
-    $(MISC)$/localedata_en_NA.cxx  \
-    $(MISC)$/localedata_en_NZ.cxx  \
-    $(MISC)$/localedata_en_PH.cxx  \
-    $(MISC)$/localedata_en_TT.cxx  \
-    $(MISC)$/localedata_en_US.cxx  \
-    $(MISC)$/localedata_en_ZA.cxx  \
-    $(MISC)$/localedata_en_ZW.cxx  \
-    $(MISC)$/localedata_eo.cxx     \
-    $(MISC)$/localedata_es_AR.cxx  \
-    $(MISC)$/localedata_es_BO.cxx  \
-    $(MISC)$/localedata_es_CL.cxx  \
-    $(MISC)$/localedata_es_CO.cxx  \
-    $(MISC)$/localedata_es_CR.cxx  \
-    $(MISC)$/localedata_es_DO.cxx  \
-    $(MISC)$/localedata_es_EC.cxx  \
-    $(MISC)$/localedata_es_ES.cxx  \
-    $(MISC)$/localedata_es_GT.cxx  \
-    $(MISC)$/localedata_es_HN.cxx  \
-    $(MISC)$/localedata_es_MX.cxx  \
-    $(MISC)$/localedata_es_NI.cxx  \
-    $(MISC)$/localedata_es_PA.cxx  \
-    $(MISC)$/localedata_es_PE.cxx  \
-    $(MISC)$/localedata_es_PR.cxx  \
-    $(MISC)$/localedata_es_PY.cxx  \
-    $(MISC)$/localedata_es_SV.cxx  \
-    $(MISC)$/localedata_es_UY.cxx  \
-    $(MISC)$/localedata_es_VE.cxx  \
-    $(MISC)$/localedata_et_EE.cxx  \
-    $(MISC)$/localedata_eu.cxx     \
-    $(MISC)$/localedata_fa_IR.cxx  \
-    $(MISC)$/localedata_fi_FI.cxx  \
-    $(MISC)$/localedata_fo_FO.cxx  \
-    $(MISC)$/localedata_fr_BE.cxx  \
-    $(MISC)$/localedata_fr_CA.cxx  \
-    $(MISC)$/localedata_fr_CH.cxx  \
-    $(MISC)$/localedata_fr_FR.cxx  \
-    $(MISC)$/localedata_fr_LU.cxx  \
-    $(MISC)$/localedata_fr_MC.cxx  \
-    $(MISC)$/localedata_fur_IT.cxx  \
-    $(MISC)$/localedata_fy_NL.cxx  \
-    $(MISC)$/localedata_ga_IE.cxx  \
-    $(MISC)$/localedata_gl_ES.cxx  \
-    $(MISC)$/localedata_gsc_FR.cxx \
-    $(MISC)$/localedata_gu_IN.cxx  \
-    $(MISC)$/localedata_gug_PY.cxx  \
-    $(MISC)$/localedata_ha_GH.cxx  \
-    $(MISC)$/localedata_he_IL.cxx  \
-    $(MISC)$/localedata_hi_IN.cxx  \
-    $(MISC)$/localedata_hil_PH.cxx  \
-    $(MISC)$/localedata_hr_HR.cxx  \
-    $(MISC)$/localedata_hsb_DE.cxx  \
-    $(MISC)$/localedata_hu_HU.cxx  \
-    $(MISC)$/localedata_hy_AM.cxx  \
-    $(MISC)$/localedata_ia.cxx     \
-    $(MISC)$/localedata_id_ID.cxx  \
-    $(MISC)$/localedata_is_IS.cxx  \
-    $(MISC)$/localedata_it_CH.cxx  \
-    $(MISC)$/localedata_it_IT.cxx  \
-    $(MISC)$/localedata_ja_JP.cxx  \
-    $(MISC)$/localedata_ka_GE.cxx  \
-    $(MISC)$/localedata_kk_KZ.cxx  \
-    $(MISC)$/localedata_kl_GL.cxx  \
-    $(MISC)$/localedata_km_KH.cxx  \
-    $(MISC)$/localedata_kn_IN.cxx  \
-    $(MISC)$/localedata_ko_KR.cxx  \
-    $(MISC)$/localedata_ku_TR.cxx  \
-    $(MISC)$/localedata_ky_KG.cxx  \
-    $(MISC)$/localedata_la_VA.cxx  \
-    $(MISC)$/localedata_lb_LU.cxx  \
-    $(MISC)$/localedata_lg_UG.cxx  \
-    $(MISC)$/localedata_ln_CD.cxx  \
-    $(MISC)$/localedata_lo_LA.cxx  \
-    $(MISC)$/localedata_lt_LT.cxx  \
-    $(MISC)$/localedata_ltg_LV.cxx  \
-    $(MISC)$/localedata_lv_LV.cxx  \
-    $(MISC)$/localedata_mai_IN.cxx \
-    $(MISC)$/localedata_mk_MK.cxx  \
-    $(MISC)$/localedata_ml_IN.cxx  \
-    $(MISC)$/localedata_mn_MN.cxx  \
-    $(MISC)$/localedata_mr_IN.cxx  \
-    $(MISC)$/localedata_ms_MY.cxx  \
-    $(MISC)$/localedata_mt_MT.cxx  \
-    $(MISC)$/localedata_my_MM.cxx  \
-    $(MISC)$/localedata_nb_NO.cxx  \
-    $(MISC)$/localedata_ne_NP.cxx  \
-    $(MISC)$/localedata_nl_BE.cxx  \
-    $(MISC)$/localedata_nl_NL.cxx  \
-    $(MISC)$/localedata_nn_NO.cxx  \
-    $(MISC)$/localedata_no_NO.cxx  \
-    $(MISC)$/localedata_nr_ZA.cxx  \
-    $(MISC)$/localedata_nso_ZA.cxx \
-    $(MISC)$/localedata_oc_FR.cxx  \
-    $(MISC)$/localedata_om_ET.cxx  \
-    $(MISC)$/localedata_or_IN.cxx  \
-    $(MISC)$/localedata_pa_IN.cxx  \
-    $(MISC)$/localedata_pl_PL.cxx  \
-    $(MISC)$/localedata_plt_MG.cxx  \
-    $(MISC)$/localedata_pt_BR.cxx  \
-    $(MISC)$/localedata_pt_PT.cxx  \
-    $(MISC)$/localedata_ro_RO.cxx  \
-    $(MISC)$/localedata_rue_SK.cxx  \
-    $(MISC)$/localedata_ru_RU.cxx  \
-    $(MISC)$/localedata_rw_RW.cxx  \
-    $(MISC)$/localedata_sg_CF.cxx  \
-    $(MISC)$/localedata_sh_ME.cxx  \
-    $(MISC)$/localedata_sh_RS.cxx  \
-    $(MISC)$/localedata_sh_YU.cxx  \
-    $(MISC)$/localedata_shs_CA.cxx  \
-    $(MISC)$/localedata_sk_SK.cxx  \
-    $(MISC)$/localedata_sl_SI.cxx  \
-    $(MISC)$/localedata_so_SO.cxx  \
-    $(MISC)$/localedata_sr_ME.cxx  \
-    $(MISC)$/localedata_sr_RS.cxx  \
-    $(MISC)$/localedata_sr_YU.cxx  \
-    $(MISC)$/localedata_ss_ZA.cxx  \
-    $(MISC)$/localedata_st_ZA.cxx  \
-    $(MISC)$/localedata_sv_FI.cxx  \
-    $(MISC)$/localedata_sv_SE.cxx  \
-    $(MISC)$/localedata_sw_TZ.cxx  \
-    $(MISC)$/localedata_ta_IN.cxx  \
-    $(MISC)$/localedata_te_IN.cxx  \
-    $(MISC)$/localedata_tg_TJ.cxx  \
-    $(MISC)$/localedata_th_TH.cxx  \
-    $(MISC)$/localedata_ti_ER.cxx  \
-    $(MISC)$/localedata_tk_TM.cxx  \
-    $(MISC)$/localedata_tn_ZA.cxx  \
-    $(MISC)$/localedata_tpi_PG.cxx  \
-    $(MISC)$/localedata_tr_TR.cxx  \
-    $(MISC)$/localedata_ts_ZA.cxx  \
-    $(MISC)$/localedata_ug_CN.cxx  \
-    $(MISC)$/localedata_uk_UA.cxx  \
-    $(MISC)$/localedata_uz_UZ.cxx  \
-    $(MISC)$/localedata_ve_ZA.cxx  \
-    $(MISC)$/localedata_vi_VN.cxx  \
-    $(MISC)$/localedata_wa_BE.cxx  \
-    $(MISC)$/localedata_xh_ZA.cxx  \
-    $(MISC)$/localedata_zh_CN.cxx  \
-    $(MISC)$/localedata_zh_HK.cxx  \
-    $(MISC)$/localedata_zh_MO.cxx  \
-    $(MISC)$/localedata_zh_SG.cxx  \
-    $(MISC)$/localedata_zh_TW.cxx  \
-    $(MISC)$/localedata_zu_ZA.cxx
-
-
 # English Locales
 SHL1TARGET=localedata_en
 .IF "$(GUI)" == "OS2"
@@ -504,13 +328,29 @@ DEPOBJFILES= \
     $(SHL3OBJS) \
     $(SHL4OBJS)
 
+# Interim files generated by the saxparser executable, for dependencies
+MY_MISC_CXXFILES := $(foreach,i,$(DEPOBJFILES) $(MISC)/$(i:b).cxx)
+
 # --- Targets ------------------------------------------------------
 
 .INCLUDE :  target.mk
 
-$(MY_MISC_CXXFILES) : $(BIN)$/saxparser$(EXECPOST)
+$(MY_MISC_CXXFILES) : $(BIN)$/saxparser$(EXECPOST) $(MISC)/saxparser.rdb
 
 $(MISC)$/localedata_%.cxx : %.xml
-    $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(BIN)$/saxparser $* $< $@ $(BIN)$/$(@:b).rdb $(SOLARBINDIR)$/types.rdb
+    $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(BIN)$/saxparser $* $< $@ \
+        $(my_file)$(PWD)/$(MISC)/saxparser.rdb $(SOLARBINDIR)$/types.rdb \
+        -env:OOO_INBUILD_SHAREDLIB_DIR=$(my_file)$(SOLARSHAREDBIN)
     $(RM) $(BIN)$/$(@:b).rdb
 
+$(MISC)/saxparser.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
+        $(MISC)/saxparser.input \
+        $(my_components:^"$(SOLARXMLDIR)/":+".component")
+    $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+        $(SOLARENV)/bin/packcomponents.xslt $(MISC)/saxparser.input
+
+$(MISC)/saxparser.input .ERRREMOVE :
+    - $(RM) $@
+    echo \
+        '$(my_components:^"":+".component")' \
+        > $@
diff --git a/i18npool/source/localedata/saxparser.cxx b/i18npool/source/localedata/saxparser.cxx
index 9787b9c810a6..5118a827b260 100644
--- a/i18npool/source/localedata/saxparser.cxx
+++ b/i18npool/source/localedata/saxparser.cxx
@@ -34,7 +34,6 @@
 
 #include "sal/main.h"
 
-#include 
 #include 
 
 #include 
@@ -339,7 +338,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
     {
         xSMgr = createRegistryServiceFactory(
             ::rtl::OUString::createFromAscii(argv[4]),
-            ::rtl::OUString::createFromAscii(argv[5]) );
+            ::rtl::OUString::createFromAscii(argv[5]), true );
     }
     catch ( Exception& )
     {
@@ -347,38 +346,6 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
         exit(1);
     }
 
-    Reference < XImplementationRegistration > xReg;
-    try
-    {
-        // Create registration service
-        Reference < XInterface > x = xSMgr->createInstance(
-            OUString::createFromAscii( "com.sun.star.registry.ImplementationRegistration" ) );
-        xReg = Reference<  XImplementationRegistration > ( x , UNO_QUERY );
-    }
-    catch( Exception & ) {
-        printf( "Couldn't create ImplementationRegistration service\n" );
-        exit(1);
-    }
-
-    OString sTestName;
-    try
-    {
-        // Load dll for the tested component
-        OUString aDllName =
-            OUString::createFromAscii( "sax.uno" SAL_DLLEXTENSION );
-        xReg->registerImplementation(
-            OUString::createFromAscii( "com.sun.star.loader.SharedLibrary" ),
-            aDllName,
-            Reference< XSimpleRegistry > ()  );
-    }
-    catch( Exception &e ) {
-        printf( "Couldn't raise sax.uno library!\n" );
-        printf( "%s\n" , OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US ).getStr() );
-
-        exit(1);
-    }
-
-
     //--------------------------------
     // parser demo
     // read xml from a file and count elements
diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx
index 280e12dfe4f7..0671e5669956 100644
--- a/i18npool/source/registerservices/registerservices.cxx
+++ b/i18npool/source/registerservices/registerservices.cxx
@@ -580,29 +580,6 @@ void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvType
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-sal_Bool SAL_CALL component_writeInfo( void* /*_pServiceManager*/, void* _pRegistryKey )
-{
-    if (_pRegistryKey)
-    {
-        ::com::sun::star::registry::XRegistryKey * pRegistryKey =
-            reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >(
-                                _pRegistryKey );
-        ::com::sun::star::uno::Reference<
-                        ::com::sun::star::registry::XRegistryKey > xNewKey;
-
-        for( const InstancesArray* pArr = aInstances; pArr->pServiceNm; ++pArr )
-        {
-            xNewKey = pRegistryKey->createKey(
-                    ::rtl::OUString::createFromAscii( pArr->pImplementationNm )  );
-            xNewKey = xNewKey->createKey(
-                    ::rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
-            xNewKey->createKey(
-                    ::rtl::OUString::createFromAscii( pArr->pServiceNm ) );
-        }
-    }
-    return sal_True;
-}
-
 void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* /*_pRegistryKey*/ )
 {
     void* pRet = NULL;
diff --git a/i18npool/source/search/i18nsearch.component b/i18npool/source/search/i18nsearch.component
new file mode 100644
index 000000000000..6288bcd7c840
--- /dev/null
+++ b/i18npool/source/search/i18nsearch.component
@@ -0,0 +1,34 @@
+
+
+
+
+  
+    
+  
+
diff --git a/i18npool/source/search/makefile.mk b/i18npool/source/search/makefile.mk
index aed976edd896..372b32a216d1 100644
--- a/i18npool/source/search/makefile.mk
+++ b/i18npool/source/search/makefile.mk
@@ -76,3 +76,11 @@ DEF1NAME=		$(SHL1TARGET)
 
 .INCLUDE :	target.mk
 
+
+ALLTAR : $(MISC)/i18nsearch.component
+
+$(MISC)/i18nsearch.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        i18nsearch.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt i18nsearch.component
diff --git a/i18npool/source/search/textsearch.cxx b/i18npool/source/search/textsearch.cxx
index dea4eca2a618..e71e0fc0cd71 100644
--- a/i18npool/source/search/textsearch.cxx
+++ b/i18npool/source/search/textsearch.cxx
@@ -987,25 +987,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-sal_Bool SAL_CALL component_writeInfo(
-        void* /*_pServiceManager*/, void* _pRegistryKey )
-{
-    if (_pRegistryKey)
-    {
-        ::com::sun::star::registry::XRegistryKey * pRegistryKey =
-            reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >(
-                                _pRegistryKey );
-        ::com::sun::star::uno::Reference<
-                        ::com::sun::star::registry::XRegistryKey > xNewKey;
-
-        xNewKey = pRegistryKey->createKey( getImplementationName_Static() );
-        xNewKey = xNewKey->createKey(
-                ::rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
-        xNewKey->createKey( getServiceName_Static() );
-    }
-    return sal_True;
-}
-
 void* SAL_CALL component_getFactory( const sal_Char* sImplementationName,
         void* _pServiceManager, void* /*_pRegistryKey*/ )
 {
diff --git a/i18npool/util/i18npool.component b/i18npool/util/i18npool.component
new file mode 100644
index 000000000000..d11606efb6d4
--- /dev/null
+++ b/i18npool/util/i18npool.component
@@ -0,0 +1,484 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+
diff --git a/i18npool/util/makefile.mk b/i18npool/util/makefile.mk
index 57f802be62fe..8c9f1a83b2c0 100644
--- a/i18npool/util/makefile.mk
+++ b/i18npool/util/makefile.mk
@@ -79,3 +79,11 @@ SHL1STDLIBS= \
 # --- Targets ------------------------------------------------------------
 
 .INCLUDE :	target.mk
+
+ALLTAR : $(MISC)/i18npool.component
+
+$(MISC)/i18npool.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        i18npool.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt i18npool.component
diff --git a/sax/prj/d.lst b/sax/prj/d.lst
index 87f01348163c..76177f554909 100644
--- a/sax/prj/d.lst
+++ b/sax/prj/d.lst
@@ -2,6 +2,9 @@
 ..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*.so
 ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
 ..\%__SRC%\lib\*.lib %_DEST%\lib%_EXT%\*.lib
+..\%__SRC%\misc\fastsax.component %_DEST%\xml%_EXT%\fastsax.component
+..\%__SRC%\misc\sax.component %_DEST%\xml%_EXT%\sax.component
+..\%__SRC%\misc\sax.inbuild.component %_DEST%\xml%_EXT%\sax.inbuild.component
 
 mkdir: %_DEST%\inc%_EXT%\sax
 mkdir: %_DEST%\inc%_EXT%\sax\tools
diff --git a/sax/source/expatwrap/makefile.mk b/sax/source/expatwrap/makefile.mk
index bcb73b0443ac..0b2c0571ae2b 100644
--- a/sax/source/expatwrap/makefile.mk
+++ b/sax/source/expatwrap/makefile.mk
@@ -72,5 +72,16 @@ DEF1NAME=		$(SHL1TARGET)
 
 .INCLUDE :	target.mk
 
+ALLTAR : $(MISC)/sax.component $(MISC)/sax.inbuild.component
 
+$(MISC)/sax.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        sax.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt sax.component
 
+$(MISC)/sax.inbuild.component .ERRREMOVE : \
+        $(SOLARENV)/bin/createcomponent.xslt sax.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_INBUILD)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt sax.component
diff --git a/sax/source/expatwrap/sax.component b/sax/source/expatwrap/sax.component
new file mode 100644
index 000000000000..5e6699d9dd33
--- /dev/null
+++ b/sax/source/expatwrap/sax.component
@@ -0,0 +1,37 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+
diff --git a/sax/source/expatwrap/sax_expat.cxx b/sax/source/expatwrap/sax_expat.cxx
index 4ffebfa3590d..aaaac6bd564e 100644
--- a/sax/source/expatwrap/sax_expat.cxx
+++ b/sax/source/expatwrap/sax_expat.cxx
@@ -1034,37 +1034,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-
-sal_Bool SAL_CALL component_writeInfo(
-    void * /*pServiceManager*/, void * pRegistryKey )
-{
-    if (pRegistryKey)
-    {
-        try
-        {
-            Reference< XRegistryKey > xKey(
-                reinterpret_cast< XRegistryKey * >( pRegistryKey ) );
-
-            Reference< XRegistryKey > xNewKey = xKey->createKey(
-                OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) );
-            xNewKey->createKey( OUString::createFromAscii( SERVICE_NAME ) );
-
-            xNewKey = xKey->createKey( OUString::createFromAscii("/") +
-                                       SaxWriter_getImplementationName()+
-                                       OUString::createFromAscii( "/UNO/SERVICES" ) );
-            xNewKey->createKey( SaxWriter_getServiceName() );
-
-            return sal_True;
-        }
-        catch (InvalidRegistryException &)
-        {
-            OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
-        }
-    }
-    return sal_False;
-}
-
-
 void * SAL_CALL component_getFactory(
     const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
 {
diff --git a/sax/source/fastparser/facreg.cxx b/sax/source/fastparser/facreg.cxx
index 1916a9740f1a..98a55823271e 100644
--- a/sax/source/fastparser/facreg.cxx
+++ b/sax/source/fastparser/facreg.cxx
@@ -40,34 +40,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-
-sal_Bool SAL_CALL component_writeInfo(
-    void * /*pServiceManager*/, void * pRegistryKey )
-{
-    if (pRegistryKey)
-    {
-        try
-        {
-            Reference< XRegistryKey > xKey( reinterpret_cast< XRegistryKey * >( pRegistryKey ) );
-
-            Reference< XRegistryKey > xNewKey( xKey->createKey(
-                OUString::createFromAscii( "/" PARSER_IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
-            xNewKey->createKey( OUString::createFromAscii( PARSER_SERVICE_NAME ) );
-
-            Reference< XRegistryKey > xNewKey1( xKey->createKey(
-                OUString::createFromAscii( "/" SERIALIZER_IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
-            xNewKey1->createKey( OUString::createFromAscii( SERIALIZER_SERVICE_NAME ) );
-
-            return sal_True;
-        }
-        catch (InvalidRegistryException &)
-        {
-            OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
-        }
-    }
-    return sal_False;
-}
-
 void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
 {
     void * pRet = 0;
diff --git a/sax/source/fastparser/fastsax.component b/sax/source/fastparser/fastsax.component
new file mode 100644
index 000000000000..a184a76d2d83
--- /dev/null
+++ b/sax/source/fastparser/fastsax.component
@@ -0,0 +1,37 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+
diff --git a/sax/source/fastparser/makefile.mk b/sax/source/fastparser/makefile.mk
index 7f70b7aee7bf..d8f9378c19b9 100644
--- a/sax/source/fastparser/makefile.mk
+++ b/sax/source/fastparser/makefile.mk
@@ -70,5 +70,10 @@ DEF1NAME=		$(SHL1TARGET)
 
 .INCLUDE :	target.mk
 
+ALLTAR : $(MISC)/fastsax.component
 
-
+$(MISC)/fastsax.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        fastsax.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt fastsax.component
diff --git a/sot/prj/d.lst b/sot/prj/d.lst
index 528b6863ef3c..10bed8c9fe5e 100644
--- a/sot/prj/d.lst
+++ b/sot/prj/d.lst
@@ -25,3 +25,4 @@ mkdir: %_DEST%\inc%_EXT%\sot
 ..\%__SRC%\bin\sot?????.dll %_DEST%\bin%_EXT%\sot?????.dll
 ..\%__SRC%\bin\sot?????.sym %_DEST%\bin%_EXT%\sot?????.sym
 ..\%__SRC%\misc\sot?????.map %_DEST%\bin%_EXT%\sot?????.map
+..\%__SRC%\misc\sot.component %_DEST%\xml%_EXT%\sot.component
diff --git a/sot/source/unoolestorage/register.cxx b/sot/source/unoolestorage/register.cxx
index 00326333546d..083a4d585ca1 100644
--- a/sot/source/unoolestorage/register.cxx
+++ b/sot/source/unoolestorage/register.cxx
@@ -69,33 +69,5 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImp
     return pRet;
 }
 
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
-{
-    if (pRegistryKey)
-    {
-        try
-        {
-            uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
-
-            uno::Reference< registry::XRegistryKey >  xNewKey;
-
-            xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
-                                        OLESimpleStorage::impl_staticGetImplementationName() +
-                                        ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") )  );
-
-            const uno::Sequence< ::rtl::OUString > &rServices = OLESimpleStorage::impl_staticGetSupportedServiceNames();
-            for( sal_Int32 ind = 0; ind < rServices.getLength(); ind++ )
-                xNewKey->createKey( rServices.getConstArray()[ind] );
-
-            return sal_True;
-        }
-        catch (registry::InvalidRegistryException &)
-        {
-            OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
-        }
-    }
-    return sal_False;
-}
-
 } // extern "C"
 
diff --git a/sot/util/makefile.mk b/sot/util/makefile.mk
index 60b34c356217..72d17db189be 100644
--- a/sot/util/makefile.mk
+++ b/sot/util/makefile.mk
@@ -79,3 +79,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
     @echo Making: $@
     $(TYPE) sot.flt > $@
 
+
+ALLTAR : $(MISC)/sot.component
+
+$(MISC)/sot.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        sot.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt sot.component
diff --git a/sot/util/sot.component b/sot/util/sot.component
new file mode 100644
index 000000000000..7d17c7d54475
--- /dev/null
+++ b/sot/util/sot.component
@@ -0,0 +1,34 @@
+
+
+
+
+  
+    
+  
+
diff --git a/svl/prj/d.lst b/svl/prj/d.lst
index a5c2564e81cd..d79346c16087 100644
--- a/svl/prj/d.lst
+++ b/svl/prj/d.lst
@@ -20,3 +20,6 @@ dos: sh -c "if test %OS% = MACOSX; then macosx-create-bundle %_DEST%\bin%_EXT%\b
 
 *.xml %_DEST%\xml%_EXT%\*.xml
 
+..\%__SRC%\misc\fsstorage.component %_DEST%\xml%_EXT%\fsstorage.component
+..\%__SRC%\misc\passwordcontainer.component %_DEST%\xml%_EXT%\passwordcontainer.component
+..\%__SRC%\misc\svl.component %_DEST%\xml%_EXT%\svl.component
diff --git a/svl/source/fsstor/fsfactory.cxx b/svl/source/fsstor/fsfactory.cxx
index 298b6f555e2a..62fc88f6053a 100644
--- a/svl/source/fsstor/fsfactory.cxx
+++ b/svl/source/fsstor/fsfactory.cxx
@@ -240,30 +240,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
-    void * /* pServiceManager */, void * pRegistryKey)
-{
-    if (pRegistryKey)
-    {
-        uno::Reference< registry::XRegistryKey > xRegistryKey (
-            reinterpret_cast< registry::XRegistryKey*>(pRegistryKey));
-
-        uno::Reference< registry::XRegistryKey > xNewKey;
-        xNewKey = xRegistryKey->createKey(
-            ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
-            FSStorageFactory::impl_staticGetImplementationName() +
-            ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES")));
-
-        const uno::Sequence< ::rtl::OUString > aServices (
-            FSStorageFactory::impl_staticGetSupportedServiceNames());
-        for( sal_Int32 i = 0; i < aServices.getLength(); i++ )
-            xNewKey->createKey( aServices.getConstArray()[i] );
-
-        return sal_True;
-    }
-    return sal_False;
-}
-
 SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
     const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
 {
diff --git a/svl/source/fsstor/fsstorage.component b/svl/source/fsstor/fsstorage.component
new file mode 100644
index 000000000000..3ef0be825972
--- /dev/null
+++ b/svl/source/fsstor/fsstorage.component
@@ -0,0 +1,35 @@
+
+
+
+
+  
+    
+    
+  
+
diff --git a/svl/source/fsstor/makefile.mk b/svl/source/fsstor/makefile.mk
index dc91814772f9..1dd5d2307037 100644
--- a/svl/source/fsstor/makefile.mk
+++ b/svl/source/fsstor/makefile.mk
@@ -64,3 +64,11 @@ DEF1NAME=	$(SHL1TARGET)
 
 .INCLUDE : target.mk
 
+
+ALLTAR : $(MISC)/fsstorage.component
+
+$(MISC)/fsstorage.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        fsstorage.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt fsstorage.component
diff --git a/svl/source/passwordcontainer/makefile.mk b/svl/source/passwordcontainer/makefile.mk
index d9eb9615cf80..626a6ffc5830 100644
--- a/svl/source/passwordcontainer/makefile.mk
+++ b/svl/source/passwordcontainer/makefile.mk
@@ -60,3 +60,11 @@ DEF1NAME=	$(SHL1TARGET)
 
 .INCLUDE : target.mk
 
+
+ALLTAR : $(MISC)/passwordcontainer.component
+
+$(MISC)/passwordcontainer.component .ERRREMOVE : \
+        $(SOLARENV)/bin/createcomponent.xslt passwordcontainer.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt passwordcontainer.component
diff --git a/svl/source/passwordcontainer/passwordcontainer.component b/svl/source/passwordcontainer/passwordcontainer.component
new file mode 100644
index 000000000000..42eb47cf14dd
--- /dev/null
+++ b/svl/source/passwordcontainer/passwordcontainer.component
@@ -0,0 +1,34 @@
+
+
+
+
+  
+    
+  
+
diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx b/svl/source/passwordcontainer/passwordcontainer.cxx
index 7db18c65db1f..6e92d390eea9 100644
--- a/svl/source/passwordcontainer/passwordcontainer.cxx
+++ b/svl/source/passwordcontainer/passwordcontainer.cxx
@@ -1543,24 +1543,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
-    void * /* pServiceManager */, void * pRegistryKey)
-{
-    if (pRegistryKey)
-    {
-        Reference< XRegistryKey > xRegistryKey (
-            reinterpret_cast< XRegistryKey* >( pRegistryKey ));
-        Reference< XRegistryKey > xNewKey;
-
-        xNewKey = xRegistryKey->createKey(
-            ::rtl::OUString::createFromAscii( "/stardiv.svl.PasswordContainer/UNO/SERVICES" ));
-        xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.task.PasswordContainer"));
-
-        return sal_True;
-    }
-    return sal_False;
-}
-
 SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
     const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
 {
diff --git a/svl/source/uno/registerservices.cxx b/svl/source/uno/registerservices.cxx
index ab01d308c2da..8edbccc2d435 100644
--- a/svl/source/uno/registerservices.cxx
+++ b/svl/source/uno/registerservices.cxx
@@ -60,37 +60,6 @@ SVL_DLLPUBLIC void SAL_CALL component_getImplementationEnvironment (
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-SVL_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo (
-    void * /* _pServiceManager */, void * _pRegistryKey)
-{
-    if (_pRegistryKey)
-    {
-        Reference< css::registry::XRegistryKey > xRegistryKey (
-            reinterpret_cast< css::registry::XRegistryKey* >(_pRegistryKey));
-        Reference< css::registry::XRegistryKey > xNewKey;
-
-        xNewKey = xRegistryKey->createKey (
-            OUString::createFromAscii(
-                "/com.sun.star.uno.util.numbers.SvNumberFormatsSupplierServiceObject/UNO/SERVICES" ) );
-        xNewKey->createKey (
-            OUString::createFromAscii( "com.sun.star.util.NumberFormatsSupplier" ) );
-
-        xNewKey = xRegistryKey->createKey (
-            OUString::createFromAscii(
-                "/com.sun.star.uno.util.numbers.SvNumberFormatterServiceObject/UNO/SERVICES" ) );
-        xNewKey->createKey (
-            OUString::createFromAscii( "com.sun.star.util.NumberFormatter" ) );
-
-        xNewKey = xRegistryKey->createKey(
-            OUString::createFromAscii( "/com.sun.star.comp.svl.PathService/UNO/SERVICES" ) );
-        xNewKey->createKey (
-            OUString::createFromAscii( "com.sun.star.config.SpecialConfigManager" ) );
-
-        return sal_True;
-    }
-    return sal_False;
-}
-
 SVL_DLLPUBLIC void* SAL_CALL component_getFactory (
     const sal_Char * pImplementationName, void * _pServiceManager, void * /* _pRegistryKey*/)
 {
diff --git a/svl/util/makefile.mk b/svl/util/makefile.mk
index 3cb87dcd33ad..7cb493ae0d94 100644
--- a/svl/util/makefile.mk
+++ b/svl/util/makefile.mk
@@ -120,3 +120,11 @@ ALL: $(SLB)$/svl.lib \
 
 .INCLUDE :	target.mk
 
+
+ALLTAR : $(MISC)/svl.component
+
+$(MISC)/svl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        svl.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt svl.component
diff --git a/svl/util/svl.component b/svl/util/svl.component
new file mode 100644
index 000000000000..4af1a31f5782
--- /dev/null
+++ b/svl/util/svl.component
@@ -0,0 +1,40 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+  
+    
+  
+
diff --git a/svtools/prj/d.lst b/svtools/prj/d.lst
index b46ddef72311..7b9c6a1957e3 100644
--- a/svtools/prj/d.lst
+++ b/svtools/prj/d.lst
@@ -38,3 +38,6 @@ dos: sh -c "if test %OS% = MACOSX; then macosx-create-bundle %_DEST%\bin%_EXT%\b
 
 *.xml %_DEST%\xml%_EXT%\*.xml
 
+..\%__SRC%\misc\hatchwindowfactory.component %_DEST%\xml%_EXT%\hatchwindowfactory.component
+..\%__SRC%\misc\productregistration.uno.component %_DEST%\xml%_EXT%\productregistration.uno.component
+..\%__SRC%\misc\svt.component %_DEST%\xml%_EXT%\svt.component
diff --git a/svtools/source/hatchwindow/hatchwindowfactory.component b/svtools/source/hatchwindow/hatchwindowfactory.component
new file mode 100644
index 000000000000..153fc8796281
--- /dev/null
+++ b/svtools/source/hatchwindow/hatchwindowfactory.component
@@ -0,0 +1,38 @@
+
+
+
+
+  
+    
+  
+  
+    
+    
+  
+
diff --git a/svtools/source/hatchwindow/hatchwindowfactory.cxx b/svtools/source/hatchwindow/hatchwindowfactory.cxx
index f8dbddff3761..0eec027167c2 100644
--- a/svtools/source/hatchwindow/hatchwindowfactory.cxx
+++ b/svtools/source/hatchwindow/hatchwindowfactory.cxx
@@ -112,45 +112,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
-    void * /* pServiceManager */, void * pRegistryKey)
-{
-    if (pRegistryKey)
-    {
-        uno::Reference< registry::XRegistryKey> xRegistryKey (
-            reinterpret_cast< registry::XRegistryKey* >(pRegistryKey));
-        uno::Reference< registry::XRegistryKey> xNewKey;
-
-        // OHatchWindowFactory registration
-
-        xNewKey = xRegistryKey->createKey (
-            ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
-            OHatchWindowFactory::impl_staticGetImplementationName() +
-            ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
-        uno::Sequence< ::rtl::OUString > aServices =
-            OHatchWindowFactory::impl_staticGetSupportedServiceNames();
-        for (sal_Int32 i = 0, n = aServices.getLength(); i < n; i++ )
-            xNewKey->createKey( aServices.getConstArray()[i] );
-
-
-        // ODocumentCloser registration
-
-        xNewKey = xRegistryKey->createKey (
-            ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
-            ODocumentCloser::impl_staticGetImplementationName() +
-            ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
-        aServices = ODocumentCloser::impl_staticGetSupportedServiceNames();
-        for (sal_Int32 i = 0, n = aServices.getLength(); i < n; i++ )
-            xNewKey->createKey( aServices.getConstArray()[i] );
-
-
-        return sal_True;
-    }
-    return sal_False;
-}
-
 SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
     const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
 {
diff --git a/svtools/source/hatchwindow/makefile.mk b/svtools/source/hatchwindow/makefile.mk
index 316e4ab1bfe2..3c736bc4e66a 100644
--- a/svtools/source/hatchwindow/makefile.mk
+++ b/svtools/source/hatchwindow/makefile.mk
@@ -63,3 +63,11 @@ DEF1NAME=	$(SHL1TARGET)
 
 .INCLUDE : target.mk
 
+
+ALLTAR : $(MISC)/hatchwindowfactory.component
+
+$(MISC)/hatchwindowfactory.component .ERRREMOVE : \
+        $(SOLARENV)/bin/createcomponent.xslt hatchwindowfactory.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt hatchwindowfactory.component
diff --git a/svtools/source/productregistration/makefile.mk b/svtools/source/productregistration/makefile.mk
index a26e8feca753..b6e119601697 100644
--- a/svtools/source/productregistration/makefile.mk
+++ b/svtools/source/productregistration/makefile.mk
@@ -76,3 +76,11 @@ RESLIB1SRSFILES=\
 
 .INCLUDE : target.mk
 
+
+ALLTAR : $(MISC)/productregistration.uno.component
+
+$(MISC)/productregistration.uno.component .ERRREMOVE : \
+        $(SOLARENV)/bin/createcomponent.xslt productregistration.uno.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt productregistration.uno.component
diff --git a/svtools/source/productregistration/productregistration.cxx b/svtools/source/productregistration/productregistration.cxx
index 39629f5c3f77..cb3a9b7a7702 100644
--- a/svtools/source/productregistration/productregistration.cxx
+++ b/svtools/source/productregistration/productregistration.cxx
@@ -461,25 +461,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
-    void * /* pServiceManager */, void * pRegistryKey)
-{
-    if (pRegistryKey)
-    {
-        Reference< XRegistryKey > xRegistryKey (
-            reinterpret_cast< XRegistryKey* >( pRegistryKey ));
-        Reference< XRegistryKey > xNewKey;
-
-        xNewKey = xRegistryKey->createKey(
-            OUString::createFromAscii( "/" PRODREG_IMPLNAME "/UNO/SERVICES" ));
-        xNewKey->createKey(
-            OUString::createFromAscii( PRODREG_SERVNAME ));
-
-        return sal_True;
-    }
-    return sal_False;
-}
-
 SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
     const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
 {
diff --git a/svtools/source/productregistration/productregistration.uno.component b/svtools/source/productregistration/productregistration.uno.component
new file mode 100644
index 000000000000..da2cfd37c483
--- /dev/null
+++ b/svtools/source/productregistration/productregistration.uno.component
@@ -0,0 +1,34 @@
+
+
+
+
+  
+    
+  
+
diff --git a/svtools/source/uno/miscservices.cxx b/svtools/source/uno/miscservices.cxx
index e16a1ecb56dc..34984976bf07 100644
--- a/svtools/source/uno/miscservices.cxx
+++ b/svtools/source/uno/miscservices.cxx
@@ -101,55 +101,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
-    void * pServiceManager, void * _pRegistryKey )
-{
-    if (_pRegistryKey)
-    {
-        Reference< XRegistryKey > xRegistryKey (
-            reinterpret_cast< XRegistryKey* >( _pRegistryKey ));
-        Reference< XRegistryKey > xNewKey;
-        uno::Sequence< ::rtl::OUString >            aServices;
-
-        xNewKey = xRegistryKey->createKey (
-            OUString::createFromAscii( "/com.sun.star.comp.svtools.OAddressBookSourceDialogUno/UNO/SERVICES" ) );
-        xNewKey->createKey(
-            OUString::createFromAscii( "com.sun.star.ui.AddressBookSourceDialog" ) );
-
-        xNewKey = xRegistryKey->createKey (
-            OUString::createFromAscii( "/com.sun.star.svtools.SvFilterOptionsDialog/UNO/SERVICES" ) );
-        xNewKey->createKey (
-            OUString::createFromAscii( "com.sun.star.ui.dialogs.FilterOptionsDialog" ) );
-
-        // GraphicProvider
-        xNewKey = reinterpret_cast< registry::XRegistryKey * >( _pRegistryKey )->createKey(
-                    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
-                    GraphicProvider::getImplementationName_Static() +
-                    ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
-        aServices = GraphicProvider::getSupportedServiceNames_Static();
-        int i;
-        for( i = 0; i < aServices.getLength(); i++ )
-            xNewKey->createKey( aServices.getConstArray()[ i ] );
-
-        // GraphicRendererVCL
-        xNewKey = reinterpret_cast< registry::XRegistryKey * >( _pRegistryKey )->createKey(
-                    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
-                    GraphicRendererVCL::getImplementationName_Static() +
-                    ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
-        aServices = ( GraphicRendererVCL::getSupportedServiceNames_Static() );
-        for( i = 0; i < aServices.getLength(); i++ )
-            xNewKey->createKey( aServices.getConstArray()[ i ] );
-
-        if ( !component_writeInfoHelper( reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), reinterpret_cast< registry::XRegistryKey* >( _pRegistryKey ), serviceDecl ) )
-            return false;
-
-        return ::cppu::component_writeInfoHelper( pServiceManager, _pRegistryKey, s_aServiceEntries );
-    }
-    return sal_False;
-}
-
 SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
     const sal_Char * pImplementationName, void * _pServiceManager, void * pRegistryKey)
 {
diff --git a/svtools/util/makefile.mk b/svtools/util/makefile.mk
index f9c14a540410..27b46488a16c 100644
--- a/svtools/util/makefile.mk
+++ b/svtools/util/makefile.mk
@@ -190,3 +190,11 @@ ALL: $(SLB)$/svt.lib \
 .INCLUDE :	target.mk
 
 
+
+ALLTAR : $(MISC)/svt.component
+
+$(MISC)/svt.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        svt.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt svt.component
diff --git a/svtools/util/svt.component b/svtools/util/svt.component
new file mode 100644
index 000000000000..e15970547a38
--- /dev/null
+++ b/svtools/util/svt.component
@@ -0,0 +1,49 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+
diff --git a/toolkit/prj/d.lst b/toolkit/prj/d.lst
index 375485c96e4d..01eb5026e401 100644
--- a/toolkit/prj/d.lst
+++ b/toolkit/prj/d.lst
@@ -63,3 +63,4 @@ mkdir: %_DEST%\inc%_EXT%\layout\vcl
 ..\source\layout\vcl\*.hxx  %_DEST%\inc%_EXT%\layout\vcl\*.hxx
 
 ..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
+..\%__SRC%\misc\tk.component %_DEST%\xml%_EXT%\tk.component
diff --git a/toolkit/source/awt/asynccallback.cxx b/toolkit/source/awt/asynccallback.cxx
index 593feb582274..9e5334b2d28c 100644
--- a/toolkit/source/awt/asynccallback.cxx
+++ b/toolkit/source/awt/asynccallback.cxx
@@ -191,9 +191,3 @@ void * SAL_CALL comp_AsyncCallback_component_getFactory(
     return ::cppu::component_getFactoryHelper(
         implName, serviceManager, registryKey, entries);
 }
-
-sal_Bool SAL_CALL comp_AsyncCallback_component_writeInfo(
-    void * serviceManager, void * registryKey)
-{
-    return ::cppu::component_writeInfoHelper(serviceManager, registryKey, entries);
-}
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index aedf4024f2b9..477032538af8 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -205,10 +205,8 @@ extern ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL
 extern ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL DefaultGridColumnModel_CreateInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& );
 extern ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL GridColumn_CreateInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& );
 
-extern sal_Bool SAL_CALL comp_AsyncCallback_component_writeInfo( void * serviceManager, void * registryKey );
 extern void * SAL_CALL comp_AsyncCallback_component_getFactory( const char * implName, void * serviceManager, void * registryKey );
 
-extern sal_Bool SAL_CALL comp_Layout_component_writeInfo( void * serviceManager, void * registryKey );
 extern void * SAL_CALL comp_Layout_component_getFactory( const char * implName, void * serviceManager, void * registryKey );
 
 extern "C"
@@ -219,91 +217,6 @@ TOOLKIT_DLLPUBLIC void SAL_CALL component_getImplementationEnvironment( const sa
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-TOOLKIT_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo( void* _pServiceManager, void* _pRegistryKey )
-{
-    if (_pRegistryKey)
-    {
-        ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey > xRegistryKey =
-            static_cast< ::com::sun::star::registry::XRegistryKey* >( _pRegistryKey );
-
-        registerServices( xRegistryKey, "VCLXToolkit", szServiceName_Toolkit, szServiceName2_Toolkit );
-        registerServices( xRegistryKey, "VCLXPopupMenu", szServiceName_PopupMenu, szServiceName2_PopupMenu );
-        registerServices( xRegistryKey, "VCLXMenuBar", szServiceName_MenuBar, szServiceName2_MenuBar );
-        registerServices( xRegistryKey, "VCLXPointer", szServiceName_Pointer, szServiceName2_Pointer );
-        registerServices( xRegistryKey, "UnoControlContainer", szServiceName_UnoControlContainer, szServiceName2_UnoControlContainer );
-        registerServices( xRegistryKey, "UnoControlContainerModel", szServiceName_UnoControlContainerModel, szServiceName2_UnoControlContainerModel );
-        registerServices( xRegistryKey, "StdTabController", szServiceName_TabController, szServiceName2_TabController );
-        registerServices( xRegistryKey, "StdTabControllerModel", szServiceName_TabControllerModel, szServiceName2_TabControllerModel );
-        registerServices( xRegistryKey, "UnoDialogControl", szServiceName_UnoControlDialog, szServiceName2_UnoControlDialog );
-        registerServices( xRegistryKey, "UnoControlDialogModel", szServiceName_UnoControlDialogModel, szServiceName2_UnoControlDialogModel );
-        registerServices( xRegistryKey, "UnoEditControl", szServiceName_UnoControlEdit, szServiceName2_UnoControlEdit );
-        registerServices( xRegistryKey, "UnoControlEditModel", szServiceName_UnoControlEditModel, szServiceName2_UnoControlEditModel );
-        registerServices( xRegistryKey, "UnoDateFieldControl", szServiceName_UnoControlDateField, szServiceName2_UnoControlDateField );
-        registerServices( xRegistryKey, "UnoControlDateFieldModel", szServiceName_UnoControlDateFieldModel, szServiceName2_UnoControlDateFieldModel );
-        registerServices( xRegistryKey, "UnoTimeFieldControl", szServiceName_UnoControlTimeField, szServiceName2_UnoControlTimeField );
-        registerServices( xRegistryKey, "UnoControlTimeFieldModel", szServiceName_UnoControlTimeFieldModel, szServiceName2_UnoControlTimeFieldModel );
-        registerServices( xRegistryKey, "UnoNumericFieldControl", szServiceName_UnoControlNumericField, szServiceName2_UnoControlNumericField );
-        registerServices( xRegistryKey, "UnoControlNumericFieldModel", szServiceName_UnoControlNumericFieldModel, szServiceName2_UnoControlNumericFieldModel );
-        registerServices( xRegistryKey, "UnoCurrencyFieldControl", szServiceName_UnoControlCurrencyField, szServiceName2_UnoControlCurrencyField );
-        registerServices( xRegistryKey, "UnoControlCurrencyFieldModel", szServiceName_UnoControlCurrencyFieldModel, szServiceName2_UnoControlCurrencyFieldModel );
-        registerServices( xRegistryKey, "UnoPatternFieldControl", szServiceName_UnoControlPatternField, szServiceName2_UnoControlPatternField );
-        registerServices( xRegistryKey, "UnoControlPatternFieldModel", szServiceName_UnoControlPatternFieldModel, szServiceName2_UnoControlPatternFieldModel );
-        registerServices( xRegistryKey, "UnoFormattedFieldControl", szServiceName_UnoControlFormattedField, szServiceName2_UnoControlFormattedField );
-        registerServices( xRegistryKey, "UnoControlFormattedFieldModel", szServiceName_UnoControlFormattedFieldModel, szServiceName2_UnoControlFormattedFieldModel );
-        registerServices( xRegistryKey, "UnoFileControl", szServiceName_UnoControlFileControl, szServiceName2_UnoControlFileControl );
-        registerServices( xRegistryKey, "UnoControlFileControlModel", szServiceName_UnoControlFileControlModel, szServiceName2_UnoControlFileControlModel );
-        registerServices( xRegistryKey, "UnoButtonControl", szServiceName_UnoControlButton, szServiceName2_UnoControlButton );
-        registerServices( xRegistryKey, "UnoControlButtonModel", szServiceName_UnoControlButtonModel, szServiceName2_UnoControlButtonModel );
-        registerServices( xRegistryKey, "UnoImageControlControl", szServiceName_UnoControlImageButton, szServiceName2_UnoControlImageButton );
-        registerServices( xRegistryKey, "UnoControlImageControlModel", szServiceName_UnoControlImageButtonModel, szServiceName2_UnoControlImageButtonModel );
-        registerServices( xRegistryKey, "UnoImageControlControl", szServiceName_UnoControlImageControl, szServiceName2_UnoControlImageControl );
-        registerServices( xRegistryKey, "UnoControlImageControlModel", szServiceName_UnoControlImageControlModel, szServiceName2_UnoControlImageControlModel );
-        registerServices( xRegistryKey, "UnoRadioButtonControl", szServiceName_UnoControlRadioButton, szServiceName2_UnoControlRadioButton );
-        registerServices( xRegistryKey, "UnoControlRadioButtonModel", szServiceName_UnoControlRadioButtonModel, szServiceName2_UnoControlRadioButtonModel );
-        registerServices( xRegistryKey, "UnoCheckBoxControl", szServiceName_UnoControlCheckBox, szServiceName2_UnoControlCheckBox );
-        registerServices( xRegistryKey, "UnoControlCheckBoxModel", szServiceName_UnoControlCheckBoxModel, szServiceName2_UnoControlCheckBoxModel );
-        registerServices( xRegistryKey, "UnoListBoxControl", szServiceName_UnoControlListBox, szServiceName2_UnoControlListBox );
-        registerServices( xRegistryKey, "UnoControlListBoxModel", szServiceName_UnoControlListBoxModel, szServiceName2_UnoControlListBoxModel );
-        registerServices( xRegistryKey, "UnoComboBoxControl", szServiceName_UnoControlComboBox, szServiceName2_UnoControlComboBox );
-        registerServices( xRegistryKey, "UnoControlComboBoxModel", szServiceName_UnoControlComboBoxModel, szServiceName2_UnoControlComboBoxModel );
-        registerServices( xRegistryKey, "UnoFixedTextControl", szServiceName_UnoControlFixedText, szServiceName2_UnoControlFixedText );
-        registerServices( xRegistryKey, "UnoControlFixedTextModel", szServiceName_UnoControlFixedTextModel, szServiceName2_UnoControlFixedTextModel );
-        registerServices( xRegistryKey, "UnoGroupBoxControl", szServiceName_UnoControlGroupBox, szServiceName2_UnoControlGroupBox );
-        registerServices( xRegistryKey, "UnoControlGroupBoxModel", szServiceName_UnoControlGroupBoxModel, szServiceName2_UnoControlGroupBoxModel );
-        registerServices( xRegistryKey, "UnoProgressBarControl", szServiceName_UnoControlProgressBar, szServiceName2_UnoControlProgressBar );
-        registerServices( xRegistryKey, "UnoControlProgressBarModel", szServiceName_UnoControlProgressBarModel, szServiceName2_UnoControlProgressBarModel );
-        registerServices( xRegistryKey, "UnoScrollBarControl", szServiceName_UnoControlScrollBar, szServiceName2_UnoControlScrollBar );
-        registerServices( xRegistryKey, "UnoControlScrollBarModel", szServiceName_UnoControlScrollBarModel, szServiceName2_UnoControlScrollBarModel );
-        registerServices( xRegistryKey, "UnoSpinButtonModel", szServiceName_UnoSpinButtonModel );
-        registerServices( xRegistryKey, "UnoSpinButtonControl", szServiceName_UnoSpinButtonControl );
-        registerServices( xRegistryKey, "UnoFixedLineControl", szServiceName_UnoControlFixedLine, szServiceName2_UnoControlFixedLine );
-        registerServices( xRegistryKey, "UnoControlFixedLineModel", szServiceName_UnoControlFixedLineModel, szServiceName2_UnoControlFixedLineModel );
-        registerServices( xRegistryKey, "VCLXPrinterServer", szServiceName_PrinterServer, szServiceName2_PrinterServer );
-        registerServices( xRegistryKey, "UnoRoadmapControl", szServiceName_UnoControlRoadmap, szServiceName2_UnoControlRoadmap );
-        registerServices( xRegistryKey, "UnoControlRoadmapModel", szServiceName_UnoControlRoadmapModel, szServiceName2_UnoControlRoadmapModel );
-        registerServices( xRegistryKey, "TreeControl", szServiceName_TreeControl );
-        registerServices( xRegistryKey, "TreeControlModel", szServiceName_TreeControlModel );
-        registerServices( xRegistryKey, "MutableTreeDataModel", szServiceName_MutableTreeDataModel );
-        registerServices( xRegistryKey, "UnoSimpleAnimationControlModel", szServiceName_UnoSimpleAnimationControlModel, szServiceName2_UnoSimpleAnimationControlModel );
-        registerServices( xRegistryKey, "UnoSimpleAnimationControl", szServiceName_UnoSimpleAnimationControl, szServiceName2_UnoSimpleAnimationControl );
-        registerServices( xRegistryKey, "UnoThrobberControlModel", szServiceName_UnoThrobberControlModel, szServiceName2_UnoThrobberControlModel );
-        registerServices( xRegistryKey, "UnoThrobberControl", szServiceName_UnoThrobberControl, szServiceName2_UnoThrobberControl );
-        registerServices( xRegistryKey, "UnoFixedHyperlinkControl", szServiceName_UnoControlFixedHyperlink );
-        registerServices( xRegistryKey, "UnoControlFixedHyperlinkModel", szServiceName_UnoControlFixedHyperlinkModel );
-        registerServices( xRegistryKey, "GridControl", szServiceName_GridControl );
-        registerServices( xRegistryKey, "GridControlModel", szServiceName_GridControlModel );
-        registerServices( xRegistryKey, "DefaultGridDataModel", szServiceName_DefaultGridDataModel );
-        registerServices( xRegistryKey, "DefaultGridColumnModel", szServiceName_DefaultGridColumnModel );
-        registerServices( xRegistryKey, "GridColumn", szServiceName_GridColumn );
-
-        comp_AsyncCallback_component_writeInfo( _pServiceManager, _pRegistryKey );
-        comp_Layout_component_writeInfo( _pServiceManager, _pRegistryKey );
-
-        return sal_True;
-    }
-    return sal_False;
-}
-
 TOOLKIT_DLLPUBLIC void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* _pRegistryKey )
 {
     void* pRet = NULL;
diff --git a/toolkit/source/layout/core/factory.cxx b/toolkit/source/layout/core/factory.cxx
index db9616a8cc77..1390d9405f71 100644
--- a/toolkit/source/layout/core/factory.cxx
+++ b/toolkit/source/layout/core/factory.cxx
@@ -57,33 +57,6 @@ void * SAL_CALL comp_Layout_component_getFactory( const char * pImplName, void *
         return pRet;
     }
 
-sal_Bool SAL_CALL comp_Layout_component_writeInfo( void * /*serviceManager*/, void * pRegistryKey )
-    {
-        if ( pRegistryKey )
-        {
-            try
-            {
-                uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
-                uno::Reference< registry::XRegistryKey >  xNewKey;
-
-                xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
-                                           LayoutFactory::impl_staticGetImplementationName() +
-                                           ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") )  );
-
-                const uno::Sequence< ::rtl::OUString > aServices = LayoutFactory::impl_staticGetSupportedServiceNames();
-                for ( sal_Int32 i = 0; i < aServices.getLength(); i++ )
-                    xNewKey->createKey( aServices.getConstArray()[i] );
-
-                return sal_True;
-            }
-            catch (registry::InvalidRegistryException &)
-        {
-            OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
-        }
-        }
-        return sal_False;
-    }
-
 // Component registration
 ::rtl::OUString SAL_CALL LayoutFactory::impl_staticGetImplementationName()
 {
diff --git a/toolkit/util/makefile.mk b/toolkit/util/makefile.mk
index 48d534a8a9b3..2e9adce4f6bd 100644
--- a/toolkit/util/makefile.mk
+++ b/toolkit/util/makefile.mk
@@ -83,3 +83,11 @@ RESLIB1SRSFILES=$(RES1FILELIST)
 
 # --- Footer -------------------------------------------------------------
 .INCLUDE :	target.mk
+
+ALLTAR : $(MISC)/tk.component
+
+$(MISC)/tk.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        tk.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt tk.component
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
new file mode 100644
index 000000000000..e782283c39eb
--- /dev/null
+++ b/toolkit/util/tk.component
@@ -0,0 +1,298 @@
+
+
+
+
+  
+    
+  
+  
+    
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+    
+    
+  
+
diff --git a/unotools/prj/d.lst b/unotools/prj/d.lst
index ad8a764055b2..38cafd0cc1f8 100644
--- a/unotools/prj/d.lst
+++ b/unotools/prj/d.lst
@@ -9,3 +9,4 @@
 mkdir: %_DEST%\inc%_EXT%\unotools
 ..\inc\unotools\*.hxx %_DEST%\inc%_EXT%\unotools\*.hxx
 ..\inc\unotools\unotoolsdllapi.h %_DEST%\inc%_EXT%\unotools\unotoolsdllapi.h
+..\%__SRC%\misc\utl.component %_DEST%\xml%_EXT%\utl.component
diff --git a/unotools/source/ucbhelper/xtempfile.cxx b/unotools/source/ucbhelper/xtempfile.cxx
index 023211dc3527..525596fae854 100644
--- a/unotools/source/ucbhelper/xtempfile.cxx
+++ b/unotools/source/ucbhelper/xtempfile.cxx
@@ -28,12 +28,6 @@
 #include 
 #include 
 #include 
-#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP
-#include 
-#endif
-#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP
-#include 
-#endif
 #include 
 #include 
 #include 
@@ -489,43 +483,6 @@ throw ( ::css::uno::RuntimeException )
     return ::cppu::createSingleComponentFactory( XTempFile_createInstance, getImplementationName_Static(), getSupportedServiceNames_Static() );
 }
 
-static sal_Bool writeInfo( void * pRegistryKey,
-                          const ::rtl::OUString & rImplementationName,
-                          ::css::uno::Sequence< ::rtl::OUString > const & rServiceNames )
-{
-    ::rtl::OUString aKeyName( RTL_CONSTASCII_USTRINGPARAM ( "/" ) );
-    aKeyName += rImplementationName;
-    aKeyName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "/UNO/SERVICES" ) );
-
-    ::css::uno::Reference< ::css::registry::XRegistryKey > xKey;
-    try
-    {
-        xKey = static_cast< ::css::registry::XRegistryKey * >(
-                                    pRegistryKey )->createKey( aKeyName );
-    }
-    catch ( ::css::registry::InvalidRegistryException const & )
-    {
-    }
-
-    if ( !xKey.is() )
-        return sal_False;
-
-    sal_Bool bSuccess = sal_True;
-
-    for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
-    {
-        try
-        {
-            xKey->createKey( rServiceNames[ n ] );
-        }
-        catch ( ::css::registry::InvalidRegistryException const & )
-        {
-            bSuccess = sal_False;
-            break;
-        }
-    }
-    return bSuccess;
-}
 // C functions to implement this as a component
 
 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
@@ -534,21 +491,6 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnviron
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-/**
- * This function creates an implementation section in the registry and another subkey
- * for each supported service.
- * @param pServiceManager generic uno interface providing a service manager
- * @param pRegistryKey generic uno interface providing registry key to write
- */
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
-    return pRegistryKey &&
-    writeInfo (pRegistryKey,
-        OTempFileService::getImplementationName_Static(),
-        OTempFileService::getSupportedServiceNames_Static() );
-}
-
-
 /**
  * This function is called to get service factories for an implementation.
  * @param pImplName name of implementation
diff --git a/unotools/util/makefile.mk b/unotools/util/makefile.mk
index 8e725d2de2fa..343e56f04169 100644
--- a/unotools/util/makefile.mk
+++ b/unotools/util/makefile.mk
@@ -94,3 +94,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
     @echo UpdateToConfig				>> $@
         @echo _Impl >> $@
 
+
+ALLTAR : $(MISC)/utl.component
+
+$(MISC)/utl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        utl.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt utl.component
diff --git a/unotools/util/utl.component b/unotools/util/utl.component
new file mode 100644
index 000000000000..8c8198741f55
--- /dev/null
+++ b/unotools/util/utl.component
@@ -0,0 +1,34 @@
+
+
+
+
+  
+    
+  
+
diff --git a/vcl/aqua/source/dtrans/aqua_service.cxx b/vcl/aqua/source/dtrans/aqua_service.cxx
index 571bea2e554f..57ef1f11175c 100644
--- a/vcl/aqua/source/dtrans/aqua_service.cxx
+++ b/vcl/aqua/source/dtrans/aqua_service.cxx
@@ -58,28 +58,6 @@ void SAL_CALL component_getImplementationEnvironment(
     *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
 }
 
-sal_Bool SAL_CALL component_writeInfo( void* pServiceManager, void* pRegistryKey )
-{
-    sal_Bool bRetVal = sal_False;
-
-    if ( pRegistryKey )
-    {
-        try
-        {
-            Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
-            pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( AQUA_CLIPBOARD_REGKEY_NAME ) ) );
-            bRetVal = sal_True;
-        }
-        catch( InvalidRegistryException& )
-        {
-            OSL_ENSURE(sal_False, "InvalidRegistryException caught");
-            bRetVal = sal_False;
-        }
-    }
-
-    return bRetVal;
-}
-
 void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* pRegistryKey )
 {
     void* pRet = 0;
diff --git a/vcl/prj/d.lst b/vcl/prj/d.lst
index 38c025b5a5af..77f7f84ebccd 100644
--- a/vcl/prj/d.lst
+++ b/vcl/prj/d.lst
@@ -153,3 +153,4 @@ mkdir: %_DEST%\inc%_EXT%\vcl
 ..\inc\vcl\helper.hxx %_DEST%\inc%_EXT%\vcl\helper.hxx
 ..\inc\vcl\strhelper.hxx %_DEST%\inc%_EXT%\vcl\strhelper.hxx
 ..\inc\vcl\lazydelete.hxx %_DEST%\inc%_EXT%\vcl\lazydelete.hxx
+..\%__SRC%\misc\vcl.component %_DEST%\xml%_EXT%\vcl.component
diff --git a/vcl/source/components/factory.cxx b/vcl/source/components/factory.cxx
index 6bed493cacde..c4debea79001 100644
--- a/vcl/source/components/factory.cxx
+++ b/vcl/source/components/factory.cxx
@@ -84,62 +84,6 @@ extern "C" {
         *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
     }
 
-    VCL_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pXUnoKey )
-    {
-        if( pXUnoKey )
-        {
-            try
-            {
-                Reference< ::com::sun::star::registry::XRegistryKey > xKey( reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >( pXUnoKey ) );
-
-                OUStringBuffer aImplName(64);
-                aImplName.appendAscii( "/" );
-                aImplName.append( vcl_session_getImplementationName() );
-                aImplName.appendAscii( "/UNO/SERVICES/" );
-                aImplName.append( vcl_session_getSupportedServiceNames()[0] );
-                xKey->createKey( aImplName.makeStringAndClear() );
-
-                aImplName.appendAscii( "/" );
-                aImplName.append( vcl::DisplayAccess_getImplementationName() );
-                aImplName.appendAscii( "/UNO/SERVICES/" );
-                aImplName.append( vcl::DisplayAccess_getSupportedServiceNames()[0] );
-                xKey->createKey( aImplName.makeStringAndClear() );
-
-                aImplName.appendAscii( "/" );
-                aImplName.append( vcl::FontIdentificator_getImplementationName() );
-                aImplName.appendAscii( "/UNO/SERVICES/" );
-                aImplName.append( vcl::FontIdentificator_getSupportedServiceNames()[0] );
-                xKey->createKey( aImplName.makeStringAndClear() );
-
-                #if defined UNX
-                aImplName.appendAscii( "/" );
-                aImplName.append( vcl::Clipboard_getImplementationName() );
-                aImplName.appendAscii( "/UNO/SERVICES/" );
-                aImplName.append( vcl::Clipboard_getSupportedServiceNames()[0] );
-                xKey->createKey( aImplName.makeStringAndClear() );
-
-                aImplName.appendAscii( "/" );
-                aImplName.append( vcl::DragSource_getImplementationName() );
-                aImplName.appendAscii( "/UNO/SERVICES/" );
-                aImplName.append( vcl::DragSource_getSupportedServiceNames()[0] );
-                xKey->createKey( aImplName.makeStringAndClear() );
-
-                aImplName.appendAscii( "/" );
-                aImplName.append( vcl::DropTarget_getImplementationName() );
-                aImplName.appendAscii( "/UNO/SERVICES/" );
-                aImplName.append( vcl::DropTarget_getSupportedServiceNames()[0] );
-                xKey->createKey( aImplName.makeStringAndClear() );
-                #endif
-
-                return sal_True;
-            }
-            catch( ::com::sun::star::registry::InvalidRegistryException& )
-            {
-            }
-        }
-        return sal_False;
-    }
-
     VCL_DLLPUBLIC void* SAL_CALL component_getFactory(
         const sal_Char* pImplementationName,
         void* pXUnoSMgr,
diff --git a/vcl/util/makefile.mk b/vcl/util/makefile.mk
index 04bc3f13ce4d..13dd5ce5fdcb 100644
--- a/vcl/util/makefile.mk
+++ b/vcl/util/makefile.mk
@@ -464,3 +464,16 @@ SHL6STDLIBS+= $(XRANDR_LIBS)
 
 .INCLUDE :  target.mk
 
+ALLTAR : $(MISC)/vcl.component
+
+.IF "$(OS)" == "MACOSX"
+my_platform = .macosx
+.ELIF "$(OS)" == "WNT"
+my_platform = .windows
+.END
+
+$(MISC)/vcl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+        vcl.component
+    $(XSLTPROC) --nonet --stringparam uri \
+        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+        $(SOLARENV)/bin/createcomponent.xslt vcl$(my_platform).component
diff --git a/vcl/util/vcl.component b/vcl/util/vcl.component
new file mode 100644
index 000000000000..da20fc916c32
--- /dev/null
+++ b/vcl/util/vcl.component
@@ -0,0 +1,49 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+
diff --git a/vcl/util/vcl.macosx.component b/vcl/util/vcl.macosx.component
new file mode 100644
index 000000000000..3aabcd8c7050
--- /dev/null
+++ b/vcl/util/vcl.macosx.component
@@ -0,0 +1,49 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+
diff --git a/vcl/util/vcl.windows.component b/vcl/util/vcl.windows.component
new file mode 100644
index 000000000000..72f7ace9f251
--- /dev/null
+++ b/vcl/util/vcl.windows.component
@@ -0,0 +1,40 @@
+
+
+
+
+  
+    
+  
+  
+    
+  
+  
+    
+  
+
diff --git a/vcl/workben/makefile.mk b/vcl/workben/makefile.mk
index 67c0289cc24f..e9841b8bf6f4 100644
--- a/vcl/workben/makefile.mk
+++ b/vcl/workben/makefile.mk
@@ -34,6 +34,8 @@ TARGETTYPE=GUI
 
 ENABLE_EXCEPTIONS=TRUE
 
+my_components = i18npool i18nsearch
+
 # --- Settings -----------------------------------------------------
 
 .INCLUDE :	settings.mk
@@ -136,16 +138,19 @@ APP5STDLIBS+=-lsocket
 .ENDIF
 
 .INCLUDE :	target.mk
-.IF "$(L10N_framework)"==""
 
-ALLTAR : $(BIN)$/applicat.rdb
+ALLTAR : $(BIN)/applicat.rdb $(BIN)/types.rdb
 
+$(BIN)/applicat.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
+        $(MISC)/applicat.input $(my_components:^"$(SOLARXMLDIR)/":+".component")
+    $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+        $(SOLARENV)/bin/packcomponents.xslt $(MISC)/applicat.input
 
-$(BIN)$/applicat.rdb : makefile.mk $(UNOUCRRDB)
-    rm -f $@
-    $(GNUCOPY) $(UNOUCRRDB) $@
-     cd $(BIN) && \
-         $(REGCOMP) -register -r applicat.rdb \
-             -c i18nsearch.uno$(DLLPOST) \
-             -c i18npool.uno$(DLLPOST)
-.ENDIF
+$(MISC)/applicat.input .ERRREMOVE :
+    - $(RM) $@
+    echo \
+        '$(my_components:^"":+".component")' \
+        > $@
+
+$(BIN)/types.rdb : $(SOLARBINDIR)/types.rdb
+    $(COPY) $< $@
diff --git a/vcl/workben/svdem.cxx b/vcl/workben/svdem.cxx
index 5822f4024a59..297660d4b8df 100644
--- a/vcl/workben/svdem.cxx
+++ b/vcl/workben/svdem.cxx
@@ -55,7 +55,7 @@ SAL_IMPLEMENT_MAIN()
     tools::extendApplicationEnvironment();
 
     Reference< XMultiServiceFactory > xMS;
-    xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
+    xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "types.rdb" ) ), rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
 
     InitVCL( xMS );
     ::Main();
diff --git a/vcl/workben/svptest.cxx b/vcl/workben/svptest.cxx
index cc7c0f2b0cce..8f901d1c200b 100644
--- a/vcl/workben/svptest.cxx
+++ b/vcl/workben/svptest.cxx
@@ -61,7 +61,7 @@ SAL_IMPLEMENT_MAIN()
     tools::extendApplicationEnvironment();
 
     Reference< XMultiServiceFactory > xMS;
-    xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
+    xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "types.rdb" ) ), rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
 
     InitVCL( xMS );
     ::Main();
diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx
index 41ca76144e5c..dafd546b3d68 100644
--- a/vcl/workben/vcldemo.cxx
+++ b/vcl/workben/vcldemo.cxx
@@ -60,7 +60,7 @@ SAL_IMPLEMENT_MAIN()
     tools::extendApplicationEnvironment();
 
     Reference< XMultiServiceFactory > xMS;
-    xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
+    xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "types.rdb" ) ), rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
 
     InitVCL( xMS );
     ::Main();
-- 
cgit v1.2.3