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

namespace Steam4NET
{

	public enum EMatchMakingServerResponse : int
	{
		eServerResponded = 0,
		eServerFailedToRespond = 1,
		eNoServersListedOnMasterServer = 2,
	};
	
	public enum EMatchMakingType : int
	{
		eInternetServer = 0,
		eLANServer = 1,
		eFriendsServer = 2,
		eFavoritesServer = 3,
		eHistoryServer = 4,
		eSpectatorServer = 5,
		eInvalidServer = 6,
	};
	
	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamMatchmakingServerListResponse001VTable
	{
		public IntPtr ServerResponded0;
		public IntPtr ServerFailedToRespond1;
		public IntPtr RefreshComplete2;
		private IntPtr DTorISteamMatchmakingServerListResponse0013;
	};
	
	public class ISteamMatchmakingServerListResponse001 : InteropHelp.NativeWrapper<ISteamMatchmakingServerListResponse001VTable>
	{
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeServerRespondedI( IntPtr thisptr, Int32 iServer );
		public void ServerResponded( Int32 iServer ) 
		{
			this.GetFunction<NativeServerRespondedI>( this.Functions.ServerResponded0 )( this.ObjectAddress, iServer ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeServerFailedToRespondI( IntPtr thisptr, Int32 iServer );
		public void ServerFailedToRespond( Int32 iServer ) 
		{
			this.GetFunction<NativeServerFailedToRespondI>( this.Functions.ServerFailedToRespond1 )( this.ObjectAddress, iServer ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeRefreshCompleteE( IntPtr thisptr, EMatchMakingServerResponse response );
		public void RefreshComplete( EMatchMakingServerResponse response ) 
		{
			this.GetFunction<NativeRefreshCompleteE>( this.Functions.RefreshComplete2 )( this.ObjectAddress, response ); 
		}
		
	};
	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamMatchmakingServerListResponse002VTable
	{
		public IntPtr ServerResponded0;
		public IntPtr ServerFailedToRespond1;
		public IntPtr RefreshComplete2;
		private IntPtr DTorISteamMatchmakingServerListResponse0023;
	};
	
	public class ISteamMatchmakingServerListResponse002 : InteropHelp.NativeWrapper<ISteamMatchmakingServerListResponse002VTable>
	{
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeServerRespondedBI( IntPtr thisptr, Byte[] hRequest, Int32 iServer );
		public void ServerResponded( Byte[] hRequest ) 
		{
			this.GetFunction<NativeServerRespondedBI>( this.Functions.ServerResponded0 )( this.ObjectAddress, hRequest, (Int32) hRequest.Length ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeServerFailedToRespondBI( IntPtr thisptr, Byte[] hRequest, Int32 iServer );
		public void ServerFailedToRespond( Byte[] hRequest ) 
		{
			this.GetFunction<NativeServerFailedToRespondBI>( this.Functions.ServerFailedToRespond1 )( this.ObjectAddress, hRequest, (Int32) hRequest.Length ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeRefreshCompleteBE( IntPtr thisptr, Byte[] hRequest, EMatchMakingServerResponse response );
		public void RefreshComplete( Byte[] hRequest, EMatchMakingServerResponse response ) 
		{
			this.GetFunction<NativeRefreshCompleteBE>( this.Functions.RefreshComplete2 )( this.ObjectAddress, hRequest, response ); 
		}
		
	};
	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamMatchmakingPingResponseVTable
	{
		public IntPtr ServerResponded0;
		public IntPtr ServerFailedToRespond1;
		private IntPtr DTorISteamMatchmakingPingResponse2;
	};
	
	public class ISteamMatchmakingPingResponse : InteropHelp.NativeWrapper<ISteamMatchmakingPingResponseVTable>
	{
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeServerRespondedG( IntPtr thisptr, gameserveritem_t server );
		public void ServerResponded( gameserveritem_t server ) 
		{
			this.GetFunction<NativeServerRespondedG>( this.Functions.ServerResponded0 )( this.ObjectAddress, server ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeServerFailedToRespond( IntPtr thisptr );
		public void ServerFailedToRespond(  ) 
		{
			this.GetFunction<NativeServerFailedToRespond>( this.Functions.ServerFailedToRespond1 )( this.ObjectAddress ); 
		}
		
	};
	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamMatchmakingPlayersResponseVTable
	{
		public IntPtr AddPlayerToList0;
		public IntPtr PlayersFailedToRespond1;
		public IntPtr PlayersRefreshComplete2;
		private IntPtr DTorISteamMatchmakingPlayersResponse3;
	};
	
	public class ISteamMatchmakingPlayersResponse : InteropHelp.NativeWrapper<ISteamMatchmakingPlayersResponseVTable>
	{
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeAddPlayerToListSIF( IntPtr thisptr, string pchName, Int32 nScore, float flTimePlayed );
		public void AddPlayerToList( string pchName, Int32 nScore, float flTimePlayed ) 
		{
			this.GetFunction<NativeAddPlayerToListSIF>( this.Functions.AddPlayerToList0 )( this.ObjectAddress, pchName, nScore, flTimePlayed ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativePlayersFailedToRespond( IntPtr thisptr );
		public void PlayersFailedToRespond(  ) 
		{
			this.GetFunction<NativePlayersFailedToRespond>( this.Functions.PlayersFailedToRespond1 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativePlayersRefreshComplete( IntPtr thisptr );
		public void PlayersRefreshComplete(  ) 
		{
			this.GetFunction<NativePlayersRefreshComplete>( this.Functions.PlayersRefreshComplete2 )( this.ObjectAddress ); 
		}
		
	};
	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamMatchmakingRulesResponseVTable
	{
		public IntPtr RulesResponded0;
		public IntPtr RulesFailedToRespond1;
		public IntPtr RulesRefreshComplete2;
		private IntPtr DTorISteamMatchmakingRulesResponse3;
	};
	
	public class ISteamMatchmakingRulesResponse : InteropHelp.NativeWrapper<ISteamMatchmakingRulesResponseVTable>
	{
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeRulesRespondedSS( IntPtr thisptr, string pchRule, string pchValue );
		public void RulesResponded( string pchRule, string pchValue ) 
		{
			this.GetFunction<NativeRulesRespondedSS>( this.Functions.RulesResponded0 )( this.ObjectAddress, pchRule, pchValue ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeRulesFailedToRespond( IntPtr thisptr );
		public void RulesFailedToRespond(  ) 
		{
			this.GetFunction<NativeRulesFailedToRespond>( this.Functions.RulesFailedToRespond1 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeRulesRefreshComplete( IntPtr thisptr );
		public void RulesRefreshComplete(  ) 
		{
			this.GetFunction<NativeRulesRefreshComplete>( this.Functions.RulesRefreshComplete2 )( this.ObjectAddress ); 
		}
		
	};
}
