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

namespace Steam4NET
{

	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class ISteamUGC003VTable
	{
		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 StartItemUpdate16;
		public IntPtr SetItemTitle17;
		public IntPtr SetItemDescription18;
		public IntPtr SetItemVisibility19;
		public IntPtr SetItemTags20;
		public IntPtr SetItemContent21;
		public IntPtr SetItemPreview22;
		public IntPtr SubmitItemUpdate23;
		public IntPtr GetItemUpdateProgress24;
		public IntPtr SubscribeItem25;
		public IntPtr UnsubscribeItem26;
		public IntPtr GetNumSubscribedItems27;
		public IntPtr GetSubscribedItems28;
		public IntPtr GetItemInstallInfo29;
		public IntPtr GetItemUpdateInfo30;
		private IntPtr DTorISteamUGC00331;
	};
	
	[InteropHelp.InterfaceVersion("STEAMUGC_INTERFACE_VERSION003")]
	public class ISteamUGC003 : InteropHelp.NativeWrapper<ISteamUGC003VTable>
	{
		[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 unMaxAgeSeconds );
		public bool SetAllowCachedResponse( UInt64 handle, UInt32 unMaxAgeSeconds ) 
		{
			return this.GetFunction<NativeSetAllowCachedResponseUU>( this.Functions.SetAllowCachedResponse9 )( this.ObjectAddress, handle, unMaxAgeSeconds ); 
		}
		
		[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 NativeRequestUGCDetailsUU( IntPtr thisptr, UInt64 nPublishedFileID, UInt32 unMaxAgeSeconds );
		public UInt64 RequestUGCDetails( UInt64 nPublishedFileID, UInt32 unMaxAgeSeconds ) 
		{
			return this.GetFunction<NativeRequestUGCDetailsUU>( this.Functions.RequestUGCDetails14 )( this.ObjectAddress, nPublishedFileID, unMaxAgeSeconds ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeCreateItemUE( IntPtr thisptr, UInt32 nConsumerAppId, EWorkshopFileType eFileType );
		public UInt64 CreateItem( UInt32 nConsumerAppId, EWorkshopFileType eFileType ) 
		{
			return this.GetFunction<NativeCreateItemUE>( this.Functions.CreateItem15 )( this.ObjectAddress, nConsumerAppId, eFileType ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeStartItemUpdateUU( IntPtr thisptr, UInt32 nConsumerAppId, UInt64 nPublishedFileID );
		public UInt64 StartItemUpdate( UInt32 nConsumerAppId, UInt64 nPublishedFileID ) 
		{
			return this.GetFunction<NativeStartItemUpdateUU>( this.Functions.StartItemUpdate16 )( this.ObjectAddress, nConsumerAppId, nPublishedFileID ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemTitleUS( IntPtr thisptr, UInt64 handle, string pchTitle );
		public bool SetItemTitle( UInt64 handle, string pchTitle ) 
		{
			return this.GetFunction<NativeSetItemTitleUS>( this.Functions.SetItemTitle17 )( this.ObjectAddress, handle, pchTitle ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemDescriptionUS( IntPtr thisptr, UInt64 handle, string pchDescription );
		public bool SetItemDescription( UInt64 handle, string pchDescription ) 
		{
			return this.GetFunction<NativeSetItemDescriptionUS>( this.Functions.SetItemDescription18 )( this.ObjectAddress, handle, pchDescription ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemVisibilityUE( IntPtr thisptr, UInt64 handle, ERemoteStoragePublishedFileVisibility eVisibility );
		public bool SetItemVisibility( UInt64 handle, ERemoteStoragePublishedFileVisibility eVisibility ) 
		{
			return this.GetFunction<NativeSetItemVisibilityUE>( this.Functions.SetItemVisibility19 )( this.ObjectAddress, handle, eVisibility ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemTagsUS( IntPtr thisptr, UInt64 updateHandle, ref SteamParamStringArray_t pTags );
		public bool SetItemTags( UInt64 updateHandle, ref SteamParamStringArray_t pTags ) 
		{
			return this.GetFunction<NativeSetItemTagsUS>( this.Functions.SetItemTags20 )( this.ObjectAddress, updateHandle, ref pTags ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemContentUS( IntPtr thisptr, UInt64 handle, string pszContentFolder );
		public bool SetItemContent( UInt64 handle, string pszContentFolder ) 
		{
			return this.GetFunction<NativeSetItemContentUS>( this.Functions.SetItemContent21 )( this.ObjectAddress, handle, pszContentFolder ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeSetItemPreviewUS( IntPtr thisptr, UInt64 handle, string pszPreviewFile );
		public bool SetItemPreview( UInt64 handle, string pszPreviewFile ) 
		{
			return this.GetFunction<NativeSetItemPreviewUS>( this.Functions.SetItemPreview22 )( this.ObjectAddress, handle, pszPreviewFile ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeSubmitItemUpdateUS( IntPtr thisptr, UInt64 handle, string pchChangeNote );
		public UInt64 SubmitItemUpdate( UInt64 handle, string pchChangeNote ) 
		{
			return this.GetFunction<NativeSubmitItemUpdateUS>( this.Functions.SubmitItemUpdate23 )( this.ObjectAddress, handle, pchChangeNote ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate EItemUpdateStatus NativeGetItemUpdateProgressUUU( IntPtr thisptr, UInt64 handle, ref UInt64 punBytesProcessed, ref UInt64 punBytesTotal );
		public EItemUpdateStatus GetItemUpdateProgress( UInt64 handle, ref UInt64 punBytesProcessed, ref UInt64 punBytesTotal ) 
		{
			return this.GetFunction<NativeGetItemUpdateProgressUUU>( this.Functions.GetItemUpdateProgress24 )( this.ObjectAddress, handle, ref punBytesProcessed, ref punBytesTotal ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeSubscribeItemU( IntPtr thisptr, UInt64 nPublishedFileID );
		public UInt64 SubscribeItem( UInt64 nPublishedFileID ) 
		{
			return this.GetFunction<NativeSubscribeItemU>( this.Functions.SubscribeItem25 )( this.ObjectAddress, nPublishedFileID ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt64 NativeUnsubscribeItemU( IntPtr thisptr, UInt64 nPublishedFileID );
		public UInt64 UnsubscribeItem( UInt64 nPublishedFileID ) 
		{
			return this.GetFunction<NativeUnsubscribeItemU>( this.Functions.UnsubscribeItem26 )( this.ObjectAddress, nPublishedFileID ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetNumSubscribedItems( IntPtr thisptr );
		public UInt32 GetNumSubscribedItems(  ) 
		{
			return this.GetFunction<NativeGetNumSubscribedItems>( this.Functions.GetNumSubscribedItems27 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate UInt32 NativeGetSubscribedItemsUU( IntPtr thisptr, ref UInt64 pvecPublishedFileID, UInt32 cMaxEntries );
		public UInt32 GetSubscribedItems( ref UInt64 pvecPublishedFileID, UInt32 cMaxEntries ) 
		{
			return this.GetFunction<NativeGetSubscribedItemsUU>( this.Functions.GetSubscribedItems28 )( this.ObjectAddress, ref pvecPublishedFileID, cMaxEntries ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetItemInstallInfoUUSUB( IntPtr thisptr, UInt64 nPublishedFileID, ref UInt64 punSizeOnDisk, StringBuilder pchFolder, UInt32 cchFolderSize, ref bool pbLegacyItem );
		public bool GetItemInstallInfo( UInt64 nPublishedFileID, ref UInt64 punSizeOnDisk, StringBuilder pchFolder, ref bool pbLegacyItem ) 
		{
			return this.GetFunction<NativeGetItemInstallInfoUUSUB>( this.Functions.GetItemInstallInfo29 )( this.ObjectAddress, nPublishedFileID, ref punSizeOnDisk, pchFolder, (UInt32) pchFolder.Capacity, ref pbLegacyItem ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetItemUpdateInfoUBBUU( IntPtr thisptr, UInt64 nPublishedFileID, ref bool pbNeedsUpdate, ref bool pbIsDownloading, ref UInt64 punBytesDownloaded, ref UInt64 punBytesTotal );
		public bool GetItemUpdateInfo( UInt64 nPublishedFileID, ref bool pbNeedsUpdate, ref bool pbIsDownloading, ref UInt64 punBytesDownloaded, ref UInt64 punBytesTotal ) 
		{
			return this.GetFunction<NativeGetItemUpdateInfoUBBUU>( this.Functions.GetItemUpdateInfo30 )( this.ObjectAddress, nPublishedFileID, ref pbNeedsUpdate, ref pbIsDownloading, ref punBytesDownloaded, ref punBytesTotal ); 
		}
		
	};
}
