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

namespace Steam4NET
{

	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class IClientUGCVTable
	{
		public IntPtr CreateQueryUserUGCRequest0;
		public IntPtr CreateQueryAllUGCRequest1;
		public IntPtr SendQueryUGCRequest2;
		public IntPtr GetQueryUGCResult3;
		public IntPtr ReleaseQueryUGCRequest4;
		public IntPtr AddRequiredTag5;
		public IntPtr AddExcludedTag6;
		public IntPtr SetReturnLongDescription7;
		public IntPtr SetReturnTotalOnly8;
		public IntPtr SetAllowCachedResponse9;
		public IntPtr SetCloudFileNameFilter10;
		public IntPtr SetMatchAnyTag11;
		public IntPtr SetSearchText12;
		public IntPtr SetRankedByTrendDays13;
		public IntPtr RequestUGCDetails14;
		public IntPtr CreateItem15;
		public IntPtr UploadItemContent16;
		public IntPtr UploadItemPreview17;
		public IntPtr StartItemUpdate18;
		public IntPtr SetItemTitle19;
		public IntPtr SetItemChangeDescription20;
		public IntPtr SetItemDescription21;
		public IntPtr SetItemVisibility22;
		public IntPtr SetItemTags23;
		public IntPtr SetItemContent24;
		public IntPtr SetItemPreview25;
		public IntPtr CommitItemUpdate26;
		public IntPtr SubscribeItem27;
		public IntPtr UnsubscribeItem28;
		public IntPtr GetNumSubscribedItems29;
		public IntPtr GetSubscribedItems30;
		public IntPtr GetSubscribedItemInfo31;
		private IntPtr DTorIClientUGC32;
	};
	
