00001 #ifndef __UPF_ITYPEINFO_IDL__ 00002 #define __UPF_ITYPEINFO_IDL__ 00003 00004 #include "IObject.idl" 00005 00006 module upf 00007 { 00008 00021 interface ITypeInfo : IObject 00022 { 00024 enum Kind 00025 { 00027 TYPE_INTERFACE, 00029 TYPE_TYPEDEF, 00031 TYPE_NATIVE_TYPE, 00033 TYPE_STRUCT, 00035 TYPE_CONST, 00037 TYPE_UNION, 00039 TYPE_ENUM 00040 }; 00041 00058 Kind getKind(); 00059 00064 string getName(); 00065 }; 00066 00067 00072 interface IInterfaceInfo : ITypeInfo 00073 { 00075 IID getIID(); 00076 }; 00077 00078 00080 interface ITypedefInfo : ITypeInfo 00081 { 00089 string getType(); 00090 00097 boolean isSequence(); 00098 }; 00099 00104 interface INativeTypeInfo : ITypeInfo {}; 00105 00106 }; 00107 00108 #endif