UDK 3.2.7 C/C++ API Reference
uno/mapping.h
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 _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: */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines