UDK 3.2.7 C/C++ API Reference
cppuhelper/implementationentry.hxx
Go to the documentation of this file.
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: */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines