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

namespace Steam4NET
{

	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamUser005VTable
	{
		public IntPtr GetHSteamUser0;
		public IntPtr LogOn1;
		public IntPtr LogOff2;
		public IntPtr BLoggedOn3;
		public IntPtr GetLogonState4;
		public IntPtr BConnected5;
		public IntPtr GetSteamID6;
		public IntPtr IsVACBanned7;
		public IntPtr RequireShowVACBannedMessage8;
		public IntPtr AcknowledgeVACBanning9;
		public IntPtr SetSteam2Ticket10;
		public IntPtr AddServerNetAddress11;
		public IntPtr SetEmail12;
		public IntPtr SetRegistryString13;
		public IntPtr GetRegistryString14;
		public IntPtr SetRegistryInt15;
		public IntPtr GetRegistryInt16;
		public IntPtr InitiateGameConnection17;
		public IntPtr TerminateGameConnection18;
		public IntPtr SetSelfAsPrimaryChatDestination19;
		public IntPtr IsPrimaryChatDestination20;
		public IntPtr RequestLegacyCDKey21;
		public IntPtr SendGuestPassByEmail22;
		public IntPtr SendGuestPassByAccountID23;
		public IntPtr AckGuestPass24;
		public IntPtr RedeemGuestPass25;
		public IntPtr GetGuestPassToGiveCount26;
		public IntPtr GetGuestPassToRedeemCount27;
		public IntPtr GetGuestPassLastUpdateTime28;
		public IntPtr GetGuestPassToGiveInfo29;
		public IntPtr GetGuestPassToRedeemInfo30;
		public IntPtr GetGuestPassToRedeemSenderAddress31;
		public IntPtr GetGuestPassToRedeemSenderName32;
		public IntPtr AcknowledgeMessageByGID33;
		public IntPtr SetLanguage34;
		public IntPtr TrackAppUsageEvent35;
		public IntPtr SetAccountName36;
		public IntPtr SetPassword37;
		public IntPtr SetAccountCreationTime38;
		private IntPtr DTorISteamUser00539;
	};
	
