#if NETFX

using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace IWshRuntimeLibrary
{
	// Token: 0x02000003 RID: 3
	[Guid("F935DC21-1CF0-11D0-ADB9-00C04FD58A0B")]
	[TypeLibType(4176)]
	[ComImport]
	internal interface IWshShell
	{
		// Token: 0x17000005 RID: 5
		// (get) Token: 0x0600000E RID: 14
		[DispId(100)]
		IWshCollection SpecialFolders { [DispId(100)] [MethodImpl(MethodImplOptions.InternalCall)] [return: MarshalAs(UnmanagedType.Interface)] get; }

		// Token: 0x17000006 RID: 6
		// (get) Token: 0x0600000F RID: 15
		[DispId(200)]
		IWshEnvironment Environment { [DispId(200)] [MethodImpl(MethodImplOptions.InternalCall)] [return: MarshalAs(UnmanagedType.Interface)] get; }

		// Token: 0x06000010 RID: 16
		[DispId(1000)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		int Run([MarshalAs(UnmanagedType.BStr)] [In] string Command, [MarshalAs(UnmanagedType.Struct)] [In] ref object WindowStyle, [MarshalAs(UnmanagedType.Struct)] [In] ref object WaitOnReturn);

		// Token: 0x06000011 RID: 17
		[DispId(1001)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		int Popup([MarshalAs(UnmanagedType.BStr)] [In] string Text, [MarshalAs(UnmanagedType.Struct)] [In] ref object SecondsToWait, [MarshalAs(UnmanagedType.Struct)] [In] ref object Title, [MarshalAs(UnmanagedType.Struct)] [In] ref object Type);

		// Token: 0x06000012 RID: 18
		[DispId(1002)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.IDispatch)]
		object CreateShortcut([MarshalAs(UnmanagedType.BStr)] [In] string PathLink);

		// Token: 0x06000013 RID: 19
		[DispId(1006)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.BStr)]
		string ExpandEnvironmentStrings([MarshalAs(UnmanagedType.BStr)] [In] string Src);

		// Token: 0x06000014 RID: 20
		[DispId(2000)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.Struct)]
		object RegRead([MarshalAs(UnmanagedType.BStr)] [In] string Name);

		// Token: 0x06000015 RID: 21
		[DispId(2001)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void RegWrite([MarshalAs(UnmanagedType.BStr)] [In] string Name, [MarshalAs(UnmanagedType.Struct)] [In] ref object Value, [MarshalAs(UnmanagedType.Struct)] [In] ref object Type);

		// Token: 0x06000016 RID: 22
		[DispId(2002)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void RegDelete([MarshalAs(UnmanagedType.BStr)] [In] string Name);
	}
}

#endif