Nullable: System.Runtime.InteropServices.CustomMarshalers/WindowsRuntime (#23930)
[platform/upstream/coreclr.git] / src / System.Private.CoreLib / src / System / Runtime / InteropServices / WindowsRuntime / IIterator.cs
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4
5 #nullable enable
6 namespace System.Runtime.InteropServices.WindowsRuntime
7 {
8     [ComImport]
9     [WindowsRuntimeImport]
10     [Guid("6a79e863-4300-459a-9966-cbb660963ee1")]
11     internal interface IIterator<T>
12     {
13         T Current
14         {
15             get;
16         }
17
18         bool HasCurrent
19         {
20             get;
21         }
22
23         bool MoveNext();
24
25         int GetMany([Out] T[] items);
26     }
27
28     [ComImport]
29     [WindowsRuntimeImport]
30     [Guid("6a1d6c07-076d-49f2-8314-f52c9c9a8331")]
31     internal interface IBindableIterator
32     {
33         object? Current
34         {
35             get;
36         }
37
38         bool HasCurrent
39         {
40             get;
41         }
42
43         bool MoveNext();
44     }
45 }