GME
13
|
00001 00002 #include "stdafx.h" 00003 #include "MgaMetaReference.h" 00004 #include "MgaMetaPointerSpec.h" 00005 00006 // --------------------------- CMgaMetaReference 00007 00008 STDMETHODIMP CMgaMetaReference::CheckPath(BSTR path, VARIANT_BOOL *p) 00009 { 00010 CHECK_OUT(p); 00011 00012 COMTRY 00013 { 00014 ASSERT( metaprojectref != NULL ); 00015 00016 pathitems_type pathitems; 00017 metaproject->CreatePathItems(begin(path), end(path), pathitems); 00018 00019 CCoreObjectPtr self(GetUnknown()); 00020 00021 bool valid = CMgaMetaPointerSpec::CheckPath(self, pathitems, true); 00022 00023 *p = valid ? VARIANT_TRUE : VARIANT_FALSE; 00024 } 00025 COMCATCH(;) 00026 } 00027 00028 // ------- Traverse 00029 00030 void CMgaMetaReference::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me) 00031 { 00032 ASSERT( metaproject != NULL ); 00033 ASSERT( me != NULL ); 00034 00035 CMgaMetaFCO::Traverse(metaproject, me); 00036 CMgaMetaPointerSpec::Traverse(metaproject, me); 00037 }