00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 00002 /* 00003 * This file is part of the LibreOffice project. 00004 * 00005 * This Source Code Form is subject to the terms of the Mozilla Public 00006 * License, v. 2.0. If a copy of the MPL was not distributed with this 00007 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 00008 * 00009 * This file incorporates work covered by the following license notice: 00010 * 00011 * Licensed to the Apache Software Foundation (ASF) under one or more 00012 * contributor license agreements. See the NOTICE file distributed 00013 * with this work for additional information regarding copyright 00014 * ownership. The ASF licenses this file to you under the Apache 00015 * License, Version 2.0 (the "License"); you may not use this file 00016 * except in compliance with the License. You may obtain a copy of 00017 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 00018 */ 00019 #ifndef _UNO_DISPATCHER_H_ 00020 #define _UNO_DISPATCHER_H_ 00021 00022 #include <sal/types.h> 00023 #include <rtl/ustring.h> 00024 #include <uno/any2.h> 00025 00026 #ifdef __cplusplus 00027 extern "C" 00028 { 00029 #endif 00030 00031 struct _typelib_TypeDescription; 00032 struct _uno_Interface; 00033 00049 typedef void (SAL_CALL * uno_DispatchMethod)( 00050 struct _uno_Interface * pUnoI, 00051 const struct _typelib_TypeDescription * pMemberType, 00052 void * pReturn, 00053 void * pArgs[], 00054 uno_Any ** ppException ); 00055 00056 #if defined( SAL_W32) 00057 #pragma pack(push, 8) 00058 #endif 00059 00062 typedef struct _uno_Interface 00063 { 00068 void (SAL_CALL * acquire)( struct _uno_Interface * pInterface ); 00073 void (SAL_CALL * release)( struct _uno_Interface * pInterface ); 00076 uno_DispatchMethod pDispatcher; 00077 } uno_Interface; 00078 00079 #if defined( SAL_W32) 00080 #pragma pack(pop) 00081 #endif 00082 00083 #ifdef __cplusplus 00084 } 00085 #endif 00086 00087 #endif 00088 00089 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */