GME  13
MgaMetaReference.cpp
Go to the documentation of this file.
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 }