Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EnumeratorViewOfEnumVariant.cs
Go to the documentation of this file.
3
5
6internal sealed class EnumeratorViewOfEnumVariant : ICustomAdapter, System.Collections.IEnumerator
7{
9
10 private bool _fetchedLastObject;
11
12 private readonly object[] _nextArray = new object[1];
13
14 private object _current;
15
16 public object Current => _current;
17
18 public EnumeratorViewOfEnumVariant(IEnumVARIANT enumVariantObject)
19 {
20 _enumVariantObject = enumVariantObject;
21 _fetchedLastObject = false;
22 _current = null;
23 }
24
25 public unsafe bool MoveNext()
26 {
28 {
29 _current = null;
30 return false;
31 }
32 int num = 0;
33 if (_enumVariantObject.Next(1, _nextArray, (IntPtr)(&num)) == 1)
34 {
35 _fetchedLastObject = true;
36 if (num == 0)
37 {
38 _current = null;
39 return false;
40 }
41 }
43 return true;
44 }
45
46 public void Reset()
47 {
48 int num = _enumVariantObject.Reset();
49 if (num < 0)
50 {
52 }
53 _fetchedLastObject = false;
54 _current = null;
55 }
56
57 public object GetUnderlyingObject()
58 {
59 return _enumVariantObject;
60 }
61}
static void ThrowExceptionForHR(int errorCode)
Definition Marshal.cs:1232
int Next(int celt, [Out][MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] object?[] rgVar, IntPtr pceltFetched)