1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #include <com/sun/star/registry/XRegistryKey.hpp> 25 #include <cppu/macros.hxx> 26 #include <cppuhelper/factory.hxx> 27 #include <rtl/ustring.hxx> 28 #include <sal/types.h> 29 #include <uno/environment.h> 30 31 #include "interactionhandler.hxx" 32 #include "requeststringresolver.hxx" 33 #include "passwordcontainer.hxx" 34 35 using namespace rtl; 36 using namespace com::sun::star::uno; 37 using namespace com::sun::star::lang; 38 using namespace com::sun::star::registry; 39 40 //============================================================================ 41 // 42 // component_getImplementationEnvironment 43 // 44 //============================================================================ 45 46 extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL 47 component_getImplementationEnvironment(sal_Char const ** pEnvTypeName, 48 uno_Environment **) 49 { 50 *pEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; 51 } 52 53 //============================================================================ 54 // 55 // component_getFactory 56 // 57 //============================================================================ 58 59 extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL 60 component_getFactory(sal_Char const * pImplName, 61 void * pServiceManager, 62 void *) 63 { 64 if (!pImplName) 65 return 0; 66 67 void * pRet = 0; 68 69 Reference< XMultiServiceFactory > xSMgr( 70 reinterpret_cast< XMultiServiceFactory * >( pServiceManager ) ); 71 Reference< XSingleServiceFactory > xFactory; 72 73 ////////////////////////////////////////////////////////////////////// 74 // UUI Interaction Handler. 75 ////////////////////////////////////////////////////////////////////// 76 77 if ( rtl_str_compare(pImplName, 78 UUIInteractionHandler::m_aImplementationName) 79 == 0) 80 { 81 xFactory = 82 cppu::createSingleFactory( 83 static_cast< XMultiServiceFactory * >(pServiceManager), 84 OUString::createFromAscii( 85 UUIInteractionHandler::m_aImplementationName), 86 &UUIInteractionHandler::createInstance, 87 UUIInteractionHandler::getSupportedServiceNames_static()); 88 } 89 90 ////////////////////////////////////////////////////////////////////// 91 // UUI Interaction Request String Resolver. 92 ////////////////////////////////////////////////////////////////////// 93 94 else if ( rtl_str_compare(pImplName, 95 UUIInteractionRequestStringResolver::m_aImplementationName) 96 == 0) 97 { 98 xFactory = 99 cppu::createSingleFactory( 100 static_cast< XMultiServiceFactory * >(pServiceManager), 101 OUString::createFromAscii( 102 UUIInteractionRequestStringResolver::m_aImplementationName), 103 &UUIInteractionRequestStringResolver::createInstance, 104 UUIInteractionRequestStringResolver::getSupportedServiceNames_static()); 105 } 106 107 ////////////////////////////////////////////////////////////////////// 108 // UUI Password Container Interaction Handler. 109 ////////////////////////////////////////////////////////////////////// 110 111 else if ( uui::PasswordContainerInteractionHandler::getImplementationName_Static(). 112 compareToAscii( pImplName ) == 0 ) 113 { 114 xFactory = 115 uui::PasswordContainerInteractionHandler::createServiceFactory( xSMgr ); 116 } 117 118 ////////////////////////////////////////////////////////////////////// 119 120 if ( xFactory.is() ) 121 { 122 xFactory->acquire(); 123 pRet = xFactory.get(); 124 } 125 126 return pRet; 127 } 128