using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;

namespace Decal.Interop.Input;

[ComImport]
[TypeLibType(4096)]
[InterfaceType(2)]
[Guid("04CD59E6-672E-45A6-AE0A-454B1F59377A")]
[SuppressUnmanagedCodeSecurity]
public interface IInputBufferEvents
{
	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(1)]
	void Begin([MarshalAs(UnmanagedType.Interface)] InputBuffer Buffer);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(2)]
	void End([MarshalAs(UnmanagedType.Interface)] InputBuffer Buffer);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(3)]
	void Event([MarshalAs(UnmanagedType.Interface)] InputBuffer Buffer, int EventID, [MarshalAs(UnmanagedType.Struct)] object Param);
}
