using System;
using System.ComponentModel;
using Decal.Interop.Net;

namespace Decal.Adapter.Wrappers;

public sealed class NetServiceHost : HostBase
{
	private NetService myService;

	[EditorBrowsable(EditorBrowsableState.Never)]
	public NetService Underlying => myService;

	public DecalWrapper Decal
	{
		get
		{
			if (base.MyDecal == null)
			{
				base.MyDecal = new DecalWrapper(myService.Decal);
			}
			return base.MyDecal;
		}
	}

	public HooksWrapper Actions => CoreManager.Current.Actions;

	internal NetServiceHost(NetService svc)
	{
		myService = svc;
		base.MyDecal = new DecalWrapper(myService.Decal);
	}

	public object GetComFilter(string progId)
	{
		return ((INetService)myService).get_FilterVB(progId);
	}

	public object GetComFilter(Guid clsid, Guid riid)
	{
		return ((INetService)myService).get_Filter(ref clsid, ref riid);
	}
}
