1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
28 #ifndef _UNO_DISPATCHER_H_
29 #define _UNO_DISPATCHER_H_
31 #include <sal/types.h>
32 #include <rtl/ustring.h>
40 struct _typelib_TypeDescription
;
41 struct _uno_Interface
;
43 /** Function pointer declaration for the binary C uno dispatch function. Any pure out or return
44 value will be constructed by the callee, iff no exception is signalled.
45 If an exception is signalled, the any *ppException is properly constructed by the callee,
46 otherwise the pointer *ppException is set to 0.
47 An attribute get call is indicated by a non-null return pointer.
49 @param pUnoI uno interface the call is performed on
50 @param pMemberType member type description of a method or attribute
51 @param pReturn pointer to return value memory;
52 pointer may be undefined if void method, null if attribute set call.
53 @param pArgs an array of pointers to arguments values.
54 (remark: the value of an interface reference stores a
55 uno_interface *, so you get it by *(uno_Interface **)pArgs[n])
56 @param ppException pointer to pointer to unconstructed any to signal an exception.
58 typedef void (SAL_CALL
* uno_DispatchMethod
)(
59 struct _uno_Interface
* pUnoI
,
60 const struct _typelib_TypeDescription
* pMemberType
,
63 uno_Any
** ppException
);
69 /** The binary C uno interface description.
71 typedef struct _uno_Interface
73 /** Acquires uno interface.
75 @param pInterface uno interface
77 void (SAL_CALL
* acquire
)( struct _uno_Interface
* pInterface
);
78 /** Releases uno interface.
80 @param pInterface uno interface
82 void (SAL_CALL
* release
)( struct _uno_Interface
* pInterface
);
85 uno_DispatchMethod pDispatcher
;
98 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */