using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using Decal.Interop.Inject;

namespace Decal.Interop.Controls;

[ComImport]
[SuppressUnmanagedCodeSecurity]
[InterfaceType(1)]
[Guid("E28573F0-36FC-4D64-B8E1-60A2D475A2A8")]
public interface IListColumn
{
	[DispId(1610678272)]
	bool FixedWidth
	{
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
		get;
	}

	[DispId(1610678273)]
	int Width
	{
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
		get;
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
		set;
	}

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void Render([MarshalAs(UnmanagedType.Interface)] Canvas __MIDL__IListColumn0000, ref tagPOINT ptCell, int nColor);

	[DispId(1610678275)]
	int DataColumns
	{
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
		get;
	}

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void Initialize([In][MarshalAs(UnmanagedType.Interface)] IList newVal, [In][MarshalAs(UnmanagedType.Interface)] PluginSite pSite);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void SchemaLoad([MarshalAs(UnmanagedType.IUnknown)] object pSchema);

	[DispId(1610678278)]
	int Height
	{
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
		get;
	}

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void Activate(ref tagPOINT ptCell);
}