	[InteropHelp.InterfaceVersion("SteamUser005")]
	public class ISteamUser005 : InteropHelp.NativeWrapper<ISteamUser005VTable>
	{
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetHSteamUser( IntPtr thisptr );
		public Int32 GetHSteamUser(  ) 
		{
			return this.GetFunction<NativeGetHSteamUser>( this.Functions.GetHSteamUser0 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeLogOnC( IntPtr thisptr, UInt64 steamID );
		public void LogOn( CSteamID steamID ) 
		{
			this.GetFunction<NativeLogOnC>( this.Functions.LogOn1 )( this.ObjectAddress, steamID.ConvertToUint64() ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeLogOff( IntPtr thisptr );
		public void LogOff(  ) 
		{
			this.GetFunction<NativeLogOff>( this.Functions.LogOff2 )( this.ObjectAddress ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeBLoggedOn( IntPtr thisptr );
		public bool BLoggedOn(  ) 
		{
			return this.GetFunction<NativeBLoggedOn>( this.Functions.BLoggedOn3 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate ELogonState NativeGetLogonState( IntPtr thisptr );
		public ELogonState GetLogonState(  ) 
		{
			return this.GetFunction<NativeGetLogonState>( this.Functions.GetLogonState4 )( this.ObjectAddress ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeBConnected( IntPtr thisptr );
		public bool BConnected(  ) 
		{
			return this.GetFunction<NativeBConnected>( this.Functions.BConnected5 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeGetSteamID( IntPtr thisptr, ref UInt64 retarg );
		public CSteamID GetSteamID(  ) 
		{
			UInt64 ret = 0; this.GetFunction<NativeGetSteamID>( this.Functions.GetSteamID6 )( this.ObjectAddress, ref ret ); return new CSteamID(ret);
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeIsVACBannedE( IntPtr thisptr, EVACBan eVACBan );
		public bool IsVACBanned( EVACBan eVACBan ) 
		{
			return this.GetFunction<NativeIsVACBannedE>( this.Functions.IsVACBanned7 )( this.ObjectAddress, eVACBan ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeRequireShowVACBannedMessageE( IntPtr thisptr, EVACBan eVACBan );
		public bool RequireShowVACBannedMessage( EVACBan eVACBan ) 
		{
			return this.GetFunction<NativeRequireShowVACBannedMessageE>( this.Functions.RequireShowVACBannedMessage8 )( this.ObjectAddress, eVACBan ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeAcknowledgeVACBanningE( IntPtr thisptr, EVACBan eVACBan );
		public void AcknowledgeVACBanning( EVACBan eVACBan ) 
		{
			this.GetFunction<NativeAcknowledgeVACBanningE>( this.Functions.AcknowledgeVACBanning9 )( this.ObjectAddress, eVACBan ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeSetSteam2TicketBI( IntPtr thisptr, Byte[] pubTicket, Int32 cubTicket );
		public void SetSteam2Ticket( Byte[] pubTicket ) 
		{
			this.GetFunction<NativeSetSteam2TicketBI>( this.Functions.SetSteam2Ticket10 )( this.ObjectAddress, pubTicket, (Int32) pubTicket.Length ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeAddServerNetAddressUU( IntPtr thisptr, UInt32 unIP, UInt16 unPort );
		public void AddServerNetAddress( UInt32 unIP, UInt16 unPort ) 
		{
			this.GetFunction<NativeAddServerNetAddressUU>( this.Functions.AddServerNetAddress11 )( this.ObjectAddress, unIP, unPort ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetEmailS( IntPtr thisptr, string pchEmail );
		public bool SetEmail( string pchEmail ) 
		{
			return this.GetFunction<NativeSetEmailS>( this.Functions.SetEmail12 )( this.ObjectAddress, pchEmail ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetRegistryStringESS( IntPtr thisptr, ERegistrySubTree eRegistrySubTree, string pchKey, string pchValue );
		public bool SetRegistryString( ERegistrySubTree eRegistrySubTree, string pchKey, string pchValue ) 
		{
			return this.GetFunction<NativeSetRegistryStringESS>( this.Functions.SetRegistryString13 )( this.ObjectAddress, eRegistrySubTree, pchKey, pchValue ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetRegistryStringESSI( IntPtr thisptr, ERegistrySubTree eRegistrySubTree, string pchKey, StringBuilder pchValue, Int32 cbValue );
		public bool GetRegistryString( ERegistrySubTree eRegistrySubTree, string pchKey, StringBuilder pchValue ) 
		{
			return this.GetFunction<NativeGetRegistryStringESSI>( this.Functions.GetRegistryString14 )( this.ObjectAddress, eRegistrySubTree, pchKey, pchValue, (Int32) pchValue.Capacity ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetRegistryIntESI( IntPtr thisptr, ERegistrySubTree eRegistrySubTree, string pchKey, Int32 iValue );
		public bool SetRegistryInt( ERegistrySubTree eRegistrySubTree, string pchKey, Int32 iValue ) 
		{
			return this.GetFunction<NativeSetRegistryIntESI>( this.Functions.SetRegistryInt15 )( this.ObjectAddress, eRegistrySubTree, pchKey, iValue ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetRegistryIntESI( IntPtr thisptr, ERegistrySubTree eRegistrySubTree, string pchKey, ref Int32 piValue );
		public bool GetRegistryInt( ERegistrySubTree eRegistrySubTree, string pchKey, ref Int32 piValue ) 
		{
			return this.GetFunction<NativeGetRegistryIntESI>( this.Functions.GetRegistryInt16 )( this.ObjectAddress, eRegistrySubTree, pchKey, ref piValue ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeInitiateGameConnectionBICCUUB( IntPtr thisptr, Byte[] pBlob, Int32 cbMaxBlob, UInt64 steamID, UInt64 nGameAppID, UInt32 unIPServer, UInt16 usPortServer, [MarshalAs(UnmanagedType.I1)] bool bSecure );
		public Int32 InitiateGameConnection( Byte[] pBlob, CSteamID steamID, CGameID nGameAppID, UInt32 unIPServer, UInt16 usPortServer, bool bSecure ) 
		{
			return this.GetFunction<NativeInitiateGameConnectionBICCUUB>( this.Functions.InitiateGameConnection17 )( this.ObjectAddress, pBlob, (Int32) pBlob.Length, steamID.ConvertToUint64(), nGameAppID.ConvertToUint64(), unIPServer, usPortServer, bSecure ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeTerminateGameConnectionUU( IntPtr thisptr, UInt32 unIPServer, UInt16 usPortServer );
		public void TerminateGameConnection( UInt32 unIPServer, UInt16 usPortServer ) 
		{
			this.GetFunction<NativeTerminateGameConnectionUU>( this.Functions.TerminateGameConnection18 )( this.ObjectAddress, unIPServer, usPortServer ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeSetSelfAsPrimaryChatDestination( IntPtr thisptr );
		public void SetSelfAsPrimaryChatDestination(  ) 
		{
			this.GetFunction<NativeSetSelfAsPrimaryChatDestination>( this.Functions.SetSelfAsPrimaryChatDestination19 )( this.ObjectAddress ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeIsPrimaryChatDestination( IntPtr thisptr );
		public bool IsPrimaryChatDestination(  ) 
		{
			return this.GetFunction<NativeIsPrimaryChatDestination>( this.Functions.IsPrimaryChatDestination20 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeRequestLegacyCDKeyU( IntPtr thisptr, UInt32 iAppID );
		public void RequestLegacyCDKey( UInt32 iAppID ) 
		{
			this.GetFunction<NativeRequestLegacyCDKeyU>( this.Functions.RequestLegacyCDKey21 )( this.ObjectAddress, iAppID ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSendGuestPassByEmailSUB( IntPtr thisptr, string pchEmailAccount, UInt64 gidGuestPassID, [MarshalAs(UnmanagedType.I1)] bool bResending );
		public bool SendGuestPassByEmail( string pchEmailAccount, UInt64 gidGuestPassID, bool bResending ) 
		{
			return this.GetFunction<NativeSendGuestPassByEmailSUB>( this.Functions.SendGuestPassByEmail22 )( this.ObjectAddress, pchEmailAccount, gidGuestPassID, bResending ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSendGuestPassByAccountIDUUB( IntPtr thisptr, UInt32 uAccountID, UInt64 gidGuestPassID, [MarshalAs(UnmanagedType.I1)] bool bResending );
		public bool SendGuestPassByAccountID( UInt32 uAccountID, UInt64 gidGuestPassID, bool bResending ) 
		{
			return this.GetFunction<NativeSendGuestPassByAccountIDUUB>( this.Functions.SendGuestPassByAccountID23 )( this.ObjectAddress, uAccountID, gidGuestPassID, bResending ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeAckGuestPassS( IntPtr thisptr, string pchGuestPassCode );
		public bool AckGuestPass( string pchGuestPassCode ) 
		{
			return this.GetFunction<NativeAckGuestPassS>( this.Functions.AckGuestPass24 )( this.ObjectAddress, pchGuestPassCode ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeRedeemGuestPassS( IntPtr thisptr, string pchGuestPassCode );
		public bool RedeemGuestPass( string pchGuestPassCode ) 
		{
			return this.GetFunction<NativeRedeemGuestPassS>( this.Functions.RedeemGuestPass25 )( this.ObjectAddress, pchGuestPassCode ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetGuestPassToGiveCount( IntPtr thisptr );
		public UInt32 GetGuestPassToGiveCount(  ) 
		{
			return this.GetFunction<NativeGetGuestPassToGiveCount>( this.Functions.GetGuestPassToGiveCount26 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetGuestPassToRedeemCount( IntPtr thisptr );
		public UInt32 GetGuestPassToRedeemCount(  ) 
		{
			return this.GetFunction<NativeGetGuestPassToRedeemCount>( this.Functions.GetGuestPassToRedeemCount27 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetGuestPassLastUpdateTime( IntPtr thisptr );
		public UInt32 GetGuestPassLastUpdateTime(  ) 
		{
			return this.GetFunction<NativeGetGuestPassLastUpdateTime>( this.Functions.GetGuestPassLastUpdateTime28 )( this.ObjectAddress ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetGuestPassToGiveInfoUUUUUUUSI( IntPtr thisptr, UInt32 nPassIndex, ref UInt64 pgidGuestPassID, ref UInt32 pnPackageID, ref UInt32 pRTime32Created, ref UInt32 pRTime32Expiration, ref UInt32 pRTime32Sent, ref UInt32 pRTime32Redeemed, StringBuilder pchRecipientAddress, Int32 cRecipientAddressSize );
		public bool GetGuestPassToGiveInfo( UInt32 nPassIndex, ref UInt64 pgidGuestPassID, ref UInt32 pnPackageID, ref UInt32 pRTime32Created, ref UInt32 pRTime32Expiration, ref UInt32 pRTime32Sent, ref UInt32 pRTime32Redeemed, StringBuilder pchRecipientAddress ) 
		{
			return this.GetFunction<NativeGetGuestPassToGiveInfoUUUUUUUSI>( this.Functions.GetGuestPassToGiveInfo29 )( this.ObjectAddress, nPassIndex, ref pgidGuestPassID, ref pnPackageID, ref pRTime32Created, ref pRTime32Expiration, ref pRTime32Sent, ref pRTime32Redeemed, pchRecipientAddress, (Int32) pchRecipientAddress.Capacity ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetGuestPassToRedeemInfoUUUUUUU( IntPtr thisptr, UInt32 nPassIndex, ref UInt64 pgidGuestPassID, ref UInt32 pnPackageID, ref UInt32 pRTime32Created, ref UInt32 pRTime32Expiration, ref UInt32 pRTime32Sent, ref UInt32 pRTime32Redeemed );
		public bool GetGuestPassToRedeemInfo( UInt32 nPassIndex, ref UInt64 pgidGuestPassID, ref UInt32 pnPackageID, ref UInt32 pRTime32Created, ref UInt32 pRTime32Expiration, ref UInt32 pRTime32Sent, ref UInt32 pRTime32Redeemed ) 
		{
			return this.GetFunction<NativeGetGuestPassToRedeemInfoUUUUUUU>( this.Functions.GetGuestPassToRedeemInfo30 )( this.ObjectAddress, nPassIndex, ref pgidGuestPassID, ref pnPackageID, ref pRTime32Created, ref pRTime32Expiration, ref pRTime32Sent, ref pRTime32Redeemed ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetGuestPassToRedeemSenderAddressUSI( IntPtr thisptr, UInt32 nPassIndex, StringBuilder pchSenderAddress, Int32 cSenderAddressSize );
		public bool GetGuestPassToRedeemSenderAddress( UInt32 nPassIndex, StringBuilder pchSenderAddress ) 
		{
			return this.GetFunction<NativeGetGuestPassToRedeemSenderAddressUSI>( this.Functions.GetGuestPassToRedeemSenderAddress31 )( this.ObjectAddress, nPassIndex, pchSenderAddress, (Int32) pchSenderAddress.Capacity ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetGuestPassToRedeemSenderNameUSI( IntPtr thisptr, UInt32 nPassIndex, StringBuilder pchSenderName, Int32 cSenderNameSize );
		public bool GetGuestPassToRedeemSenderName( UInt32 nPassIndex, StringBuilder pchSenderName ) 
		{
			return this.GetFunction<NativeGetGuestPassToRedeemSenderNameUSI>( this.Functions.GetGuestPassToRedeemSenderName32 )( this.ObjectAddress, nPassIndex, pchSenderName, (Int32) pchSenderName.Capacity ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeAcknowledgeMessageByGIDS( IntPtr thisptr, string pchMessageGID );
		public void AcknowledgeMessageByGID( string pchMessageGID ) 
		{
			this.GetFunction<NativeAcknowledgeMessageByGIDS>( this.Functions.AcknowledgeMessageByGID33 )( this.ObjectAddress, pchMessageGID ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetLanguageS( IntPtr thisptr, string pchLanguage );
		public bool SetLanguage( string pchLanguage ) 
		{
			return this.GetFunction<NativeSetLanguageS>( this.Functions.SetLanguage34 )( this.ObjectAddress, pchLanguage ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeTrackAppUsageEventCES( IntPtr thisptr, UInt64 gameID, EAppUsageEvent eAppUsageEvent, string pchExtraInfo );
		public void TrackAppUsageEvent( CGameID gameID, EAppUsageEvent eAppUsageEvent, string pchExtraInfo ) 
		{
			this.GetFunction<NativeTrackAppUsageEventCES>( this.Functions.TrackAppUsageEvent35 )( this.ObjectAddress, gameID.ConvertToUint64(), eAppUsageEvent, pchExtraInfo ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeSetAccountNameS( IntPtr thisptr, string pchAccountName );
		public void SetAccountName( string pchAccountName ) 
		{
			this.GetFunction<NativeSetAccountNameS>( this.Functions.SetAccountName36 )( this.ObjectAddress, pchAccountName ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeSetPasswordS( IntPtr thisptr, string pchPassword );
		public void SetPassword( string pchPassword ) 
		{
			this.GetFunction<NativeSetPasswordS>( this.Functions.SetPassword37 )( this.ObjectAddress, pchPassword ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeSetAccountCreationTimeU( IntPtr thisptr, UInt32 rtime32Time );
		public void SetAccountCreationTime( UInt32 rtime32Time ) 
		{
			this.GetFunction<NativeSetAccountCreationTimeU>( this.Functions.SetAccountCreationTime38 )( this.ObjectAddress, rtime32Time ); 
		}
		
	};
}
