GME  13
MgaMetaAttribute.h
Go to the documentation of this file.
00001 
00002 #ifndef MGA_MGAMETAATTRIBUTE_H
00003 #define MGA_MGAMETAATTRIBUTE_H
00004 
00005 #ifndef MGA_MGAMETABASE_H
00006 #include "MgaMetaBase.h"
00007 #endif
00008 
00009 // --------------------------- CMgaMetaAttribute
00010 
00011 class ATL_NO_VTABLE CMgaMetaAttribute : 
00012         public CComObjectRootEx<CComSingleThreadModel>,
00013         public CComCoClass<CMgaMetaAttribute, &__uuidof(MgaMetaAttribute)>,
00014         public IDispatchImpl<IMgaMetaAttribute, &__uuidof(IMgaMetaAttribute), &__uuidof(__MGAMetaLib)>,
00015         public CMgaMetaBase
00016 {
00017 public:
00018         IUnknown *GetUnknown() const { return (IMgaMetaAttribute*)this; }
00019 
00020 DECLARE_REGISTRY_RESOURCEID(IDR_MGAMETAATTRIBUTE)
00021 DECLARE_ONLY_AGGREGATABLE(CMgaMetaAttribute)
00022 
00023 BEGIN_COM_MAP(CMgaMetaAttribute)
00024         COM_INTERFACE_ENTRY(IMgaMetaAttribute)
00025         COM_INTERFACE_ENTRY2(IMgaMetaBase, CMgaMetaBase)
00026         COM_INTERFACE_ENTRY2(IDispatch, IMgaMetaAttribute)
00027 END_COM_MAP()
00028 
00029 DECLARE_MGAMETABASE();
00030 
00031 public:
00032         STDMETHOD(get_DefinedIn)(IMgaMetaBase **p)
00033         { return ComGetPointerValue(GetUnknown(), ATTRID_DEFATTR_PTR, p); }
00034 
00035         STDMETHOD(get_UsedIn)(IMgaMetaFCOs **p);
00036 
00037         STDMETHOD(get_ValueType)(attval_enum *p);
00038         STDMETHOD(get_DefaultValue)(VARIANT *p);
00039         STDMETHOD(get_Viewable)(VARIANT_BOOL *p);
00040 
00041         STDMETHOD(get_EnumItems)(IMgaMetaEnumItems **p)
00042         { return ComGetSortedCollValue<IMgaMetaEnumItem>(GetUnknown(), ATTRID_ENUMITEMS_COLL, p); }
00043 
00044 // ------- Edit
00045 
00046 public:
00047         STDMETHOD(put_ValueType)(attval_enum p)
00048         { return ComPutAttrValue(GetUnknown(), ATTRID_ATTVALTYPE, static_cast<long>(p)); }
00049 
00050         STDMETHOD(put_DefaultValue)(BSTR p)
00051         { return ComPutAttrValue(GetUnknown(), ATTRID_VALUE, p); }
00052 
00053         STDMETHOD(put_Viewable)(VARIANT_BOOL p)
00054         { return ComPutAttrValue(GetUnknown(), ATTRID_VIEWABLE, (p == VARIANT_FALSE)?0L:1L); }
00055 
00056         STDMETHOD(CreateEnumItem)(IMgaMetaEnumItem **p)
00057         { return ComCreateMetaObj(GetUnknown(), METAID_METAENUMITEM, ATTRID_ENUMITEMS_COLL, p); }
00058 
00059 // ------- Traverse
00060 
00061 public:
00062         static void Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me);
00063 
00064 };
00065 
00066 #endif//MGA_MGAMETAATTRIBUTE_H