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

namespace Steam4NET
{

	public enum EPackageStatus : int
	{
	};
	
	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class IClientBillingVTable
	{
		public IntPtr PurchaseWithActivationCode0;
		public IntPtr GetLicensePackageID1;
		public IntPtr GetLicenseTimeCreated2;
		public IntPtr GetLicenseTimeNextProcess3;
		public IntPtr GetLicenseMinuteLimit4;
		public IntPtr GetLicenseMinutesUsed5;
		public IntPtr GetLicensePaymentMethod6;
		public IntPtr GetLicenseFlags7;
		public IntPtr GetLicensePurchaseCountryCode8;
		public IntPtr GetLicenseTerritoryCode9;
		public IntPtr GetLicenseInfo10;
		public IntPtr GetReceiptPackageID11;
		public IntPtr GetReceiptStatus12;
		public IntPtr GetReceiptResultDetail13;
		public IntPtr GetReceiptTransTime14;
		public IntPtr GetReceiptTransID15;
		public IntPtr GetReceiptPaymentMethod16;
		public IntPtr GetReceiptBaseCost17;
		public IntPtr GetReceiptTotalDiscount18;
		public IntPtr GetReceiptTax19;
		public IntPtr GetReceiptShipping20;
		public IntPtr GetReceiptCurrencyCode21;
		public IntPtr GetReceiptCountryCode22;
		public IntPtr GetReceiptErrorHeadline23;
		public IntPtr GetReceiptErrorString24;
		public IntPtr GetReceiptErrorLinkText25;
		public IntPtr GetReceiptErrorLinkURL26;
		public IntPtr GetReceiptErrorAppID27;
		public IntPtr GetNumLicenses28;
		public IntPtr GetNumReceipts29;
		public IntPtr PurchaseWithMachineID30;
		public IntPtr GetReceiptCardInfo31;
		public IntPtr GetReceiptBillingAddress32;
		public IntPtr GetReceiptLineItemCount33;
		public IntPtr GetReceiptLineItemInfo34;
		public IntPtr EnableTestLicense35;
		public IntPtr DisableTestLicense36;
		public IntPtr ActivateOEMTicket37;
		public IntPtr GetPackageName38;
		public IntPtr GetPackageInfo39;
		public IntPtr GetAppsInPackage40;
		public IntPtr GetPackageExtendedInfo41;
		public IntPtr RequestFreeLicenseForApp42;
		private IntPtr DTorIClientBilling43;
	};
	
	[InteropHelp.InterfaceVersion("CLIENTBILLING_INTERFACE_VERSION001")]
	public class IClientBilling : InteropHelp.NativeWrapper<IClientBillingVTable>
	{
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativePurchaseWithActivationCodeS( IntPtr thisptr, string pchActivationCode );
		public bool PurchaseWithActivationCode( string pchActivationCode ) 
		{
			return this.GetFunction<NativePurchaseWithActivationCodeS>( this.Functions.PurchaseWithActivationCode0 )( this.ObjectAddress, pchActivationCode ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetLicensePackageIDU( IntPtr thisptr, UInt32 nLicenseIndex );
		public UInt32 GetLicensePackageID( UInt32 nLicenseIndex ) 
		{
			return this.GetFunction<NativeGetLicensePackageIDU>( this.Functions.GetLicensePackageID1 )( this.ObjectAddress, nLicenseIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetLicenseTimeCreatedU( IntPtr thisptr, UInt32 nLicenseIndex );
		public UInt32 GetLicenseTimeCreated( UInt32 nLicenseIndex ) 
		{
			return this.GetFunction<NativeGetLicenseTimeCreatedU>( this.Functions.GetLicenseTimeCreated2 )( this.ObjectAddress, nLicenseIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetLicenseTimeNextProcessU( IntPtr thisptr, UInt32 nLicenseIndex );
		public UInt32 GetLicenseTimeNextProcess( UInt32 nLicenseIndex ) 
		{
			return this.GetFunction<NativeGetLicenseTimeNextProcessU>( this.Functions.GetLicenseTimeNextProcess3 )( this.ObjectAddress, nLicenseIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetLicenseMinuteLimitU( IntPtr thisptr, UInt32 nLicenseIndex );
		public Int32 GetLicenseMinuteLimit( UInt32 nLicenseIndex ) 
		{
			return this.GetFunction<NativeGetLicenseMinuteLimitU>( this.Functions.GetLicenseMinuteLimit4 )( this.ObjectAddress, nLicenseIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetLicenseMinutesUsedU( IntPtr thisptr, UInt32 nLicenseIndex );
		public Int32 GetLicenseMinutesUsed( UInt32 nLicenseIndex ) 
		{
			return this.GetFunction<NativeGetLicenseMinutesUsedU>( this.Functions.GetLicenseMinutesUsed5 )( this.ObjectAddress, nLicenseIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate EPaymentMethod NativeGetLicensePaymentMethodU( IntPtr thisptr, UInt32 nLicenseIndex );
		public EPaymentMethod GetLicensePaymentMethod( UInt32 nLicenseIndex ) 
		{
			return this.GetFunction<NativeGetLicensePaymentMethodU>( this.Functions.GetLicensePaymentMethod6 )( this.ObjectAddress, nLicenseIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate ELicenseFlags NativeGetLicenseFlagsU( IntPtr thisptr, UInt32 nLicenseIndex );
		public ELicenseFlags GetLicenseFlags( UInt32 nLicenseIndex ) 
		{
			return this.GetFunction<NativeGetLicenseFlagsU>( this.Functions.GetLicenseFlags7 )( this.ObjectAddress, nLicenseIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate IntPtr NativeGetLicensePurchaseCountryCodeU( IntPtr thisptr, UInt32 nLicenseIndex );
		public string GetLicensePurchaseCountryCode( UInt32 nLicenseIndex ) 
		{
			return InteropHelp.DecodeANSIReturn( Marshal.PtrToStringAnsi( this.GetFunction<NativeGetLicensePurchaseCountryCodeU>( this.Functions.GetLicensePurchaseCountryCode8 )( this.ObjectAddress, nLicenseIndex ) ) ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetLicenseTerritoryCodeU( IntPtr thisptr, UInt32 nLicenseIndex );
		public Int32 GetLicenseTerritoryCode( UInt32 nLicenseIndex ) 
		{
			return this.GetFunction<NativeGetLicenseTerritoryCodeU>( this.Functions.GetLicenseTerritoryCode9 )( this.ObjectAddress, nLicenseIndex ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetLicenseInfoUUUIIEUIS( IntPtr thisptr, UInt32 nLicenseIndex, ref UInt32 pRTime32Created, ref UInt32 pRTime32NextProcess, ref Int32 pnMinuteLimit, ref Int32 pnMinutesUsed, ref EPaymentMethod pePaymentMethod, ref UInt32 punFlags, ref Int32 pnTerritoryCode, StringBuilder prgchPurchaseCountryCode );
		public bool GetLicenseInfo( UInt32 nLicenseIndex, ref UInt32 pRTime32Created, ref UInt32 pRTime32NextProcess, ref Int32 pnMinuteLimit, ref Int32 pnMinutesUsed, ref EPaymentMethod pePaymentMethod, ref UInt32 punFlags, ref Int32 pnTerritoryCode, StringBuilder prgchPurchaseCountryCode ) 
		{
			return this.GetFunction<NativeGetLicenseInfoUUUIIEUIS>( this.Functions.GetLicenseInfo10 )( this.ObjectAddress, nLicenseIndex, ref pRTime32Created, ref pRTime32NextProcess, ref pnMinuteLimit, ref pnMinutesUsed, ref pePaymentMethod, ref punFlags, ref pnTerritoryCode, prgchPurchaseCountryCode ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetReceiptPackageIDU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt32 GetReceiptPackageID( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptPackageIDU>( this.Functions.GetReceiptPackageID11 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate EPurchaseStatus NativeGetReceiptStatusU( IntPtr thisptr, UInt32 nReceiptIndex );
		public EPurchaseStatus GetReceiptStatus( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptStatusU>( this.Functions.GetReceiptStatus12 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate EPurchaseResultDetail NativeGetReceiptResultDetailU( IntPtr thisptr, UInt32 nReceiptIndex );
		public EPurchaseResultDetail GetReceiptResultDetail( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptResultDetailU>( this.Functions.GetReceiptResultDetail13 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetReceiptTransTimeU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt32 GetReceiptTransTime( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptTransTimeU>( this.Functions.GetReceiptTransTime14 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeGetReceiptTransIDU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt64 GetReceiptTransID( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptTransIDU>( this.Functions.GetReceiptTransID15 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate EPaymentMethod NativeGetReceiptPaymentMethodU( IntPtr thisptr, UInt32 nReceiptIndex );
		public EPaymentMethod GetReceiptPaymentMethod( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptPaymentMethodU>( this.Functions.GetReceiptPaymentMethod16 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetReceiptBaseCostU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt32 GetReceiptBaseCost( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptBaseCostU>( this.Functions.GetReceiptBaseCost17 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetReceiptTotalDiscountU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt32 GetReceiptTotalDiscount( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptTotalDiscountU>( this.Functions.GetReceiptTotalDiscount18 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetReceiptTaxU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt32 GetReceiptTax( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptTaxU>( this.Functions.GetReceiptTax19 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetReceiptShippingU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt32 GetReceiptShipping( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptShippingU>( this.Functions.GetReceiptShipping20 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate ECurrencyCode NativeGetReceiptCurrencyCodeU( IntPtr thisptr, UInt32 nReceiptIndex );
		public ECurrencyCode GetReceiptCurrencyCode( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptCurrencyCodeU>( this.Functions.GetReceiptCurrencyCode21 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate IntPtr NativeGetReceiptCountryCodeU( IntPtr thisptr, UInt32 nReceiptIndex );
		public string GetReceiptCountryCode( UInt32 nReceiptIndex ) 
		{
			return InteropHelp.DecodeANSIReturn( Marshal.PtrToStringAnsi( this.GetFunction<NativeGetReceiptCountryCodeU>( this.Functions.GetReceiptCountryCode22 )( this.ObjectAddress, nReceiptIndex ) ) ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate IntPtr NativeGetReceiptErrorHeadlineU( IntPtr thisptr, UInt32 nReceiptIndex );
		public string GetReceiptErrorHeadline( UInt32 nReceiptIndex ) 
		{
			return InteropHelp.DecodeANSIReturn( Marshal.PtrToStringAnsi( this.GetFunction<NativeGetReceiptErrorHeadlineU>( this.Functions.GetReceiptErrorHeadline23 )( this.ObjectAddress, nReceiptIndex ) ) ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate IntPtr NativeGetReceiptErrorStringU( IntPtr thisptr, UInt32 nReceiptIndex );
		public string GetReceiptErrorString( UInt32 nReceiptIndex ) 
		{
			return InteropHelp.DecodeANSIReturn( Marshal.PtrToStringAnsi( this.GetFunction<NativeGetReceiptErrorStringU>( this.Functions.GetReceiptErrorString24 )( this.ObjectAddress, nReceiptIndex ) ) ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate IntPtr NativeGetReceiptErrorLinkTextU( IntPtr thisptr, UInt32 nReceiptIndex );
		public string GetReceiptErrorLinkText( UInt32 nReceiptIndex ) 
		{
			return InteropHelp.DecodeANSIReturn( Marshal.PtrToStringAnsi( this.GetFunction<NativeGetReceiptErrorLinkTextU>( this.Functions.GetReceiptErrorLinkText25 )( this.ObjectAddress, nReceiptIndex ) ) ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate IntPtr NativeGetReceiptErrorLinkURLU( IntPtr thisptr, UInt32 nReceiptIndex );
		public string GetReceiptErrorLinkURL( UInt32 nReceiptIndex ) 
		{
			return InteropHelp.DecodeANSIReturn( Marshal.PtrToStringAnsi( this.GetFunction<NativeGetReceiptErrorLinkURLU>( this.Functions.GetReceiptErrorLinkURL26 )( this.ObjectAddress, nReceiptIndex ) ) ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetReceiptErrorAppIDU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt32 GetReceiptErrorAppID( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptErrorAppIDU>( this.Functions.GetReceiptErrorAppID27 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetNumLicenses( IntPtr thisptr );
		public UInt32 GetNumLicenses(  ) 
		{
			return this.GetFunction<NativeGetNumLicenses>( this.Functions.GetNumLicenses28 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetNumReceipts( IntPtr thisptr );
		public UInt32 GetNumReceipts(  ) 
		{
			return this.GetFunction<NativeGetNumReceipts>( this.Functions.GetNumReceipts29 )( this.ObjectAddress ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativePurchaseWithMachineIDUS( IntPtr thisptr, UInt32 nPackageID, string pchCustomData );
		public bool PurchaseWithMachineID( UInt32 nPackageID, string pchCustomData ) 
		{
			return this.GetFunction<NativePurchaseWithMachineIDUS>( this.Functions.PurchaseWithMachineID30 )( this.ObjectAddress, nPackageID, pchCustomData ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetReceiptCardInfoUESSSSS( IntPtr thisptr, UInt32 nReceiptIndex, ref ECreditCardType eCreditCardType, StringBuilder pchCardLast4Digits, StringBuilder pchCardHolderFirstName, StringBuilder pchCardHolderLastName, StringBuilder pchCardExpYear, StringBuilder pchCardExpMonth );
		public bool GetReceiptCardInfo( UInt32 nReceiptIndex, ref ECreditCardType eCreditCardType, StringBuilder pchCardLast4Digits, StringBuilder pchCardHolderFirstName, StringBuilder pchCardHolderLastName, StringBuilder pchCardExpYear, StringBuilder pchCardExpMonth ) 
		{
			return this.GetFunction<NativeGetReceiptCardInfoUESSSSS>( this.Functions.GetReceiptCardInfo31 )( this.ObjectAddress, nReceiptIndex, ref eCreditCardType, pchCardLast4Digits, pchCardHolderFirstName, pchCardHolderLastName, pchCardExpYear, pchCardExpMonth ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetReceiptBillingAddressUSSSSSSSSS( IntPtr thisptr, UInt32 nReceiptIndex, StringBuilder pchFirstName, StringBuilder pchLastName, StringBuilder pchAddress1, StringBuilder pchAddress2, StringBuilder pchCity, StringBuilder pchPostcode, StringBuilder pchState, StringBuilder pchCountry, StringBuilder pchPhone );
		public bool GetReceiptBillingAddress( UInt32 nReceiptIndex, StringBuilder pchFirstName, StringBuilder pchLastName, StringBuilder pchAddress1, StringBuilder pchAddress2, StringBuilder pchCity, StringBuilder pchPostcode, StringBuilder pchState, StringBuilder pchCountry, StringBuilder pchPhone ) 
		{
			return this.GetFunction<NativeGetReceiptBillingAddressUSSSSSSSSS>( this.Functions.GetReceiptBillingAddress32 )( this.ObjectAddress, nReceiptIndex, pchFirstName, pchLastName, pchAddress1, pchAddress2, pchCity, pchPostcode, pchState, pchCountry, pchPhone ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetReceiptLineItemCountU( IntPtr thisptr, UInt32 nReceiptIndex );
		public UInt32 GetReceiptLineItemCount( UInt32 nReceiptIndex ) 
		{
			return this.GetFunction<NativeGetReceiptLineItemCountU>( this.Functions.GetReceiptLineItemCount33 )( this.ObjectAddress, nReceiptIndex ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetReceiptLineItemInfoUUUUUUUEUSS( IntPtr thisptr, UInt32 nReceiptIndex, UInt32 nLineItemIndex, ref UInt32 nPackageID, ref UInt32 nBaseCost, ref UInt32 nDiscount, ref UInt32 nTax, ref UInt32 nShipping, ref ECurrencyCode eCurrencyCode, ref UInt32 punAppId, StringBuilder pchDescription, StringBuilder pchCouponInfoURL );
		public bool GetReceiptLineItemInfo( UInt32 nReceiptIndex, UInt32 nLineItemIndex, ref UInt32 nPackageID, ref UInt32 nBaseCost, ref UInt32 nDiscount, ref UInt32 nTax, ref UInt32 nShipping, ref ECurrencyCode eCurrencyCode, ref UInt32 punAppId, StringBuilder pchDescription, StringBuilder pchCouponInfoURL ) 
		{
			return this.GetFunction<NativeGetReceiptLineItemInfoUUUUUUUEUSS>( this.Functions.GetReceiptLineItemInfo34 )( this.ObjectAddress, nReceiptIndex, nLineItemIndex, ref nPackageID, ref nBaseCost, ref nDiscount, ref nTax, ref nShipping, ref eCurrencyCode, ref punAppId, pchDescription, pchCouponInfoURL ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeEnableTestLicenseU( IntPtr thisptr, UInt32 unPackageID );
		public void EnableTestLicense( UInt32 unPackageID ) 
		{
			this.GetFunction<NativeEnableTestLicenseU>( this.Functions.EnableTestLicense35 )( this.ObjectAddress, unPackageID ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeDisableTestLicenseU( IntPtr thisptr, UInt32 unPackageID );
		public void DisableTestLicense( UInt32 unPackageID ) 
		{
			this.GetFunction<NativeDisableTestLicenseU>( this.Functions.DisableTestLicense36 )( this.ObjectAddress, unPackageID ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeActivateOEMTicketS( IntPtr thisptr, string pchOEMLicenseFile );
		public bool ActivateOEMTicket( string pchOEMLicenseFile ) 
		{
			return this.GetFunction<NativeActivateOEMTicketS>( this.Functions.ActivateOEMTicket37 )( this.ObjectAddress, pchOEMLicenseFile ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetPackageNameUSI( IntPtr thisptr, UInt32 unPackageID, StringBuilder pchName, Int32 cubName );
		public UInt32 GetPackageName( UInt32 unPackageID, StringBuilder pchName ) 
		{
			return this.GetFunction<NativeGetPackageNameUSI>( this.Functions.GetPackageName38 )( this.ObjectAddress, unPackageID, pchName, (Int32) pchName.Capacity ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetPackageInfoUUUEEEIIIBB( IntPtr thisptr, UInt32 unPackageID, ref UInt32 puNumAppIds, ref UInt32 puNumDepotIDs, ref EBillingType peBillingType, ref ELicenseType peLicenseType, ref EPackageStatus pePackageStatus, ref Int32 piCodeClass, ref Int32 piGameCode, ref Int32 piTerritoryCode, ref bool pbRequiresShipping, ref bool pbIsPreorder );
		public bool GetPackageInfo( UInt32 unPackageID, ref UInt32 puNumAppIds, ref UInt32 puNumDepotIDs, ref EBillingType peBillingType, ref ELicenseType peLicenseType, ref EPackageStatus pePackageStatus, ref Int32 piCodeClass, ref Int32 piGameCode, ref Int32 piTerritoryCode, ref bool pbRequiresShipping, ref bool pbIsPreorder ) 
		{
			return this.GetFunction<NativeGetPackageInfoUUUEEEIIIBB>( this.Functions.GetPackageInfo39 )( this.ObjectAddress, unPackageID, ref puNumAppIds, ref puNumDepotIDs, ref peBillingType, ref peLicenseType, ref pePackageStatus, ref piCodeClass, ref piGameCode, ref piTerritoryCode, ref pbRequiresShipping, ref pbIsPreorder ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetAppsInPackageUUUBB( IntPtr thisptr, UInt32 unPackageID, ref UInt32 puIds, UInt32 uMaxIds, [MarshalAs(UnmanagedType.I1)] bool bExcludeDepots, [MarshalAs(UnmanagedType.I1)] bool bExcludeApps );
		public UInt32 GetAppsInPackage( UInt32 unPackageID, ref UInt32 puIds, UInt32 uMaxIds, bool bExcludeDepots, bool bExcludeApps ) 
		{
			return this.GetFunction<NativeGetAppsInPackageUUUBB>( this.Functions.GetAppsInPackage40 )( this.ObjectAddress, unPackageID, ref puIds, uMaxIds, bExcludeDepots, bExcludeApps ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetPackageExtendedInfoUBIB( IntPtr thisptr, UInt32 unPackageID, Byte[] pubData, Int32 cubData, [MarshalAs(UnmanagedType.I1)] bool bSharedKVSymbols );
		public UInt32 GetPackageExtendedInfo( UInt32 unPackageID, Byte[] pubData, bool bSharedKVSymbols ) 
		{
			return this.GetFunction<NativeGetPackageExtendedInfoUBIB>( this.Functions.GetPackageExtendedInfo41 )( this.ObjectAddress, unPackageID, pubData, (Int32) pubData.Length, bSharedKVSymbols ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeRequestFreeLicenseForAppU( IntPtr thisptr, UInt32 unAppId );
		public UInt64 RequestFreeLicenseForApp( UInt32 unAppId ) 
		{
			return this.GetFunction<NativeRequestFreeLicenseForAppU>( this.Functions.RequestFreeLicenseForApp42 )( this.ObjectAddress, unAppId ); 
		}
		
	};
}
