Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
        }