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  *
4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5  *
6  * Copyright 2000, 2010 Oracle and/or its affiliates.
7  *
8  * OpenOffice.org - a multi-platform office productivity suite
9  *
10  * This file is part of OpenOffice.org.
11  *
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.
15  *
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).
21  *
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.
26  *
27  ************************************************************************/
28 #ifndef _TYPELIB_TYPEDESCRIPTION_H_
29 #define _TYPELIB_TYPEDESCRIPTION_H_
30 
31 #include <cppu/cppudllapi.h>
32 #include <typelib/uik.h>
33 #include <typelib/typeclass.h>
34 #include <rtl/ustring.h>
35 
36 #ifdef __cplusplus
37 extern "C"
38 {
39 #endif
40 
42 
43 #if defined( SAL_W32)
44 #pragma pack(push, 8)
45 #endif
46 
50 {
54  sal_Int32 nRefCount;
58  sal_Int32 nStaticRefCount;
64  rtl_uString * pTypeName;
73  void * pReserved;
75 
81 {
85  sal_Int32 nRefCount;
89  sal_Int32 nStaticRefCount;
95  rtl_uString * pTypeName;
104  void * pReserved;
105 
114  sal_Int32 nSize;
117  sal_Int32 nAlignment;
125 
129 {
133 
137 
140  sal_Int32 nMembers;
143  sal_Int32 * pMemberOffsets;
149  rtl_uString ** ppMemberNames;
151 
162 {
167 
176 
180 {
184 
188 
197  sal_Int32 nMembers;
200  sal_Int64 * pDiscriminants;
206  rtl_uString ** ppMemberNames;
209  sal_Int32 nValueOffset;
211 
215 {
219 
224 
228 {
232 
235  sal_Int32 nDimensions;
238  sal_Int32 nTotalElements;
241  sal_Int32 * pDimensions;
243 
247 {
251 
254  sal_Int32 nDefaultEnumValue;
257  sal_Int32 nEnumValues;
260  rtl_uString ** ppEnumNames;
263  sal_Int32 * pEnumValues;
265 
269 {
272  rtl_uString * pName;
285 
290 {
294 
298  sal_Int32 nPosition;
301  rtl_uString * pMemberName;
303 
308 {
312 
318  sal_Int32 nParams;
324  sal_Int32 nExceptions;
331 
348  sal_Int32 nIndex;
350 
355 {
359 
366 
383  sal_Int32 nIndex;
388  sal_Int32 nGetExceptions;
398  sal_Int32 nSetExceptions;
405 
435 {
439 
451  sal_Int32 nMembers;
457  sal_Int32 nAllMembers;
475  sal_Int32 nBaseTypes;
482 
486 {
495  rtl_uString * pTypeName;
498  rtl_uString * pMemberName;
500 
507 {
512 
519 
523 {
529  rtl_uString * pTypeName;
532  rtl_uString * pParamName;
540 
543 typedef struct _typelib_Union_Init
544 {
547  sal_Int64 nDiscriminant;
550  rtl_uString * pMemberName;
555 
556 #if defined( SAL_W32)
557 #pragma pack(pop)
558 #endif
559 
560 
573  typelib_TypeDescription ** ppRet,
574  rtl_uString * pTypeName,
575  typelib_TypeDescriptionReference * pDiscriminantTypeRef,
576  sal_Int64 nDefaultDiscriminant,
577  typelib_TypeDescriptionReference * pDefaultTypeRef,
578  sal_Int32 nMembers,
579  typelib_Union_Init * pMembers )
581 
592  typelib_TypeDescription ** ppRet,
593  rtl_uString * pTypeName,
594  sal_Int32 nDefaultValue,
595  sal_Int32 nEnumValues,
596  rtl_uString ** ppEnumNames,
597  sal_Int32 * pEnumValues )
599 
608  typelib_TypeDescription ** ppRet,
609  typelib_TypeDescriptionReference * pElementTypeRef,
610  sal_Int32 nDimensions,
611  sal_Int32 * pDimensions )
613 
630  typelib_TypeDescription ** ppRet,
631  typelib_TypeClass eTypeClass,
632  rtl_uString * pTypeName,
634  sal_Int32 nMembers,
635  typelib_CompoundMember_Init * pMembers )
637 
649  typelib_TypeDescription ** ppRet,
650  rtl_uString * pTypeName,
652  sal_Int32 nMembers,
653  typelib_StructMember_Init * pMembers )
655 
674  rtl_uString * pTypeName,
675  sal_uInt32 nUik1, sal_uInt16 nUik2, sal_uInt16 nUik3, sal_uInt32 nUik4, sal_uInt32 nUik5,
676  typelib_TypeDescriptionReference * pBaseInterface,
677  sal_Int32 nMembers,
678  typelib_TypeDescriptionReference ** ppMembers )
680 
699  rtl_uString * pTypeName,
700  sal_uInt32 nUik1, sal_uInt16 nUik2, sal_uInt16 nUik3, sal_uInt32 nUik4, sal_uInt32 nUik5,
701  sal_Int32 nBaseInterfaces,
702  typelib_TypeDescriptionReference ** ppBaseInterfaces,
703  sal_Int32 nMembers,
704  typelib_TypeDescriptionReference ** ppMembers )
706 
722  sal_Int32 nAbsolutePosition,
723  sal_Bool bOneWay,
724  rtl_uString * pMethodName,
725  typelib_TypeClass eReturnTypeClass,
726  rtl_uString * pReturnTypeName,
727  sal_Int32 nParams,
728  typelib_Parameter_Init * pParams,
729  sal_Int32 nExceptions,
730  rtl_uString ** ppExceptionNames )
732 
748  sal_Int32 nAbsolutePosition,
749  rtl_uString * pAttributeName,
750  typelib_TypeClass eAttributeTypeClass,
751  rtl_uString * pAttributeTypeName,
752  sal_Bool bReadOnly )
754 
774  sal_Int32 nAbsolutePosition,
775  rtl_uString * pAttributeName,
776  typelib_TypeClass eAttributeTypeClass,
777  rtl_uString * pAttributeTypeName,
778  sal_Bool bReadOnly,
779  sal_Int32 nGetExceptions, rtl_uString ** ppGetExceptionNames,
780  sal_Int32 nSetExceptions, rtl_uString ** ppSetExceptionNames )
782 
788  typelib_TypeDescription * pDesc )
790 
797  typelib_TypeDescription * pDesc )
799 
806  typelib_TypeDescription ** ppNewDescription )
808 
816  const typelib_TypeDescription * p1, const typelib_TypeDescription * p2 )
818 
825  typelib_TypeDescription ** ppRet, rtl_uString * pName )
827 
833  sal_Int32 nNewSize )
835 
843 typedef void (SAL_CALL * typelib_typedescription_Callback)(
844  void * pContext, typelib_TypeDescription ** ppRet, rtl_uString * pTypeName );
845 
852  void * pContext, typelib_typedescription_Callback pCallback )
854 
861  void * pContext, typelib_typedescription_Callback pCallback )
863 
864 
865 /*----------------------------------------------------------------------------*/
866 /*----------------------------------------------------------------------------*/
867 /*----------------------------------------------------------------------------*/
868 
870 
877 #define TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( eTypeClass ) \
878  ((eTypeClass) == typelib_TypeClass_INTERFACE_METHOD || \
879  (eTypeClass) == typelib_TypeClass_INTERFACE_ATTRIBUTE)
880 
885 #define TYPELIB_DANGER_GET( ppDescription, pTypeRef ) \
886 { \
887  typelib_TypeDescriptionReference * pMacroTypeRef = (pTypeRef); \
888  typelib_TypeDescription ** ppMacroTypeDescr = (ppDescription); \
889  if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( pMacroTypeRef->eTypeClass )) \
890  { \
891  typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef ); \
892  } \
893  else if (!pMacroTypeRef->pType || !pMacroTypeRef->pType->pWeakRef) \
894  { \
895  typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef ); \
896  if (*ppMacroTypeDescr) \
897  typelib_typedescription_release( *ppMacroTypeDescr ); \
898  } \
899  else \
900  { \
901  *ppMacroTypeDescr = pMacroTypeRef->pType; \
902  } \
903 }
904 
907 #define TYPELIB_DANGER_RELEASE( pDescription ) \
908 { \
909  if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( (pDescription)->eTypeClass )) \
910  typelib_typedescription_release( pDescription ); \
911 }
912 
914 
924  typelib_TypeClass eTypeClass,
925  rtl_uString * pTypeName )
927 
937  typelib_TypeClass eTypeClass,
938  const sal_Char * pTypeName )
940 
948 
957 
966 
976 
986 
994  typelib_TypeDescription * pAssignable,
995  typelib_TypeDescription * pFrom )
997 
1005  typelib_TypeDescriptionReference * pAssignable,
1008 
1019  typelib_TypeClass eTypeClass )
1021 
1030  typelib_TypeClass eTypeClass, const sal_Char * pTypeName )
1032 
1040  typelib_TypeDescriptionReference * pElementType )
1041  SAL_THROW_EXTERN_C ();
1042 
1052  typelib_TypeDescriptionReference * pElementType,
1053  sal_Int32 nDimensions, ... )
1054  SAL_THROW_EXTERN_C ();
1055 
1071  typelib_TypeClass eTypeClass, const sal_Char * pTypeName,
1073  sal_Int32 nMembers, typelib_TypeDescriptionReference ** ppMembers )
1075 
1092  typelib_TypeDescriptionReference ** ppRef, const sal_Char * pTypeName,
1094  sal_Int32 nMembers, typelib_TypeDescriptionReference ** ppMembers,
1095  sal_Bool const * pParameterizedTypes )
1096  SAL_THROW_EXTERN_C();
1097 
1106  const sal_Char * pTypeName,
1107  typelib_TypeDescriptionReference * pBaseType )
1108  SAL_THROW_EXTERN_C();
1109 
1122  const sal_Char * pTypeName,
1123  sal_Int32 nBaseTypes,
1124  typelib_TypeDescriptionReference ** ppBaseTypes )
1125  SAL_THROW_EXTERN_C();
1126 
1135  const sal_Char * pTypeName,
1136  sal_Int32 nDefaultValue )
1137  SAL_THROW_EXTERN_C();
1138 
1148  typelib_TypeDescription ** ppTypeDescr )
1149  SAL_THROW_EXTERN_C();
1150 
1151 #ifdef __cplusplus
1152 }
1153 #endif
1154 
1155 #endif
1156 
1157 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */