using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace Decal.Interop.Filters;

[ComImport]
[ClassInterface(ClassInterfaceType.None)]
[Guid("EE5DE01C-C38B-4908-92AC-F22290E4B3E7")]
[TypeLibType(18)]
public class VendorEnumClass : IEnumVARIANT, VendorEnum
{
	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	public virtual extern void Next([In] uint celt, [In][MarshalAs(UnmanagedType.Struct)] ref object rgvar, out uint pceltFetched);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	public virtual extern void Skip([In] uint celt);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	public virtual extern void Reset();

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	public virtual extern void Clone([MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "System.Runtime.InteropServices.CustomMarshalers.EnumeratorToEnumVariantMarshaler, CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] out IEnumerator ppenum);
}
