xref: /aoo42x/main/filter/source/flash/swfuno.cxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_filter.hxx"
30 #include <stdio.h>
31 
32 #include <osl/mutex.hxx>
33 #include <osl/thread.h>
34 #include <cppuhelper/factory.hxx>
35 #include <com/sun/star/lang/XSingleServiceFactory.hpp>
36 
37 using namespace ::rtl;
38 using namespace ::cppu;
39 using namespace ::com::sun::star::uno;
40 using namespace ::com::sun::star::lang;
41 using namespace ::com::sun::star::registry;
42 
43 namespace swf {
44 extern OUString FlashExportFilter_getImplementationName() throw ( RuntimeException );
45 extern sal_Bool SAL_CALL FlashExportFilter_supportsService( const OUString& ServiceName ) throw ( RuntimeException );
46 extern Sequence< OUString > SAL_CALL FlashExportFilter_getSupportedServiceNames()  throw ( RuntimeException );
47 extern Reference< XInterface > SAL_CALL FlashExportFilter_createInstance( const Reference< XMultiServiceFactory > & rSMgr) throw ( Exception );
48 }
49 
50 extern rtl::OUString SWFDialog_getImplementationName () throw (com::sun::star::uno::RuntimeException);
51 extern com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL SWFDialog_getSupportedServiceNames() throw (com::sun::star::uno::RuntimeException);
52 extern com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL SWFDialog_createInstance( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( com::sun::star::uno::Exception );
53 
54 using namespace ::swf;
55 
56 extern "C"
57 {
58 //==================================================================================================
59 SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
60 	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ )
61 {
62 	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
63 }
64 
65 //==================================================================================================
66 SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
67 	const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
68 {
69 	void * pRet = 0;
70 
71 	if( pServiceManager )
72 	{
73 		Reference< XSingleServiceFactory > xFactory;
74 
75 		OUString implName = OUString::createFromAscii( pImplName );
76 		if ( implName.equals(FlashExportFilter_getImplementationName()) )
77 		{
78 			xFactory = createSingleFactory(
79 				reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
80 				OUString::createFromAscii( pImplName ),
81 				FlashExportFilter_createInstance, FlashExportFilter_getSupportedServiceNames() );
82 
83 		}
84 		else if ( implName.equals(SWFDialog_getImplementationName()) )
85 		{
86 			xFactory = createSingleFactory(
87 				reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
88 				OUString::createFromAscii( pImplName ),
89 				SWFDialog_createInstance, SWFDialog_getSupportedServiceNames() );
90 		}
91 
92 		if (xFactory.is())
93 		{
94 			xFactory->acquire();
95 			pRet = xFactory.get();
96 		}
97 	}
98 
99 	return pRet;
100 }
101 }
102