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_IMPLEMENTATIONENTRY_HXX_ 00029 #define _CPPUHELPER_IMPLEMENTATIONENTRY_HXX_ 00030 00031 #include <cppuhelper/factory.hxx> 00032 #include "cppuhelperdllapi.h" 00033 00034 // MinGW wants it the one way around while MSVC wants it the other (cf. 00035 // <sourceforge.net/support/tracker.php?aid=3514133> "Syntactic __cdecl 00036 // incompatibility with MSVC"; and everywhere else, SAL_CALL is empty, so 00037 // doesn't matter): 00038 #if defined __GNUC__ 00039 #define MY_FN_PTR(name) SAL_CALL (* name) 00040 #else 00041 #define MY_FN_PTR(name) (SAL_CALL * name) 00042 #endif 00043 00044 namespace cppu 00045 { 00049 struct ImplementationEntry 00050 { 00053 ComponentFactoryFunc create; 00054 00058 rtl::OUString MY_FN_PTR( getImplementationName )(); 00059 00063 com::sun::star::uno::Sequence< rtl::OUString > MY_FN_PTR( getSupportedServiceNames ) (); 00064 00067 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > 00068 MY_FN_PTR( createFactory )( 00069 ComponentFactoryFunc fptr, 00070 ::rtl::OUString const & rImplementationName, 00071 ::com::sun::star::uno::Sequence< ::rtl::OUString > const & rServiceNames, 00072 rtl_ModuleCount * pModCount ); 00073 00077 rtl_ModuleCount * moduleCounter; 00078 00082 sal_Int32 nFlags; 00083 }; 00084 00099 CPPUHELPER_DLLPUBLIC sal_Bool component_writeInfoHelper( 00100 void *pServiceManager, void *pRegistryKey , const struct ImplementationEntry entries[] ); 00101 00118 CPPUHELPER_DLLPUBLIC void *component_getFactoryHelper( 00119 const sal_Char * pImplName, 00120 void * pServiceManager, 00121 void * pRegistryKey, 00122 const struct ImplementationEntry entries[] ); 00123 00124 } 00125 #endif 00126 00127 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */