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

namespace Decal.Interop.Core;

[ComImport]
[InterfaceType(2)]
[SuppressUnmanagedCodeSecurity]
[Guid("EB282FE5-7170-4A37-A26E-92AF36385D2C")]
[TypeLibType(4096)]
public interface IACHooksEvents
{
	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(1)]
	void ObjectDestroyed([In] int lGUID);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(2)]
	void ChatTextIntercept([In][MarshalAs(UnmanagedType.BStr)] string bstrText, [In] int lColor, [In] int lTarget, [In][Out] ref bool bEat);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(3)]
	void ChatParserIntercept([In][MarshalAs(UnmanagedType.BStr)] string bstrText, [In][Out] ref bool bEat);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(4)]
	void StatusTextIntercept([In][MarshalAs(UnmanagedType.BStr)] string bstrText, [In][Out] ref bool bEat);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(5)]
	void ObjectSelected([In] int lGUID);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(6)]
	void MessageProcessed([In] int pbData, [In] int dwSize);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(7)]
	void AC3DRegionChanged([In] int left, [In] int top, int right, [In] int bottom);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(8)]
	void ContainerOpened([In] int lGUID);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(9)]
	void ChatClickIntercept([In][MarshalAs(UnmanagedType.BStr)] string bstrText, [In] int lID, [In][Out] ref bool bEat);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	[DispId(10)]
	void RenderPreUI();
}
