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