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