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 _UNO_MAPPING_H_ 00029 #define _UNO_MAPPING_H_ 00030 00031 #include <cppu/cppudllapi.h> 00032 #include <rtl/ustring.h> 00033 00034 00035 #ifdef __cplusplus 00036 extern "C" 00037 { 00038 #endif 00039 00040 struct _typelib_InterfaceTypeDescription; 00041 struct _uno_Mapping; 00042 struct _uno_Environment; 00043 00047 typedef void (SAL_CALL * uno_AcquireMappingFunc)(struct _uno_Mapping *); 00048 00052 typedef void (SAL_CALL * uno_ReleaseMappingFunc)(struct _uno_Mapping *); 00053 00061 typedef void (SAL_CALL * uno_MapInterfaceFunc)( 00062 struct _uno_Mapping * pMapping, 00063 void ** ppOut, void * pInterface, 00064 struct _typelib_InterfaceTypeDescription * pInterfaceTypeDescr ); 00065 00066 00067 #if defined( SAL_W32) 00068 #pragma pack(push, 8) 00069 #endif 00070 00073 typedef struct _uno_Mapping 00074 { 00077 uno_AcquireMappingFunc acquire; 00078 00081 uno_ReleaseMappingFunc release; 00082 00085 uno_MapInterfaceFunc mapInterface; 00086 } uno_Mapping; 00087 00088 #if defined( SAL_W32) 00089 #pragma pack(pop) 00090 #endif 00091 00101 CPPU_DLLPUBLIC void SAL_CALL uno_getMapping( 00102 struct _uno_Mapping ** ppMapping, 00103 struct _uno_Environment * pFrom, 00104 struct _uno_Environment * pTo, 00105 rtl_uString * pAddPurpose ) 00106 SAL_THROW_EXTERN_C(); 00107 00115 typedef void (SAL_CALL * uno_getMappingFunc)( 00116 struct _uno_Mapping ** ppMapping, 00117 struct _uno_Environment * pFrom, 00118 struct _uno_Environment * pTo, 00119 rtl_uString * pAddPurpose ); 00120 00125 CPPU_DLLPUBLIC void SAL_CALL uno_registerMappingCallback( 00126 uno_getMappingFunc pCallback ) 00127 SAL_THROW_EXTERN_C(); 00128 00133 CPPU_DLLPUBLIC void SAL_CALL uno_revokeMappingCallback( 00134 uno_getMappingFunc pCallback ) 00135 SAL_THROW_EXTERN_C(); 00136 00141 typedef void (SAL_CALL * uno_freeMappingFunc)( struct _uno_Mapping * pMapping ); 00142 00152 CPPU_DLLPUBLIC void SAL_CALL uno_registerMapping( 00153 struct _uno_Mapping ** ppMapping, uno_freeMappingFunc freeMapping, 00154 struct _uno_Environment * pFrom, struct _uno_Environment * pTo, rtl_uString * pAddPurpose ) 00155 SAL_THROW_EXTERN_C(); 00156 00162 CPPU_DLLPUBLIC void SAL_CALL uno_revokeMapping( 00163 struct _uno_Mapping * pMapping ) 00164 SAL_THROW_EXTERN_C(); 00165 00176 CPPU_DLLPUBLIC void SAL_CALL uno_getMappingByName( 00177 struct _uno_Mapping ** ppMapping, 00178 rtl_uString * pFrom, 00179 rtl_uString * pTo, 00180 rtl_uString * pAddPurpose ) 00181 SAL_THROW_EXTERN_C(); 00182 00183 /* symbol exported by each language binding library */ 00184 #define UNO_EXT_GETMAPPING "uno_ext_getMapping" 00185 00193 typedef void (SAL_CALL * uno_ext_getMappingFunc)( 00194 struct _uno_Mapping ** ppMapping, 00195 struct _uno_Environment * pFrom, 00196 struct _uno_Environment * pTo ); 00197 00198 #ifdef DISABLE_DYNLOADING 00199 /* Static linking, this is the uno_ext_getMapping function in the C++/UNO bridge */ 00200 void SAL_CALL CPPU_ENV_uno_ext_getMapping( 00201 struct _uno_Mapping ** ppMapping, 00202 struct _uno_Environment * pFrom, 00203 struct _uno_Environment * pTo ) 00204 SAL_THROW_EXTERN_C(); 00205 #endif 00206 00207 #ifdef __cplusplus 00208 } 00209 #endif 00210 00211 #endif 00212 00213 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */