using System.Runtime.InteropServices;

namespace Decal.Interop.Inject;

[TypeLibType(TypeLibTypeFlags.FHidden)]
[ClassInterface(ClassInterfaceType.None)]
public sealed class IPagerEvents_SinkHelper : IPagerEvents
{
	public IPagerEvents_DestroyEventHandler m_DestroyDelegate;

	public IPagerEvents_ChangeEventHandler m_ChangeDelegate;

	public IPagerEvents_GetNextPositionEventHandler m_GetNextPositionDelegate;

	public int m_dwCookie;

	public void Destroy(int P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_DestroyDelegate != null)
		{
			m_DestroyDelegate(P_0);
		}
	}

	public void Change(int P_0, int P_1, int P_2, int P_3)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_ChangeDelegate != null)
		{
			m_ChangeDelegate(P_0, P_1, P_2, P_3);
		}
	}

	public bool GetNextPosition(int P_0, int P_1, ref int P_2, ref int P_3)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_GetNextPositionDelegate != null)
		{
			return m_GetNextPositionDelegate(P_0, P_1, ref P_2, ref P_3);
		}
		return false;
	}

	internal IPagerEvents_SinkHelper()
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		m_dwCookie = 0;
		m_DestroyDelegate = null;
		m_ChangeDelegate = null;
		m_GetNextPositionDelegate = null;
	}
}
