Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EnumeratorViewOfEnumVariant.cs
Go to the documentation of this file.
1
using
System.Collections
;
2
using
System.Runtime.InteropServices.ComTypes
;
3
4
namespace
System.Runtime.InteropServices.CustomMarshalers
;
5
6
internal
sealed
class
EnumeratorViewOfEnumVariant
:
ICustomAdapter
,
System
.Collections.
IEnumerator
7
{
8
private
readonly
IEnumVARIANT
_enumVariantObject
;
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
{
27
if
(
_fetchedLastObject
)
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
}
42
_current
=
_nextArray
[0];
43
return
true
;
44
}
45
46
public
void
Reset
()
47
{
48
int
num =
_enumVariantObject
.
Reset
();
49
if
(num < 0)
50
{
51
Marshal
.
ThrowExceptionForHR
(num);
52
}
53
_fetchedLastObject
=
false
;
54
_current
=
null
;
55
}
56
57
public
object
GetUnderlyingObject
()
58
{
59
return
_enumVariantObject
;
60
}
61
}
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant._nextArray
readonly object[] _nextArray
Definition
EnumeratorViewOfEnumVariant.cs:12
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant.MoveNext
unsafe bool MoveNext()
Definition
EnumeratorViewOfEnumVariant.cs:25
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant.GetUnderlyingObject
object GetUnderlyingObject()
Definition
EnumeratorViewOfEnumVariant.cs:57
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant._current
object _current
Definition
EnumeratorViewOfEnumVariant.cs:14
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant.Reset
void Reset()
Definition
EnumeratorViewOfEnumVariant.cs:46
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant._fetchedLastObject
bool _fetchedLastObject
Definition
EnumeratorViewOfEnumVariant.cs:10
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant.EnumeratorViewOfEnumVariant
EnumeratorViewOfEnumVariant(IEnumVARIANT enumVariantObject)
Definition
EnumeratorViewOfEnumVariant.cs:18
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant._enumVariantObject
readonly IEnumVARIANT _enumVariantObject
Definition
EnumeratorViewOfEnumVariant.cs:8
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant.Current
object Current
Definition
EnumeratorViewOfEnumVariant.cs:16
System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant
Definition
EnumeratorViewOfEnumVariant.cs:7
System.Runtime.InteropServices.Marshal.ThrowExceptionForHR
static void ThrowExceptionForHR(int errorCode)
Definition
Marshal.cs:1232
System.Runtime.InteropServices.Marshal
Definition
Marshal.cs:14
System.Collections.IEnumerator
Definition
IEnumerator.cs:4
System.Runtime.InteropServices.ComTypes.IEnumVARIANT.Next
int Next(int celt, [Out][MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] object?[] rgVar, IntPtr pceltFetched)
System.Runtime.InteropServices.ComTypes.IEnumVARIANT.Reset
int Reset()
System.Runtime.InteropServices.ComTypes.IEnumVARIANT
Definition
IEnumVARIANT.cs:7
System.Runtime.InteropServices.ICustomAdapter
Definition
ICustomAdapter.cs:4
System.Collections
Definition
BlockingCollection.cs:8
System.Runtime.InteropServices.ComTypes
Definition
BIND_OPTS.cs:1
System.Runtime.InteropServices.CustomMarshalers
Definition
ComDataHelpers.cs:3
System
Definition
BlockingCollection.cs:8
System.IntPtr
Definition
IntPtr.cs:14
source
System.Private.CoreLib
System.Runtime.InteropServices.CustomMarshalers
EnumeratorViewOfEnumVariant.cs
Generated by
1.10.0