// // IEnumerator interface // public bool MoveNext() { if (m_enum == null) { return(false); } Type[] a = new Type[1]; int c = 0; m_enum.Next(a.Length, a, out c); if (c == 1) // S_OK && we got 1 new element { m_ty = new Type(a[0].NativePointer); } else { m_ty = null; } return(m_ty != null); }