Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <com/sun/star/registry/XRegistryKey.hpp>
21 :
22 : #include "sddll.hxx"
23 :
24 : #include <cppuhelper/factory.hxx>
25 : #include <sfx2/sfxmodelfactory.hxx>
26 : #include "osl/diagnose.h"
27 : #include "sal/types.h"
28 :
29 : #include <string.h>
30 :
31 : #include <boost/unordered_map.hpp>
32 : #include <boost/shared_ptr.hpp>
33 :
34 : using namespace com::sun::star;
35 :
36 :
37 : // Forward declarations of the factories.
38 :
39 : extern uno::Reference< uno::XInterface > SAL_CALL SdDrawingDocument_createInstance( const uno::Reference< lang::XMultiServiceFactory > & _rxFactory, const sal_uInt64 _nCreationFlags );
40 : extern OUString SdDrawingDocument_getImplementationName() throw( uno::RuntimeException );
41 : extern uno::Sequence< OUString > SAL_CALL SdDrawingDocument_getSupportedServiceNames() throw( uno::RuntimeException );
42 :
43 : extern uno::Reference< uno::XInterface > SAL_CALL SdPresentationDocument_createInstance( const uno::Reference< lang::XMultiServiceFactory > & _rxFactory, const sal_uInt64 _nCreationFlags );
44 : extern OUString SdPresentationDocument_getImplementationName() throw( uno::RuntimeException );
45 : extern uno::Sequence< OUString > SAL_CALL SdPresentationDocument_getSupportedServiceNames() throw( uno::RuntimeException );
46 :
47 : extern uno::Reference< uno::XInterface > SAL_CALL SdHtmlOptionsDialog_CreateInstance( const uno::Reference< lang::XMultiServiceFactory > & _rxFactory );
48 : extern OUString SdHtmlOptionsDialog_getImplementationName() throw( uno::RuntimeException );
49 : extern uno::Sequence< OUString > SAL_CALL SdHtmlOptionsDialog_getSupportedServiceNames() throw( uno::RuntimeException );
50 :
51 : extern uno::Reference< uno::XInterface > SAL_CALL SdUnoModule_createInstance( const uno::Reference< lang::XMultiServiceFactory > & _rxFactory );
52 : extern OUString SdUnoModule_getImplementationName() throw( uno::RuntimeException );
53 : extern uno::Sequence< OUString > SAL_CALL SdUnoModule_getSupportedServiceNames() throw( uno::RuntimeException );
54 :
55 : namespace sd
56 : {
57 : extern uno::Reference< uno::XInterface > SAL_CALL RandomNode_createInstance( const uno::Reference< lang::XMultiServiceFactory > & _rxFactory );
58 : extern OUString RandomNode__getImplementationName() throw( uno::RuntimeException );
59 : extern uno::Sequence< OUString > SAL_CALL RandomNode_getSupportedServiceNames() throw( uno::RuntimeException );
60 :
61 : extern uno::Reference< uno::XInterface > SAL_CALL SlideLayoutController_createInstance( const uno::Reference< lang::XMultiServiceFactory > & _rxFactory );
62 : extern OUString SlideLayoutController_getImplementationName() throw( uno::RuntimeException );
63 : extern uno::Sequence< OUString > SlideLayoutController_getSupportedServiceNames() throw( uno::RuntimeException );
64 :
65 : extern uno::Reference< uno::XInterface > SAL_CALL InsertSlideController_createInstance( const uno::Reference< lang::XMultiServiceFactory > & _rxFactory );
66 : extern OUString InsertSlideController_getImplementationName() throw( uno::RuntimeException );
67 : extern uno::Sequence< OUString > InsertSlideController_getSupportedServiceNames() throw( uno::RuntimeException );
68 : }
69 :
70 : namespace sd { namespace framework {
71 :
72 : extern uno::Reference<uno::XInterface> SAL_CALL Configuration_createInstance(
73 : const uno::Reference<uno::XComponentContext>& rxContext)
74 : throw(uno::Exception);
75 : extern OUString Configuration_getImplementationName(void) throw (uno::RuntimeException);
76 : extern uno::Sequence<OUString> SAL_CALL Configuration_getSupportedServiceNames (void)
77 : throw (uno::RuntimeException);
78 :
79 : extern uno::Reference<uno::XInterface> SAL_CALL ConfigurationController_createInstance(
80 : const uno::Reference<uno::XComponentContext>& rxContext)
81 : throw(uno::Exception);
82 : extern OUString ConfigurationController_getImplementationName(void) throw (uno::RuntimeException);
83 : extern uno::Sequence<OUString> SAL_CALL ConfigurationController_getSupportedServiceNames (void)
84 : throw (uno::RuntimeException);
85 :
86 : extern uno::Reference<uno::XInterface> SAL_CALL ModuleController_createInstance(
87 : const uno::Reference<uno::XComponentContext>& rxContext)
88 : throw(uno::Exception);
89 : extern OUString ModuleController_getImplementationName(void) throw (uno::RuntimeException);
90 : extern uno::Sequence<OUString> SAL_CALL ModuleController_getSupportedServiceNames (void)
91 : throw (uno::RuntimeException);
92 :
93 : extern uno::Reference<uno::XInterface> SAL_CALL BasicPaneFactory_createInstance(
94 : const uno::Reference<uno::XComponentContext>& rxContext)
95 : throw(uno::Exception);
96 : extern OUString BasicPaneFactory_getImplementationName(void) throw (uno::RuntimeException);
97 : extern uno::Sequence<OUString> SAL_CALL BasicPaneFactory_getSupportedServiceNames (void)
98 : throw (uno::RuntimeException);
99 :
100 : extern uno::Reference<uno::XInterface> SAL_CALL BasicToolBarFactory_createInstance(
101 : const uno::Reference<uno::XComponentContext>& rxContext)
102 : throw(uno::Exception);
103 : extern OUString BasicToolBarFactory_getImplementationName(void) throw (uno::RuntimeException);
104 : extern uno::Sequence<OUString> SAL_CALL BasicToolBarFactory_getSupportedServiceNames (void)
105 : throw (uno::RuntimeException);
106 :
107 : extern uno::Reference<uno::XInterface> SAL_CALL BasicViewFactory_createInstance(
108 : const uno::Reference<uno::XComponentContext>& rxContext)
109 : throw(uno::Exception);
110 : extern OUString BasicViewFactory_getImplementationName(void) throw (uno::RuntimeException);
111 : extern uno::Sequence<OUString> SAL_CALL BasicViewFactory_getSupportedServiceNames (void)
112 : throw (uno::RuntimeException);
113 :
114 : extern uno::Reference<uno::XInterface> SAL_CALL ResourceId_createInstance(
115 : const uno::Reference<uno::XComponentContext>& rxContext)
116 : throw(uno::Exception);
117 : extern OUString ResourceId_getImplementationName(void) throw (uno::RuntimeException);
118 : extern uno::Sequence<OUString> SAL_CALL ResourceId_getSupportedServiceNames (void)
119 : throw (uno::RuntimeException);
120 :
121 : extern uno::Reference<uno::XInterface> SAL_CALL PresentationFactoryProvider_createInstance(
122 : const uno::Reference<uno::XComponentContext>& rxContext)
123 : throw(uno::Exception);
124 : extern OUString PresentationFactoryProvider_getImplementationName(void)
125 : throw (uno::RuntimeException);
126 : extern uno::Sequence<OUString> SAL_CALL PresentationFactoryProvider_getSupportedServiceNames (void)
127 : throw (uno::RuntimeException);
128 : } }
129 :
130 : namespace sd { namespace sidebar {
131 :
132 : extern uno::Reference<uno::XInterface> SAL_CALL PanelFactory_createInstance(
133 : const uno::Reference<uno::XComponentContext>& rxContext)
134 : throw(uno::Exception);
135 : extern OUString PanelFactory_getImplementationName(void) throw (uno::RuntimeException);
136 : extern uno::Sequence<OUString> SAL_CALL PanelFactory_getSupportedServiceNames (void)
137 : throw (uno::RuntimeException);
138 :
139 : } }
140 :
141 : namespace sd { namespace presenter {
142 : extern uno::Reference<uno::XInterface> SAL_CALL SlideRenderer_createInstance(
143 : const uno::Reference<uno::XComponentContext>& rxContext)
144 : throw(uno::Exception);
145 : extern OUString SlideRenderer_getImplementationName(void)
146 : throw (uno::RuntimeException);
147 : extern uno::Sequence<OUString> SAL_CALL SlideRenderer_getSupportedServiceNames (void)
148 : throw (uno::RuntimeException);
149 :
150 : extern uno::Reference<uno::XInterface> SAL_CALL PresenterCanvas_createInstance(
151 : const uno::Reference<uno::XComponentContext>& rxContext)
152 : throw(uno::Exception);
153 : extern OUString PresenterCanvas_getImplementationName(void)
154 : throw (uno::RuntimeException);
155 : extern uno::Sequence<OUString> SAL_CALL PresenterCanvas_getSupportedServiceNames (void)
156 : throw (uno::RuntimeException);
157 :
158 : extern uno::Reference<uno::XInterface> SAL_CALL PresenterTextViewService_createInstance(
159 : const uno::Reference<uno::XComponentContext>& rxContext)
160 : throw(uno::Exception);
161 : extern OUString PresenterTextViewService_getImplementationName(void)
162 : throw (uno::RuntimeException);
163 : extern uno::Sequence<OUString> SAL_CALL PresenterTextViewService_getSupportedServiceNames (void)
164 : throw (uno::RuntimeException);
165 :
166 : extern uno::Reference<uno::XInterface> SAL_CALL PresenterHelperService_createInstance(
167 : const uno::Reference<uno::XComponentContext>& rxContext)
168 : throw(uno::Exception);
169 : extern OUString PresenterHelperService_getImplementationName(void)
170 : throw (uno::RuntimeException);
171 : extern uno::Sequence<OUString> SAL_CALL PresenterHelperService_getSupportedServiceNames (void)
172 : throw (uno::RuntimeException);
173 :
174 : extern uno::Reference<uno::XInterface> SAL_CALL PresenterPreviewCache_createInstance(
175 : const uno::Reference<uno::XComponentContext>& rxContext)
176 : throw(uno::Exception);
177 : extern OUString PresenterPreviewCache_getImplementationName(void)
178 : throw (uno::RuntimeException);
179 : extern uno::Sequence<OUString> SAL_CALL PresenterPreviewCache_getSupportedServiceNames (void)
180 : throw (uno::RuntimeException);
181 : } }
182 :
183 :
184 : namespace sd { namespace slidesorter {
185 : extern uno::Reference<uno::XInterface> SAL_CALL SlideSorterService_createInstance(
186 : const uno::Reference<uno::XComponentContext>& rxContext)
187 : throw(uno::Exception);
188 : extern OUString SlideSorterService_getImplementationName(void)
189 : throw (uno::RuntimeException);
190 : extern uno::Sequence<OUString> SAL_CALL SlideSorterService_getSupportedServiceNames (void)
191 : throw (uno::RuntimeException);
192 : } }
193 :
194 : using namespace ::sd;
195 : using namespace ::sd::framework;
196 : using namespace ::sd::presenter;
197 : using namespace ::sd::slidesorter;
198 : using namespace ::sd::sidebar;
199 :
200 :
201 :
202 :
203 :
204 : // Declaration and initialization of a map from service names to locally
205 : // unique factory identifiers.
206 :
207 : enum FactoryId
208 : {
209 : SdDrawingDocumentFactoryId,
210 : SdPresentationDocumentFactoryId,
211 : SdHtmlOptionsDialogFactoryId,
212 : SdUnoModuleFactoryId,
213 : RandomNodeFactoryId,
214 :
215 : ConfigurationFactoryId,
216 : ConfigurationControllerFactoryId,
217 : ModuleControllerFactoryId,
218 : BasicPaneFactoryFactoryId,
219 : BasicToolBarFactoryFactoryId,
220 : BasicViewFactoryFactoryId,
221 : PanelFactoryFactoryId,
222 : ResourceIdFactoryId,
223 : PresentationFactoryProviderFactoryId,
224 : SlideRendererFactoryId,
225 : PresenterCanvasFactoryId,
226 : PresenterTextViewServiceFactoryId,
227 : PresenterHelperServiceFactoryId,
228 : PresenterPreviewCacheFactoryId,
229 : SlideSorterServiceFactoryId,
230 : SlideLayoutControllerFactoryId,
231 : InsertSlideControllerFactoryId,
232 : };
233 : typedef ::boost::unordered_map<OUString, FactoryId, OUStringHash> FactoryMap;
234 :
235 :
236 : namespace {
237 0 : static ::boost::shared_ptr<FactoryMap> spFactoryMap;
238 0 : ::boost::shared_ptr<FactoryMap> GetFactoryMap (void)
239 : {
240 0 : if (spFactoryMap.get() == NULL)
241 : {
242 0 : spFactoryMap.reset(new FactoryMap);
243 0 : (*spFactoryMap)[SdDrawingDocument_getImplementationName()] = SdDrawingDocumentFactoryId;
244 0 : (*spFactoryMap)[SdPresentationDocument_getImplementationName()] = SdPresentationDocumentFactoryId;
245 0 : (*spFactoryMap)[SdHtmlOptionsDialog_getImplementationName()] = SdHtmlOptionsDialogFactoryId;
246 0 : (*spFactoryMap)[SdUnoModule_getImplementationName()] = SdUnoModuleFactoryId;
247 0 : (*spFactoryMap)[RandomNode__getImplementationName()] = RandomNodeFactoryId;
248 0 : (*spFactoryMap)[Configuration_getImplementationName()] = ConfigurationFactoryId;
249 0 : (*spFactoryMap)[ConfigurationController_getImplementationName()] = ConfigurationControllerFactoryId;
250 0 : (*spFactoryMap)[ModuleController_getImplementationName()] = ModuleControllerFactoryId;
251 0 : (*spFactoryMap)[BasicPaneFactory_getImplementationName()] = BasicPaneFactoryFactoryId;
252 0 : (*spFactoryMap)[BasicToolBarFactory_getImplementationName()] = BasicToolBarFactoryFactoryId;
253 0 : (*spFactoryMap)[BasicViewFactory_getImplementationName()] = BasicViewFactoryFactoryId;
254 0 : (*spFactoryMap)[sidebar::PanelFactory_getImplementationName()] = PanelFactoryFactoryId;
255 0 : (*spFactoryMap)[ResourceId_getImplementationName()] = ResourceIdFactoryId;
256 0 : (*spFactoryMap)[PresentationFactoryProvider_getImplementationName()] = PresentationFactoryProviderFactoryId;
257 0 : (*spFactoryMap)[SlideRenderer_getImplementationName()] = SlideRendererFactoryId;
258 0 : (*spFactoryMap)[PresenterCanvas_getImplementationName()] = PresenterCanvasFactoryId;
259 0 : (*spFactoryMap)[PresenterTextViewService_getImplementationName()] = PresenterTextViewServiceFactoryId;
260 0 : (*spFactoryMap)[PresenterHelperService_getImplementationName()] = PresenterHelperServiceFactoryId;
261 0 : (*spFactoryMap)[PresenterPreviewCache_getImplementationName()] = PresenterPreviewCacheFactoryId;
262 0 : (*spFactoryMap)[SlideSorterService_getImplementationName()] = SlideSorterServiceFactoryId;
263 0 : (*spFactoryMap)[SlideLayoutController_getImplementationName()] = SlideLayoutControllerFactoryId;
264 0 : (*spFactoryMap)[InsertSlideController_getImplementationName()] = InsertSlideControllerFactoryId;
265 : }
266 0 : return spFactoryMap;
267 : };
268 : } // end of anonymous namespace
269 :
270 :
271 : extern "C"
272 : {
273 :
274 0 : SAL_DLLPUBLIC_EXPORT void * SAL_CALL sd_component_getFactory(
275 : const sal_Char * pImplName,
276 : void * pServiceManager,
277 : void * )
278 : {
279 0 : void * pRet = 0;
280 :
281 0 : if( pServiceManager )
282 : {
283 0 : uno::Reference< lang::XMultiServiceFactory > xMSF( reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ) );
284 :
285 0 : uno::Reference<lang::XSingleServiceFactory> xFactory;
286 0 : uno::Reference<lang::XSingleComponentFactory> xComponentFactory;
287 :
288 0 : ::boost::shared_ptr<FactoryMap> pFactoryMap (GetFactoryMap());
289 0 : OUString sImplementationName (OUString::createFromAscii(pImplName));
290 0 : FactoryMap::const_iterator iFactory (pFactoryMap->find(sImplementationName));
291 0 : if (iFactory != pFactoryMap->end())
292 : {
293 0 : switch (iFactory->second)
294 : {
295 : case SdHtmlOptionsDialogFactoryId:
296 0 : xFactory = ::cppu::createSingleFactory(
297 : xMSF,
298 : SdHtmlOptionsDialog_getImplementationName(),
299 : SdHtmlOptionsDialog_CreateInstance,
300 0 : SdHtmlOptionsDialog_getSupportedServiceNames());
301 0 : break;
302 :
303 : case SdDrawingDocumentFactoryId:
304 0 : xFactory = ::sfx2::createSfxModelFactory(
305 : xMSF,
306 : SdDrawingDocument_getImplementationName(),
307 : SdDrawingDocument_createInstance,
308 0 : SdDrawingDocument_getSupportedServiceNames());
309 0 : break;
310 :
311 : case SdPresentationDocumentFactoryId:
312 0 : xFactory = ::sfx2::createSfxModelFactory(
313 : xMSF,
314 : SdPresentationDocument_getImplementationName(),
315 : SdPresentationDocument_createInstance,
316 0 : SdPresentationDocument_getSupportedServiceNames());
317 0 : break;
318 :
319 : case SdUnoModuleFactoryId:
320 0 : xFactory = ::cppu::createSingleFactory(
321 : xMSF,
322 : SdUnoModule_getImplementationName(),
323 : SdUnoModule_createInstance,
324 0 : SdUnoModule_getSupportedServiceNames());
325 0 : break;
326 :
327 : case RandomNodeFactoryId:
328 0 : xFactory = ::cppu::createSingleFactory(
329 : xMSF,
330 : sd::RandomNode__getImplementationName(),
331 : sd::RandomNode_createInstance,
332 0 : sd::RandomNode_getSupportedServiceNames());
333 0 : break;
334 :
335 : case ConfigurationFactoryId:
336 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
337 : sd::framework::Configuration_createInstance,
338 : sd::framework::Configuration_getImplementationName(),
339 0 : sd::framework::Configuration_getSupportedServiceNames());
340 0 : break;
341 :
342 : case ConfigurationControllerFactoryId:
343 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
344 : sd::framework::ConfigurationController_createInstance,
345 : sd::framework::ConfigurationController_getImplementationName(),
346 0 : sd::framework::ConfigurationController_getSupportedServiceNames());
347 0 : break;
348 :
349 : case ModuleControllerFactoryId:
350 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
351 : sd::framework::ModuleController_createInstance,
352 : sd::framework::ModuleController_getImplementationName(),
353 0 : sd::framework::ModuleController_getSupportedServiceNames());
354 0 : break;
355 :
356 : case BasicPaneFactoryFactoryId:
357 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
358 : sd::framework::BasicPaneFactory_createInstance,
359 : sd::framework::BasicPaneFactory_getImplementationName(),
360 0 : sd::framework::BasicPaneFactory_getSupportedServiceNames());
361 0 : break;
362 :
363 : case BasicToolBarFactoryFactoryId:
364 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
365 : sd::framework::BasicToolBarFactory_createInstance,
366 : sd::framework::BasicToolBarFactory_getImplementationName(),
367 0 : sd::framework::BasicToolBarFactory_getSupportedServiceNames());
368 0 : break;
369 :
370 : case BasicViewFactoryFactoryId:
371 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
372 : sd::framework::BasicViewFactory_createInstance,
373 : sd::framework::BasicViewFactory_getImplementationName(),
374 0 : sd::framework::BasicViewFactory_getSupportedServiceNames());
375 0 : break;
376 :
377 : case PanelFactoryFactoryId:
378 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
379 : sd::sidebar::PanelFactory_createInstance,
380 : sd::sidebar::PanelFactory_getImplementationName(),
381 0 : sd::sidebar::PanelFactory_getSupportedServiceNames());
382 0 : break;
383 :
384 : case ResourceIdFactoryId:
385 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
386 : sd::framework::ResourceId_createInstance,
387 : sd::framework::ResourceId_getImplementationName(),
388 0 : sd::framework::ResourceId_getSupportedServiceNames());
389 0 : break;
390 :
391 : case PresentationFactoryProviderFactoryId:
392 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
393 : sd::framework::PresentationFactoryProvider_createInstance,
394 : sd::framework::PresentationFactoryProvider_getImplementationName(),
395 0 : sd::framework::PresentationFactoryProvider_getSupportedServiceNames());
396 0 : break;
397 :
398 : case SlideRendererFactoryId:
399 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
400 : sd::presenter::SlideRenderer_createInstance,
401 : sd::presenter::SlideRenderer_getImplementationName(),
402 0 : sd::presenter::SlideRenderer_getSupportedServiceNames());
403 0 : break;
404 :
405 : case PresenterCanvasFactoryId:
406 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
407 : sd::presenter::PresenterCanvas_createInstance,
408 : sd::presenter::PresenterCanvas_getImplementationName(),
409 0 : sd::presenter::PresenterCanvas_getSupportedServiceNames());
410 0 : break;
411 :
412 : case PresenterTextViewServiceFactoryId:
413 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
414 : sd::presenter::PresenterTextViewService_createInstance,
415 : sd::presenter::PresenterTextViewService_getImplementationName(),
416 0 : sd::presenter::PresenterTextViewService_getSupportedServiceNames());
417 0 : break;
418 :
419 : case PresenterHelperServiceFactoryId:
420 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
421 : sd::presenter::PresenterHelperService_createInstance,
422 : sd::presenter::PresenterHelperService_getImplementationName(),
423 0 : sd::presenter::PresenterHelperService_getSupportedServiceNames());
424 0 : break;
425 :
426 : case PresenterPreviewCacheFactoryId:
427 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
428 : sd::presenter::PresenterPreviewCache_createInstance,
429 : sd::presenter::PresenterPreviewCache_getImplementationName(),
430 0 : sd::presenter::PresenterPreviewCache_getSupportedServiceNames());
431 0 : break;
432 :
433 : case SlideSorterServiceFactoryId:
434 0 : xComponentFactory = ::cppu::createSingleComponentFactory(
435 : sd::slidesorter::SlideSorterService_createInstance,
436 : sd::slidesorter::SlideSorterService_getImplementationName(),
437 0 : sd::slidesorter::SlideSorterService_getSupportedServiceNames());
438 0 : break;
439 :
440 : case SlideLayoutControllerFactoryId:
441 0 : xFactory = ::cppu::createSingleFactory(
442 : xMSF,
443 : sd::SlideLayoutController_getImplementationName(),
444 : sd::SlideLayoutController_createInstance,
445 0 : sd::SlideLayoutController_getSupportedServiceNames());
446 0 : break;
447 :
448 : case InsertSlideControllerFactoryId:
449 0 : xFactory = ::cppu::createSingleFactory(
450 : xMSF,
451 : sd::InsertSlideController_getImplementationName(),
452 : sd::InsertSlideController_createInstance,
453 0 : sd::InsertSlideController_getSupportedServiceNames());
454 : default:
455 0 : break;
456 : }
457 0 : if (xComponentFactory.is())
458 : {
459 0 : xComponentFactory->acquire();
460 0 : pRet = xComponentFactory.get();
461 : }
462 0 : else if (xFactory.is())
463 : {
464 0 : xFactory->acquire();
465 0 : pRet = xFactory.get();
466 : }
467 0 : }
468 : }
469 :
470 0 : if (pRet != NULL)
471 0 : SdDLL::Init();
472 0 : return pRet;
473 : }
474 :
475 0 : } // end of extern "C"
476 :
477 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|