Files
libreoffice/sw/source/ui/uno/unofreg.cxx
2011-07-15 16:42:23 +02:00

390 lines
21 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
#include "SwXFilterOptions.hxx"
#include "sal/types.h"
#include <osl/diagnose.h>
#include <uno/lbnames.h>
#include <cppuhelper/factory.hxx>
#include <sfx2/sfxmodelfactory.hxx>
#ifndef INCLUDED_STRING_H
#include <string.h>
#define INCLUDED_STRING_H
#endif
using namespace ::com::sun::star;
using namespace ::com::sun::star::lang;
using ::rtl::OUString;
// module
extern uno::Sequence< OUString > SAL_CALL SwUnoModule_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwUnoModule_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwUnoModule_createInstance( const uno::Reference< XMultiServiceFactory > &rSMgr ) throw( uno::Exception );
// writer documents
extern uno::Sequence< OUString > SAL_CALL SwTextDocument_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwTextDocument_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwTextDocument_createInstance( const uno::Reference< XMultiServiceFactory > &rSMgr, const sal_uInt64 _nCreationFlags ) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwWebDocument_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwWebDocument_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwWebDocument_createInstance( const uno::Reference< XMultiServiceFactory > &rSMgr ) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwGlobalDocument_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwGlobalDocument_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwGlobalDocument_createInstance( const uno::Reference< XMultiServiceFactory > &rSMgr ) throw( uno::Exception );
// xml import
extern uno::Sequence< OUString > SAL_CALL SwXMLImport_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLImport_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLImport_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLImportStyles_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLImportStyles_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLImportStyles_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLImportContent_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLImportContent_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLImportContent_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLImportMeta_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLImportMeta_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLImportMeta_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLImportSettings_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLImportSettings_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLImportSettings_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
// xml export (OOo)
extern uno::Sequence< OUString > SAL_CALL SwXMLExportOOO_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportOOO_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportOOO_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLExportContentOOO_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportContentOOO_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportContentOOO_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLExportStylesOOO_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportStylesOOO_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportStylesOOO_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLExportMetaOOO_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportMetaOOO_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportMetaOOO_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLExportSettingsOOO_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportSettingsOOO_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportSettingsOOO_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
// xml export (OASIS)
extern uno::Sequence< OUString > SAL_CALL SwXMLExport_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExport_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExport_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLExportContent_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportContent_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportContent_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLExportStyles_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportStyles_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportStyles_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLExportMeta_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportMeta_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportMeta_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMLExportSettings_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMLExportSettings_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMLExportSettings_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
//API objects
extern uno::Sequence< OUString > SAL_CALL SwXAutoTextContainer_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXAutoTextContainer_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXAutoTextContainer_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXModule_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXModule_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXModule_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMailMerge_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMailMerge_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMailMerge_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
extern uno::Sequence< OUString > SAL_CALL SwXMailMerge_getSupportedServiceNames() throw();
extern OUString SAL_CALL SwXMailMerge_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL SwXMailMerge_createInstance(const uno::Reference< XMultiServiceFactory > & rSMgr) throw( uno::Exception );
// Layout dump filter
extern uno::Sequence< OUString > SAL_CALL LayoutDumpFilter_getSupportedServiceNames() throw();
extern OUString SAL_CALL LayoutDumpFilter_getImplementationName() throw();
extern uno::Reference< uno::XInterface > SAL_CALL LayoutDumpFilter_createInstance( const uno::Reference< XMultiServiceFactory > &rSMgr ) throw( uno::Exception );
// #i73788#
#include "cppuhelper/implementationentry.hxx"
namespace comp_FinalThreadManager {
// component and service helper functions:
::rtl::OUString SAL_CALL _getImplementationName();
com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL _getSupportedServiceNames();
com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL _create(
com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > const & context );
}
#ifdef __cplusplus
extern "C"
{
#endif
static ::cppu::ImplementationEntry const entries[] = {
{ &comp_FinalThreadManager::_create,
&comp_FinalThreadManager::_getImplementationName,
&comp_FinalThreadManager::_getSupportedServiceNames,
&::cppu::createSingleComponentFactory, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};
SAL_DLLPUBLIC_EXPORT void * SAL_CALL sw_component_getFactory(
const sal_Char * pImplName,
void * pServiceManager,
void * pRegistryKey )
{
void * pRet = 0;
if( pServiceManager )
{
uno::Reference< XMultiServiceFactory > xMSF(
reinterpret_cast< XMultiServiceFactory * >( pServiceManager ) );
uno::Reference< XSingleServiceFactory > xFactory;
const sal_Int32 nImplNameLen = strlen( pImplName );
if( SwXMLImport_getImplementationName().equalsAsciiL( pImplName,
nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLImport_getImplementationName(),
SwXMLImport_createInstance,
SwXMLImport_getSupportedServiceNames() );
}
else if( SwXMLImportStyles_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLImportStyles_getImplementationName(),
SwXMLImportStyles_createInstance,
SwXMLImportStyles_getSupportedServiceNames() );
}
else if( SwXMLImportContent_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLImportContent_getImplementationName(),
SwXMLImportContent_createInstance,
SwXMLImportContent_getSupportedServiceNames() );
}
else if( SwXMLImportMeta_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLImportMeta_getImplementationName(),
SwXMLImportMeta_createInstance,
SwXMLImportMeta_getSupportedServiceNames() );
}
else if( SwXMLImportSettings_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLImportSettings_getImplementationName(),
SwXMLImportSettings_createInstance,
SwXMLImportSettings_getSupportedServiceNames() );
}
else if( SwXMLExportOOO_getImplementationName().equalsAsciiL( pImplName,
nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportOOO_getImplementationName(),
SwXMLExportOOO_createInstance,
SwXMLExportOOO_getSupportedServiceNames() );
}
else if( SwXMLExportStylesOOO_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportStylesOOO_getImplementationName(),
SwXMLExportStylesOOO_createInstance,
SwXMLExportStylesOOO_getSupportedServiceNames() );
}
else if( SwXMLExportContentOOO_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportContentOOO_getImplementationName(),
SwXMLExportContentOOO_createInstance,
SwXMLExportContentOOO_getSupportedServiceNames() );
}
else if( SwXMLExportMetaOOO_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportMetaOOO_getImplementationName(),
SwXMLExportMetaOOO_createInstance,
SwXMLExportMetaOOO_getSupportedServiceNames() );
}
else if( SwXMLExportSettingsOOO_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportSettingsOOO_getImplementationName(),
SwXMLExportSettingsOOO_createInstance,
SwXMLExportSettingsOOO_getSupportedServiceNames() );
}
else if( SwXMLExport_getImplementationName().equalsAsciiL( pImplName,
nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExport_getImplementationName(),
SwXMLExport_createInstance,
SwXMLExport_getSupportedServiceNames() );
}
else if( SwXMLExportStyles_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportStyles_getImplementationName(),
SwXMLExportStyles_createInstance,
SwXMLExportStyles_getSupportedServiceNames() );
}
else if( SwXMLExportContent_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportContent_getImplementationName(),
SwXMLExportContent_createInstance,
SwXMLExportContent_getSupportedServiceNames() );
}
else if( SwXMLExportMeta_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportMeta_getImplementationName(),
SwXMLExportMeta_createInstance,
SwXMLExportMeta_getSupportedServiceNames() );
}
else if( SwXMLExportSettings_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMLExportSettings_getImplementationName(),
SwXMLExportSettings_createInstance,
SwXMLExportSettings_getSupportedServiceNames() );
}
else if( SwXAutoTextContainer_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXAutoTextContainer_getImplementationName(),
SwXAutoTextContainer_createInstance,
SwXAutoTextContainer_getSupportedServiceNames() );
}
else if( SwXModule_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXModule_getImplementationName(),
SwXModule_createInstance,
SwXModule_getSupportedServiceNames() );
}
else if( SwXMailMerge_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXMailMerge_getImplementationName(),
SwXMailMerge_createInstance,
SwXMailMerge_getSupportedServiceNames() );
}
else if( SwXFilterOptions::getImplementationName_Static().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwXFilterOptions::getImplementationName_Static(),
SwXFilterOptions_createInstance,
SwXFilterOptions::getSupportedServiceNames_Static() );
}
else if( SwTextDocument_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::sfx2::createSfxModelFactory( xMSF,
SwTextDocument_getImplementationName(),
SwTextDocument_createInstance,
SwTextDocument_getSupportedServiceNames() );
}
else if( SwWebDocument_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwWebDocument_getImplementationName(),
SwWebDocument_createInstance,
SwWebDocument_getSupportedServiceNames() );
}
else if( SwGlobalDocument_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwGlobalDocument_getImplementationName(),
SwGlobalDocument_createInstance,
SwGlobalDocument_getSupportedServiceNames() );
}
else if( SwUnoModule_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
SwUnoModule_getImplementationName(),
SwUnoModule_createInstance,
SwUnoModule_getSupportedServiceNames() );
}
else if( LayoutDumpFilter_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
xFactory = ::cppu::createSingleFactory( xMSF,
LayoutDumpFilter_getImplementationName(),
LayoutDumpFilter_createInstance,
LayoutDumpFilter_getSupportedServiceNames() );
}
else if( comp_FinalThreadManager::_getImplementationName().equalsAsciiL(
pImplName, nImplNameLen ) )
{
pRet = ::cppu::component_getFactoryHelper(
pImplName, pServiceManager, pRegistryKey, entries);
}
if( xFactory.is())
{
xFactory->acquire();
pRet = xFactory.get();
}
}
return pRet;
}
#ifdef __cplusplus
}
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */