My Project
UDK 3.2.7 C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
typedescription.h
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 #ifndef _TYPELIB_TYPEDESCRIPTION_H_
20 #define _TYPELIB_TYPEDESCRIPTION_H_
21 
22 #include <cppu/cppudllapi.h>
23 #include <typelib/uik.h>
24 #include <typelib/typeclass.h>
25 #include <rtl/ustring.h>
26 
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31 
33 
34 #if defined( SAL_W32)
35 #pragma pack(push, 8)
36 #endif
37 
41 {
45  sal_Int32 nRefCount;
49  sal_Int32 nStaticRefCount;
55  rtl_uString * pTypeName;
64  void * pReserved;
66 
72 {
76  sal_Int32 nRefCount;
80  sal_Int32 nStaticRefCount;
86  rtl_uString * pTypeName;
95  void * pReserved;
96 
105  sal_Int32 nSize;
108  sal_Int32 nAlignment;
116 
120 {
124 
128 
131  sal_Int32 nMembers;
134  sal_Int32 * pMemberOffsets;
140  rtl_uString ** ppMemberNames;
142 
153 {
158 
167 
171 {
175 
179 
188  sal_Int32 nMembers;
191  sal_Int64 * pDiscriminants;
197  rtl_uString ** ppMemberNames;
200  sal_Int32 nValueOffset;
202 
206 {
210 
215 
219 {
223 
226  sal_Int32 nDimensions;
229  sal_Int32 nTotalElements;
232  sal_Int32 * pDimensions;
234 
238 {
242 
245  sal_Int32 nDefaultEnumValue;
248  sal_Int32 nEnumValues;
251  rtl_uString ** ppEnumNames;
254  sal_Int32 * pEnumValues;
256 
260 {
263  rtl_uString * pName;
276 
281 {
285 
289  sal_Int32 nPosition;
292  rtl_uString * pMemberName;
294 
299 {
303 
309  sal_Int32 nParams;
315  sal_Int32 nExceptions;
322 
339  sal_Int32 nIndex;
341 
346 {
350 
357 
374  sal_Int32 nIndex;
379  sal_Int32 nGetExceptions;
389  sal_Int32 nSetExceptions;
396 
426 {
430 
442  sal_Int32 nMembers;
448  sal_Int32 nAllMembers;
466  sal_Int32 nBaseTypes;
473 
477 {
486  rtl_uString * pTypeName;
489  rtl_uString * pMemberName;
491 
498 {
503 
510 
514 {
520  rtl_uString * pTypeName;
523  rtl_uString * pParamName;
531 
534 typedef struct _typelib_Union_Init
535 {
538  sal_Int64 nDiscriminant;
541  rtl_uString * pMemberName;
546 
547 #if defined( SAL_W32)
548 #pragma pack(pop)
549 #endif
550 
551 
564  typelib_TypeDescription ** ppRet,
565  rtl_uString * pTypeName,
566  typelib_TypeDescriptionReference * pDiscriminantTypeRef,
567  sal_Int64 nDefaultDiscriminant,
568  typelib_TypeDescriptionReference * pDefaultTypeRef,
569  sal_Int32 nMembers,
570  typelib_Union_Init * pMembers )
572 
583  typelib_TypeDescription ** ppRet,
584  rtl_uString * pTypeName,
585  sal_Int32 nDefaultValue,
586  sal_Int32 nEnumValues,
587  rtl_uString ** ppEnumNames,
588  sal_Int32 * pEnumValues )
590 
599  typelib_TypeDescription ** ppRet,
600  typelib_TypeDescriptionReference * pElementTypeRef,
601  sal_Int32 nDimensions,
602  sal_Int32 * pDimensions )
604 
621  typelib_TypeDescription ** ppRet,
622  typelib_TypeClass eTypeClass,
623  rtl_uString * pTypeName,
625  sal_Int32 nMembers,
626  typelib_CompoundMember_Init * pMembers )
628 
640  typelib_TypeDescription ** ppRet,
641  rtl_uString * pTypeName,
643  sal_Int32 nMembers,
644  typelib_StructMember_Init * pMembers )
646 
665  rtl_uString * pTypeName,
666  sal_uInt32 nUik1, sal_uInt16 nUik2, sal_uInt16 nUik3, sal_uInt32 nUik4, sal_uInt32 nUik5,
667  typelib_TypeDescriptionReference * pBaseInterface,
668  sal_Int32 nMembers,
669  typelib_TypeDescriptionReference ** ppMembers )
671 
690  rtl_uString * pTypeName,
691  sal_uInt32 nUik1, sal_uInt16 nUik2, sal_uInt16 nUik3, sal_uInt32 nUik4, sal_uInt32 nUik5,
692  sal_Int32 nBaseInterfaces,
693  typelib_TypeDescriptionReference ** ppBaseInterfaces,
694  sal_Int32 nMembers,
695  typelib_TypeDescriptionReference ** ppMembers )
697 
713  sal_Int32 nAbsolutePosition,
714  sal_Bool bOneWay,
715  rtl_uString * pMethodName,
716  typelib_TypeClass eReturnTypeClass,
717  rtl_uString * pReturnTypeName,
718  sal_Int32 nParams,
719  typelib_Parameter_Init * pParams,
720  sal_Int32 nExceptions,
721  rtl_uString ** ppExceptionNames )
723 
739  sal_Int32 nAbsolutePosition,
740  rtl_uString * pAttributeName,
741  typelib_TypeClass eAttributeTypeClass,
742  rtl_uString * pAttributeTypeName,
743  sal_Bool bReadOnly )
745 
765  sal_Int32 nAbsolutePosition,
766  rtl_uString * pAttributeName,
767  typelib_TypeClass eAttributeTypeClass,
768  rtl_uString * pAttributeTypeName,
769  sal_Bool bReadOnly,
770  sal_Int32 nGetExceptions, rtl_uString ** ppGetExceptionNames,
771  sal_Int32 nSetExceptions, rtl_uString ** ppSetExceptionNames )
773 
779  typelib_TypeDescription * pDesc )
781 
788  typelib_TypeDescription * pDesc )
790 
797  typelib_TypeDescription ** ppNewDescription )
799 
807  const typelib_TypeDescription * p1, const typelib_TypeDescription * p2 )
809 
816  typelib_TypeDescription ** ppRet, rtl_uString * pName )
818 
824  sal_Int32 nNewSize )
826 
834 typedef void (SAL_CALL * typelib_typedescription_Callback)(
835  void * pContext, typelib_TypeDescription ** ppRet, rtl_uString * pTypeName );
836 
843  void * pContext, typelib_typedescription_Callback pCallback )
845 
852  void * pContext, typelib_typedescription_Callback pCallback )
854 
855 
856 /*----------------------------------------------------------------------------*/
857 /*----------------------------------------------------------------------------*/
858 /*----------------------------------------------------------------------------*/
859 
861 
868 #define TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( eTypeClass ) \
869  ((eTypeClass) == typelib_TypeClass_INTERFACE_METHOD || \
870  (eTypeClass) == typelib_TypeClass_INTERFACE_ATTRIBUTE)
871 
876 #define TYPELIB_DANGER_GET( ppDescription, pTypeRef ) \
877 { \
878  typelib_TypeDescriptionReference * pMacroTypeRef = (pTypeRef); \
879  typelib_TypeDescription ** ppMacroTypeDescr = (ppDescription); \
880  if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( pMacroTypeRef->eTypeClass )) \
881  { \
882  typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef ); \
883  } \
884  else if (!pMacroTypeRef->pType || !pMacroTypeRef->pType->pWeakRef) \
885  { \
886  typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef ); \
887  if (*ppMacroTypeDescr) \
888  typelib_typedescription_release( *ppMacroTypeDescr ); \
889  } \
890  else \
891  { \
892  *ppMacroTypeDescr = pMacroTypeRef->pType; \
893  } \
894 }
895 
898 #define TYPELIB_DANGER_RELEASE( pDescription ) \
899 { \
900  if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( (pDescription)->eTypeClass )) \
901  typelib_typedescription_release( pDescription ); \
902 }
903 
905 
915  typelib_TypeClass eTypeClass,
916  rtl_uString * pTypeName )
918 
928  typelib_TypeClass eTypeClass,
929  const sal_Char * pTypeName )
931 
939 
948 
957 
967 
977 
985  typelib_TypeDescription * pAssignable,
986  typelib_TypeDescription * pFrom )
988 
996  typelib_TypeDescriptionReference * pAssignable,
999 
1010  typelib_TypeClass eTypeClass )
1012 
1021  typelib_TypeClass eTypeClass, const sal_Char * pTypeName )
1023 
1031  typelib_TypeDescriptionReference * pElementType )
1032  SAL_THROW_EXTERN_C ();
1033 
1043  typelib_TypeDescriptionReference * pElementType,
1044  sal_Int32 nDimensions, ... )
1045  SAL_THROW_EXTERN_C ();
1046 
1062  typelib_TypeClass eTypeClass, const sal_Char * pTypeName,
1064  sal_Int32 nMembers, typelib_TypeDescriptionReference ** ppMembers )
1066 
1083  typelib_TypeDescriptionReference ** ppRef, const sal_Char * pTypeName,
1085  sal_Int32 nMembers, typelib_TypeDescriptionReference ** ppMembers,
1086  sal_Bool const * pParameterizedTypes )
1087  SAL_THROW_EXTERN_C();
1088 
1097  const sal_Char * pTypeName,
1098  typelib_TypeDescriptionReference * pBaseType )
1099  SAL_THROW_EXTERN_C();
1100 
1113  const sal_Char * pTypeName,
1114  sal_Int32 nBaseTypes,
1115  typelib_TypeDescriptionReference ** ppBaseTypes )
1116  SAL_THROW_EXTERN_C();
1117 
1126  const sal_Char * pTypeName,
1127  sal_Int32 nDefaultValue )
1128  SAL_THROW_EXTERN_C();
1129 
1139  typelib_TypeDescription ** ppTypeDescr )
1140  SAL_THROW_EXTERN_C();
1141 
1142 #ifdef __cplusplus
1143 }
1144 #endif
1145 
1146 #endif
1147 
1148 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */