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

namespace Steam4NET
{

	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamAppList001VTable
	{
		public IntPtr GetNumInstalledApps0;
		public IntPtr GetInstalledApps1;
		public IntPtr GetAppName2;
		public IntPtr GetAppInstallDir3;
		public IntPtr GetAppBuildId4;
		private IntPtr DTorISteamAppList0015;
	};
	
	[InteropHelp.InterfaceVersion("STEAMAPPLIST_INTERFACE_VERSION001")]
	public class ISteamAppList001 : InteropHelp.NativeWrapper<ISteamAppList001VTable>
	{
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetNumInstalledApps( IntPtr thisptr );
		public Int32 GetNumInstalledApps(  ) 
		{
			return this.GetFunction<NativeGetNumInstalledApps>( this.Functions.GetNumInstalledApps0 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetInstalledAppsUU( IntPtr thisptr, ref UInt32 puUnk, UInt32 uUnk );
		public Int32 GetInstalledApps( ref UInt32 puUnk, UInt32 uUnk ) 
		{
			return this.GetFunction<NativeGetInstalledAppsUU>( this.Functions.GetInstalledApps1 )( this.ObjectAddress, ref puUnk, uUnk ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetAppNameUSI( IntPtr thisptr, UInt32 uUnk, StringBuilder pUnk, Int32 iUnk );
		public Int32 GetAppName( UInt32 uUnk, StringBuilder pUnk ) 
		{
			return this.GetFunction<NativeGetAppNameUSI>( this.Functions.GetAppName2 )( this.ObjectAddress, uUnk, pUnk, (Int32) pUnk.Capacity ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetAppInstallDirUSI( IntPtr thisptr, UInt32 uUnk, StringBuilder pUnk, Int32 iUnk );
		public Int32 GetAppInstallDir( UInt32 uUnk, StringBuilder pUnk ) 
		{
			return this.GetFunction<NativeGetAppInstallDirUSI>( this.Functions.GetAppInstallDir3 )( this.ObjectAddress, uUnk, pUnk, (Int32) pUnk.Capacity ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetAppBuildIdU( IntPtr thisptr, UInt32 uUnk );
		public Int32 GetAppBuildId( UInt32 uUnk ) 
		{
			return this.GetFunction<NativeGetAppBuildIdU>( this.Functions.GetAppBuildId4 )( this.ObjectAddress, uUnk ); 
		}
		
	};
}
