public void EnumerateReferences(ulong objRef, out IMDReferenceEnum ppEnum) { List <MD_Reference> refs = new List <MD_Reference>(); m_type.EnumerateRefsOfObject(objRef, delegate(ulong child, int offset) { if (child != 0) { MD_Reference r = new MD_Reference(); r.address = child; r.offset = offset; refs.Add(r); } }); ppEnum = new ReferenceEnum(refs); }
public void EnumerateReferences(ulong objRef, out IMDReferenceEnum ppEnum) { List<MD_Reference> refs = new List<MD_Reference>(); m_type.EnumerateRefsOfObject(objRef, delegate(ulong child, int offset) { if (child != 0) { MD_Reference r = new MD_Reference(); r.address = child; r.offset = offset; refs.Add(r); } }); ppEnum = new ReferenceEnum(refs); }
public int Next(int count, MD_Reference[] refs, out int pWrote) { if (m_curr == m_refs.Count) { m_curr = m_refs.Count + 1; pWrote = 0; return HRESULTS.S_FALSE; } else if (m_curr > m_refs.Count) { pWrote = 0; return HRESULTS.E_FAIL; } int i; for (i = 0; m_curr < m_refs.Count && i < count; ++i, ++m_curr) refs[i] = m_refs[m_curr]; pWrote = i; if (i != count) { m_curr = m_refs.Count + 1; return HRESULTS.S_FALSE; } return HRESULTS.S_OK; }