LibreOffice
LibreOffice 26.2 SDK C/C++ API Reference
Toggle main menu visibility
Loading...
Searching...
No Matches
genfunc.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* This file is part of the LibreOffice project.
4
*
5
* This Source Code Form is subject to the terms of the Mozilla Public
6
* License, v. 2.0. If a copy of the MPL was not distributed with this
7
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
*
9
* This file incorporates work covered by the following license notice:
10
*
11
* Licensed to the Apache Software Foundation (ASF) under one or more
12
* contributor license agreements. See the NOTICE file distributed
13
* with this work for additional information regarding copyright
14
* ownership. The ASF licenses this file to you under the Apache
15
* License, Version 2.0 (the "License"); you may not use this file
16
* except in compliance with the License. You may obtain a copy of
17
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
*/
19
20
/*
21
* This file is part of LibreOffice published API.
22
*/
23
#ifndef INCLUDED_COM_SUN_STAR_UNO_GENFUNC_HXX
24
#define INCLUDED_COM_SUN_STAR_UNO_GENFUNC_HXX
25
26
#include "
sal/config.h
"
27
28
#include <cstddef>
29
30
#include "
com/sun/star/uno/genfunc.h
"
31
#include "
com/sun/star/uno/Any.hxx
"
32
#include "com/sun/star/uno/XInterface.hpp"
33
34
35
namespace
com
36
{
37
namespace
sun
38
{
39
namespace
star
40
{
41
namespace
uno
42
{
43
44
45
inline
void
SAL_CALL
cpp_acquire
(
void
* pCppI )
46
{
47
static_cast<
XInterface *
>
( pCppI )->acquire();
48
}
49
50
inline
void
SAL_CALL
cpp_release
(
void
* pCppI )
51
{
52
static_cast<
XInterface *
>
( pCppI )->release();
53
}
54
55
inline
void
* SAL_CALL
cpp_queryInterface
(
void
* pCppI,
typelib_TypeDescriptionReference
* pType )
56
{
57
if
(pCppI)
58
{
59
try
60
{
61
Any
aRet(
static_cast<
XInterface *
>
( pCppI )->queryInterface(
62
*
reinterpret_cast<
const
Type
*
>
( &pType ) ) );
63
if
(
typelib_TypeClass_INTERFACE
== aRet.pType->eTypeClass)
64
{
65
XInterface * pRet =
static_cast<
XInterface *
>
( aRet.pReserved );
66
aRet.pReserved = NULL;
67
return
pRet;
68
}
69
}
70
catch
(RuntimeException &)
71
{
72
}
73
}
74
return
NULL;
75
}
76
77
}
78
}
79
}
80
}
81
82
#endif
83
84
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
config.h
typelib_TypeDescriptionReference
struct SAL_DLLPUBLIC_RTTI _typelib_TypeDescriptionReference typelib_TypeDescriptionReference
Holds a weak reference to a type description.
typelib_TypeClass_INTERFACE
@ typelib_TypeClass_INTERFACE
type class of interface
Definition
typeclass.h:82
Any.hxx
genfunc.h
com
Definition
types.h:377
com::sun
Definition
types.h:377
com::sun::star
Definition
types.h:377
com::sun::star::uno
Definition
typedescription.hxx:43
com::sun::star::uno::cpp_release
void cpp_release(void *pCppI)
Function to release a C++ interface.
Definition
genfunc.hxx:50
com::sun::star::uno::cpp_queryInterface
void * cpp_queryInterface(void *pCppI, typelib_TypeDescriptionReference *pType)
Function to query for a C++ interface.
Definition
genfunc.hxx:55
com::sun::star::uno::cpp_acquire
void cpp_acquire(void *pCppI)
Function to acquire a C++ interface.
Definition
genfunc.hxx:45
com::sun::star::uno::Any
C++ class representing an IDL any.
Definition
Any.h:62
com::sun::star::uno::Type
C++ class representing an IDL meta type.
Definition
Type.h:59
com
sun
star
uno
genfunc.hxx
Generated by
1.17.0