UDK 3.2.7 C/C++ API Reference
|
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 00002 /************************************************************************* 00003 * 00004 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 00005 * 00006 * Copyright 2000, 2010 Oracle and/or its affiliates. 00007 * 00008 * OpenOffice.org - a multi-platform office productivity suite 00009 * 00010 * This file is part of OpenOffice.org. 00011 * 00012 * OpenOffice.org is free software: you can redistribute it and/or modify 00013 * it under the terms of the GNU Lesser General Public License version 3 00014 * only, as published by the Free Software Foundation. 00015 * 00016 * OpenOffice.org is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU Lesser General Public License version 3 for more details 00020 * (a copy is included in the LICENSE file that accompanied this code). 00021 * 00022 * You should have received a copy of the GNU Lesser General Public License 00023 * version 3 along with OpenOffice.org. If not, see 00024 * <http://www.openoffice.org/license.html> 00025 * for a copy of the LGPLv3 License. 00026 * 00027 ************************************************************************/ 00028 #ifndef _CPPUHELPER_IMPLBASE_EX_HXX_ 00029 #define _CPPUHELPER_IMPLBASE_EX_HXX_ 00030 00031 #include <cppuhelper/weak.hxx> 00032 #include <cppuhelper/weakagg.hxx> 00033 #include <com/sun/star/lang/XTypeProvider.hpp> 00034 00035 // Despite the fact that the following include is not used in this header, it has to remain, 00036 // because it is expected by files including cppuhelper/implbaseN.hxx. 00037 // So maybe we can omit it some time in the future... 00038 #include <com/sun/star/lang/XMultiServiceFactory.hpp> 00039 00040 /* If you need to define implementation helper classes that deal with more than 00041 12 interfaces, then use macros as follows, e.g. for 3 interfaces: 00042 00043 #include <cppuhelper/implbase_ex_pre.hxx> 00044 #define __IFC_EX_TYPE_INIT3( class_cast ) \ 00045 __IFC_EX_TYPE_INIT( class_cast, 1 ), __IFC_EX_TYPE_INIT( class_cast, 2 ), \ 00046 __IFC_EX_TYPE_INIT( class_cast, 3 ) 00047 #include <cppuhelper/implbase_ex_post.hxx> 00048 __DEF_IMPLHELPER_EX( 3 ) 00049 */ 00050 00052 00053 namespace cppu 00054 { 00055 00058 typedef ::com::sun::star::uno::Type const & (SAL_CALL * fptr_getCppuType)( void * ) SAL_THROW(()); 00059 00062 struct type_entry 00063 { 00068 union 00069 { 00070 fptr_getCppuType getCppuType; 00071 typelib_TypeDescriptionReference * typeRef; 00072 } m_type; 00075 sal_IntPtr m_offset; 00076 }; 00077 00080 struct class_data 00081 { 00084 sal_Int16 m_nTypes; 00085 00088 sal_Bool m_storedTypeRefs; 00089 00092 sal_Bool m_createdId; 00093 00096 sal_Int8 m_id[ 16 ]; 00097 00100 type_entry m_typeEntries[ 1 ]; 00101 }; 00102 00105 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Any SAL_CALL ImplHelper_query( 00106 ::com::sun::star::uno::Type const & rType, 00107 class_data * cd, 00108 void * that ) 00109 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00112 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Any SAL_CALL ImplHelper_queryNoXInterface( 00113 ::com::sun::star::uno::Type const & rType, 00114 class_data * cd, 00115 void * that ) 00116 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00119 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > 00120 SAL_CALL ImplHelper_getTypes( 00121 class_data * cd ) 00122 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00125 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > 00126 SAL_CALL ImplInhHelper_getTypes( 00127 class_data * cd, 00128 ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > const & rAddTypes ) 00129 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00132 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Sequence< sal_Int8 > 00133 SAL_CALL ImplHelper_getImplementationId( 00134 class_data * cd ) 00135 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00136 00139 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Any SAL_CALL WeakImplHelper_query( 00140 ::com::sun::star::uno::Type const & rType, 00141 class_data * cd, 00142 void * that, 00143 ::cppu::OWeakObject * pBase ) 00144 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00147 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > 00148 SAL_CALL WeakImplHelper_getTypes( 00149 class_data * cd ) 00150 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00151 00154 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Any 00155 SAL_CALL WeakAggImplHelper_queryAgg( 00156 ::com::sun::star::uno::Type const & rType, 00157 class_data * cd, 00158 void * that, 00159 ::cppu::OWeakAggObject * pBase ) 00160 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00163 CPPUHELPER_DLLPUBLIC ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > 00164 SAL_CALL WeakAggImplHelper_getTypes( 00165 class_data * cd ) 00166 SAL_THROW( (::com::sun::star::uno::RuntimeException) ); 00167 00168 } 00169 00171 00172 #endif 00173 00174 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */