// This file is automatically generated.
using System;
using System.Text;
using System.Runtime.InteropServices;

namespace Steam4NET
{

	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamContentServer002VTable
	{
		public IntPtr LogOn0;
		public IntPtr LogOff1;
		public IntPtr BLoggedOn2;
		public IntPtr SendClientContentAuthRequest3;
		public IntPtr BCheckTicket4;
		private IntPtr DTorISteamContentServer0025;
	};
	
	[InteropHelp.InterfaceVersion("SteamContentServer002")]
	public class ISteamContentServer002 : InteropHelp.NativeWrapper<ISteamContentServer002VTable>
	{
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeLogOnU( IntPtr thisptr, UInt32 uContentServerID );
		public bool LogOn( UInt32 uContentServerID ) 
		{
			return this.GetFunction<NativeLogOnU>( this.Functions.LogOn0 )( this.ObjectAddress, uContentServerID ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeLogOff( IntPtr thisptr );
		public bool LogOff(  ) 
		{
			return this.GetFunction<NativeLogOff>( this.Functions.LogOff1 )( this.ObjectAddress ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeBLoggedOn( IntPtr thisptr );
		public bool BLoggedOn(  ) 
		{
			return this.GetFunction<NativeBLoggedOn>( this.Functions.BLoggedOn2 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeSendClientContentAuthRequestCUUB( IntPtr thisptr, UInt64 steamID, UInt32 uContentID, UInt64 ulSessionToken, [MarshalAs(UnmanagedType.I1)] bool bTokenPresent );
		public void SendClientContentAuthRequest( CSteamID steamID, UInt32 uContentID, UInt64 ulSessionToken, bool bTokenPresent ) 
		{
			this.GetFunction<NativeSendClientContentAuthRequestCUUB>( this.Functions.SendClientContentAuthRequest3 )( this.ObjectAddress, steamID.ConvertToUint64(), uContentID, ulSessionToken, bTokenPresent ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeBCheckTicketCUBU( IntPtr thisptr, UInt64 steamID, UInt32 uContentID, Byte[] pvTicketData, UInt32 cubTicketLength );
		public bool BCheckTicket( CSteamID steamID, UInt32 uContentID, Byte[] pvTicketData ) 
		{
			return this.GetFunction<NativeBCheckTicketCUBU>( this.Functions.BCheckTicket4 )( this.ObjectAddress, steamID.ConvertToUint64(), uContentID, pvTicketData, (UInt32) pvTicketData.Length ); 
		}
		
	};
}