	[InteropHelp.InterfaceVersion("CLIENTUGC_INTERFACE_VERSION001")]
	public class IClientUGC : InteropHelp.NativeWrapper<IClientUGCVTable>
	{
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeCreateQueryUserUGCRequestUEEEUUU( IntPtr thisptr, UInt32 unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, UInt32 nCreatorAppID, UInt32 nConsumerAppID, UInt32 unPage );
		public UInt64 CreateQueryUserUGCRequest( UInt32 unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, UInt32 nCreatorAppID, UInt32 nConsumerAppID, UInt32 unPage ) 
		{
			return this.GetFunction<NativeCreateQueryUserUGCRequestUEEEUUU>( this.Functions.CreateQueryUserUGCRequest0 )( this.ObjectAddress, unAccountID, eListType, eMatchingUGCType, eSortOrder, nCreatorAppID, nConsumerAppID, unPage ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeCreateQueryAllUGCRequestEEUUU( IntPtr thisptr, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, UInt32 nCreatorAppID, UInt32 nConsumerAppID, UInt32 unPage );
		public UInt64 CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, UInt32 nCreatorAppID, UInt32 nConsumerAppID, UInt32 unPage ) 
		{
			return this.GetFunction<NativeCreateQueryAllUGCRequestEEUUU>( this.Functions.CreateQueryAllUGCRequest1 )( this.ObjectAddress, eQueryType, eMatchingeMatchingUGCTypeFileType, nCreatorAppID, nConsumerAppID, unPage ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeSendQueryUGCRequestU( IntPtr thisptr, UInt64 handle );
		public UInt64 SendQueryUGCRequest( UInt64 handle ) 
		{
			return this.GetFunction<NativeSendQueryUGCRequestU>( this.Functions.SendQueryUGCRequest2 )( this.ObjectAddress, handle ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetQueryUGCResultUUS( IntPtr thisptr, UInt64 handle, UInt32 index, ref SteamUGCDetails_t pDetails );
		public bool GetQueryUGCResult( UInt64 handle, UInt32 index, ref SteamUGCDetails_t pDetails ) 
		{
			return this.GetFunction<NativeGetQueryUGCResultUUS>( this.Functions.GetQueryUGCResult3 )( this.ObjectAddress, handle, index, ref pDetails ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeReleaseQueryUGCRequestU( IntPtr thisptr, UInt64 handle );
		public bool ReleaseQueryUGCRequest( UInt64 handle ) 
		{
			return this.GetFunction<NativeReleaseQueryUGCRequestU>( this.Functions.ReleaseQueryUGCRequest4 )( this.ObjectAddress, handle ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeAddRequiredTagUS( IntPtr thisptr, UInt64 handle, string pTagName );
		public bool AddRequiredTag( UInt64 handle, string pTagName ) 
		{
			return this.GetFunction<NativeAddRequiredTagUS>( this.Functions.AddRequiredTag5 )( this.ObjectAddress, handle, pTagName ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeAddExcludedTagUS( IntPtr thisptr, UInt64 handle, string pTagName );
		public bool AddExcludedTag( UInt64 handle, string pTagName ) 
		{
			return this.GetFunction<NativeAddExcludedTagUS>( this.Functions.AddExcludedTag6 )( this.ObjectAddress, handle, pTagName ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetReturnLongDescriptionUB( IntPtr thisptr, UInt64 handle, [MarshalAs(UnmanagedType.I1)] bool bReturnLongDescription );
		public bool SetReturnLongDescription( UInt64 handle, bool bReturnLongDescription ) 
		{
			return this.GetFunction<NativeSetReturnLongDescriptionUB>( this.Functions.SetReturnLongDescription7 )( this.ObjectAddress, handle, bReturnLongDescription ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetReturnTotalOnlyUB( IntPtr thisptr, UInt64 handle, [MarshalAs(UnmanagedType.I1)] bool bReturnTotalOnly );
		public bool SetReturnTotalOnly( UInt64 handle, bool bReturnTotalOnly ) 
		{
			return this.GetFunction<NativeSetReturnTotalOnlyUB>( this.Functions.SetReturnTotalOnly8 )( this.ObjectAddress, handle, bReturnTotalOnly ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetAllowCachedResponseUU( IntPtr thisptr, UInt64 handle, UInt32 arg1 );
		public bool SetAllowCachedResponse( UInt64 handle, UInt32 arg1 ) 
		{
			return this.GetFunction<NativeSetAllowCachedResponseUU>( this.Functions.SetAllowCachedResponse9 )( this.ObjectAddress, handle, arg1 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetCloudFileNameFilterUS( IntPtr thisptr, UInt64 handle, string pMatchCloudFileName );
		public bool SetCloudFileNameFilter( UInt64 handle, string pMatchCloudFileName ) 
		{
			return this.GetFunction<NativeSetCloudFileNameFilterUS>( this.Functions.SetCloudFileNameFilter10 )( this.ObjectAddress, handle, pMatchCloudFileName ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetMatchAnyTagUB( IntPtr thisptr, UInt64 handle, [MarshalAs(UnmanagedType.I1)] bool bMatchAnyTag );
		public bool SetMatchAnyTag( UInt64 handle, bool bMatchAnyTag ) 
		{
			return this.GetFunction<NativeSetMatchAnyTagUB>( this.Functions.SetMatchAnyTag11 )( this.ObjectAddress, handle, bMatchAnyTag ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetSearchTextUS( IntPtr thisptr, UInt64 handle, string pSearchText );
		public bool SetSearchText( UInt64 handle, string pSearchText ) 
		{
			return this.GetFunction<NativeSetSearchTextUS>( this.Functions.SetSearchText12 )( this.ObjectAddress, handle, pSearchText ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetRankedByTrendDaysUU( IntPtr thisptr, UInt64 handle, UInt32 unDays );
		public bool SetRankedByTrendDays( UInt64 handle, UInt32 unDays ) 
		{
			return this.GetFunction<NativeSetRankedByTrendDaysUU>( this.Functions.SetRankedByTrendDays13 )( this.ObjectAddress, handle, unDays ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeRequestUGCDetailsU( IntPtr thisptr, UInt64 nPublishedFileID );
		public UInt64 RequestUGCDetails( UInt64 nPublishedFileID ) 
		{
			return this.GetFunction<NativeRequestUGCDetailsU>( this.Functions.RequestUGCDetails14 )( this.ObjectAddress, nPublishedFileID ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeCreateItemUE( IntPtr thisptr, UInt32 arg0, EWorkshopFileType arg1 );
		public UInt64 CreateItem( UInt32 arg0, EWorkshopFileType arg1 ) 
		{
			return this.GetFunction<NativeCreateItemUE>( this.Functions.CreateItem15 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeUploadItemContentUS( IntPtr thisptr, UInt64 arg0, string arg1 );
		public UInt64 UploadItemContent( UInt64 arg0, string arg1 ) 
		{
			return this.GetFunction<NativeUploadItemContentUS>( this.Functions.UploadItemContent16 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeUploadItemPreviewUS( IntPtr thisptr, UInt64 arg0, string arg1 );
		public UInt64 UploadItemPreview( UInt64 arg0, string arg1 ) 
		{
			return this.GetFunction<NativeUploadItemPreviewUS>( this.Functions.UploadItemPreview17 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeStartItemUpdateUU( IntPtr thisptr, UInt32 arg0, UInt64 arg1 );
		public UInt64 StartItemUpdate( UInt32 arg0, UInt64 arg1 ) 
		{
			return this.GetFunction<NativeStartItemUpdateUU>( this.Functions.StartItemUpdate18 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemTitleUS( IntPtr thisptr, UInt64 arg0, string arg1 );
		public bool SetItemTitle( UInt64 arg0, string arg1 ) 
		{
			return this.GetFunction<NativeSetItemTitleUS>( this.Functions.SetItemTitle19 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemChangeDescriptionUS( IntPtr thisptr, UInt64 arg0, string arg1 );
		public bool SetItemChangeDescription( UInt64 arg0, string arg1 ) 
		{
			return this.GetFunction<NativeSetItemChangeDescriptionUS>( this.Functions.SetItemChangeDescription20 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemDescriptionUS( IntPtr thisptr, UInt64 arg0, string arg1 );
		public bool SetItemDescription( UInt64 arg0, string arg1 ) 
		{
			return this.GetFunction<NativeSetItemDescriptionUS>( this.Functions.SetItemDescription21 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemVisibilityUE( IntPtr thisptr, UInt64 arg0, ERemoteStoragePublishedFileVisibility arg1 );
		public bool SetItemVisibility( UInt64 arg0, ERemoteStoragePublishedFileVisibility arg1 ) 
		{
			return this.GetFunction<NativeSetItemVisibilityUE>( this.Functions.SetItemVisibility22 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemTagsUS( IntPtr thisptr, UInt64 arg0, ref SteamParamStringArray_t arg1 );
		public bool SetItemTags( UInt64 arg0, ref SteamParamStringArray_t arg1 ) 
		{
			return this.GetFunction<NativeSetItemTagsUS>( this.Functions.SetItemTags23 )( this.ObjectAddress, arg0, ref arg1 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemContentUU( IntPtr thisptr, UInt64 arg0, UInt64 arg1 );
		public bool SetItemContent( UInt64 arg0, UInt64 arg1 ) 
		{
			return this.GetFunction<NativeSetItemContentUU>( this.Functions.SetItemContent24 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemPreviewUU( IntPtr thisptr, UInt64 arg0, UInt64 arg1 );
		public bool SetItemPreview( UInt64 arg0, UInt64 arg1 ) 
		{
			return this.GetFunction<NativeSetItemPreviewUU>( this.Functions.SetItemPreview25 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeCommitItemUpdateU( IntPtr thisptr, UInt64 arg0 );
		public UInt64 CommitItemUpdate( UInt64 arg0 ) 
		{
			return this.GetFunction<NativeCommitItemUpdateU>( this.Functions.CommitItemUpdate26 )( this.ObjectAddress, arg0 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeSubscribeItemUU( IntPtr thisptr, UInt32 arg0, UInt64 arg1 );
		public UInt64 SubscribeItem( UInt32 arg0, UInt64 arg1 ) 
		{
			return this.GetFunction<NativeSubscribeItemUU>( this.Functions.SubscribeItem27 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeUnsubscribeItemUU( IntPtr thisptr, UInt32 arg0, UInt64 arg1 );
		public UInt64 UnsubscribeItem( UInt32 arg0, UInt64 arg1 ) 
		{
			return this.GetFunction<NativeUnsubscribeItemUU>( this.Functions.UnsubscribeItem28 )( this.ObjectAddress, arg0, arg1 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetNumSubscribedItemsU( IntPtr thisptr, UInt32 arg0 );
		public UInt32 GetNumSubscribedItems( UInt32 arg0 ) 
		{
			return this.GetFunction<NativeGetNumSubscribedItemsU>( this.Functions.GetNumSubscribedItems29 )( this.ObjectAddress, arg0 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetSubscribedItemsUUU( IntPtr thisptr, UInt32 arg0, ref UInt64 arg1, UInt32 arg2 );
		public UInt32 GetSubscribedItems( UInt32 arg0, ref UInt64 arg1, UInt32 arg2 ) 
		{
			return this.GetFunction<NativeGetSubscribedItemsUUU>( this.Functions.GetSubscribedItems30 )( this.ObjectAddress, arg0, ref arg1, arg2 ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetSubscribedItemInfoUUSISIEBSIU( IntPtr thisptr, UInt32 arg0, UInt64 arg1, StringBuilder arg2, Int32 arg3, StringBuilder arg4, Int32 arg5, ref EWorkshopFileType arg6, ref bool arg7, StringBuilder arg8, Int32 arg9, ref UInt64 arg10 );
		public bool GetSubscribedItemInfo( UInt32 arg0, UInt64 arg1, StringBuilder arg2, Int32 arg3, StringBuilder arg4, Int32 arg5, ref EWorkshopFileType arg6, ref bool arg7, StringBuilder arg8, Int32 arg9, ref UInt64 arg10 ) 
		{
			return this.GetFunction<NativeGetSubscribedItemInfoUUSISIEBSIU>( this.Functions.GetSubscribedItemInfo31 )( this.ObjectAddress, arg0, arg1, arg2, arg3, arg4, arg5, ref arg6, ref arg7, arg8, arg9, ref arg10 ); 
		}
		
	};
}
