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

namespace Decal.Interop.Input;

[ComImport]
[SuppressUnmanagedCodeSecurity]
[InterfaceType(1)]
[Guid("1751F4E5-4E11-42F1-A00F-ED5B1D899C66")]
public interface IInputActionSite
{
	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void Delay(int Time, bool Advance);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void FireEvent(int nEventID, [MarshalAs(UnmanagedType.Struct)] object vParam);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void MoveMouse(int X, int Y);

	[DispId(1610678275)]
	InputService Service
	{
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
		[return: MarshalAs(UnmanagedType.Interface)]
		get;
	}
}
