1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2011 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 #include "sal/config.h" 29 30 #include "com/sun/star/uno/Reference.hxx" 31 #include "com/sun/star/uno/RuntimeException.hpp" 32 #include "com/sun/star/uno/XInterface.hpp" 33 #include "rtl/ustring.h" 34 #include "rtl/ustring.hxx" 35 #include "uno/current_context.h" 36 #include "uno/dispatcher.hxx" 37 #include "uno/lbnames.h" 38 39 #include "currentcontext.hxx" 40 41 namespace binaryurp { 42 43 namespace { 44 45 namespace css = com::sun::star; 46 47 } 48 49 namespace current_context { 50 51 css::uno::UnoInterfaceReference get() { 52 css::uno::UnoInterfaceReference cc; 53 if (!uno_getCurrentContext( 54 reinterpret_cast< void ** >(&cc.m_pUnoI), 55 rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)).pData, 0)) 56 { 57 throw css::uno::RuntimeException( 58 rtl::OUString( 59 RTL_CONSTASCII_USTRINGPARAM("uno_getCurrentContext failed")), 60 css::uno::Reference< css::uno::XInterface >()); 61 } 62 return cc; 63 } 64 65 void set(css::uno::UnoInterfaceReference const & value) { 66 css::uno::UnoInterfaceReference cc(value); 67 if (!uno_setCurrentContext( 68 cc.m_pUnoI, 69 rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)).pData, 0)) 70 { 71 throw css::uno::RuntimeException( 72 rtl::OUString( 73 RTL_CONSTASCII_USTRINGPARAM("uno_setCurrentContext failed")), 74 css::uno::Reference< css::uno::XInterface >()); 75 } 76 } 77 78 } 79 80 } 81