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_ENVIRONMENT_H_ 00029 #define _UNO_ENVIRONMENT_H_ 00030 00031 #include <cppu/cppudllapi.h> 00032 #include <rtl/ustring.h> 00033 00034 #include <stdarg.h> 00035 00036 #ifdef __cplusplus 00037 extern "C" 00038 { 00039 #endif 00040 00041 struct _uno_ExtEnvironment; 00042 struct _typelib_InterfaceTypeDescription; 00043 00044 #if defined( SAL_W32) 00045 #pragma pack(push, 8) 00046 #endif 00047 00050 typedef struct _uno_Environment 00051 { 00054 void * pReserved; 00055 00058 rtl_uString * pTypeName; 00059 00062 void * pContext; 00063 00066 struct _uno_ExtEnvironment * pExtEnv; 00067 00072 void (SAL_CALL * acquire)( struct _uno_Environment * pEnv ); 00073 00079 void (SAL_CALL * release)( struct _uno_Environment * pEnv ); 00080 00086 void (SAL_CALL * acquireWeak)( struct _uno_Environment * pEnv ); 00087 00092 void (SAL_CALL * releaseWeak)( struct _uno_Environment * pEnv ); 00093 00100 void (SAL_CALL * harden)( 00101 struct _uno_Environment ** ppHardEnv, 00102 struct _uno_Environment * pEnv ); 00103 00109 void (SAL_CALL * dispose)( struct _uno_Environment * pEnv ); 00110 00111 /* ===== the following part will be late initialized by a matching bridge ===== * 00112 * ===== and is NOT for public use. ===== */ 00113 00119 void (SAL_CALL * environmentDisposing)( struct _uno_Environment * pEnv ); 00120 } uno_Environment; 00121 00131 typedef void (SAL_CALL * uno_freeProxyFunc)( struct _uno_ExtEnvironment * pEnv, void * pProxy ); 00132 00138 typedef void * (SAL_CALL * uno_memAlloc)( sal_Size nBytes ); 00139 00142 typedef struct _uno_ExtEnvironment 00143 { 00146 uno_Environment aBase; 00147 00155 void (SAL_CALL * registerInterface)( 00156 struct _uno_ExtEnvironment * pEnv, 00157 void ** ppInterface, 00158 rtl_uString * pOId, 00159 struct _typelib_InterfaceTypeDescription * pTypeDescr ); 00160 00170 void (SAL_CALL * registerProxyInterface)( 00171 struct _uno_ExtEnvironment * pEnv, 00172 void ** ppProxy, 00173 uno_freeProxyFunc freeProxy, 00174 rtl_uString * pOId, 00175 struct _typelib_InterfaceTypeDescription * pTypeDescr ); 00176 00183 void (SAL_CALL * revokeInterface)( 00184 struct _uno_ExtEnvironment * pEnv, 00185 void * pInterface ); 00186 00192 void (SAL_CALL * getObjectIdentifier)( 00193 struct _uno_ExtEnvironment * pEnv, 00194 rtl_uString ** ppOId, 00195 void * pInterface ); 00196 00205 void (SAL_CALL * getRegisteredInterface)( 00206 struct _uno_ExtEnvironment * pEnv, 00207 void ** ppInterface, 00208 rtl_uString * pOId, 00209 struct _typelib_InterfaceTypeDescription * pTypeDescr ); 00210 00219 void (SAL_CALL * getRegisteredInterfaces)( 00220 struct _uno_ExtEnvironment * pEnv, 00221 void *** pppInterfaces, 00222 sal_Int32 * pnLen, 00223 uno_memAlloc memAlloc ); 00224 00225 /* ===== the following part will be late initialized by a matching bridge ===== */ 00226 00233 void (SAL_CALL * computeObjectIdentifier)( 00234 struct _uno_ExtEnvironment * pEnv, 00235 rtl_uString ** ppOId, void * pInterface ); 00236 00242 void (SAL_CALL * acquireInterface)( 00243 struct _uno_ExtEnvironment * pEnv, 00244 void * pInterface ); 00245 00251 void (SAL_CALL * releaseInterface)( 00252 struct _uno_ExtEnvironment * pEnv, 00253 void * pInterface ); 00254 00255 } uno_ExtEnvironment; 00256 00257 #if defined( SAL_W32) 00258 #pragma pack(pop) 00259 #endif 00260 00266 typedef void (SAL_CALL * uno_initEnvironmentFunc)( uno_Environment * pEnv ); 00267 #define UNO_INIT_ENVIRONMENT "uno_initEnvironment" 00268 00269 #ifdef DISABLE_DYNLOADING 00270 /* We link statically and have just one kind of environment */ 00271 void SAL_CALL CPPU_ENV_uno_initEnvironment( uno_Environment * Env ) 00272 SAL_THROW_EXTERN_C(); 00273 #endif 00274 00282 CPPU_DLLPUBLIC void SAL_CALL uno_getEnvironment( 00283 uno_Environment ** ppEnv, rtl_uString * pEnvDcp, void * pContext ) 00284 SAL_THROW_EXTERN_C(); 00285 00294 CPPU_DLLPUBLIC void SAL_CALL uno_getRegisteredEnvironments( 00295 uno_Environment *** pppEnvs, sal_Int32 * pnLen, uno_memAlloc memAlloc, 00296 rtl_uString * pEnvDcp ) 00297 SAL_THROW_EXTERN_C(); 00298 00305 CPPU_DLLPUBLIC void SAL_CALL uno_createEnvironment( 00306 uno_Environment ** ppEnv, rtl_uString * pEnvDcp, void * pContext ) 00307 SAL_THROW_EXTERN_C(); 00308 00315 CPPU_DLLPUBLIC void SAL_CALL uno_dumpEnvironment( 00316 void * stream, uno_Environment * pEnv, const sal_Char * pFilter ) 00317 SAL_THROW_EXTERN_C(); 00324 CPPU_DLLPUBLIC void SAL_CALL uno_dumpEnvironmentByName( 00325 void * stream, rtl_uString * pEnvDcp, const sal_Char * pFilter ) 00326 SAL_THROW_EXTERN_C(); 00327 00328 00329 00338 CPPU_DLLPUBLIC void SAL_CALL uno_getCurrentEnvironment(uno_Environment ** ppEnv, rtl_uString * pTypeName) 00339 SAL_THROW_EXTERN_C(); 00340 00343 typedef void SAL_CALL uno_EnvCallee(va_list * pParam); 00344 00352 CPPU_DLLPUBLIC void SAL_CALL uno_Environment_invoke_v(uno_Environment * pEnv, uno_EnvCallee * pCallee, va_list * pParam) 00353 SAL_THROW_EXTERN_C(); 00354 00362 CPPU_DLLPUBLIC void SAL_CALL uno_Environment_invoke (uno_Environment * pEnv, uno_EnvCallee * pCallee, ...) 00363 SAL_THROW_EXTERN_C(); 00364 00370 CPPU_DLLPUBLIC void SAL_CALL uno_Environment_enter(uno_Environment * pEnv) 00371 SAL_THROW_EXTERN_C(); 00372 00381 CPPU_DLLPUBLIC int SAL_CALL uno_Environment_isValid(uno_Environment * pEnv, rtl_uString ** pReason) 00382 SAL_THROW_EXTERN_C(); 00383 00384 #ifdef __cplusplus 00385 } 00386 #endif 00387 00388 #endif 00389 00390 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */