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

namespace Steam4NET
{

	public enum ENetworkDeviceState : int
	{
	};
	
	public enum EWirelessSecurityFlags : int
	{
	};
	
	[StructLayout(LayoutKind.Sequential,Pack=8)]
	public struct WirelessAccessPoint_t
	{
		public Int32 m_iPadding;
	};
	
	[StructLayout(LayoutKind.Sequential,Pack=8)]
	public struct WirelessCredentials_t
	{
		public Int32 m_iPadding;
	};
	
	public enum ENetworkDeviceManagerError : int
	{
	};
	
	[StructLayout(LayoutKind.Sequential,Pack=4)]
	public class IClientNetworkDeviceManagerVTable
	{
		public IntPtr IsInterfaceValid0;
		public IntPtr RefreshDevices1;
		public IntPtr GetWirelessDeviceState2;
		public IntPtr GetWiredDeviceCount3;
		public IntPtr GetWiredDeviceState4;
		public IntPtr IsWiredDevicePluggedIn5;
		public IntPtr GetActiveWirelessAccessPoint6;
		public IntPtr EnumerateWirelessAccessPoints7;
		public IntPtr GetCachedCredentialsForSSID8;
		public IntPtr GetPreferredSecurityMethod9;
		public IntPtr ActivateWiredConnection10;
		public IntPtr DeactivateWiredConnection11;
		public IntPtr ConnectToAccessPoint12;
		public IntPtr DisconnectFromAccessPoint13;
		private IntPtr DTorIClientNetworkDeviceManager14;
	};
	
	[InteropHelp.InterfaceVersion("CLIENTNETWORKDEVICEMANAGER_INTERFACE_VERSION001")]
	public class IClientNetworkDeviceManager : InteropHelp.NativeWrapper<IClientNetworkDeviceManagerVTable>
	{
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeIsInterfaceValid( IntPtr thisptr );
		public bool IsInterfaceValid(  ) 
		{
			return this.GetFunction<NativeIsInterfaceValid>( this.Functions.IsInterfaceValid0 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeRefreshDevices( IntPtr thisptr );
		public void RefreshDevices(  ) 
		{
			this.GetFunction<NativeRefreshDevices>( this.Functions.RefreshDevices1 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate ENetworkDeviceState NativeGetWirelessDeviceState( IntPtr thisptr );
		public ENetworkDeviceState GetWirelessDeviceState(  ) 
		{
			return this.GetFunction<NativeGetWirelessDeviceState>( this.Functions.GetWirelessDeviceState2 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate Int32 NativeGetWiredDeviceCount( IntPtr thisptr );
		public Int32 GetWiredDeviceCount(  ) 
		{
			return this.GetFunction<NativeGetWiredDeviceCount>( this.Functions.GetWiredDeviceCount3 )( this.ObjectAddress ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate ENetworkDeviceState NativeGetWiredDeviceStateI( IntPtr thisptr, Int32 iDevice );
		public ENetworkDeviceState GetWiredDeviceState( Int32 iDevice ) 
		{
			return this.GetFunction<NativeGetWiredDeviceStateI>( this.Functions.GetWiredDeviceState4 )( this.ObjectAddress, iDevice ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeIsWiredDevicePluggedInI( IntPtr thisptr, Int32 iDevice );
		public bool IsWiredDevicePluggedIn( Int32 iDevice ) 
		{
			return this.GetFunction<NativeIsWiredDevicePluggedInI>( this.Functions.IsWiredDevicePluggedIn5 )( this.ObjectAddress, iDevice ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetActiveWirelessAccessPointW( IntPtr thisptr, ref WirelessAccessPoint_t pAccessPoint );
		public bool GetActiveWirelessAccessPoint( ref WirelessAccessPoint_t pAccessPoint ) 
		{
			return this.GetFunction<NativeGetActiveWirelessAccessPointW>( this.Functions.GetActiveWirelessAccessPoint6 )( this.ObjectAddress, ref pAccessPoint ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeEnumerateWirelessAccessPointsWUU( IntPtr thisptr, ref WirelessAccessPoint_t pAccessPoint, UInt32 uUnk, ref UInt32 puUnk );
		public bool EnumerateWirelessAccessPoints( ref WirelessAccessPoint_t pAccessPoint, UInt32 uUnk, ref UInt32 puUnk ) 
		{
			return this.GetFunction<NativeEnumerateWirelessAccessPointsWUU>( this.Functions.EnumerateWirelessAccessPoints7 )( this.ObjectAddress, ref pAccessPoint, uUnk, ref puUnk ); 
		}
		
		[return: MarshalAs(UnmanagedType.I1)]
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate bool NativeGetCachedCredentialsForSSIDSW( IntPtr thisptr, string pchUnk, ref WirelessCredentials_t pCredentials );
		public bool GetCachedCredentialsForSSID( string pchUnk, ref WirelessCredentials_t pCredentials ) 
		{
			return this.GetFunction<NativeGetCachedCredentialsForSSIDSW>( this.Functions.GetCachedCredentialsForSSID8 )( this.ObjectAddress, pchUnk, ref pCredentials ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate EWirelessSecurityFlags NativeGetPreferredSecurityMethodU( IntPtr thisptr, UInt32 uUnk );
		public EWirelessSecurityFlags GetPreferredSecurityMethod( UInt32 uUnk ) 
		{
			return this.GetFunction<NativeGetPreferredSecurityMethodU>( this.Functions.GetPreferredSecurityMethod9 )( this.ObjectAddress, uUnk ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate ENetworkDeviceManagerError NativeActivateWiredConnectionI( IntPtr thisptr, Int32 iConnection );
		public ENetworkDeviceManagerError ActivateWiredConnection( Int32 iConnection ) 
		{
			return this.GetFunction<NativeActivateWiredConnectionI>( this.Functions.ActivateWiredConnection10 )( this.ObjectAddress, iConnection ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeDeactivateWiredConnectionI( IntPtr thisptr, Int32 iConnection );
		public void DeactivateWiredConnection( Int32 iConnection ) 
		{
			this.GetFunction<NativeDeactivateWiredConnectionI>( this.Functions.DeactivateWiredConnection11 )( this.ObjectAddress, iConnection ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate ENetworkDeviceManagerError NativeConnectToAccessPointSBES( IntPtr thisptr, string pchUnk1, [MarshalAs(UnmanagedType.I1)] bool bUnk, EWirelessSecurityFlags eSecurityFlags, string pchUnk2 );
		public ENetworkDeviceManagerError ConnectToAccessPoint( string pchUnk1, bool bUnk, EWirelessSecurityFlags eSecurityFlags, string pchUnk2 ) 
		{
			return this.GetFunction<NativeConnectToAccessPointSBES>( this.Functions.ConnectToAccessPoint12 )( this.ObjectAddress, pchUnk1, bUnk, eSecurityFlags, pchUnk2 ); 
		}
		
		[UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate void NativeDisconnectFromAccessPoint( IntPtr thisptr );
		public void DisconnectFromAccessPoint(  ) 
		{
			this.GetFunction<NativeDisconnectFromAccessPoint>( this.Functions.DisconnectFromAccessPoint13 )( this.ObjectAddress ); 
		}
		
	};
}
